メインコンテンツ

実行速度

生成されたコードの実行速度を改善する

コード ジェネレーターでは、グローバル変数をローカル変数に置き換えたり、データ コピーを削除したり、関数 memset と関数 memcpy を使用したり、データを保存するためのメモリ量を減らすことで、可能な限り生成コードの実行速度を向上させます。コンパイラとプロセッサ固有の最適化を実装したり、バッファーの再利用を指定したり、必要のないコードを削除することで、生成コードの実行速度を向上させることができます。

モデル設定

すべて展開する

指定した最小値と最大値を使用した最適化Optimize using minimum and maximum values for signals and parameters
配列のインデックスを簡略化するループ内の配列にアクセスするときに配列インデックスの乗算演算を置き換え
ループ展開のしきい値 for ループを生成する際の最小配列サイズ幅を指定する
リダクションの最適化リダクション演算ループの単一命令複数データ (SIMD) コード (R2022a 以降)
float と double を 0.0 に初期化するために memset を使用浮動小数点データを 0.0 に明示的に初期化するコードの生成を制御する
データ型置換生成コード内で組み込みのデータ型名を置き換える方法 (R2023a 以降)
非正規数に対するシミュレーションの動作Option to emulate hardware handling of denormal numbers
浮動小数点の乗算を使用して傾き設定を補正Net slope correction computation for floating-point to fixed-point casts
ターゲット ハードウェアの命令セット拡張を活用単一命令複数データ (SIMD) コードを生成するための命令セット (R2021b 以降)
信号ストレージの再利用信号メモリを再利用する
グローバル データ アクセスの最適化グローバル変数の使用の最適化
生成コードにおけるブロック演算順序の最適化コードの実行速度を改善するために、ブロック演算を並べ替えるように指定する
ループ展開のしきい値 for ループを生成する際の最小配列サイズ幅を指定する
ベクトルの代入に対する memcpy の使用ベクトルの割り当てに対して生成されたコードを最適化する
条件付き入力分岐実行Switch ブロックと Multiport Switch ブロックの入力パスを最適化するオプション
MATLAB 関数での動的メモリ割り当てMATLAB コードに動的メモリ割り当てを使用するオプション
コード置換ライブラリ特定のターゲット環境向けのコード最適化を定義するライブラリ
Halide コードの生成配列計算を高速化するために Halide コードを生成する (R2023b 以降)

トピック

実行速度の最適化の基礎

プロセッサ固有の最適化

実行効率性を向上させる最適化

Halide コード生成を使用した最適化

注目の例