MATLAB Coder

更新
行列乗算用に生成された C コードのスクリーンショット。

多種多様な実行環境

任意の C/C++ コンパイラを使用して生成コードをコンパイルし、デスクトップシステムからモバイルデバイス、組み込みハードウェアに至るまで、あらゆるハードウェア上で実行できます。生成されたコードは使用料がかからないため、商用アプリケーションに展開してお客様に無償で提供することができます。

陸上競技でスタートを切る選手に姿勢推定を重ね合わせた画像。

ツールボックス関数の使用

MATLAB Coder アプリまたは同等のコマンドライン関数を使用して、信号処理、コンピューター ビジョン、ディープラーニング、制御システムなど、MATLAB製品を使用するアプリケーション向けにコードを生成できます。

4 種類の組み込み開発ボード。

組み込みハードウェアでのプロトタイピング

アルゴリズムを C/C++ に自動変換して、ハードウェアに素早く実装します。生成コードとアプリケーションを手動で統合することで、任意のデバイスをターゲットにすることができます。Raspberry Pi 用の MATLAB サポートパッケージを使用して、Raspberry Pi 向けのプロセスを自動化できます。

シンプルなクラス オブジェクトを実装した MATLAB コードと、それに相当する生成 C++ クラス コード。

MATLAB から C++ コードを展開

値クラス、ハンドルクラス、System object を含む MATLAB コード内のクラスから C++ クラスを生成します。生成されたコードを C++ ライブラリまたは実行ファイルにコンパイルして、既存の C++ アプリケーションに統合します。

OpenMP の関数呼び出しを含む生成された C コードのスクリーンショット。

生成コードの最適化

SIMD 命令を生成して、マルチコア対応の OpenMP コードでループを並列処理し、LAPACK、BLAS、FFTW などの最適化されたライブラリを呼び出します。Embedded Coder と併用することで、プロセッサ固有の組み込みコードを生成し、実行時間を短縮できます。

てんかんの発作時、発作前、正常時の EEG 時系列データと、それぞれに対応するスカログラムのプロット。

ディープラーニング ネットワークと機械学習モデルの展開

ResNet-50 や MobileNet-v2 のような学習済みネットワーク、サポート ベクター マシン (SVM) モデル、決定木モデルを、前処理/後処理ロジックとともに、Intel® や ARM® Cortex® などのプロセッサを含むあらゆる CPU に展開できます。

MATLAB コードと生成された C/C++ コード間の対話型トレーサビリティを示すスクリーンショット。

ソフトウェアとの統合

MATLAB アルゴリズムを C/C++ ソースコードまたはライブラリとしてソフトウェア環境で再利用します。コードは通常の C/C++ 形式で生成され、既存の実証済み C/C++ 関数を呼び出すことができるため、外部コードとの統合が簡略化されます。

MEX 関数のコードを検証する MATLAB Coder アプリのスクリーンショット。

生成コードでの MATLAB テストの再利用

対話型の MATLAB 環境で、既存の MATLAB テストを再利用して生成コードの動作を検証します。MATLAB ユニット テスト フレームワークを使用すれば、生成された C/C++ コードの検証に使用できる、さまざまな種類の回帰テストを素早く作成できます。

生成された MEX 関数のプロファイリング情報のスクリーンショット。

アルゴリズムの高速化

生成したコードを MEX 関数として MATLAB コードから呼び出すと実行速度が向上します。生成された MEX 関数をプロファイリングすることで、ボトルネックを特定し、最適化すべき箇所を絞り込むことができます。

「MATLAB と Embedded Coder を導入したことで、チームにエンジニアを増員することなく、プロジェクト完了までに必要な期間を 24 か月から 12 か月に短縮できました。」