MATLAB Coder

行列乗算演算の生成された C コードを示すスクリーンショット。

多種多様な実行環境

任意の C/C++ コンパイラを使用して生成コードをコンパイルし、デスクトップシステムからモバイルデバイス、組み込みハードウェアまでのあらゆるハードウェアで実行します。生成したコードはロイヤリティフリーのため、商用アプリケーションで顧客に無償で展開します。

顔に境界ボックスがオーバーレイされた人物のイメージ。

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

MATLAB Coder アプリまたは等価なコマンドライン関数を使用して、MATLAB および Simulink 製品を用いた信号処理、コンピューター ビジョン、ディープラーニング、制御システム、その他のアプリケーション用のコードを生成します。

ロボット、モバイルフォン、組み込みボード、Wifi シンボルの画像。

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

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

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

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

値クラス、ハンドルクラス、および System object を含む MATLAB コード内のクラスから C++ クラスを生成します。生成コードを C++ ライブラリまたは実行可能ファイルにコンパイルし、既存の C++ ソースコードに統合します。

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

生成コードの最適化

マルチコア対応の OpenMP コードを生成し、LAPACK、BLAS、FFTW などの最適化済みライブラリを呼び出します。Embedded Coder を併用して、標準的な ANSI/ISO C/C++ コードよりも実行速度に優れた、プロセッサ固有の組み込みコードを生成します。

SqueezeNet を用いた画像分類が Raspberry Pi に展開されていることを示すスライド。

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

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++ コードの検証に使用できる多種多様な回帰テストを迅速に開発します。

車両検出アルゴリズムを生成して GPU などのハードウェアデバイスに展開。

アルゴリズムの高速化

生成したコードを MEX 関数として MATLAB コードから呼び出すと実行速度が向上します。生成した MEX 関数をプロファイリングし、ボトルネックを特定して最適化の対象を絞り込みます。

「MATLAB、MATLAB Coder、Fixed-Point Designer を組み合わせることで、小規模なチームでも、複雑なリアルタイム信号処理アルゴリズムを開発することができました。また、アルゴリズムを最適化して消費電力やメモリ要件を削減しただけでなく、組み込みコードの実装を加速し、医療機器の妥当性確認に必要な厳密なテストを実行することができました。」