Silexica、最新版SLXをリリース│業界初FPGAのHW/SW分割機能を搭載

SLXとは・・・

SLXは、複雑なマルチコア向けプログラミングを自動化するための、並列ソフトウェア開発ツール・スイート(SLX Tool Suite)です。SHIM(Software-Hardware Interface for Multi-many-core)で記述された抽象度の高いハードウェア・プラットフォーム情報を別途用意することで、シングル・スレッドで記述されたC/C++コードを並列化します。
またAutosarで記述されたコードをマルチコアに分割する機能や、FPGAへの自動実装機能も提供しています。

以下、SLXの中でも人気の高い2製品SLX for C/C++とSLX for FPGAに関して詳しく紹介させていただきます。

1. SLX for C/C++: 既存C/C++コードの並列化

入力されたシーケンシャルまたはスレッド化されたC/C ++コードを静的・動的に解析し、並列可能な個所を探索するだけでなく、静的解析だけでは予測不可能な「並列化した場合の速度向上」を自動予測します。多くの並列化候補の中から効果の大きい個所のみを並列化することで、短期間で効率良く並列化を実施できます。
特長
●ANSI C/C ++14をフルサポート
●ソースコードを動的に解析し、コールグラフを自動作成
●ソースコード内でポインタを使用可
●タスクレベル、データレベル、パイプラインの3種類の並列化候補を探索
●並列化を実行した場合の速度向上効果を定量的に算出
●キャッシュのヒット・ミス予測
●ISS等を使用せず、各コア上での各タスクの処理時間を高速・高精度に自動算出
●ヘテロジニアスなマルチコアに対応
●自動マッピングおよび手動マッピングの両方をサポート

slx01.png
slx02.png
slx03.png

2. SLX for FPGA: C/C++コードをFPGAとHWに実装

SLX FPGAフローでは既存のC/C++コードを解析し、Xilinx社のVivadoおよびSDSoCと一緒に動作させることにより、ARMコアやFPGA上で理想的に実行されるようにHWとSWの分割およびOpenMPおよびXilinx HLS向けのプラグマを自走挿入します。
特長
●並列化のためのコード解析
●合成できないコードのリファクタリング
●最適化のためのリファクタリング向けヒント
●OpenMPおよびXilinx HLS向けプラグマを自動挿入
●Zynq Ultrascale + MPSoC (ZC706/ZCU102)サポート済み

また、昨年10月にリリースした最新のSLXでは、Xilinx社のSD SoCの開発環境との親和性が更に高まり、HLS(High-Level Synthesis)フェーズの前段階でHW化できる箇所とSW化すべき箇所の探索を迅速かつ正確に行うことができる業界唯一のツールになっています。


●FPGA用拡張版SLX

SLX for FPGAは、ヘテロジニアス・マルチコア向けに最適化を目的としてソフトウェアの相互依存性、アプリケーションのホットスポット、並列化の機会などを解析します。ソースコードのHW / SW分割を可能にし、ソースコードのどの部分がARMプロセッサに留まるべきか、それともFPGAで処理することで高速化できるかといった情報を提供します。さらに、SLXは、マルチコアARMプロセッサおよびFPGAでのソースコード処理を高速化するためのプラグマを生成します。ほかにも、Xilinx社のSD SoC開発環境との親和性が更に高まるようなアップデートがされました。

slx04.png
slx05.png
slx06.png

< div>

slx07.png

Silexica HPではSLXの無償評価版をご用意しております。ご希望の場合は、こちらをご覧ください。
 
筆者プロフィール:
石榑航(いしぐれ・わたる)
Silexica GmbH  Marketing/ Communication

SNSチャンネル
Facebook
Twitter
フォロー、いいねお待ちしております!
 
Silexicaについて
Silexicaは、自動運転車や無線通信などの様々な業界のグローバル企業のビジネスに対しソフトウェア開発ソリューションを提供しています。弊社のSLXは、ソフトウェアの挙動解析を行い、ソフトウェア効率化や実装をサポートします。
2014年にスタートしたSilexicaは、ドイツ・ケルンの本社に加えて日本とアメリカにもオフィスを構えています。現在までに2800万米ドルの資金調達を実施しており、ADASシステムなどを用いた自動運転車開発や5G通信基地局などの様々な業界のグローバル企業のビジネスをお手伝いしています。