メインコンテンツ

このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。

モデル コンフィギュレーション パラメーター: コード生成の最適化

[コード生成][最適化] カテゴリには、モデルのシミュレーション速度と生成コードのパフォーマンスを向上させるためのパラメーターが含まれています。生成コードを改善するためのモデル コンフィギュレーション パラメーターには、Simulink® Coder™ または Embedded Coder® が必要です。

パラメーター説明

既定のパラメーター動作

生成コードで数値ブロック パラメーターをインライン化された定数値に変換します。

ターゲット ハードウェアの命令セット拡張を活用ターゲット ハードウェアの SIMD (Single Instruction, Multiple Data) コードを生成する命令セットを選択します。
リダクションの最適化リダクション演算ループの単一命令複数データ (SIMD) コードを生成します。

再利用可能なサブシステムの出力を渡す (Embedded Coder)

再利用可能なサブシステムによって出力が渡される形式を指定します。

ルート レベル I/O のゼロ初期化を削除 (Embedded Coder)

ゼロに設定されたルート レベル Inport と Outport の初期化コードを生成するかどうかを指定します。

内部データのゼロ初期化を削除 (Embedded Coder)

ブロック状態やブロック出力などの内部の作業構造体の初期化コードをゼロとして生成するかどうかを指定します。

Level (Embedded Coder)

生成されたコードに適用する最適化レベルを選択します。

Priority (Embedded Coder)

実行効率性の向上、RAM 消費の減少またはこれら 2 つのバランスを取るために、生成されたコードを最適化します。

カスタム最適化を指定 (Embedded Coder)

最適化レベルを適用する代わりに、このパラメーターを選択し、[詳細] セクションで最適化パラメーターを選択します。

ベクトルの割り当てに対して memcpy を使用

for ループを memcpy と置き換えることにより、ベクトルの割り当てに対して生成されたコードを最適化します。

memcpy しきい値 (バイト)

生成コードでベクトルを割り当てる for ループが関数 memcpy および関数 memset の呼び出しに置き換わる最小の配列サイズをバイト単位で指定します。

ローカルなブロックの出力を有効にする

ブロック信号がローカルとグローバルのどちらで宣言されるかを指定します。

ローカル ブロック出力の再利用

Simulink Coder ソフトウェアによって信号メモリを再利用するかどうかを指定します。

余分なローカル変数の削除 (式の畳み込み)

ブロック計算を単一式に畳み込みます。

グローバル ブロック出力の再利用 (Embedded Coder)

ブロック出力用のグローバル メモリを再利用します。

Model ブロックの出力バッファーを再利用する (Embedded Coder)

可能な場合は、参照モデルのバッファーを再利用します。
Unify buffer reuse candidates (Embedded Coder)生成されたコードで最適な再利用を実装するために、バッファーの再利用候補をモデル レベルで解析します。

Assignment ブロックおよび Bus Assignment ブロックの更新でインプレース更新を実行する (Embedded Coder)

可能な場合は、Bus Assignment ブロックと Assignment ブロックの入力変数と出力変数を再利用します。

Data Store Read ブロックと Data Store Write ブロックのバッファーの再利用 (Embedded Coder)

Data Store Read ブロックと Data Store Write ブロックの一時的なバッファーを削除します。可能な場合は、Data Store Memory ブロックを直接使用します。

配列のインデックスを簡略化する (Embedded Coder)

ループ内の配列にアクセスするときに配列インデックスの乗算演算を置き換えます。

boolean データをビットフィールドにパッキング (Embedded Coder)

boolean 信号を 1 ビット ビットフィールドと boolean データ型のどちらとして格納するかを指定します。

ビットフィールド宣言子の型指定子 (Embedded Coder)

コンフィギュレーション パラメーターboolean データをビットフィールドにパッキング (Embedded Coder)を選択したときのビットフィールド型を指定します。

サイズと次元が異なるバッファーの再利用 (Embedded Coder)

バッファーを再利用してサイズと次元が異なるデータを保存することにより、メモリ消費量を削減します。

グローバル データ アクセスの最適化 (Embedded Coder)

グローバル変数の最適化方法を選択します。

生成コードにおけるブロック演算順序の最適化 (Embedded Coder)

生成されたコードにおけるブロック演算を並べ替えて、コードの実行速度を改善します。

ステート構成を保存するためにビットセットを使用

ステート構成変数の格納に必要なメモリ量を減らすために、ビットセットを使用します。

boolean データを保存するためにビットセットを使用

Boolean データの格納に必要なメモリ量を減らすために、ビットセットを使用します。

最大スタック サイズ (バイト)

モデルの最大スタック サイズをバイト単位で指定します。

ループ展開のしきい値

for ループを生成する最小の信号幅またはパラメーター幅を指定します。

Optimize using the specified minimum and maximum values (Embedded Coder)

モデル内の信号とパラメーターに指定された最大値と最小値を使用して、生成されたコードを最適化します。

サブシステム出力に使用する引数の最大数

個別に渡すサブシステムの出力の最大数を設定します。

インライン不変信号

不変信号のシンボリック名を定数値に変換します。

浮動小数点から整数への変換で NaN が 0 にマッピングされて飽和したコードを削除

NaN 値に対して浮動小数点から整数への変換結果を処理するコードを削除します。

float と double を 0.0 に初期化するために memset を使用

浮動小数点データを 0.0 に明示的に初期化するコードを生成するかどうかを指定します。

範囲外の値をラップする浮動小数点から整数への変換コードを削除

浮動小数点から整数への変換が範囲外の結果になる場合を処理するラッピング コードを削除します。

調整可能なパラメーター式から範囲外の値を飽和させるコードを削除 (Embedded Coder)

調整可能なパラメーターのラッピング コードを削除します。

除算演算の例外処理を防止するコードを削除 (Embedded Coder)

整数データおよび固定小数点データのゼロ除算および INT_MIN/-1 演算を防ぐコードを生成するかどうかを指定します。

再利用可能なサブシステムのバッファー再利用可能なサブシステムの境界にバッファーを挿入することにより、再利用を改善します。

互換性のない最適化を無効にする

Simulink Code Inspector との互換性がない最適化を無効にするかどうかを指定します。

自動的に作成される列挙の基本ストレージ型アクティブ ステートの出力で作成される列挙型のストレージ型とサイズを設定します。
バッファーの再利用のガイドとして信号のラベルを使用 (Embedded Coder)同じラベルをもつ信号の場合、コード ジェネレーターは同じ信号メモリを使用しようとします。
並列 for ループの生成 (Embedded Coder)生成されたコードの for ループが Matlab Function ブロック、Matlab System ブロックまたは For Each ブロックに並列で実装されるかどうかを指定します。
Automatically schedule for-loops (Embedded Coder)生成されたコード内の for ループの入れ子が Neighborhood Processing ブロックに対して自動的にスケジュールされるかどうかを指定します。
信号ストレージの再利用ブロックの入力信号と出力信号を格納するために割り当てられたメモリ バッファーの再利用を指定して、リアルタイム プログラムのメモリ要件を緩和します。
Bitwise Operator ブロックと Logical Operator ブロックを表す演算子 (Embedded Coder)生成されたコードにビット演算子または論理演算子、あるいはその両方を含めるかどうかを指定します。

参考

トピック