メインコンテンツ

[MEX コンフィギュレーション] ダイアログ ボックスのオプション

[MEX コンフィギュレーション] ダイアログ ボックスのオプション

次の表に、MATLAB® ファイルを MEX に変換する際に、fiaccel の動作を微調整するためのパラメーターをまとめます。

パラメーター同等のコマンド ライン プロパティと値
(既定の設定は太字)
説明
レポート
コード生成レポートを作成GenerateReport
true, false
生成コードをレポートに記述します。
レポートを自動的に起動LaunchReport
true, false

コード生成完了後、自動的にレポートを開くかどうかを指定します。

メモ

[コード生成レポートを作成] を有効にする必要があります。

デバッグ
セミコロンなしの式をエコーEchoExpressions
true, false
最後にセミコロンがないアクションを MATLAB コマンド ウィンドウに表示するかどうかを指定します。
デバッグ ビルドを有効化EnableDebugging
true, false
デバッグ モードで生成コードをコンパイルします。
言語とセマンティクス
定数畳み込みのタイムアウトConstantFoldingTimeout
integer, 10000
定数畳み込みによって実行される命令の最大数を指定します。
動的メモリ割り当てDynamicMemoryAllocation
'off', 'AllVariableSizeArrays'

可変サイズ データの動的メモリ割り当てを有効にします。既定の設定では動的メモリ割り当ては無効で、fiaccel はスタックにメモリを静的に割り当てます。動的メモリ割り当てを選択すると、fiaccel はヒープ領域上ですべての可変サイズ データのメモリを動的に割り当てます。

すべての制限なしの可変サイズ データには、動的メモリ割り当てを "使用しなければなりません"

可変サイズを有効化EnableVariableSizing
true, false
可変サイズ配列のサポートを有効にします。
外部呼び出しExtrinsicCalls
true, false

外部関数への呼び出しを許可します。

有効な場合 (true)、コンパイラは MATLAB 関数への呼び出しコードは生成しますが、関数の内部コードは生成しません。

無効な場合 (false)、コンパイラは外部関数を無視します。外部関数が呼び出し元の関数の出力に影響を与えない限り、MATLAB 関数の呼び出しコードは生成しません。影響を与える場合は、コンパイラ エラーが発行されます。

グローバルなデータ同期モードGlobalDataSyncMethod
string,SyncAlways, SyncAtEntryAndExits, NoSync

グローバル データを MATLAB グローバル ワークスペースと同期させるタイミングを制御します。既定の設定 (SyncAlways) では、MEX 関数のエントリ時と終了時、およびすべての外部呼び出し時にグローバル データが同期されます。このように同期することで、MATLAB と生成されたコードの間で最大の一貫性を確保できます。外部呼び出しがグローバル データに影響を与えない場合は、このオプションを coder.extrinsic -sync:off オプションと共に使用して、これらの呼び出しにおける同期をオフにすると、パフォーマンスが最大になります。

SyncAtEntryAndExits は、MEX 関数の入口および出口でのみグローバル データを同期させます。グローバル データに影響を与える外部呼び出しがわずかしかない場合は、このオプションを coder.extrinsic -sync:on オプションと共に使用して、これらの呼び出しにおける同期をオンにします。

NoSync は同期化を無効にします。同期を無効にする前に、生成したコードが MATLAB と相互作用しないことを確認してください。相互作用すると矛盾が発生する可能性があります。

整数オーバーフローで飽和SaturateOnIntegerOverflow
true, false
生成コードにチェックを追加して整数のオーバーフローまたはアンダーフローを検出します。
安全性 (無効にすると MEX を高速化できます)
メモリの整合性を確保IntegrityChecks
true, false
MATLAB Function ブロックの構築中にメモリの整合性の違反を検出し、診断メッセージを表示してシミュレーションを停止します。IntegrityChecksfalse に設定しても、ランタイム スタックが無効になります。
応答性を確保ResponsivenessChecks
true, false
MATLAB アルゴリズムから生成されたコードで応答性チェックを有効にします。
関数インライン化とスタック割り当て
インライン スタック制限InlineStackLimit
integer, 4000
インライン化された関数でスタック サイズの制限を指定します。
インラインしきい値InlineThreshold
integer, 10
インライン化される関数の最大サイズを指定します。
最大インラインしきい値InlineThresholdMax
integer, 200
インライン化後の関数の最大サイズを指定します。
最大スタック使用量StackUsageMax
integer, 200000
アプリケーションごとの最大スタック使用量をバイト単位で指定します。使用できるスタック サイズより小さい制限値を設定します。そうしないと、ランタイム スタック オーバーフローが発生する可能性があります。オーバーフローは fiaccel ではなく C コンパイラによって検出され、報告されます。
最適化
可能な場合は BLAS ライブラリを使用EnableBLAS
true, false
基本線形代数サブプログラム (BLAS) ライブラリを呼び出して、シミュレーション中の低水準の行列演算を高速化します。

参考