マルチコア、GPU、DSP、ベクタープロセッサ向けのソフトウェアを自動で並列化
emmtrix Technologiesは、高性能な組込みマルチコア・システムをターゲットとしたソフトウェア開発を効率的に行うための、ソリューションプロバイダーです。マルチコア・プロセッサ、ベクトル・プロセッサ、アクセラレータ(GPU、DSPなど)、あるいはこれらのヘテロジニアスな組み合わせのシステムをサポートしています。
特長
・アプリケーションを様々なプロセッシング・エレメント向けに並列化
・機能安全コードの維持(ISO 26262 / DO 178C)
・C++、MATLAB®、Simulink™、GNU Octave、Scilabなどのコードを効率的かつ透過的にC言語に変換
・開発の初期段階におけるコードのパフォーマンス予測
・コードのデータ依存性やイベントの関連を解析
■製品①【並列化】emmtrix Parallel Studio (ePS)
- 対象
・マルチ・メニーコア
・ベクタープロセッサ・GPU
・DSP
- インタラクティブなワークフロー
emmtrix Parallel Studioのもつ自動化機能により、マルチコア、GPU、DSP、さらにはこれらのあらゆる組み合わせにおいて、組み込みアプリケーションのパフォーマンスを最適化できます。
emmtrix Parallel Studioを用いることで、ユーザは幾つかの決断をするだけで並列化を容易に実現できます。
特許取得済みのグラフィカル・ユーザ・インタフェース(GUI)と多数のレポートにより、システムの理解を加速し、作業工程における全ての段階で、ユーザが所望のパフォーマンスが実現できるように制御できます。
MATLAB®, Simulink®, Scilab, Xcos, GNU Octaveなどのモデルベースで開発されたアプリケーションや、既存のCコードをePSの並列化の出発点として使用することができます。
ePSは、自動車、産業オートメーション、テレコミュニケーション、医療、航空宇宙などの分野で使用されています。また、ePS Qualification Kitを使用することで、ISO 26262やDO 178Cなどの機能安全要件を満たすアプリケーションの並列化を行うことができます。
■製品②【機能安全向け並列化】ePS Qualification Kit (ePS-QKIT) *2021年末リリース予定
・ISO26262
・DO-178C
emmtrix Qualification Kit for emmtrix Parallel Studio (ePS-QKIT)*は、DO-178C/330、ISO 26262、および同等の機能安全規格に準拠したemmtrix Parallel Studioの安全認証に必要なツールとプロセスを提供します。
これにより、最高の安全レベルを持つセーフティ・クリティカルなソフトウェアに、emmtrix Parallel Studioの並列化技術を使用することができます。QKITは、シーケンシャル・ソフトウェア(入力)と並列化されたソフトウェア(出力)が、全く同じように動作するかどうかをチェックする検証ツールで構成されています。
ePS-QKITは、emmtrix Parallel Checker (ePC)と呼ばれる当社の検証ツールで構成されており、エンドユーザ環境で実行されます。
並列チェッカーは、各並列化の後に実行され、並列Cコードの正しさを証明し、関連する機能安全関連の文書を生成します。並列チェッカーは,静的コード解析を用いて,逐次Cコードと並列Cコードを比較します。
並列コードに元のコードと全く同じ計算が含まれており、並列化によるエラー(競合状態、デッドロック、同期や通信の不具合など)がないことをチェックします。
ePS-QKITを用いて並列化の正しさをチェックすることで、emmtrix Parallel Studioのリスク(間違った動作)を排除します。
間違った動作の検出精度は高いため、emmtrix Parallel Studioを最高の安全レベル向けの機能安全ソフトウェアの並列化に使用することができます。
■製品③【コード変換】emmtrix Code Generator (eCG)
- 対応言語
・Simulink to MATLAB
・MATLAB/ Octave/ Scilabl to C
・C++ to C
- ユーザ制御可能な最適化
- 組込みシステム向け自動解析
emmtrix Code Generatorを使うことで、MATLAB®, Simulink®, GNU Octave, Scilab, Xcosアプリケーションから、ターゲット・プラットフォームに依存しない、可読性の高いCおよびC++のシングルコア・プロセッサ向け組み込みコードを開発できます。
生成されたコードは理解しやすく、個々の要求に合わせて調整することができます。
自動的に生成されるレポートは、コード認証プロセスに役立ちます。emmtrix Parallel Studioと組み合わせることで、eCGはMATLAB® or Simulink®, Scilab or Xcos, GNU Octaveから直接マルチコア・プログラミングを行うことができます。
■製品④【スクリプトファイル変換】emmtrix Model Code Generator (eMCG)
eMCGは、Simulink®モデル(*.slx)をMATLAB®またはGNU Octaveのスクリプトファイル(.m)に変換します。生成されたコードは理解しやすく、オリジナルのSimulink®ブロックへのトレーサビリティが可能です。.mファイルをCまたはC++に変換したい場合は、emmtrix Code Generatorを使用することで、すべてのプロセスを1つのツールで行うことができます。
■製品⑤【コンパイラ】emmtrix C++ to C Compiler (eCPP2C)
eCPP2Cは、C++のソースコードを解析可能なCコードに自動的に変換します。eCPP2Cは、オリジナルのC++コードのバイナリ・コンパイルと、翻訳されたCコードのバイナリ・コンパイルをほぼ同一にすることを目標に開発されています。eCPP2Cは、LLVM/Clangコンパイラ技術を採用することで、進化の早いC++規格の最新機能をサポートしています。emmtrix Parallel Studioとの組み合わせることにより、C++アプリケーションの並列化を実現できます。
emmtrix C++ to C Compilerは、emmtrix Parallel Studioを用いてC++で記述されたソフトウェアの並列化をサポートするためのソリューションです。一般に、C++規格は3年のリリースサイクルで進化しています(C++03では757ページでしたが、C++20では1800ページ以上になります)。この急速な進化の結果、C++準拠のコンパイルをサポートしているソフトウェアツールは限られています。ePSがC++をネイティブにサポートしているのとは対照的に、C++の翻訳ステップを追加することで、LLVMプロジェクトで実績のあるClangフロントエンドを再利用することができます。これにより、将来にわたってC++言語をサポートすることができ、新しい言語バージョンに対応する際に必要な労力を軽減できます。