主要内容

このページの翻訳は最新ではありません。ここをクリックして,英語の最新版を参照してください。

パフォーマンスの比較

シミュレーションモードのパフォーマンス

アクセラレータモードとラピッドアクセラレータモードは,ノーマルモードに比べて,シミュレーションの実行時間がコード生成に必要な時間を超えるときに速度の向上が最大になります。このため,アクセラレータモードとラピッドアクセラレータモードは通常,シミュレーションの実行時間が数分以上のときにノーマルモードよりパフォーマンスが向上します。ただしStateflow®またはMATLAB函数ブロックの数が多いモデルでは,ノーマルモードに比べてわずかな速度向上が見られるだけです。これは,ノーマルモードでは,これらのブロックはコード生成を通してシミュレーションを実行するからです。

モデルに調整可能なパラメーターを含めた場合も,シミュレーション時間が長くなります。

次の図は,ノーマル,アクセラレータ,およびラピッドアクセラレータモードでシミュレーションを実行した仮想モデルのパフォーマンスを一般論として示しています。

ターゲットをリビルドしなければならない場合のパフォーマンス

図の実線は,ターゲットコードをリビルドしなければならない場合のパフォーマンスを示しています(“所有目标日期”“すべてのターゲットが無効”)。この仮想モデルの場合,タイムスケールは分の順番ですが,複雑なモデルではさらに長くなります。

図で要約したように,ノーマルモードでモデルをコンパイルするのに必要な時間は,アクセラレータターゲットまたはラピッドアクセラレータの実行可能ファイルをビルドする時間より短くなります。この図から明らかなことは,シミュレーションの停止時間が小さい場合,ノーマルモードの方がアクセラレータモードまたはラピッドアクセラレータモードよりも全般的なシミュレーション時間が早くなります。

アクセラレータモードまたはラピッドアクセラレータモードで実行時間が早くなる交差ポイントは,モデルの複雑度と内容に依存します。たとえば,インタープリター型コードを使用する多数のブロックが含まれたアクセラレータモードで実行しているモデル(アクセラレータモード用のブロックの選択を参照)はシミュレーションの停止時間が非常に大きい場合を除いて,ノーマルモードの実行速度と大差ありません。同様に,Stateflow图表ブロックまたはMATLAB函数ブロックが多数含まれているモデルでは,シミュレーションの停止時間が長い場合を除いて,ノーマルモードと比べてさほど大きな速度の向上は見られません。コード生成を通じて,Stateflow图表ブロックまたはMATLAB函数ブロックでモデルを高速化できます。

図解の目的で,グラフィックスは多数のStateflow图表ブロックまたはMATLAB函数ブロックがあるモデルを表しています。”“ノーマルというラベルの曲線は,モデルにこれらのブロックが含まれていなければ,初期経過時間がこれよりずっと小さくなります。

ターゲットが最新の場合のパフォーマンス

図の破線が示すように(“所有目标日期”“すべてのターゲットが最新”),アクセラレータターゲットまたはラピッドアクセラレータ実行可能ファイルが最新かどうかを仿真软件金宝app®ソフトウェアが判別する時間は,コードの生成(“所有目标日期”“すべてのターゲットが無効”)にかかる時間より大幅に少なくなります。さまざまな設計のトレードオフをテストするときには,この特性を利用できます。

たとえば,アクセラレータモードのターゲットコードを一度作成し,それを使用して一連のゲイン設定でモデルをシミュレーションできます。この種の変更はターゲットコードの再生成を引き起こさないため,これは,アクセラレータまたはラピッドアクセラレータモードを使用する場合に特に効率的な方法です。つまり,ターゲットコードはモデルの初回実行時に生成され,以降模型金宝appコードはターゲットが最新かどうかの確認に必要な時間だけを費やします。このプロセスはコードの実行より速いので,以降の実行は初回の実行より大幅に高速化されることがあります。

ターゲットのチェックはコードの生成より速いため,コードを生成しなければならない場合よりもターゲットが最新の場合に,交差ポイントが小さくなります。つまり,モデルの以降の実行は,停止時間が短い場合でも,ノーマルモードに比べてアクセラレータまたはラピッドアクセラレータモードでシミュレーションが高速に実行される可能性があります。

パフォーマンスの測定

アクセラレータモードまたはラピッドアクセラレータモードの実行時間をノーマルモードと比較するには,抽搐tocsim卡の各コマンドを使用できます。

  1. モデルを開きます。

  2. [シミュレーション]タブの[シミュレーション]セクションで,ドロップダウンメニューから[ノーマル]を選択します。

  3. コマンドラインプロンプトで抽搐toc,およびsim卡コマンドを使用して,モデルのシミュレーションにかかる時間をノーマルモードで測定します。

    抽搐,t, x, y = sim (myModel, 10000); toc

    抽搐tocは連携して経過時間を記録して返し,次のようなメッセージを表示します。

    运行时间为17.789364秒。

  4. [シミュレーション]タブの[シミュレーション]セクションで,ドロップダウンメニューから[アクセラレータ]または[ラピッドアクセラレータ]を選択します。[実行]をクリックしてモデルの実行可能ファイルをビルドします。モデルの構造に変更がない限り,アクセラレータモードは以降のシミュレーションでこの実行可能ファイルを使用します。高速化されたモデルでのコードの再生成では,モデルのリビルドを引き起こす要素について説明しています。

  5. コマンドプロンプトで,コンパイル済みモデルを再実行します。

    抽搐,t, x, y = sim (myModel, 10000); toc

  6. 表示される経過時間は,加速したモデルの実行時間を示します。以下に例を示します。

    运行时间为12.419914秒。

経過時間の差(この例では5.369450秒)は,モデルを加速して得られた改善を示しています。

関連する例

詳細