主要内容

このページの翻訳は最新ではありません。ここをクリックして,英語の最新版を参照してください。

coder.gpuConfig

GPU编码器を使用したMATLABコードからのCUDAコード生成用の構成パラメーター

説明

coder.gpuConfigオブジェクトには,GPU编码器™を使ってCUDA®墨西哥人,スタティックライブラリ,ダイナミックリンクライブラリ,または実行可能プログラムを生成するためにcodegenで使用される構成パラメーターが含まれています。配置オプションを使用してこのオブジェクトを関数codegenに渡します。

作成

説明

cfg = coder.gpuConfig (build_typeは,指定したビルドタイプのコード生成構成オブジェクトを作成します。このビルドタイプには,CUDA墨西哥人,スタティックライブラリ,ダイナミックリンクライブラリ,または実行可能プログラムを指定できます。嵌入式编码器®製品がインストールされている場合,スタティックライブラリ,ダイナミックリンクライブラリ,または実行可能ファイルのビルドタイプ用の编码器。EmbeddedCodeConfigオブジェクトを作成します。

cfg = coder.gpuConfig (build_type“是”,假)は、嵌入式编码器製品がインストールされている場合でもCUDA“自由”“dll”,またはexe”出力を生成するためのコード生成構成オブジェクトを作成します。

cfg = coder.gpuConfig (build_type“是”,真的)は、嵌入式编码器製品がインストールされていない場合でも编码器。EmbeddedCodeConfig構成オブジェクトを作成します。ただし,编码器。EmbeddedCodeConfigオブジェクトを使用したコード生成には,嵌入式编码器のライセンスが必要です。

入力引数

すべて展開する

生成されたCUDA C / c++コードからビルドする出力。次の表のいずれかの値を指定します。

説明
墨西哥人的 CUDA墨西哥人
“自由” スタティックライブラリ
“DLL” ダイナミックリンクライブラリ
EXE” 実行可能プログラム

プロパティ

すべて展開する

编码器。GpuConfigには,コード構成オブジェクトのGPU固有の構成パラメーターのみが含まれます。コード構成オブジェクトのすべてのプロパティを表示するには,编码器。CodeConfigおよび编码器。EmbeddedCodeConfigを参照してください。

次の表のいずれかの値を使用したCUDA (* .cu)ファイルの生成制御。

説明
真正的

この値は既定値です。

CUDAコード生成を有効にします。

CUDAコード生成を無効にします。

例:cfg.GpuConfig.Enabled = true

生成されたCUDAコードで使用されるメモリ割り当て(malloc)モード。次の表のいずれかの値を指定します。

説明
“离散”

この値は既定値です。

生成コードでは、CPUとGPU間でのデータ転送にcudaMallocAPIが使用されます。プログラマの観点から見ると,この離散モードでは,個別のCPUおよびGPUのグローバルメモリアドレス空間を使う従来のメモリアーキテクチャが使用されます。

“统一”

生成コードでは,共有(統合)されたCPUおよびGPUグローバルメモリアドレス空間を使うcudaMallocManagedAPIが使用されます。

詳細については,離散および管理モードを参照してください。

例:cfg.GpuConfig.MallocMode =“离散”

生成コードのすべてのカーネルに対してカスタム名の接頭辞を指定します。たとえば値“CUDA_”を使用すると,CUDA_kernel1CUDA_kernel2などの名前のカーネルが作成されます。名前を指定しない場合,GPU编码器によって,カーネル名の先頭にエントリポイント関数の名前が追加されます。カーネル名には大文字,小文字,0 ~ 9の数字,アンダースコア文字_を使用できます。GPU编码器は,サポートされていない文字をカーネル名から削除し、先頭がアルファベット文字でない接頭辞にはαを追加します。

例:cfg.GpuConfig.KernelNamePrefix = ' myKernel '

数学関数の呼び出しとNVIDIA®cuBLASライブラリの呼び出しの置換。次の表のいずれかの値を指定します。

説明
真正的

この値は既定値です。

GPU编码器で,適切な数学関数の呼び出しをcuBLASライブラリの呼び出しと置き換えられるようにします。CUDAの置換先がない関数の場合、GPU Coder は移植可能な MATLAB®関数を使用してそれらをGPUにマッピングすることを試みます。

生成コードにおけるcuBLASライブラリの使用を無効にします。

詳細については,ライブラリの呼び出しのカーネルを参照してください。

例:cfg.GpuConfig.EnableCUBLAS = true

数学関数の呼び出しとNVIDIAcuSOLVERライブラリの呼び出しの置換。次の表のいずれかの値を指定します。

説明
真正的

この値は既定値です。

GPU编码器で,適切な数学関数の呼び出しをcuSOLVERライブラリの呼び出しと置き換えられるようにします。CUDAの置換先がない関数の場合、GPU Coder は移植可能な MATLAB 関数を使用してそれらを GPU にマッピングすることを試みます。

生成コードにおけるcuSOLVERライブラリの使用を無効にします。

詳細については,ライブラリの呼び出しのカーネルを参照してください。

例:cfg.GpuConfig.EnableCUSOLVER = true

関数fftの呼び出しとNVIDIAcuFFTライブラリの呼び出しの置換。次の表のいずれかの値を指定します。

説明
真正的

この値は既定値です。

GPU编码器で,適切なfftの呼び出しをcuFFTライブラリの呼び出しと置き換えられるようにします。

生成コードにおけるcuFFTライブラリの使用を無効にします。このオプションを指定すると,GPU编码器はCFFTWライブラリを使用する(利用可能な場合)か,移植可能なMATLABfftコードからカーネルを生成します。

詳細については,ライブラリの呼び出しのカーネルを参照してください。

例:cfg.GpuConfig.EnableCUFFT = true

生成されたCUDAコードへのベンチマークコードの追加を制御します。次の表のいずれかの値を使用します。

説明

この値は既定値です。

生成されたCUDAコードにベンチマーク機能は含まれません。

真正的

ベンチマーク機能を含むCUDAコードを生成します。このオプションはcudaEventなどのCUDA APIを使用し,内核memcpyなどのイベントの時間を正確に計測します。

例:cfg.GpuConfig.Benchmarking = true

生成されたCUDAコードにエラーチェック機能を追加します。次の表のいずれかの値を使用します。

説明

この値は既定値です。

生成されたCUDAコードにエラーチェック機能は含まれません。

真正的

CUDA APIやカーネルの呼び出しに対するエラーチェックを使用してコードを生成します。

例:cfg.GpuConfig.SafeBuild = true

コード生成に最低限の计算能力を選択します。计算能力は,GPUハードウェアでサポートされている機能を識別します。現在のGPUで利用できるハードウェア機能や命令を判断するために実行時のアプリケーションで使用されます。カスタム计算能力を指定すると,GPU编码器はこの設定を無視します。

例:cfg.GpuConfig.ComputeCapability = ' 6.1 '

それを対象にCUDA入力ファイルをコンパイルしなければならないNVIDIA仮想GPUアーキテクチャの名前を指定します。

たとえば,仮想アーキテクチャタイプ拱= compute_50を指定します。拱= sm_50を使用すると,実際のアーキテクチャを指定できます。詳細については,CUDAツールキット ドキュメンテーションの「转向GPU代码生成的选项“トピックを参照してください。

例:cfg.GpuConfig.CustomComputeCapability = '拱= compute_50 '

GPUコンパイラに追加フラグを渡します。たとえば,——fmad = falseは,学校网站コンパイラに対し,浮動小数点の乗算と加算を単一の浮動小数点積和演算(FMAD)命令へと縮約することを無効化するように指示します。

類似のNVIDIAコンパイラオプションについては,CUDAツールキットドキュメンテーションの”NVCC命令选项“のトピックを参照してください。

例:cfg.GpuConfig.CompilerFlags = '——fmad = false '

GPUスレッドあたりの最大スタック制限を整数値で指定します。

例:cfg.GpuConfig.StackLimitPerThread = 1024

整数で指定したサイズを超えると,にプライベート変数が,スタックではなくヒープに割り当てられるようにします。

例:cfg.GpuConfig.MallocThreshold = 256

NVIDIA驱动プラットフォームなどのマルチGPU環境で,ターゲットにするCUDAデバイスを指定します。

例:cfg.GpuConfig.SelectCudaDevice = <的DeviceID >

メモ

gpuDeviceおよびSelectCudaDeviceが同じGPUを指している場合のみ,SelectCudaDevicegpuArrayと共に使用できます。gpuDeviceが別のGPUを指している場合,CUDA_ERROR_INVALID_VALUEランタイムエラーがスローされます。

すべて折りたたむ

GPUコード生成に適したMATLAB関数からCUDA墨西哥人関数を生成します。また,コード生成レポートも有効にします。

MATLAB関数VecAddを書き込みます。この関数は,入力一个およびBのベクトル加算を実行します。

函数[C] = VecAdd (A, B)% # codegenC = coder.nullcopy(0(大小(A)));coder.gpu.kernelfun ();C = a + b;结束

墨西哥人関数を生成するために,コード生成構成オブジェクトを作成します。

cfg = coder.gpuConfig (墨西哥人的);

コード生成レポートを有効にします。

cfg.GpuConfig.EnableCUBLAS = true;cfg。GenerateReport = true;

配置オプションを使って構成オブジェクトを指定して,現在のフォルダーに墨西哥人関数を生成します。

%生成MEX函数和代码生成报告codegen配置cfgarg游戏{0(512512年,“双”),0(512512年,“双”)}VecAdd

制限

  • GPU编码器は,コード構成オブジェクトのPassStructByReferenceプロパティを常に真正に設定します。

R2017bで導入