このページの翻訳は最新ではありません。ここをクリックして,英語の最新版を参照してください。
コードの生成元となる仿金宝app真软件®モデルを開発する場合は,モデルコンフィギュレーションパラメーターを使用して,RAMと罗の消費量を減らし,コードの実行速度を向上させます。効率性の一部を犠牲にしてより防御的なコードにする場合は,これらのパラメーターの1つ以上を無効にできます。
メモリの使用量または実行速度の改善が必要なターゲットハードウェアおよびコードセクションのリアルタイム要件を,生成されたコードが満たしているかどうかを確認する,コード実行プロファイリングを構成できます。また,コード生成アドバイザーを使用すると,モデルの現在のコンフィギュレーションがデバッグやコード実行に最適化されているかどうかを確認できます。
モデルを変更してコードジェネレーターによるコード生成速度を上げます。
モデルアドバイザーなどのツールおよびテクニックを適用してコード生成のためにモデルを最適化する。
makefileのコンパイラの最適化を仿真金宝app软件UIレベルで制御します。
非正規数計算のレイテンシのために実行に時間がかかったり,オーバーランする可能性を最小化します。
範囲外の値をラップする浮動小数点から整数への変換コードを削除
アプリケーションにおける入力値が出力型の範囲にある場合,範囲外の浮動小数点から整数への変換コードを削除します。
アプリケーションに南
の入力値が存在しない場合,南
を整数ゼロにマッピングするコードをコードジェネレーターで削除するように指定します。
コード置換ライブラリ(CRL)カスタマイズエントリを使用して、数学関数の非有限数のチェックおよび数学関数のインライン化を選択的に無効化できます。
コードジェネレーターは,モデル内の個々のブロックに対して別々のコードステートメントとストレージ宣言を生成する代わりに,ブロック演算を単一の式に畳み込みます。
式の畳み込みでは,コードを最適化して,ブロック出力での中間結果の計算や,そのような中間結果の一時的なバッファーや変数への保存を最小にします。
生成されたコードにおけるローカルブロック出力の有効化と再利用
可能な場合,コードジェネレーターは,ブロック出力をローカル変数として宣言し,これらの変数を再利用できるようにします。
生成されたコードの効率性を最大化するためにバスをモデル化する。
生成されたコード内でシンボリック名ではなく不変信号の数値を使用します。
関数memcpyを使用したベクトルの代入に対する生成コードの最適化
コードジェネレーターは,为
ループを関数memcpy
の呼び出しで置き換え,ベクトルの代入に対して生成されたコードを最適化します。
生成されたコードの効率性を最大化するためにバスをモデル化する。
コードジェネレーターは,一時ローカル配列をローカル変数に置き換えることで,スタックメモリを削減します。
布尔変数およびステートコンフィギュレーション変数に関するメモリ使用量の削減
ステートコンフィギュレーション変数と布尔
変数を保存するメモリ量を削減します。
関数memset
は,型にかかわらず内部ストレージを整数ビットパターン0(つまり,全ビットがオフ)にクリアします。
スタックの最大許容サイズを制御し,生成されたコードでデータをローカルとグローバルのどちらで定義するのかに関する一部の制御を提供します。
既定値の5からスタートし,コードジェネレーターは信号またはパラメーターの配列の要素に値を割り当てるために,個別のステートメントではなく为
ループの使用を開始します。
たとえば,単精度プロセッサをターゲットとするなど,浮動小数点データ型が単精度のみのコードを生成します。
ブロックパラメーターのデータ型を指定した効率的なコードの生成
さらに効率的なコードを生成するには,パラメーターデータ型と信号のデータ型を一致させるか,パラメーターをさらにサイズが小さいデータ型で格納します。
コードジェネレーターは,論理信号を布尔
データ型として保存し,生成されたコードを最適化します。
コードジェネレーターが経過時間または絶対時間に割り当てるメモリを最適化します。
コードジェネレーターはデータの依存関係の解析を使用して,为
構造を組み合わせて静的なコードサイズとランタイム分岐を削減します。
既定値の5からスタートし,コードジェネレーターは信号またはパラメーターの配列の要素に値を割り当てるために,個別のステートメントではなく为
ループの使用を開始します。
コードジェネレーターはデッド(つまり,未使用)コードパスを生成されたコードから除去します。
効率的な乗算をサポートするプロセッサの場合,勾配設定を補正する浮動小数点の乗算を使用して,コードの効率を向上します。
コードジェネレーターは,計算結果に影響しないコードを削除することで,実行速度を改善して罗の消費を低減します。
ブロックパラメーターのリテラル数値をインライン化し,グローバルRAM使用量を軽減します。
金宝app仿真软件®,Stateflow®およびMATLAB®の固定小数点データを使用した生成コードの最適化
金宝app仿真软件,Stateflow®およびMATLAB®に固定小数点コードを生成します。
生成されたアルゴリズムコードをターゲット固有の最適化でカスタマイズします。
开关ブロックと多端口切换ブロックでは,金宝app仿真软件は制御入力と制御入力によって選択されたデータ入力を計算するブロックのみを実行します。
コードジェネレーターは,生成されたコードで信号を表す構造体に対し,さまざまな最適化を実行します。
MATLAB函数ブロックからの生成コード内の線形代数の高速化
MATLAB函数ブロックで特定の線形代数関数に対してLAPACK呼び出しを生成する。使用するLAPACKライブラリを指定する。
MATLAB函数ブロックからの生成コード内の行列演算の高速化
特定の低水準行列演算の巴拉斯呼び出しを生成します。使用する巴拉斯ライブラリを指定します。
MATLAB函数ブロックからの生成コード内の高速フーリエ変換の高速化
MATLAB函数ブロックの高速フーリエ変換に対するFFTWライブラリ呼び出しを生成する。FFTWライブラリを指定する。
MATLAB函数ブロックからの生成コード内のマルチスレッドFFTW計画の同期
FFTライブラリコールバッククラスのメソッドを実装し,サポートCコードを提供してFFTW計画への同時アクセスを行わないようにする。
MATLAB函数ブロック内の可変サイズ配列に対するメモリ割り当ての制御
MATLAB函数ブロックの動的メモリ割り当てを無効にする,または動的メモリ割り当てのしきい値を指定する。