Main Content

最新のリリースでは、このページがまだ翻訳されていません。 このページの最新版は英語でご覧になれます。

coder.MexConfig

パッケージ: coder

fiaccel と併用するコード高速化のための構成オブジェクト

説明

coder.MexConfig オブジェクトは、生成した MEX 関数によって固定小数点コードを高速化する際に、関数 fiaccel で使用されるすべてのコンフィギュレーション パラメーターを含んでいます。このオブジェクトを使用するには、まず小文字の関数 coder.mexconfig を使用してオブジェクトを作成し、次に -config オプションを使用してこのオブジェクトを関数 fiaccel に渡します。

構築

cfg = coder.mexconfig では、fiaccel による MEX 関数の生成のために、coder.MexConfig オブジェクト cfg が作成されます。

プロパティ

CompileTimeRecursionLimit

コンパイル時の再帰では、生成されたコードで許可される関数のコピー数を制御します。MATLAB® コード内で再帰が許可されないようにするには、CompileTimeRecursionLimit を 0 に設定します。コンパイル時の再帰限界値の既定値は、コンパイル時の再帰を必要とするほとんどの再帰関数に対して十分な値です。コンパイル時の再帰限界値が原因でコード生成に失敗する場合にコンパイル時の再帰が必要なときは、限界値を高くします。あるいは、コード ジェネレーターが実行時の再帰を使用するように、MATLAB コードを変更します。

既定値: integer50

ConstantFoldingTimeout

定数畳み込みの命令の最大数

定数畳み込みによって実行される命令の最大数を正の整数で指定します。

既定値: 10000

DynamicMemoryAllocation

可変サイズ データの動的メモリ割り当て

既定の設定でこのプロパティは 'Threshold' に設定されており、DynamicMemoryAllocationThreshold を超えるサイズの可変サイズ配列には、動的なメモリの割り当てが有効になります。fiaccel はヒープ上でこの可変サイズ データのメモリを動的に割り当てます。このプロパティを 'Off' に設定すると、スタックでメモリが静的に割り当てられます。これを 'AllVariableSizeArrays' に設定すると、ヒープ上ですべての可変サイズ配列のメモリが動的に割り当てられます。すべての制限なしの可変サイズ データには、動的メモリ割り当てを使用しなければなりません。

DynamicMemoryAllocation プロパティは、EnableVariableSizingtrue の場合にのみ有効です。DynamicMemoryAllocation`Threshold' に設定すると、DynamicMemoryAllocationThreshold プロパティが有効になります。

既定値: Threshold

DynamicMemoryAllocationThreshold

メモリ割り当てのしきい値

fiaccel がヒープに割り当てるメモリ以上の可変サイズの配列には、しきい値の整数サイズを指定します。

既定値: 65536

EnableAutoExtrinsicCalls

fiaccel が一般的な可視化関数を外部関数として扱うかどうかを指定します。このオプションを有効にすると、fiaccelplotdisp および figure などの多くの一般的な可視化関数の呼び出しを検出します。これらの関数に対して MATLAB を呼び出します。この機能を使用すると、コードがコード生成に適するようになるまでの時間が短縮されます。また、関数 coder.extrinsic を使ってこれらの関数を外部関数として宣言する必要もなくなります。

既定値: true

EchoExpressions

セミコロンで終了していないコードの結果を表示します。

このプロパティを true に設定すると、最後にセミコロンがないコード命令の結果が MATLAB コマンド ウィンドウに表示されます。このプロパティを false に設定すると、コードの結果は MATLAB コマンド ウィンドウには表示されません。

既定値: true

EnableRuntimeRecursion

生成されたコード内で再帰関数を許可します。MATLAB コードで実行時の再帰が必要な場合にこのパラメーターが false のとき、コード生成に失敗します。

既定値: true

EnableDebugging

デバッグ モードで生成コードをコンパイルします。

このプロパティを true に設定すると、生成されたコードがデバッグ モードでコンパイルされます。このプロパティを false に設定すると、生成されたコードが通常のモードでコンパイルされます。

既定値: false

EnableVariableSizing

可変サイズ配列のサポート

このプロパティを true に設定すると、可変サイズ配列のサポートと DynamicMemoryAllocation プロパティが有効になります。このプロパティを false に設定すると、可変サイズ配列はサポートされません。

既定値: true

ExtrinsicCalls

外部関数呼び出し

外部関数は、生成されたコードによって MATLAB ソフトウェアに送信され実行される、MATLAB パス上の関数です。fiaccel では、外部関数のコードのコンパイルや生成は行われません。このプロパティを true に設定すると、fiaccel では MATLAB 関数呼び出しのコードが生成されますが、関数の内部コードは生成されません。このプロパティを false に設定すると、fiaccel では外部関数が無視され、MATLAB 関数呼び出しのコードは生成されません。外部関数によって fiaccel の出力に影響が生じると、コンパイラ エラーが発生します。

ExtrinsicCalls は、fiaccel によって作成された MEX 関数が MATLAB 関数 randrandi および randn を使用して乱数を生成する方法に影響を与えます。外部呼び出しが有効の場合、生成された MEX 関数は MATLAB グローバル乱数ストリームを使用して乱数を生成します。外部呼び出しが有効でない場合は、fiaccel によって作成された MEX 関数は、内蔵の乱数発生器を使用します。

外部呼び出しを無効にした場合、生成された MEX 関数は、errorassert ステートメントからのランタイム メッセージを MATLAB コードに表示できません。MEX 関数はエラー メッセージを表示できないことを報告します。エラー メッセージを表示するには、外部関数呼び出しを有効にして再度 MEX 関数を生成します。

既定値: true

GenerateReport

コード生成レポート

このプロパティを true に設定すると、HTML 形式のコード生成レポートが作成されます。このプロパティを false に設定すると、レポートは作成されません。

既定値: false

GlobalDataSyncMethod

MATLAB グローバル ワークスペースとの MEX 関数のグローバル データの同期

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

このプロパティを SyncAtEntryAndExits に設定すると、グローバル データは MEX 関数のエントリ時と終了時のみに同期されます。コードに外部呼び出しが含まれていてもグローバル データに影響を与えるものが少ない場合は、このオプションを coder.extrinsic -sync:on オプションと共に使用してこれらの呼び出しの同期化をオンにすると、パフォーマンスが最大になります。

このプロパティを NoSync に設定すると、同期は行われません。同期化を無効にする前に、MEX 関数と MATLAB のグローバル データの間に相互作用がないことを確認してください。相互作用があると、MATLAB と MEX 関数の間に不整合が生じる可能性があります。

既定値: SyncAlways

InlineStackLimit

インライン関数のスタック サイズ

インライン関数のスタック サイズの制限を正の整数で指定します。

既定値: 4000

InlineThreshold

インライン化される関数の最大サイズ

インライン化される関数の最大サイズを正の整数で指定します。

既定値: 10

InlineThresholdMax

インライン化後の関数の最大サイズ

インライン化後の関数の最大サイズを正の整数で指定します。

既定値: 200

IntegrityChecks

メモリの整合性

このプロパティを true に設定すると、MATLAB に対して生成されたコードにおけるすべてのメモリ整合性違反が検出されます。違反が検出されると、実行が停止し、診断メッセージが表示されます。このプロパティを false に設定すると、メモリ整合性のチェックとランタイム スタックの両方が無効になります。

既定値: true

LaunchReport

コード生成レポートの表示

このプロパティを true に設定すると、コード生成が完了した際に HTML 形式のコード生成レポートが自動的に開きます。このプロパティを false に設定すると、レポートは自動的に表示されません。このプロパティは、GenerateReport プロパティを true に設定した場合にのみ適用されます。

既定値: true

ReportPotentialDifferences

生成コードと MATLAB コード間での潜在的な動作の相違をレポートするかどうかを指定します。ReportPotentialDifferencestrue である場合、コード生成レポートには潜在的な相違を一覧表示するタブが表示されます。潜在的な相違とは、特定の状況にある場合にのみ実行時に生じる違いです。

既定値: true

ResponsivenessChecks

応答性チェック

このプロパティを true に設定すると、応答性チェックが有効になります。このプロパティを false に設定すると、応答性チェックが無効になります。

既定値: true

SaturateOnIntegerOverflow

整数オーバーフローのアクション

オーバーフローは、データ型が表現できる最小値または最大値のいずれかに飽和します。このプロパティを true に設定すると、オーバーフローが飽和されます。このプロパティを false に設定すると、オーバーフローはデータ型で表現できる適切な値にラップされます。

既定値: true

StackUsageMax

アプリケーションごとの最大スタック使用量

アプリケーションごとの最大スタック使用量をバイト単位の正の整数で指定します。使用できるスタック サイズより小さい制限値を設定します。そうしないと、ランタイム スタック オーバーフローが発生する可能性があります。オーバーフローは fiaccel ではなく C コンパイラによって検出され、報告されます。

既定値: 200000

コピーのセマンティクス

ハンドル。ハンドル クラスがコピー操作にどのように影響するかについては、オブジェクトのコピーを参照してください。

小文字の関数 coder.mexconfig を使用して、coder.MexConfig 構成オブジェクトを作成します。実行時チェックを無効にするには、このオブジェクトを設定します。

cfg = coder.mexconfig
% Turn off Integrity Checks, Extrinsic Calls, 
% and Responsiveness Checks
cfg.IntegrityChecks = false;
cfg.ExtrinsicCalls = false;
cfg.ResponsivenessChecks = false;
% Use fiaccel to generate a MEX function for file foo.m
fiaccel -config cfg foo