JIT コンパイルを使用した MEX 生成速度の高速化
MEX 関数の生成を高速化するには、Just-In-Time (JIT) コンパイル テクノロジーの使用を指定します。MATLAB® コードの変更と MEX コードのテストを反復するときに、このオプションを使用すると時間を節約できます。
既定の設定では、MATLAB Coder™ は C/C++ コードを生成およびコンパイルして "C/C++ MEX" 関数を作成します。JIT コンパイルを指定すると、MATLAB Coder は MATLAB コードの抽象表現を含む "JIT MEX" 関数を作成します。JIT MEX 関数を実行すると、MATLAB はメモリ内に実行可能コードを生成します。
JIT コンパイルは、特定のコード生成機能またはオプションに対応していません。JIT コンパイルの非互換性を参照してください。JIT コンパイルが有効な場合、コード生成中に警告やエラー メッセージがないことは JIT コンパイルが成功したことを示します。コード生成レポートでは、[概要] タブに [ビルド タイプ] が JIT MEX Function
であることが示されます。
メモ
JIT MEX 関数は、MATLAB Coder ソフトウェアの異なるリリース間で互換性がありません。JIT MEX 関数を実行するには、その関数の生成に使用したものと同じリリースの MATLAB Coder ソフトウェアを使用してください。
MATLAB Coder アプリでの JIT コンパイルの使用の指定
[生成] ダイアログ ボックスを開くために [生成] 矢印 をクリックします。
[ビルド タイプ] を
[MEX]
に設定します。[JIT コンパイルの使用] チェック ボックスを選択します。
コマンド ラインでの JIT コンパイルの使用の指定
codegen
コマンドの -jit
オプションを使用します。たとえば、myfunction
に対して JIT コンパイルを次のように指定します。
codegen -config:mex myfunction -jit -report
あるいは、EnableJIT
コード構成パラメーターを使用します。
cfg = coder.config('mex'); cfg.EnableJIT = true; codegen -config cfg myfunction -report
JIT コンパイルの非互換性
次の表は、JIT コンパイルと互換性がないコード生成機能またはオプションをまとめています。
非互換性 | メッセージ タイプ | 生成される MEX | アクション |
---|---|---|---|
カスタム コード | 警告 | C/C++ MEX | 警告を回避するには、JIT コンパイルを無効にする。 |
ビルド情報の更新 (coder.updateBuildInfo ) | 警告 | C/C++ MEX | 警告を回避するには、JIT コンパイルを無効にする。 |
for ループの並列化 (parfor ) に対する OpenMP アプリケーション インターフェイスの使用 | 警告 |
| for ループの並列化を行う場合は、JIT コンパイルを無効にする。 |
C/C++ ソース コードのみの生成 | エラー | なし | JIT コンパイルまたは C/C++ コードのみの生成を指定する。 |