このページの翻訳は最新ではありません。ここをクリックして、英語の最新版を参照してください。
実行速度
コード ジェネレーターでは、グローバル変数をローカル変数に置き換えたり、データ コピーを削除したり、関数 memset
と関数 memcpy
を使用したり、データを保存するためのメモリ量を減らすことで、可能な限り生成コードの実行速度を向上させます。コンパイラとプロセッサ固有の最適化を実装したり、バッファーの再利用を指定したり、必要のないコードを削除することで、生成コードの実行速度を向上させることができます。
トピック
- 複数の for 構造の組み合わせによる生成コードの最適化
コード ジェネレーターはデータの依存関係の解析を使用して、
for
構造を組み合わせて静的なコード サイズとランタイム分岐を削減します。 - ループ展開のしきい値の構成
既定値の 5 からスタートし、コード ジェネレーターは信号またはパラメーターの配列の要素に値を割り当てるために、個別のステートメントではなく
for
ループの使用を開始します。 - 生成されたコードからのデッド コード パスの除去
コード ジェネレーターはデッド (つまり、未使用) コード パスを生成されたコードから除去します。
- 勾配設定を補正する浮動小数点の乗算
効率的な乗算をサポートするプロセッサの場合、勾配設定を補正する浮動小数点の乗算を使用して、コードの効率を向上します。
- 計算結果に影響しないブロックのコードの削除
コード ジェネレーターは、計算結果に影響しないコードを削除することで、実行速度を改善して ROM の消費を低減します。
- ブロック パラメーターの数値のインライン化
ブロック パラメーターのリテラル数値をインライン化し、グローバル RAM 使用量を軽減します。
- Simulink、Stateflow および MATLAB の固定小数点データを使用した生成コードの最適化
Simulink®、Stateflow® および MATLAB® に固定小数点コードを生成します。
- アルゴリズム コード内でのターゲット最適化の生成
生成されたアルゴリズム コードをターゲット固有の最適化でカスタマイズします。
- 条件付き入力分岐実行の使用
Switch ブロックと Multiport Switch ブロックでは、Simulink は制御入力と制御入力によって選択されたデータ入力を計算するブロックのみを実行します。
- 生成されたコードの複素数信号に対する最適化
コード ジェネレーターは、生成されたコードで信号を表す構造体に対し、さまざまな最適化を実行します。
- MATLAB Function ブロックからの生成コード内の線形代数の高速化
MATLAB Function ブロックで特定の線形代数関数に対して LAPACK 呼び出しを生成する。使用する LAPACK ライブラリを指定する。
- MATLAB Function ブロックからの生成コード内の行列演算の高速化
特定の低水準行列演算の BLAS 呼び出しを生成します。使用する BLAS ライブラリを指定します。
- MATLAB Function ブロックからの生成コード内の高速フーリエ変換の高速化
MATLAB Function ブロックの高速フーリエ変換に対する FFTW ライブラリ呼び出しを生成する。FFTW ライブラリを指定する。
- MATLAB Function ブロックからの生成コード内のマルチスレッド FFTW 計画の同期
FFT ライブラリ コールバック クラスのメソッドを実装し、サポート C コードを提供して FFTW 計画への同時アクセスを行わないようにする。
- MATLAB Function ブロック内の可変サイズ配列に対するメモリ割り当ての制御
MATLAB Function ブロックの動的メモリ割り当てを無効にする、または動的メモリ割り当てのしきい値を指定する。
- Simulink ブロックからの SIMD コードの生成
Intel® SSE および Intel AVX テクノロジーを使用して生成コードの実行速度を改善する。
- Optimize Code for Reduction Operations by Using SIMD
Generate optimized code for reduction operations using SIMD instruction sets.