Main Content

coder.CuDNNConfig

CUDA Deep Neural Network library による深層学習コード生成を構成するためのパラメーター

説明

coder.CuDNNConfig オブジェクトには、深層ニューラル ネットワークの CUDA® コード生成に codegen で使用される NVIDIA® cuDNN 固有のパラメーターが含まれています。

コード生成に coder.CuDNNConfig オブジェクトを使用するには、これを、codegen に渡す coder.gpuConfig オブジェクトの DeepLearningConfig プロパティに割り当てます。

作成

ターゲット ライブラリを 'cudnn' に設定して関数 coder.DeepLearningConfig を使用し、cuDNN 構成オブジェクトを作成します。

プロパティ

すべて展開する

自動調整機能を有効または無効にします。自動調整を有効にすると、cuDNN ライブラリで最速の畳み込みアルゴリズムを見つけられるようになります。これにより、SegNetResNet などの規模が大きなネットワークのパフォーマンスが向上します。

サポートされている層で推論計算の精度を指定します。32 ビット浮動小数点の推論を実行する場合、'fp32' を使用します。8 ビット整数には、'int8' を使用します。既定値は 'fp32' です。

INT8 の精度には、Compute Capability 6.1 以上の CUDA GPU が必要です。Compute Capability 6.2 では INT8 の精度をサポートしていません。GpuConfig オブジェクトの ComputeCapability プロパティを使用して、適切な Compute Capability 値に設定します。

メモ

cuDNN version 8.1.0 を使用して INT8 の精度で推論を実行する場合、NVIDIA ライブラリの問題により、パフォーマンスが大幅に低下する可能性があります。

キャリブレーション データを含んだ MAT ファイルの場所。既定値は '' です。このオプションは、DataType'int8' に設定されている場合にのみ適用できます。

深層畳み込みニューラル ネットワークの量子化を実行する際、関数 calibrate (Deep Learning Toolbox) は、このネットワークを用いて、畳み込み層と全結合層の重みとバイアスのダイナミック レンジ、およびネットワークのすべての層の活性化のダイナミック レンジを収集します。最適化ネットワークのコードを生成するには、関数 calibrate の結果を MAT ファイルに保存し、この MAT ファイルの場所をこのプロパティを使用してコード ジェネレーターに指定します。詳細については、深層学習ネットワーク用の INT8 コードの生成を参照してください。

読み取り専用の値。ターゲット ライブラリ名を指定します。

すべて折りたたむ

関数 coder.loadDeepLearningNetwork を使用して resnet50 (Deep Learning Toolbox) SeriesNetwork オブジェクトを読み込むエントリポイント関数 resnet_predict を作成します。

function out = resnet_predict(in)

persistent mynet;
if isempty(mynet)
    mynet = coder.loadDeepLearningNetwork('resnet50', 'myresnet');
end

out = predict(mynet,in);

MEX コード生成用の coder.gpuConfig 構成オブジェクトを作成します。

cfg = coder.gpuConfig('mex');

ターゲット言語を C++ に設定します。

cfg.TargetLang = 'C++';

coder.CuDNNConfig 深層学習構成オブジェクトを作成し、それを cfg 構成オブジェクトの DeepLearningConfig プロパティに割り当てます。

cfg.DeepLearningConfig = coder.DeepLearningConfig('cudnn');

関数 codegen-config オプションを使用して cfg 構成オブジェクトを渡します。関数 codegen は、MATLAB® 関数入力のサイズ、クラス、および実数/複素数を決定しなければなりません。-args オプションを使用して、エントリポイント関数の入力のサイズを指定します。

codegen -args {ones(224,224,3,'single')} -config cfg resnet_predict;

codegen コマンドはすべての生成されたファイルを codegen フォルダーに配置します。このフォルダーには、エントリポイント関数 resnet_predict.cu の CUDA コード、ヘッダー ファイル、畳み込みニューラル ネットワーク (CNN) の C++ クラス定義を含むソース ファイル、重みファイル、およびバイアス ファイルが含まれます。

バージョン履歴

R2018b で導入