MATLAB Coder は、デスクトップシステムから組み込みハードウェアまで、さまざまなハードウェア プラットフォーム向けに MATLAB コードから C/C++ コードを生成します。この製品は、ほとんどの MATLAB 言語と多くのツールボックスをサポートしています。生成されるコードは読み取りや移植が可能で、既存の C/C++ プロジェクトにソース コードや静的または動的ライブラリとして統合できます。MATLAB Coder は、生成されたコードを MEX 関数としてパッケージ化し、MATLAB で使用できるようにします。生成されたコードは、マルチコア対応コードやベクトル化コードを組み込み、最適化されたライブラリを呼び出すことで最適化できます。
MATLAB Coder は、コードのカスタマイズ、ハードウェアに応じた最適化、コードのトレーサビリティ、ソフトウェアインザループ (SIL) やプロセッサインザループ (PIL) テストを通じたコード検証、さらには MISRA™ ガイドラインへの準拠も可能にします (Embedded Coder を使用)。
MATLAB がサポートするホスト プラットフォームに MATLAB プログラムを展開するには、MATLAB Compiler を使用します。
多種多様な実行環境
任意の C/C++ コンパイラを使用して生成コードをコンパイルし、デスクトップシステムからモバイルデバイス、組み込みハードウェアに至るまで、あらゆるハードウェア上で実行できます。生成されたコードは使用料がかからないため、商用アプリケーションに展開してお客様に無償で提供することができます。
ドキュメンテーション | 例
ツールボックス関数の使用
MATLAB Coder アプリまたは同等のコマンドライン関数を使用して、信号処理、コンピューター ビジョン、ディープラーニング、制御システムなど、MATLAB製品を使用するアプリケーション向けにコードを生成できます。
ドキュメンテーション | 例
組み込みハードウェアでのプロトタイピング
アルゴリズムを C/C++ に自動変換して、ハードウェアに素早く実装します。生成コードとアプリケーションを手動で統合することで、任意のデバイスをターゲットにすることができます。Raspberry Pi 用の MATLAB サポートパッケージを使用して、Raspberry Pi 向けのプロセスを自動化できます。
ドキュメンテーション | 例
MATLAB から C++ コードを展開
値クラス、ハンドルクラス、System object を含む MATLAB コード内のクラスから C++ クラスを生成します。生成されたコードを C++ ライブラリまたは実行ファイルにコンパイルして、既存の C++ アプリケーションに統合します。
ドキュメンテーション | 例
生成コードの最適化
SIMD 命令を生成して、マルチコア対応の OpenMP コードでループを並列処理し、LAPACK、BLAS、FFTW などの最適化されたライブラリを呼び出します。Embedded Coder と併用することで、プロセッサ固有の組み込みコードを生成し、実行時間を短縮できます。
ドキュメンテーション | 例
ディープラーニング ネットワークと機械学習モデルの展開
ResNet-50 や MobileNet-v2 のような学習済みネットワーク、サポート ベクター マシン (SVM) モデル、決定木モデルを、前処理/後処理ロジックとともに、Intel® や ARM® Cortex® などのプロセッサを含むあらゆる CPU に展開できます。
ドキュメンテーション | 例
ソフトウェアとの統合
MATLAB アルゴリズムを C/C++ ソースコードまたはライブラリとしてソフトウェア環境で再利用します。コードは通常の C/C++ 形式で生成され、既存の実証済み C/C++ 関数を呼び出すことができるため、外部コードとの統合が簡略化されます。
ドキュメンテーション | 例
生成コードでの MATLAB テストの再利用
対話型の MATLAB 環境で、既存の MATLAB テストを再利用して生成コードの動作を検証します。MATLAB ユニット テスト フレームワークを使用すれば、生成された C/C++ コードの検証に使用できる、さまざまな種類の回帰テストを素早く作成できます。
ドキュメンテーション | 例
アルゴリズムの高速化
生成したコードを MEX 関数として MATLAB コードから呼び出すと実行速度が向上します。生成された MEX 関数をプロファイリングすることで、ボトルネックを特定し、最適化すべき箇所を絞り込むことができます。
製品リソース:
「MATLAB と Embedded Coder を導入したことで、チームにエンジニアを増員することなく、プロジェクト完了までに必要な期間を 24 か月から 12 か月に短縮できました。」