Main Content

コード生成速度の向上

モデルのコード生成にかかる時間は、モデルのサイズとコンフィギュレーション設定によって異なります。たとえば、大きなモデルで作業する場合、コードの生成に時間がかかります。モデルのコード生成にかかる時間を短縮するには、以下の 1 つ以上の方法を試してください。

  • インクリメンタルなモデルのビルド

  • 大きなモデル参照階層の並列ビルド

  • コード生成時のメモリ要件の最小化

  • コードのみの生成

  • コード生成レポートの作成の無効化

インクリメンタルなモデルのビルド

slbuild コマンドを使用してモデルをビルドし、コードを生成できます。既定の設定では、モデルをリビルドするときに、slbuild はインクリメンタル モデルのビルドを提供します。この方法では、最近行われたモデルのビルド以後に変更されたモデルまたはサブモデルのみリビルドされます。インクリメンタル モデルのビルドにより、コード生成にかかる時間が短縮されます。[モデル参照] ペインで [リビルド] パラメーターを使用し、参照モデルのコードをどの時点でリビルドするかを決定するのに Simulink® が使用する方法を変更します。[リビルド] パラメーターの詳細については、リビルドを参照してください。

大きなモデル参照階層の並列ビルド

並列計算環境では、条件が満たされる場合にいつでも大きなモデル参照階層を含むモデルを並列にビルドすることで、コード生成およびコンパイルの速度の向上が可能になります。たとえば、Parallel Computing Toolbox™ ソフトウェアがインストールされていると、各参照モデルのコード生成とコンパイルをマルチコア ホスト コンピューターの複数コアに分散できます。MATLAB® Parallel Server™ ソフトウェアがインストールされている場合は、各参照モデルのコード生成とコンパイルを MATLAB Parallel Server 構成内のリモート ワーカーに分散できます。

参照モデルに並列ビルドを使用して実現される実行速度の向上は、以下を含む複数の要因によって異なります。

  • そのモデル参照階層で並列ビルドできるモデルの数

  • 参照モデルのサイズ

  • 利用可能なローカル ワーカーとリモート ワーカー数などの並列計算リソース

  • ローカル マシンとリモート マシンのハードウェア属性 (RAM の容量、コア数など)

詳細については、並列ビルドを使用した参照モデルのビルド時間の短縮を参照してください。

コード生成時のメモリ要件の最小化

大量のパラメーターと定数データ (ルックアップ テーブルなど) を含むモデルでは、メモリ リソースに負担がかかり、コード生成の速度が落ちる可能性があります。コード ジェネレーターはこのデータを model.rtw ファイルにコピーします。model.rtw ファイルは、Target Language Compiler が解析し、ブロック計算、パラメーター、信号および定数データを高水準言語 (たとえば、C) に変換するモデルの部分表現です。Target Language Compiler (TLC) はコード ジェネレーターに不可欠な一部です。コード ジェネレーターは、パラメーターとデータがモデル自体からのものか、ワークスペース内の変数やオブジェクトからのものであるかに関係なく、パラメーターとデータを model.rtw にコピーします。

コード ジェネレーターがこのデータを model.rtw にコピーするには、データ ベクトルに格納可能な最大要素数を指定することで、コード生成速度を改善できます。データ ベクトルが指定サイズを超えると、コード ジェネレーターは model.rtw に参照キーを配置します。TLC はこのキーを使って Simulink からのデータにアクセスし、生成されたコードに形式化します。その結果、参照キーはメモリに大きなデータ ベクトルのコピーを 1 つだけ維持することになります。

既定ではコード ジェネレーターが実際のデータ値の代わりに参照キーを使用するのは 10 要素を超えた場合です。この値を検証できます。コマンド ウィンドウで、次のコマンドを入力します。

get_param(0, 'RTWDataReferencesMinSize')

しきい値を別の値に設定するには、次の関数 set_param をコマンド ウィンドウに入力します。

set_param(0, 'RTWDataReferencesMinSize', <size>)

size に整数値を指定します。データ要素数がその値を超えるとコード ジェネレーターによって実際のデータ値の代わりに参照キーが使用されます。

コードのみの生成

ビルド プロセスでコードと makefile は生成するが、make コマンドの呼び出しを行わないように指定すると、コード生成速度を向上させることができます。コード ジェネレーターが make コマンドを呼び出すと、コード ジェネレーターはコードの生成、コードのコンパイルおよび実行可能ファイルの作成を行うため、ビルド プロセスにより時間がかかります。

[モデル コンフィギュレーション パラメーター] ダイアログ ボックスの [コード生成][コード生成のみ] パラメーターを選択すると、ビルド プロセスでコードのみが生成されるように指定できます。[コンフィギュレーション パラメーター][コード生成][ビルド プロセス][makefile の設定][makefile の生成] パラメーターを選択して、コード ジェネレーター プロセスで makefile を生成することを指定できます。

コード生成レポートの作成を抑止する

ビルド プロセスの一部としてコード生成レポートを生成しないことにより、コード生成を高速化できます。コード生成レポートを無効にするには、[コード生成][レポート] ペインで [コード生成レポートを作成] パラメーターをオフにします。ビルド プロセスの後にコード生成レポートを生成するには、コード生成レポートの生成 (Embedded Coder)を参照してください。

関連するトピック