coder.mexconfig
fiaccel
で使用するコード高速化のための構成オブジェクト
説明
coder.MexConfig
オブジェクトには、生成された MEX 関数で固定小数点コードを高速化する際に関数 fiaccel
で使用されるすべての構成パラメーターが格納されます。このオブジェクトを使用するには、まず関数 coder.mexconfig
を使用してオブジェクトを作成し、次に -config
オプションを使用してこのオブジェクトを関数 fiaccel
に渡します。
作成
説明
は、MEX 関数を生成する cfg
= coder.mexconfigfiaccel
で使用する coder.MexConfig
コード生成オブジェクトを作成します。
プロパティ
CompileTimeRecursionLimit
— コンパイル時の再帰用に生成コードで許可される関数のコピー数
50 (既定値) | 整数
コンパイル時の再帰用に生成コードで許可される関数のコピー数。整数として指定します。MATLAB® コードで再帰を許可しないようにするには、CompileTimeRecursionLimit
を 0
に設定します。コンパイル時の再帰限界値の既定値は、コンパイル時の再帰を必要とするほとんどの再帰関数に対して十分な値です。コンパイル時の再帰限界値が原因でコード生成に失敗する場合にコンパイル時の再帰が必要なときは、限界値を高くします。あるいは、コード ジェネレーターが実行時の再帰を使用するように、MATLAB コードを変更します。
ConstantFoldingTimeout
— 定数畳み込みの命令の最大数
10000 (既定値) | 正の整数
定数畳み込みによって実行される命令の最大数。正の整数として指定します。
ConstantInputs
— 定数入力チェック モード
'CheckValues'
(既定値) | 'IgnoreValues'
| 'Remove'
定数入力チェック モード。次の表のいずれかの値として指定します。
値 | 説明 |
---|---|
'CheckValues' | この値が既定値です。 MEX 関数の呼び出し時に、定数入力の引数に指定する値がコード生成時に指定された値であるかどうかがチェックされます。 MEX 関数と元の MATLAB 関数を同じ引数を使用して呼び出すことができます。そのため、両方の関数に対して同じテスト ファイルを使用できます。 値のチェックによって、MEX 関数の実行速度が遅くなる可能性があります。 |
'IgnoreValues' | MEX 関数の呼び出し時に、定数入力の引数に指定する値を無視します。コード生成時に指定された値を使用します。 同じテスト ファイルを使用できるため、定数引数の値をチェックするというオーバーヘッドが発生しません。 |
'Remove' | コード ジェネレーターは、MEX 関数のシグネチャから定数入力の引数を削除します。MEX 関数の呼び出し時に、定数入力の引数の値を指定しません。 このオプションでは下位互換性が提供されます。 |
MEX 関数での定数入力のチェック (MATLAB Coder)を参照してください。
DynamicMemoryAllocation
— 可変サイズ データの動的メモリ割り当て
'Threshold'
(既定値) | 'AllVariableSizeArrays'
| 'Off'
可変サイズ データの動的メモリ割り当て。次の値のいずれかとして指定します。
'Threshold'
— サイズがDynamicMemoryAllocationThreshold
を超えるすべての可変サイズ配列に対して動的メモリ割り当てが有効になります。fiaccel
は、この可変サイズ データのメモリをヒープで動的に割り当てます。'AllVariableSizeArrays'
— すべての可変サイズ配列のメモリをヒープで動的に割り当てます。すべての制限なしの可変サイズ データには、動的メモリ割り当てを使用しなければなりません。'Off'
— メモリをスタックで静的に割り当てます。
すべての制限なしの可変サイズ データには、動的メモリ割り当てを使用しなければなりません。
依存関係:
EnableVariableSizing
により、このパラメーターが有効になります。この
DynamicMemoryAllocation
を'Threshold'
に設定すると、DynamicMemoryAllocationThreshold
パラメーターが有効になります。
メモ
DynamicMemoryAllocation
構成オプションは将来のリリースで削除される予定です。可変サイズの配列に対してメモリを動的に割り当てるには、EnableDynamicMemoryAllocation
オプションを使用してください。しきい値を設定するには、DynamicMemoryAllocationThreshold
オプションを使用します。
DynamicMemoryAllocationForFixedSizeArrays
— 固定サイズの配列に対する動的メモリ割り当て
false
(既定値) | true
固定サイズの配列に対する動的メモリ割り当て。次の表のいずれかの値として指定します。
値 | 説明 |
---|---|
true | コード ジェネレーターは、サイズ (バイト単位) が |
false | この値が既定値です。 コード ジェネレーターは、スタック上で固定サイズ配列のメモリを静的に割り当てます。 |
依存関係:
このオプションは、
EnableDynamicMemoryAllocation
をtrue
に設定すると有効になります。
Control Dynamic Memory Allocation for Fixed-Size Arrays (MATLAB Coder)を参照してください。
DynamicMemoryAllocationThreshold
— メモリ割り当てのしきい値
65536
(既定値) | 整数
fiaccel
が可変サイズ配列のメモリをヒープで割り当てる下限のしきい値のサイズ。整数として指定します。
依存関係:
EnableDynamicMemoryAllocation
をtrue
に設定すると、このパラメーターが有効になります。
EnableAutoExtrinsicCalls
— 一般的な可視化関数を外部関数として扱う
true
(既定値) | false
fiaccel
が一般的な可視化関数を外部関数として扱うかどうか。true
または false
として指定します。このオプションを有効にすると、fiaccel
は plot
、disp
および figure
などの多くの一般的な可視化関数の呼び出しを検出します。これらの関数に対して MATLAB を呼び出します。この機能を使用すると、コードがコード生成に適するようになるまでの時間が短縮されます。また、関数 coder.extrinsic
を使ってこれらの関数を外部関数として宣言する必要もなくなります。
EchoExpressions
— セミコロンで終了していないコードの結果を表示します。
true
(既定値) | false
セミコロンで終了していないコードの結果を表示するかどうか。true
または false
として指定します。
このプロパティを true
に設定すると、最後にセミコロンがないコード命令の結果が MATLAB コマンド ウィンドウに表示されます。このプロパティを false
に設定すると、コードの結果は MATLAB コマンド ウィンドウには表示されません。
EnableRuntimeRecursion
— 生成コードで再帰関数を許可
true
(既定値) | false
生成コードで再帰関数を許可するかどうか。true
または false
として指定します。MATLAB コードで実行時の再帰が必要な場合にこのパラメーターが false
のとき、コード生成に失敗します。
EnableDebugging
— デバッグ モードで生成コードをコンパイルします。
false
(既定値) | true
デバッグ モードで生成コードをコンパイルするかどうか。true
または false
として指定します。
このプロパティを true
に設定すると、生成されたコードがデバッグ モードでコンパイルされます。このプロパティを false
に設定すると、生成されたコードが通常のモードでコンパイルされます。
EnableDynamicMemoryAllocation
— 可変サイズの配列に対する動的メモリ割り当てを有効化
true
(既定値) | false
可変サイズの配列に対する動的メモリ割り当て。次の表のいずれかの値として指定します。
値 | 説明 |
---|---|
true | この値が既定値です。 コード ジェネレーターは、サイズ (バイト単位) が |
false | コード ジェネレーターは、スタック上で可変サイズ配列のメモリを静的に割り当てます。 |
EnableImplicitExpansion
— 生成コードで暗黙的な拡張機能を有効化
true
(既定値) | false
生成コードで暗黙的な拡張機能を有効にするかどうか。true
または false
として指定します。
このプロパティを true
に設定すると、生成コードで暗黙的な拡張が有効になります。暗黙的な拡張を適用するためにコード ジェネレーターで生成コードに変更が加えられます。基本的な演算で互換性のある配列サイズを参照してください。このプロパティを false
に設定すると、生成コードは暗黙的な拡張のルールに従いません。
EnableVariableSizing
— 可変サイズの配列のサポートを有効化
true
(既定値) | false
可変サイズの配列のサポートを有効にするかどうか。true
または false
として指定します。
このプロパティを true
に設定すると、可変サイズ配列のサポートと DynamicMemoryAllocation
プロパティが有効になります。このプロパティを false
に設定すると、可変サイズ配列はサポートされません。
ExtrinsicCalls
— 外部関数呼び出し
true
(既定値) | false
外部関数は、生成されたコードによって MATLAB ソフトウェアに送信され実行される、MATLAB パス上の関数です。fiaccel
では、外部関数のコードのコンパイルや生成は行われません。このプロパティを true
に設定すると、fiaccel
では MATLAB 関数呼び出しのコードが生成されますが、関数の内部コードは生成されません。このプロパティを false
に設定すると、fiaccel
では外部関数が無視され、MATLAB 関数呼び出しのコードは生成されません。外部関数によって fiaccel
の出力に影響が生じると、コンパイラ エラーが発生します。
ExtrinsicCalls
は、fiaccel
によって作成された MEX 関数が MATLAB 関数 rand
、randi
および randn
を使用して乱数を生成する方法に影響を与えます。外部呼び出しが有効の場合、生成された MEX 関数は MATLAB グローバル乱数ストリームを使用して乱数を生成します。外部呼び出しが有効でない場合は、fiaccel
によって作成された MEX 関数は、内蔵の乱数発生器を使用します。
外部呼び出しを無効にした場合、生成された MEX 関数は、error
や assert
ステートメントからのランタイム メッセージを MATLAB コードに表示できません。MEX 関数はエラー メッセージを表示できないことを報告します。エラー メッセージを表示するには、外部関数呼び出しを有効にして再度 MEX 関数を生成します。
GenerateReport
— HTML コード生成レポートを作成
false
(既定値) | true
HTML コード生成レポートを作成するかどうか。true
または false
として指定します。
GlobalDataSyncMethod
— MATLAB グローバル ワークスペースとの MEX 関数のグローバル データの同期
SyncAlways
(既定値) | SyncAtEntryAndExits
| NoSync
MATLAB グローバル ワークスペースとの MEX 関数のグローバル データの同期。次の値のいずれかとして指定します。
SyncAlways
— MEX 関数の入口と出口およびすべての外部呼び出しでグローバル データが同期され、MATLAB と生成された MEX 関数の間で最大の一貫性が確保されます。外部呼び出しがグローバル データに影響を与えない場合は、このオプションをcoder.extrinsic
-sync:off
オプションと共に使用してこれらの呼び出しの同期化をオフにすると、パフォーマンスが最大になります。SyncAtEntryAndExits
— MEX 関数の入口と出口でのみグローバル データが同期されます。コードに外部呼び出しが含まれていてもグローバル データに影響を与えるものが少ない場合は、このオプションをcoder.extrinsic
-sync:on
オプションと共に使用してこれらの呼び出しの同期化をオンにすると、パフォーマンスが最大になります。NoSync
— 同期が行われません。同期化を無効にする前に、MEX 関数と MATLAB のグローバル データの間に相互作用がないことを確認してください。相互作用があると、MATLAB と MEX 関数の間に不整合が生じる可能性があります。
データ型: char
InlineStackLimit
— インライン関数のスタック サイズの制限
4000
(既定値) | 正の整数
インライン関数のスタック サイズの制限。正の整数として指定します。
InlineThreshold
— インライン化される関数の最大サイズ
10
(既定値) | 正の整数
インライン化される関数の最大サイズ。正の整数として指定します。
InlineThresholdMax
— インライン化後の関数の最大サイズ
200
(既定値) | 正の整数
インライン化後の関数の最大サイズ。正の整数として指定します。
IntegrityChecks
— メモリの整合性
true
(既定値) | false
このプロパティを true
に設定すると、MATLAB に対して生成されたコードにおけるすべてのメモリ整合性違反が検出されます。違反が検出されると、実行が停止し、診断メッセージが表示されます。このプロパティを false
に設定すると、メモリ整合性のチェックとランタイム スタックの両方が無効になります。
LaunchReport
— HTML コード生成レポートを自動的に開く
true
(既定値) | false
コード生成が完了した際に HTML コード生成レポートを自動的に開くかどうか。true
または false
として指定します。このプロパティは、GenerateReport
プロパティを true
に設定した場合にのみ適用されます。
ReportPotentialDifferences
— 生成コードと MATLAB コードの潜在的な動作の相違をレポート
true
(既定値) | false
生成コードと MATLAB コードの潜在的な動作の相違をレポートするかどうか。true
または false
として指定します。ReportPotentialDifferences
プロパティを true
に設定すると、コード生成レポートに潜在的な相違を一覧表示するタブが表示されます。潜在的な相違とは、特定の状況にある場合にのみ実行時に生じる違いです。
ResponsivenessChecks
— 応答性チェックを有効化
true
(既定値) | false
応答性チェックを有効にするかどうか。true
または false
として指定します。
SaturateOnIntegerOverflow
— 整数オーバーフローで飽和
true
(既定値) | false
整数オーバーフローで飽和させるかどうか。true
または false
として指定します。オーバーフローは、データ型が表現できる最小値または最大値のいずれかに飽和します。このプロパティを true
に設定すると、オーバーフローが飽和されます。このプロパティを false
に設定すると、オーバーフローはデータ型で表現できる適切な値にラップされます。
StackUsageMax
— アプリケーションごとの最大スタック使用量 (バイト単位)
200000
(既定値) | 正の整数
アプリケーションごとの最大スタック使用量 (バイト単位)。正の整数として指定します。使用できるスタック サイズより小さい制限値を設定します。そうしないと、ランタイム スタック オーバーフローが発生する可能性があります。オーバーフローは fiaccel
ではなく C コンパイラによって検出され、報告されます。
例
コード高速化のための構成オブジェクトの作成
この例では、関数 coder.mexconfig
を使用して coder.MexConfig
構成オブジェクトを作成する方法を示します。オブジェクトで実行時チェックを無効にするように設定します。
cfg = coder.mexconfig;
整合性チェック、外部呼び出し、および応答性チェックをオフにします。
cfg.IntegrityChecks = false; cfg.ExtrinsicCalls = false; cfg.ResponsivenessChecks = false;
関数 fiaccel
を使用して、ファイル foo.m
の MEX 関数を生成します。
fiaccel -config cfg foo
バージョン履歴
R2011a で導入R2023a: coder.MexConfig
オブジェクトに ConstantInputs
プロパティを追加
coder.mexconfig
オブジェクトに ConstantInputs
プロパティが含まれるようになりました。
R2023a: DynamicMemoryAllocation
プロパティは削除予定
将来のリリースでは、DynamicMemoryAllocation
プロパティは削除される予定です。
可変サイズの配列に対してメモリを動的に割り当てるには、EnableDynamicMemoryAllocation
プロパティを使用してください。動的メモリ割り当てしきい値を構成するには、DynamicMemoryAllocationThreshold
プロパティを使用します。
MATLAB コマンド
次の MATLAB コマンドに対応するリンクがクリックされました。
コマンドを MATLAB コマンド ウィンドウに入力して実行してください。Web ブラウザーは MATLAB コマンドをサポートしていません。
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list:
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)