ツール

TOOLS

SILEXICA

マルチコア向けソフトウェア並列化ツール
既存のシングルコア用ソースコードをマルチコア向けに並列化

近年、プロセッサの性能向上は、マルチコア化の方向に進んでいます。それに伴い、組み込みソフトウェア開発においても、マルチコアアーキテクチャへの対応が急務となっています。しかしながら、既存のシングルコアのソフトウェア資産を活用した上で、マルチコアへ移行するには、複雑性の増加と、性能見積もりの困難さが課題となります。ゆえに、増加するコア数に対して、ハードウェアリソースを 効率的に利用するためには、ソフトウェアの自動設計ツールの支援が重要です。

Silexica社のSLX Tool Suiteは、既存のシングルコア向けのソースコードを分割し、ハードウェアリソースにマッピングする機能を提供します。 また、抽象化されたハードウェア情報記述に基づき、ヘテロジニアス、ホモジニアスの両マルチコア環境について、処理性能、および、消費電力の見積もりを行うことが出来ます。SLX Tool Suiteを使うことで、ハードウェアリソースに最適に配置されたソフトウェアを開発することが可能となります。

SLX Parallelizer

ソフトウェアの分割可能箇所の抽出

SLX Parallelizerは、シーケンシャルCソースコードを入力とし、 静的解析技術、動的解析技術を用いて、分割可能な箇所の分析を行います。 また、SLX Mapperで最適なコア配置を分析するために、ソフトウェアを 小さな処理単位のネットワークで表現した形式に、半自動で変換します。


分割結果は、標準的な並列化APIである OpenMP に対応したソースコードとして エクスポートすることができます。あるいは、SLX Mapperでの更なる解析の ために、CPN("C for Process Networks")形式を作成します。

slx parallelizer

slx parallelizer

slx parallelizer

SLX Parallelizer

SLX Mapper

コアへの最適な配置を生成

SLX Mapperは、前述のSLX Parallelizerを利用して作成した、Process Networkを入力として、 ターゲットハードウェアのコアへの最適な配置を生成します。 さらに、ユーザがリアルタイム制約やリソース制約を指定して、解を求める際に加味させることができます。

slx mapper

slx mapper

コアへの処理の割り当て

パフォーマンス、および、消費電力の見積もり

抽象化されたターゲットハードウェアの情報を用いて、パフォーマンスの見積もり および、消費電力の見積もりを行うことができます。これらの見積もり結果は、 コアへの配置を求める際に考慮されます。

最終的な結果として、SLX Mapper は、各処理を「どこに配置するか」 「いつ動作させるか」のマッピング結果を生成します。 後述のSLX Generatorでは、これらの情報を元に、並列化されたソースコードを 自動生成します。

slx mapper

パフォーマンス見積もり

SLX Generator

並列化されたソースコードの自動生成

SLX Generatorは、独自のsource-to-sourceコンパイラ技術を用いて、 マルチコアターゲット向けに並列化されたCソースコードを生成します。 前述のSLX Mapperが生成したコア配置の決定に基づき、また、 同期や通信のためのAPIは最も適したものが選択されます。 SLX Generatorは、pthread、SystemC、MPIなど、標準的な並列プログラミング インターフェースをサポートしています。さらに顧客からの要望に応じて、 新たなバックエンドを開発することも可能です。

slx mapper

slx mapper

slx mapper

SLX Generator

ページトップへ戻る

製品・サービスの資料請求・お問い合わせはこちら