Main Content

アクセラレータ モードの動作

概要

アクセラレータ モードとラピッド アクセラレータ モードは、Simulink® Coder™ 製品の一部分を使用し、実行ファイルを作成します。

アクセラレータ モードとラピッド アクセラレータ モードは、Simulink シミュレーションで一般に使用するインタープリター型コードを置き換えるため、モデルの実行時間が短縮されます。

アクセラレーション モードは、特定の Simulink Coder コード生成技術を採用していますが、モデルを高速化するための Simulink Coder ソフトウェアをインストールする必要はありません。

メモ

アクセラレータ モードとラピッド アクセラレータ モードで生成されたコードは、モデルのシミュレーションの高速化のみに適しています。他の目的については、Simulink Coder を使用してコードを生成します。

ノーマル モード

ノーマル モードでは、MATLAB® 技術計算環境を基に、Simulink ソフトウェアが構築されています。Simulink はシミュレーション中に使用するソルバーとモデルのメソッドを制御します。モデルのメソッドには、モデル出力の計算などが含まれます。ノーマル モードは 1 つのプロセスで実行されます。

アクセラレータ モード

既定では、アクセラレータ モードは Just-in-Time (JIT) アクセラレーションを使用して、C コードや MEX ファイルを生成せずにメモリ内に実行エンジンを生成します。モデルをクラシック アクセラレータ モードに戻すこともできます。そうすると、Simulink がコードを作成してそれを C-MEX S-Function にリンクします。

アクセラレータ モードでは、モデルのメソッドは Simulink ソフトウェアから離れて "アクセラレーション ターゲット コード" の一部であり、これがその後のシミュレーションで使用されます。

Simulink は、アクセラレーション ターゲット コードを再利用する前に最新のものであるかどうかを確認します。詳細については、高速化されたモデルでのコードの再生成を参照してください。

アクセラレータ モードには、2 つの動作モードがあります。

Just-In-Time アクセラレータ モード

この既定のモードでは、Simulink は参照モデルではなく最上位モデルのみで使用する実行エンジンをメモリ内に生成します。結果として、シミュレーション中は C コンパイラは必要ありません。

アクセラレーション ターゲット コードはメモリ内にあるため、モデルが開いている限り再利用可能です。Simulink は、モデルを開いたときにリビルドが必要ないように、アクセラレーション ターゲット コードのシリアル化も行います。

クラシック アクセラレータ モード

モデルのシミュレーションに、C コード生成を行うクラシック アクセラレータ モードを使用する場合、次のコマンドを実行します。

set_param(0,'GlobalUseClassicAccelMode','on');

このモードでは、Simulink はコードを生成してそれを共有ライブラリにリンクして、Simulink ソフトウェアと通信します。ターゲット コードは、MATLAB および Simulink と同じプロセスで実行されます。

ラピッド アクセラレータ モード

ラピッド アクセラレータ モードは、モデルから "ラピッド アクセラレータのスタンドアロンの実行ファイル" を作成します。この実行ファイルにはソルバーとモデルのメソッドが含まれますが、MATLAB と Simulink の外部に存在します。このファイルはエクスターナル モード (エクスターナル モード通信 (Simulink Coder)を参照) を使用して、Simulink と通信を行います。

MATLAB と Simulink は 1 つのプロセスで実行され、2 番目の処理コアを利用できる場合は、スタンドアロンの実行ファイルがそこで実行されます。

関連するトピック