メインコンテンツ

レベル

生成コードの最適化レベル

モデル コンフィギュレーション ペイン: [コード生成] / [最適化]

説明

[レベル] パラメーターは、生成されたコードに適用する最適化レベルを指定します。

設定

最大値 (既定値) | 最小値 (デバッグ) | 可読性とのバランス
最小値 (デバッグ)

デバッグ用のコード生成設定を構成します。

可読性とのバランス

RAM の効率および実行速度と生成コードの可読性のバランスをとるコード生成最適化を適用します。たとえば、この値を選択すると、Atomic サブシステムの境界を越える最適化が無効になります。

最大値

コード効率の目的に基づいてコード生成設定を構成します。この設定を選択すると、[優先順位] パラメーターが有効になります。[優先順位] パラメーターを次のいずれかの値に設定します。

  • Balance RAM and speed (default setting)

  • Maximum execution speed

  • Minimize RAM

ヒント

[優先順位] および [レベル] パラメーターの各値に対して、[詳細] セクションにパラメーターの対応する値があります。これらの各種設定には、次のような重要な違いがあります。

  • [レベル] パラメーターを Minimum (debugging) に設定すると、[詳細] セクションのパラメーターはオフに設定されます。コード ジェネレーターは、変数やコードを削除する最適化を実装しません。これにより、生成されたコードのデバッグが容易になります。

  • Balanced with ReadabilityBalance RAM and speed のパラメーター設定は、次の 3 つのパラメーターを除いて同じです。

    • サイズと次元が異なるバッファーの再利用

    • グローバル データ アクセスの最適化

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

    上記の最適化は、Atomic サブシステムの境界を越えるため、可読性を損なう可能性があります。また、[生成コードにおけるブロック演算順序の最適化] により、生成されたコード内のブロック実行順序がシミュレーションとは異なるように変更される可能性があります。

  • RAM が限られている場合は、Minimize RAM 設定を選択します。この設定により、実行速度が低下してしまう可能性がありますが、RAM を削減する次の最適化が有効になります。

    • boolean データをビットフィールドにパッキング

    • サイズと次元が異なるバッファーの再利用

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

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

    この設定により、[生成コードにおけるブロック演算順序の最適化]Improved Code Execution Speed から off に変更されます。

次の表では、[優先順位] および [レベル] パラメーターの各値に対して、[詳細] セクションのパラメーターの対応する値をリストします。

パラメーター設定
レベルMinimum (debugging)Balanced with readabilityMaximum 
Priority該当なし (N/A)N/ABalance RAM and speedMaximize execution speedMinimize RAM
詳細  
ベクトルの代入に対する memcpy の使用OffOnOnOnOn関数 memcpy を使用したベクトルの代入に対する生成コードの最適化
memcpy しきい値 (バイト)Off64646464関数 memcpy を使用したベクトルの代入に対する生成コードの最適化
ローカルなブロックの出力を有効にするOffOnOnOnOn生成されたコードにおけるローカル ブロック出力の有効化と再利用
ローカル ブロック出力の再利用OffOnOnOnOn生成されたコードにおけるローカル ブロック出力の有効化と再利用
余分なローカル変数の削除 (式の畳み込み)OffOnOnOnOnブロック出力時の中間結果の計算と保存の最小化
グローバル ブロック出力の再利用OffOnOnOnOn生成コードでのグローバル ブロック出力の再利用
Assignment ブロックおよび Bus Assignment ブロックの更新でインプレース更新を実行するOffOnonOnOnAssignment ブロックおよび Bus Assignment ブロックの更新でインプレース更新を実行する
Data Store Read ブロックと Data Store Write ブロックのバッファーの再利用OffOnOnOnOnData Copy Reduction for Data Store Read and Data Store Write Blocks
配列のインデックスを簡略化するOffOffOffOnOffSimplify Multiply Operations in Array Indexing
boolean データをビットフィールドにパッキングOffOffOffOffOnboolean データをビットフィールドにパッキングすることによる生成コードの最適化
サイズと次元が異なるバッファーの再利用OffOffOnOffOnサイズと次元が異なるバッファーの再利用
並列 for ループの生成OffOffOffOnOffGenerate Parallel for-Loops Using the Open Multiprocessing (OpenMP) Application Interface
for ループの自動スケジュールOffOffOffOnOffAutomatically Schedule for-Loops for Neighborhood Processing Subsystems
Model ブロックの出力バッファーを再利用するOffOffOnOnOn参照モデルを含むモデルのメモリ使用量の削減
バッファーの再利用候補の統一OffOffOffOffOffGenerate Efficient Code Using Unified Analysis
グローバル データ アクセスの最適化NoneNoneUse global to hold temporary resultsNoneUse global to hold temporary resultsグローバル変数の使用の最適化
生成コードにおけるブロック演算順序の最適化OffOffImproved Code Execution SpeedImproved Code Execution SpeedOffRemove Data Copies by Reordering Block Operations in the Generated Code
ステート構成を保存するためにビットセットを使用OffOffOffOffOnboolean 変数およびステート構成変数に関するメモリ使用量の削減
boolean データを保存するためにビットセットを使用OffOffOffOffOnboolean 変数およびステート構成変数に関するメモリ使用量の削減

ソフトウェアのアップグレードを予定している場合は、次のことに注意してください。

  • [レベル] パラメーターと [優先順位] パラメーターを設定すると、後続の各リリースで上記のパラメーター設定に対応する最新の最適化が有効になります。

  • [カスタム最適化を指定] パラメーターを選択すると、[詳細] セクションで個々のパラメーターを選択できるようになります。将来のリリースでモデルを読み込むときに、ソフトウェアを採用してからアップグレードするまでの間のリリースで導入された最適化パラメーターは off に設定されます。ソフトウェアのアップグレード時に生成コードにおける変更の数を少なくするには、このオプションが適切な選択肢となる可能性があります。

推奨設定

アプリケーション設定
デバッグMinimum (debugging)
トレーサビリティMinimum (debugging)
効率性目標に応じて、Balanced with Readability または Maximum を選択します。Maximum を選択した場合は、[優先順位] パラメーターを設定します。
安全対策影響なし

プログラムでの使用

パラメーター: OptimizationLevel
型: character vector
値: 'level0' (UI 設定の [最小値 (デバッグ)])| 'level1' (UI 設定の [可読性とのバランス])| 'level2' (UI 設定の [最大])
既定の設定: 'level2'

バージョン履歴

R2007b で導入