メインコンテンツ

優先順位

優先順位に基づく最適化の適用を制御する

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

説明

[優先順位] パラメーターは、実行効率の向上、RAM 消費量の削減、または実行効率と RAM 消費量のバランスのいずれかを目的として、生成コードを最適化します。

依存関係

このパラメーターは、[レベル] パラメーターを Maximum に設定することで有効になります。

設定

RAM と速度のバランス (既定値) | 実行速度を最大化 | RAM を最小化
RAM と速度のバランス

RAM と実行速度のバランスを取るように、コード生成設定を構成します。

実行速度を最大化

実行速度を最大化するためのコード生成設定を適用します。

RAM を最小化

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 に設定されます。ソフトウェアのアップグレード時に生成コードにおける変更の数を少なくするには、このオプションが適切な選択肢となる可能性があります。

推奨設定

アプリケーション設定
デバッグ影響なし
トレーサビリティ影響なし
効率性Minimize RAM (RAM)、Maximum execution speed (速度)、Balance RAM and speed (バランス)
安全対策影響なし

プログラムでの使用

パラメーター: OptimizationPriority
型: 文字ベクトル
値: 'Balanced' | 'Speed' | 'RAM'
既定: 'Balanced'

バージョン履歴

R2018a で導入