レベル
生成コードの最適化レベル
モデル コンフィギュレーション ペイン: [コード生成] / [最適化]
説明
[レベル] パラメーターは、生成されたコードに適用する最適化レベルを指定します。
設定
最大値 (既定値) | 最小値 (デバッグ) | 可読性とのバランス最小値 (デバッグ)デバッグ用のコード生成設定を構成します。
可読性とのバランスRAM の効率および実行速度と生成コードの可読性のバランスをとるコード生成最適化を適用します。たとえば、この値を選択すると、Atomic サブシステムの境界を越える最適化が無効になります。
最大値コード効率の目的に基づいてコード生成設定を構成します。この設定を選択すると、[優先順位] パラメーターが有効になります。[優先順位] パラメーターを次のいずれかの値に設定します。
Balance RAM and speed (default setting)Maximum execution speedMinimize RAM
ヒント
[優先順位] および [レベル] パラメーターの各値に対して、[詳細] セクションにパラメーターの対応する値があります。これらの各種設定には、次のような重要な違いがあります。
[レベル] パラメーターを
Minimum (debugging)に設定すると、[詳細] セクションのパラメーターはオフに設定されます。コード ジェネレーターは、変数やコードを削除する最適化を実装しません。これにより、生成されたコードのデバッグが容易になります。Balanced with ReadabilityとBalance RAM and speedのパラメーター設定は、次の 3 つのパラメーターを除いて同じです。サイズと次元が異なるバッファーの再利用
グローバル データ アクセスの最適化
生成コードにおけるブロック演算順序の最適化
上記の最適化は、Atomic サブシステムの境界を越えるため、可読性を損なう可能性があります。また、[生成コードにおけるブロック演算順序の最適化] により、生成されたコード内のブロック実行順序がシミュレーションとは異なるように変更される可能性があります。
RAM が限られている場合は、
Minimize RAM設定を選択します。この設定により、実行速度が低下してしまう可能性がありますが、RAM を削減する次の最適化が有効になります。boolean データをビットフィールドにパッキング
サイズと次元が異なるバッファーの再利用
ステート構成を保存するためにビットセットを使用
boolean データを保存するためにビットセットを使用
この設定により、[生成コードにおけるブロック演算順序の最適化] も
Improved Code Execution Speedからoffに変更されます。
次の表では、[優先順位] および [レベル] パラメーターの各値に対して、[詳細] セクションのパラメーターの対応する値をリストします。
| パラメーター | 設定 | 例 | ||||
|---|---|---|---|---|---|---|
| レベル | Minimum (debugging) | Balanced with readability | Maximum | |||
| Priority | 該当なし (N/A) | N/A | Balance RAM and speed | Maximize execution speed | Minimize RAM | |
| 詳細 | ||||||
| ベクトルの代入に対する memcpy の使用 | Off | On | On | On | On | 関数 memcpy を使用したベクトルの代入に対する生成コードの最適化 |
| memcpy しきい値 (バイト) | Off | 64 | 64 | 64 | 64 | 関数 memcpy を使用したベクトルの代入に対する生成コードの最適化 |
| ローカルなブロックの出力を有効にする | Off | On | On | On | On | 生成されたコードにおけるローカル ブロック出力の有効化と再利用 |
| ローカル ブロック出力の再利用 | Off | On | On | On | On | 生成されたコードにおけるローカル ブロック出力の有効化と再利用 |
| 余分なローカル変数の削除 (式の畳み込み) | Off | On | On | On | On | ブロック出力時の中間結果の計算と保存の最小化 |
| グローバル ブロック出力の再利用 | Off | On | On | On | On | 生成コードでのグローバル ブロック出力の再利用 |
| Assignment ブロックおよび Bus Assignment ブロックの更新でインプレース更新を実行する | Off | On | on | On | On | Assignment ブロックおよび Bus Assignment ブロックの更新でインプレース更新を実行する |
| Data Store Read ブロックと Data Store Write ブロックのバッファーの再利用 | Off | On | On | On | On | Data Copy Reduction for Data Store Read and Data Store Write Blocks |
| 配列のインデックスを簡略化する | Off | Off | Off | On | Off | Simplify Multiply Operations in Array Indexing |
| boolean データをビットフィールドにパッキング | Off | Off | Off | Off | On | boolean データをビットフィールドにパッキングすることによる生成コードの最適化 |
| サイズと次元が異なるバッファーの再利用 | Off | Off | On | Off | On | サイズと次元が異なるバッファーの再利用 |
| 並列 for ループの生成 | Off | Off | Off | On | Off | Generate Parallel for-Loops Using the Open Multiprocessing (OpenMP) Application Interface |
| for ループの自動スケジュール | Off | Off | Off | On | Off | Automatically Schedule for-Loops for Neighborhood Processing Subsystems |
| Model ブロックの出力バッファーを再利用する | Off | Off | On | On | On | 参照モデルを含むモデルのメモリ使用量の削減 |
| バッファーの再利用候補の統一 | Off | Off | Off | Off | Off | Generate Efficient Code Using Unified Analysis |
| グローバル データ アクセスの最適化 | None | None | Use global to hold temporary results | None | Use global to hold temporary results | グローバル変数の使用の最適化 |
| 生成コードにおけるブロック演算順序の最適化 | Off | Off | Improved Code Execution Speed | Improved Code Execution Speed | Off | Remove Data Copies by Reordering Block Operations in the Generated Code |
| ステート構成を保存するためにビットセットを使用 | Off | Off | Off | Off | On | boolean 変数およびステート構成変数に関するメモリ使用量の削減 |
| boolean データを保存するためにビットセットを使用 | Off | Off | Off | Off | On | boolean 変数およびステート構成変数に関するメモリ使用量の削減 |
ソフトウェアのアップグレードを予定している場合は、次のことに注意してください。
[レベル] パラメーターと [優先順位] パラメーターを設定すると、後続の各リリースで上記のパラメーター設定に対応する最新の最適化が有効になります。
[カスタム最適化を指定] パラメーターを選択すると、[詳細] セクションで個々のパラメーターを選択できるようになります。将来のリリースでモデルを読み込むときに、ソフトウェアを採用してからアップグレードするまでの間のリリースで導入された最適化パラメーターは
offに設定されます。ソフトウェアのアップグレード時に生成コードにおける変更の数を少なくするには、このオプションが適切な選択肢となる可能性があります。
推奨設定
| アプリケーション | 設定 |
|---|---|
| デバッグ | Minimum (debugging) |
| トレーサビリティ | Minimum (debugging) |
| 効率性 | 目標に応じて、Balanced with Readability または Maximum を選択します。Maximum を選択した場合は、[優先順位] パラメーターを設定します。 |
| 安全対策 | 影響なし |
プログラムでの使用
パラメーター: OptimizationLevel |
型: character vector |
値: 'level0' (UI 設定の [最小値 (デバッグ)])| 'level1' (UI 設定の [可読性とのバランス])| 'level2' (UI 設定の [最大]) |
| 既定の設定: 'level2' |
バージョン履歴
R2007b で導入