SLX

The perfect programming solutions for your multicore project

SLX

Products

ソフトウェアモデルを開発するシステムアーキテクトや、社内コード、オープンソース、商用ソースや、バイナリーコードを扱うデベロッパーにとって、従来のソフトウェア最適化プロセスは、もはやマルチコアシステムに対応できるものではありません。

マルチコアシステム環境において、アプリケーションの挙動をすべて理解するには、正確なソフトウェアの相互依存性の解析が必要とされます。システム挙動を深く理解し、パフォーマンス向上とエネルギー抑制の機会を探る為には、システム実行の際のソフトウェアの相互依存関係性を深く理解するためのツールが必要になります。

SLXは、マルチコア開発用のツールであり、ソフトウェア稼働時におけるソフトウェアとハードウェアの相互依存性を解析します。マルチコアシステム環境において、コードを書く際や、リファクタリングの際には、効率的なCPU、DSP、FPGAなどのエンジン配置を提案してくれます。

SLX

FPGA

Closeup of electronic circuit board with CPU microchip electronic components background-implement
anim-loader-

SLXは、レガシーソースコードの解析、実行時の挙動、アプリケーションを複数のソフトウエア部分に分割し、複数のプロセッサあるいはFPGAへ配置し実行できるようにする為の関係性などを統合します。

包括的なプロセッサ・モデリング、FPGAのタイミング特性、リソース能力を提示し、静的解析と動的解析から並列化パターンを導き出します。

ハードウェア/ソフトウェア分割の最適化は、デザインスペースの探索によって高い精度を誇ります。ソフトウェアの並列化とハードウェア実装用の高位合成(HLS)ガイドによる最適化結果に基づいて、プラグマが自動挿入されます。SLXは、並列化プロセスやハードウェアアクセラレーションの機会を特定する作業を単純化し、その解析と現状解析を結びつけることにより活用されます。

詳しく見る
Product-Analyse-Static-and-Dynamic-Source-Code-Analysis-analyze

静的・動的・セマンティック ソースコード解析

Power-performance-and-memory-driven-distribution-of-tasks-and-buffers-optimize

SW/HWの自動分割

automatic-insertion-of-pragmas-openmp-HLS-etc-implement

Pragmaの自動挿入 (OpenMP, HLSなど)

ANALYZE

Fig2.23_Big-implement

コード解析

SLXは、全てのデータと制御の依存性を特定、整理する為に、静的解析と動的解析の両方を利用し、洗練されたコンパイラ技術によって正確なアプリケーションモデル作り上げます。 このモデルは、アプリケーションのコールグラフ、ローカル変数、ヒープ変数、グローバル変数への読み書きアクセス、システムアーキテクチャ内のメモリアクセスを含みます。

パターンベースのフレームワークは、アプリケーションがより多くの並列化を行える様、以下を特定します。

  • データレベル、タスクレベル、パイプラインレベルの並列化処理
  • カスタムコアとハードウェアアクセラレータのオフロード機会
  • 依存性または不規則な制御パターンによりブロックされる並列性

SLXのプラットフォームモデルにおけるタイミングとリソースの情報に基づいて、解析は効果的な改善が出来るアプリケーション部分にのみ焦点を当てます。 これによりデザイナーの作業が容易になり、生産性を向上させます。

OPTIMIZE

最適なハードウェア/ソフトウェアの分割を見つけ出す

プラットフォームモデルに基づいて、SLXはプロセッサ上でソフトウェアとして実行されている、もしくはハードウェアアクセラレータとしてFPGAで実行されている、検出された並列化パターンの実装のタイミングとリソース消費を特定することが可能です。 最適化アルゴリズムは、この情報を利用して最終的なアプリケーションの分割を計算し、以下の事が可能です。

  • ソースコードとハードウエアを直接結合したグラフィカルな表現によるアプリケーション分割の表示
  • 検出されたそれぞれの並列化パターンに対する、グローバルとローカルパフォーマンスの改善報告
  • 計算されたハードウェア/ソフトウェア分割に対する、FPGA上の最終的なリソース消費量の報告
  • ターゲットとなるFPGA対応SoCに対して最も有益なアプリケーション分割の推奨事項を提供

SLXでは、計算されたアプリケーション分割をオーバーライドし、他の実装を手動でテストする事もできます。 このアプローチによって、デザイナーを開発ループに入れて、人間の創意工夫を活用して生産性を向上させる事を可能にします。

FGPA_Optimize-implement

INTEGRATE

Figure2.60_Big-implement

ガイドとリライト

一度アプリケーション分割が確立されると、SLXは、自動的なコードの書き換えを行い、既存のアプリケーションの移行を助けます。 並列化を示すアプリケーションのソフトウェア部分については、OpenMP 4.5プラグマが挿入され、ターゲットプラットフォームでのマルチスレッド実装が保証されます。 Xilinxのプラグマが、アプリケーションのハードウェア部分に挿入され、結果として生じるアクセラレータの効率的な実装を保証するように調整されます。

また、SLXは、並列化あるいはハードウェアでの実装ができなかったアプリケーションの部分について、コードリファクタリングのヒントを提供し、これらのアクティビティが妨げられている理由を指摘します。

SLXは、Xilinx社のVidado HLSおよびSDSoCツールとのエンド・トゥー・エンドの統合を実現し、レガシーコードとターゲットFPGA対応SoC上で実行されているパーティション化されたアプリケーションの間に道を作り出します。

loader
Silexica

お問い合わせ

Any questions?
Silexica Europe
Silexica USA
Silexica Japan