実行速度
コード ジェネレーターでは、グローバル変数をローカル変数に置き換えたり、データ コピーを削除したり、関数 memset と関数 memcpy を使用したり、データを保存するためのメモリ量を減らすことで、可能な限り生成コードの実行速度を向上させます。コンパイラとプロセッサ固有の最適化を実装したり、バッファーの再利用を指定したり、必要のないコードを削除することで、生成コードの実行速度を向上させることができます。
モデル設定
| リダクションの最適化 | リダクション演算ループの単一命令複数データ (SIMD) コード (R2022a 以降) |
トピック
- ループ展開のしきい値の構成
既定値の 5 からスタートし、コード ジェネレーターは信号またはパラメーターの配列の要素に値を割り当てるために、個別のステートメントではなく
forループの使用を開始します。 - 傾き設定を補正する浮動小数点の乗算
効率的な乗算をサポートするプロセッサの場合、傾き設定を補正する浮動小数点の乗算を使用して、コードの効率を向上します。
- ブロック パラメーターの数値のインライン化
ブロック パラメーターのリテラル数値をインライン化し、グローバル RAM 使用量を軽減します。
- アルゴリズム コード内でのターゲット最適化の生成
生成されたアルゴリズム コードをターゲット固有の最適化でカスタマイズします。
- 条件付き入力分岐実行の使用
Switch ブロックと Multiport Switch ブロックでは、Simulink® は制御入力と制御入力によって選択されたデータ入力を計算するブロックのみを実行します。
- Speed Up Linear Algebra in Code Generated from a MATLAB Function Block
Generate LAPACK calls for certain linear algebra functions in a MATLAB function block. Specify LAPACK library to use.
- MATLAB Function ブロックからの生成コード内の行列演算の高速化
特定の低水準行列演算の BLAS 呼び出しを生成します。使用する BLAS ライブラリを指定します。
- MATLAB Function ブロックからの生成コード内の高速フーリエ変換の高速化
MATLAB Function ブロックの高速フーリエ変換に対する FFTW ライブラリ呼び出しを生成する。FFTW ライブラリを指定する。
- MATLAB Function ブロックからの生成コード内のマルチスレッド FFTW 計画の同期
FFT ライブラリ コールバック クラスのメソッドを実装し、サポート C コードを提供して FFTW 計画への同時アクセスを行わないようにする。
- MATLAB Function ブロック内の可変サイズ配列に対するメモリ割り当ての制御
MATLAB Function ブロックの動的メモリ割り当てを無効にする、または動的メモリ割り当てのしきい値を指定する。
- Intel プラットフォームの Simulink ブロックからの SIMD コードの生成
Intel® SSE および Intel AVX テクノロジーを使用して生成コードの実行速度を改善する。