coder.MexCodeConfig
MATLAB からの MEX 関数生成用構成パラメーター
説明
coder.MexCodeConfig オブジェクトには、MEX 関数の生成時に codegen によって使用される構成パラメーターが含まれます。-config オプションを使用して、オブジェクトを関数 codegen に渡します。
作成
関数 coder.config を使用して coder.MexCodeConfig オブジェクトを作成します。
coder.MexCodeConfig オブジェクトの作成後、そのプロパティをコマンド ラインからプログラムで変更するか、構成パラメーター ダイアログ ボックスを使用して対話的に変更できます。Specify Code Configuration Parameters Interactivelyを参照してください。
プロパティ
動的な配列の最適化。true または false として指定します。詳細については、動的な配列データをキャッシュを参照してください。
生成コードの書式設定ツール。'Auto'、'Clang-format'、または 'MathWorks' として指定します。詳細については、使用するコード形式ツールの選択を参照してください。
コンパイル時の再帰による関数の特殊化の最大数。正の整数として指定します。詳細については、コンパイル時の再帰限界値を参照してください。
定数畳み込みによって実行される命令の最大数。正の整数として指定します。詳細については、定数畳み込みのタイムアウトを参照してください。
定数入力チェック モード。'CheckValues' または 'IgnoreValues' として指定します。詳細については、定数入力を参照してください。
列挙クラスを含む C++ コードを生成するかどうか。true または false として指定します。詳細については、MATLAB 列挙から C++ enum クラスを生成を参照してください。
生成された C++ コードの名前空間。文字ベクトルとして指定します。詳細については、C++ 名前空間を参照してください。
MathWorks コードに対して生成された C++ コードを配置します。文字ベクトルとして指定します。詳細については、MathWorks コードの名前空間を参照してください。
MATLAB クラスに対応する C++ クラスと C スタイルの構造体のどちらを生成するか。true または false として指定します。詳細については、MATLAB クラスから C++ クラスを生成を参照してください。
MATLAB コード内の名前空間に対して C++ 名前空間を生成するかどうか。true または false として指定します。詳細については、MATLAB 名前空間から C++ 名前空間を生成を参照してください。
MATLAB コードから生成された各 C/C++ ヘッダー ファイル (rtwtypes.h および rtwhalf.h を除く) の最上部近くに表示されるカスタム コード。文字ベクトルとして指定します。詳細については、ヘッダー ファイルを参照してください。
生成コードのコンパイル時にインクルード パスに追加するインクルード フォルダー。string 配列、文字ベクトルの cell 配列、または文字ベクトルとして指定します。詳細については、追加インクルード ディレクトリを参照してください。
生成された初期化関数に含めるカスタム コード。文字ベクトルとして指定します。詳細については、初期化関数を参照してください。
生成コードにリンクするスタティック ライブラリ ファイル。string 配列、文字ベクトルの cell 配列、または文字ベクトルとして指定します。詳細については、追加ライブラリを参照してください。
コンパイルして生成コードにリンクするソース ファイル。string 配列、文字ベクトルの cell 配列、または文字ベクトルとして指定します。詳細については、追加ソース ファイルを参照してください。
生成された各 .c または .cpp ファイル (rtwhalf.c または rtwhalf.cpp を除く) の最上部付近 (すべての関数の外側) に表示されるコードを指定します。詳細については、ソース ファイルを参照してください。
生成された終了関数に表示されるコード。文字ベクトルとして指定します。詳細については、終了関数を参照してください。
深層学習ネットワークのコード生成の構成オブジェクト。次の表のいずれかのオブジェクトとして指定します。
| オブジェクト | 必要 | 説明 |
|---|---|---|
coder.MklDNNConfig |
|
cfg = coder.config('mex'); cfg.TargetLang = 'C++'; cfg.DeepLearningConfig = coder.DeepLearningConfig('mkldnn'); MKL-DNN を使用した、深層学習ネットワークのためのコード生成を参照してください。 |
coder.CuDNNConfig (GPU Coder) |
|
cfg = coder.gpuConfig('lib'); cfg.TargetLang = 'C++'; cfg.DeepLearningConfig = coder.DeepLearningConfig('cudnn'); cuDNN を使用した深層学習ネットワークのコード生成 (GPU Coder)を参照してください。 |
coder.TensorRTConfig (GPU Coder) |
|
cfg = coder.gpuConfig('lib'); cfg.TargetLang = 'C++'; cfg.DeepLearningConfig = coder.DeepLearningConfig('tensorrt'); TensorRT を使用した深層学習ネットワークのコード生成 (GPU Coder)を参照してください。 |
メモ
MEX コードの生成は、ARM® Compute Library を使用した深層学習についてはサポートされていません。
依存関係: DeepLearningConfig を設定すると、codegen で TargetLang が C++ に設定されます。
動的メモリ割り当てモード。次の表のいずれかの値として指定します。
| 値 | 説明 |
|---|---|
'Threshold' | この値が既定値です。 コード ジェネレーターは、サイズ (バイト単位) が |
'AllVariableSizeArrays' | コード ジェネレーターは、ヒープ上ですべての可変サイズ配列のメモリを動的に割り当てます。 |
'Off' | コード ジェネレーターは、スタック上で可変サイズ配列のメモリを静的に割り当てます。 |
制限のない可変サイズの配列では動的なメモリ割り当てが必要です。
依存関係:
EnableVariableSizingにより、このパラメーターが有効になります。この
DynamicMemoryAllocationを'Threshold'に設定すると、DynamicMemoryAllocationThresholdパラメーターが有効になります。
可変サイズ配列のコード生成を参照してください。
メモ
DynamicMemoryAllocation 構成オプションは将来のリリースで削除される予定です。可変サイズの配列に対してメモリを動的に割り当てるには、EnableDynamicMemoryAllocation オプションを使用してください。しきい値を設定するには、DynamicMemoryAllocationThreshold オプションを使用します。
固定サイズの配列に対する動的メモリ割り当て。false または true として指定します。詳細については、固定サイズの配列に対する動的メモリ割り当てを有効化を参照してください。
生成された C/C++ 関数のインターフェイスにおける動的に割り当てられた配列の実装。'Auto'、'C'、または 'C++' として指定します。詳細については、動的メモリ割り当てインターフェイスを参照してください。
可変サイズの配列の動的なメモリ割り当てのサイズしきい値。正の整数として指定します。詳細については、動的メモリ割り当てしきい値を参照してください。
式のエコー。true または false として指定します。詳細については、終端のセミコロンなしの式をエコーを参照してください。
自動的な外部関数呼び出し。true または false として指定します。詳細については、外部呼び出しを自動的に導入を参照してください。
for ループの自動並列化。false または true として指定します。詳細については、自動並列化を有効にするを参照してください。
for ループの自動並列化のレポート作成。true または false として指定します。詳細については、自動並列化のレポートを有効にするを参照してください。
C コンパイラのデバッグ モード。false または true として指定します。詳細については、C/C++ コンパイラのデバッグ モードを有効にするを参照してください。
可変サイズの配列に対する動的メモリ割り当て。true または false として指定します。詳細については、動的メモリ割り当てを有効化を参照してください。
生成コードでの暗黙的な拡張機能。true または false として指定します。詳細については、暗黙的な拡張を有効にするを参照してください。
Just-In-Time (JIT) コンパイル モード。false または true として指定します。詳細については、MEX のビルド タイプに JIT コンパイルを使用を参照してください。
memcpy 最適化。true または false として指定します。詳細については、ベクトルの代入に対する memcpy の使用を参照してください。
生成される MEX 関数のプロファイリング用インストルメンテーション。false または true として指定します。詳細については、実行プロファイリングを有効にするを参照してください。
parfor ループの並列化。true または false として指定します。詳細については、可能な場合は OpenMP ライブラリを有効にするを参照してください。
実行時の再帰のサポート。true または false として指定します。詳細については、実行時の再帰を有効にするを参照してください。
可変サイズ配列のサポート。true または false として指定します。詳細については、可変サイズを有効化を参照してください。
外部関数呼び出しのサポート。true または false として指定します。詳細については、外部呼び出しを維持を参照してください。
ファイルの分割モード。'MapMFileToCFile' または 'SingleFile' として指定します。詳細については、生成されたファイルの分割法を参照してください。
ソース コードのみの生成。true または false として指定します。詳細については、コード生成のみを参照してください。
生成されたコード内のコメント。true または false として指定します。詳細については、コメントを含めるを参照してください。
コード生成レポート。false または true として指定します。詳細については、常にレポートを作成を参照してください。
グローバルなデータ同期モード。'SyncAlways'、'SyncAtEntryAndExits'、または 'NoSync' として指定します。詳細については、グローバルなデータ同期モードを参照してください。
GPU Coder を使用して CUDA GPU コードを生成するための構成オブジェクト。GpuCodeConfig オブジェクトには、CUDA GPU コード生成に固有のパラメーターが含まれています。GpuCodeConfig オブジェクトを作成するには、coder.gpuConfig (GPU Coder) を使用します。以下に例を示します。
cfg = coder.gpuConfig('mex'); cfg.GpuConfig ans = GpuCodeConfig with properties: Enabled: 1 MallocMode: 'discrete' KernelNamePrefix: '' EnableCUBLAS: 1 EnableCUSOLVER: 1 EnableCUFFT: 1 Benchmarking: 0 SafeBuild: 0 ComputeCapability: 'Auto' CustomComputeCapability: '' CompilerFlags: '' StackLimitPerThread: 1024 MallocThreshold: 200 MaximumBlocksPerKernel: 0 EnableMemoryManager: 1 SelectCudaDevice: -1
詳細については、コマンド ライン インターフェイスを使用したコードの生成 (GPU Coder)を参照してください。
GpuConfig が設定されている場合、コード ジェネレーターは GPU コード生成に必要な特定のプロパティに固定値を使用します。既定値が異なるプロパティもいくつかあります。詳細については、Configure GPU Code Generation (GPU Coder)を参照してください。
暗黙的な拡張によって生じる潜在的な問題をコード生成レポートで強調表示するかどうか。true または false として指定します。詳細については、暗黙的な拡張によって生じる潜在的な問題を強調表示を参照してください。
ループ制御関数の使用によって生じる潜在的な問題をコード生成レポートで強調表示するかどうか。true または false として指定します。詳細については、coder.loop 関数を使用する際の潜在的な問題を強調表示を参照してください。
行優先のレイアウトの効率性に関する潜在的な問題。true または false として指定します。詳細については、潜在的な行優先の問題を強調表示を参照してください。
memset を使用した float と double のゼロの代入。true または false として指定します。詳細については、float と double を 0.0 に初期化するために memset を使用を参照してください。
MathWorks 関数間のインライン化を制御します。'Speed'、'Always'、'Readability'、または 'Never' として指定します。詳細については、MathWorks 定義の MATLAB 関数に対するインライン手法を参照してください。
ユーザー記述関数と MathWorks 関数の間のインライン化を制御します。'Speed'、'Always'、'Readability'、または 'Never' として指定します。詳細については、MathWorks 関数とユーザー関数の間の呼び出しに対するインライン手法を参照してください。
ユーザー記述関数間のインライン化を制御します。'Speed'、'Always'、'Readability'、または 'Never' として指定します。詳細については、ユーザー定義の MATLAB 関数に対するインライン手法を参照してください。
メモリの整合性チェック。true または false として指定します。詳細については、メモリの整合性をチェックを参照してください。
コード ジェネレーターが深層ニューラル ネットワーク (DNN) の大きな定数を生成ソース コード内に埋め込むか、これらの定数をバイナリ データ ファイルに書き込むか。'WriteOnlyDNNConstantsToDataFiles' または 'KeepInSourceFiles' として指定します。詳細については、大きな定数の生成を参照してください。
これを超えると、コード ジェネレーターが DNN の定数をバイナリ データ ファイルに書き込むしきい値。正の整数として指定します。詳細については、大きな定数のしきい値を参照してください。
コード生成レポートを自動的に開く。true または false として指定します。詳細については、レポート生成時の自動起動を参照してください。
生成コードに MATLAB ソース コードをコメントとして含める。true または false として指定します。詳細については、コメントとして MATLAB ソース コードを含めるを参照してください。
memcpy 最適化または memset 最適化の最小サイズ (バイト単位)。正の整数として指定します。詳細については、memcpy しきい値 (バイト) を参照してください。
オブジェクト名。文字ベクトルとして指定します。
生成された C/C++ コードで並列 for ループを実行する CPU スレッドの最大数。正の整数として指定します。詳細については、CPU スレッドの最大数を参照してください。
リダクション演算の SIMD コードを生成し、リダクション演算を実行する for ループを並列化します。false または true として指定します。詳細については、リダクションの最適化を参照してください。
codegen を使用した MEX 関数の生成後にビルド プロセスをカスタマイズするコマンド。文字ベクトルとして指定します。詳細については、コード生成後のコマンドを参照してください。
N 次元インデックスを使用するコードの生成。false または true として指定します。詳細については、配列の次元を保持を参照してください。
生成されたコード内に保持する変数名。'None'、'UserNames'、または 'All' として指定します。詳細については、変数名の保持を参照してください。
コード生成に関するコード生成レポートの情報を格納する変数の名前。文字ベクトルとして指定します。詳細については、レポート情報を変数にエクスポートを参照してください。
潜在的な相違点のレポート。true または false として指定します。詳細については、MATLAB との相違点をレポートを参照してください。
コード ジェネレーターが関数または変数に使用してはならない名前。string 配列、文字ベクトルの cell 配列、または文字ベクトルとして指定します。詳細については、予約名を参照してください。
応答性チェック。true または false として指定します。詳細については、Ctrl + C キーへの応答、およびグラフィックスの更新を有効にするを参照してください。
生成コードの行優先の配列レイアウト。false または true として指定します。詳細については、配列のレイアウトを参照してください。
整数オーバーフローのサポート。true または false として指定します。詳細については、整数オーバーフローで飽和を参照してください。
ベクトル演算を高速化するために使用する SIMD 内部パラメーターのレベル。'Portable'、'Full'、または 'None' として指定します。詳細については、ハードウェア SIMD アクセラレーションを参照してください。
アプリケーションごとの最大スタック使用量 (バイト単位)。正の整数として指定します。詳細については、最大スタック使用量を参照してください。
生成されたコードで使用する言語。'C' または 'C++' として指定します。詳細については、言語を参照してください。
R2024b 以降
生成されたコードでプリコンパイルされたライブラリを使用するかどうか。'Prefer' または 'Avoid' として指定します。詳細については、プリコンパイルされたライブラリの使用を参照してください。
MATLAB コマンド ラインでのコード生成の進行状況の表示。'Info'、'Silent'、または 'Verbose' として指定します。詳細については、詳細なコンパイラ出力を表示を参照してください。
例
コードを生成できる MATLAB 関数を記述します。この例では、入力の合計を返す関数 myadd を使用します。
function c = myadd(a,b) c = a + b; end
MEX 関数生成用の構成オブジェクトを作成します。
cfg = coder.config('mex');既定値を使用しないプロパティの値を変更します。たとえば、Just-In-Time (JIT) コンパイルを有効にします。
cfg.EnableJIT = true;
codegen を使用してコードを生成します。-config オプションを使用して構成オブジェクトを codegen に渡します。入力引数が double 型のスカラーであることを指定します。
codegen myadd -config cfg -args {1 1} -report
代替機能
構成オブジェクトを作成する代わりに、MEX 関数の生成で既定の構成パラメーター値を使用するには、構成オブジェクトを指定せずに、または -config:mex オプションを使用して codegen を呼び出すことができます。
バージョン履歴
R2011a で導入新しいプロパティ UsePrecompiledLibraries により、生成されたコードがプラットフォーム固有のプリコンパイルされたライブラリを使用する範囲を指定できます。
引用符を使用して、CustomInclude、CustomLibrary、および CustomSource コード構成パラメーターに対して空白を含む単一のファイル名またはパス (例: '"folder1\folder2\sp ace\fun3.c"') を指定しようとすると、コード ジェネレーターでエラーが生成されます。
コード構成オブジェクトで区切り記号を含む文字ベクトルまたは string スカラーを使用して複数のファイル名、パス、または予約名を指定すると、エラーが発生します。代わりに string 配列または文字ベクトルの cell 配列を使用してください。たとえば、複数のフォルダー名をインクルードするには、CustomInclude で string 配列を cfg.CustomInclude = ["C:\Project","C:\Custom Files"]; として使用するか、文字ベクトルの cell 配列を cfg.CustomInclude = {'C:\Project','C:\Custom Files'}; として使用して、生成コードのコンパイル用のパスをインクルードできます。
引用符を使用して CustomInclude、CustomLibrary、および CustomSource コード構成プロパティに対して空白を含む単一のファイル名またはパス (たとえば、'"sp ace/fun3.c"') を指定すると、警告が生成されます。この用法は、将来のリリースで削除される予定です。
将来のリリースでは、DynamicMemoryAllocation プロパティは削除される予定です。
可変サイズの配列に対してメモリを動的に割り当てるには、EnableDynamicMemoryAllocation プロパティを使用してください。動的メモリ割り当てしきい値を構成するには、DynamicMemoryAllocationThreshold プロパティを使用します。
コード構成オブジェクトでの区切り記号を含む文字ベクトルまたは string スカラーを使用した複数のファイル名、パス、予約名の指定は将来のリリースで削除される予定であり、使用すると警告が発生します。代わりに string 配列または文字ベクトルの cell 配列を使用してください。たとえば、複数のフォルダー名をインクルードするには、CustomInclude で string 配列を cfg.CustomInclude = ["C:\Project","C:\Custom Files"]; として使用するか、文字ベクトルの cell 配列を cfg.CustomInclude = {'C:\Project','C:\Custom Files'}; として使用して、生成コードのコンパイル用のパスをインクルードできます。
将来のリリースでは、コード構成オブジェクトでの区切り記号を含む文字ベクトルまたは string スカラーを使用した複数のファイル名、パス、予約名の指定は削除される予定です。代わりに string 配列または文字ベクトルの cell 配列を使用してください。たとえば、複数のフォルダー名をインクルードするには、CustomInclude で string 配列を cfg.CustomInclude = ["C:\Project","C:\Custom Files"]; として使用するか、文字ベクトルの cell 配列を cfg.CustomInclude = {'C:\Project','C:\Custom Files'}; として使用して、生成コードのコンパイル用のパスをインクルードできます。
MATLAB Command
You clicked a link that corresponds to this MATLAB command:
Run the command by entering it in the MATLAB Command Window. Web browsers do not support MATLAB commands.
Web サイトの選択
Web サイトを選択すると、翻訳されたコンテンツにアクセスし、地域のイベントやサービスを確認できます。現在の位置情報に基づき、次のサイトの選択を推奨します:
また、以下のリストから Web サイトを選択することもできます。
最適なサイトパフォーマンスの取得方法
中国のサイト (中国語または英語) を選択することで、最適なサイトパフォーマンスが得られます。その他の国の MathWorks のサイトは、お客様の地域からのアクセスが最適化されていません。
南北アメリカ
- América Latina (Español)
- Canada (English)
- United States (English)
ヨーロッパ
- 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)