前提条件となる製品の設定
CUDA® コードの生成に GPU Coder™ を使用するには、前提条件となる製品のインストールで指定された製品をインストールします。
MEX の設定
GPU Coder で CUDA MEX を生成する場合、コード ジェネレーターは MATLAB® に付属の NVIDIA® コンパイラとライブラリを使用します。開発用コンピューターのオペレーティング システムによっては、MEX コード ジェネレーターの設定のみが必要です。
メモ
GPU Coder は、MATLAB Runtime を使用して生成された CUDA MEX ファイルのスタンドアロンでの展開をサポートしません。
Windows システム
C/C++ 言語用に複数バージョンの Microsoft® Visual Studio® コンパイラを Windows® システムにインストールしている場合、MATLAB によって 1 つが既定のコンパイラとして選択されます。選択されたコンパイラに GPU Coder でサポートされているバージョンとの互換性がない場合は、選択を変更してください。サポートされている Microsoft Visual Studio のバージョンについては、前提条件となる製品のインストールを参照してください。
既定のコンパイラを変更するには、mex -setup C++
コマンドを使用します。mex -setup C++
を呼び出すと、MATLAB に別のコンパイラを設定するためのリンクを含むメッセージが表示されます。リンクを選択し、MEX ファイルをビルドするための既定のコンパイラを変更します。選択したコンパイラは、mex -setup C++
を呼び出して別の既定のコンパイラを選択するまで既定が維持されます。詳細については、既定のコンパイラの変更を参照してください。mex -setup C++
コマンドでは C++ 言語コンパイラのみが変更されます。mex -setup C
を使用して C の既定のコンパイラも変更しなければなりません。
Linux プラットフォーム
Linux® プラットフォームでは、MATLAB および CUDA Toolkit は C/C++ 言語の GCC/G++ コンパイラのみをサポートします。サポートされている GCC/G++ のバージョンについては、前提条件となる製品のインストールを参照してください。
環境変数
スタンドアロン コード (スタティック ライブラリ、ダイナミック リンク ライブラリ、または実行可能プログラム) 生成には追加の設定要件があります。GPU Coder は、環境変数を使用してコード生成に必要なツール、コンパイラ、およびライブラリの場所を特定します。
メモ
Windows では、ツール、コンパイラ、ライブラリへのパスにスペースまたは特殊文字が含まれていると、ビルド プロセス中に問題が生じる可能性があります。スペースが含まれない場所にサードパーティー製のソフトウェアをインストールするか、Windows 設定を変更して、ファイル、フォルダー、およびパスの省略名の作成を有効にしなければなりません。詳細については、MATLAB Answers で "Using Windows short names" の解決法を参照してください。
プラットフォーム | 変数名 | 説明 |
---|---|---|
Windows | CUDA_PATH | CUDA Toolkit インストールへのパス。 次に例を示します。
|
NVIDIA_CUDNN | cuDNN インストールのルート フォルダーへのパス。ルート フォルダーには、bin、include、および lib サブフォルダーが含まれます。 次に例を示します。
| |
NVIDIA_TENSORRT | TensorRT インストールのルート フォルダーへのパス。ルート フォルダーには、bin、data、include、および lib サブフォルダーが含まれます。 次に例を示します。
| |
OPENCV_DIR | ホストの OpenCV のビルド フォルダーへのパス。深層学習の例をビルドおよび実行するにはこの変数が必要です。 次に例を示します。
| |
PATH | CUDA 実行可能ファイルへのパス。通常、CUDA Toolkit インストーラーによりこの値は自動的に設定されます。 次に例を示します。
| |
次に例を示します。
| ||
TensorRT の 次に例を示します。
| ||
OpenCV のダイナミック リンク ライブラリ (DLL) へのパス。深層学習の例を実行するにはこの変数が必要です。 次に例を示します。
| ||
Linux | PATH | CUDA Toolkit 実行可能ファイルへのパス。 次に例を示します。
|
OpenCV ライブラリへのパス。深層学習の例をビルドおよび実行するにはこの変数が必要です。 次に例を示します。
| ||
OpenCV ヘッダー ファイルへのパス。深層学習の例をビルドするにはこの変数が必要です。 次に例を示します。
| ||
LD_LIBRARY_PATH | CUDA ライブラリ フォルダーへのパス。 次に例を示します。
| |
cuDNN ライブラリ フォルダーへのパス。 次に例を示します。
| ||
TensorRT™ ライブラリ フォルダーへのパス。 次に例を示します。
| ||
ターゲット ハードウェアの ARM® Compute Library フォルダーへのパス。 次に例を示します。
ARM ターゲット ハードウェアで | ||
NVIDIA_CUDNN | cuDNN ライブラリ インストールのルート フォルダーへのパス。 次に例を示します。
| |
NVIDIA_TENSORRT | TensorRT ライブラリ インストールのルート フォルダーへのパス。 次に例を示します。
| |
ARM_COMPUTELIB | ARM ターゲット ハードウェアにインストールされる ARM Compute Library のルート フォルダーへのパス。ARM ターゲット ハードウェアでこの値を設定します。 次に例を示します。
|
設定の検証
開発用コンピューターに、GPU コード生成に必要なすべてのツールと構成があることを検証するには、関数 coder.checkGpuInstall
を使用します。この関数は、GPU コード生成に必要なすべてのサードパーティ製ツールおよびライブラリが環境にあるかどうかを検証するためのチェックを実行します。coder.gpuEnvConfig
オブジェクトを関数に渡さなければなりません。この関数は、与えられた構成オブジェクトで指定されたプロパティに基づいて GPU コード生成環境を検証します。
同じチェックを実行する同等の GUI ベースのアプリケーションである GPU 環境のチェックを使用することもできます。このアプリケーションを開くには、MATLAB コマンド gpucoderSetup
を使用します。
MATLAB コマンド ウィンドウに、次のように入力します。
gpuEnvObj = coder.gpuEnvConfig;
gpuEnvObj.BasicCodegen = 1;
gpuEnvObj.BasicCodeexec = 1;
gpuEnvObj.DeepLibTarget = 'tensorrt';
gpuEnvObj.DeepCodeexec = 1;
gpuEnvObj.DeepCodegen = 1;
results = coder.checkGpuInstall(gpuEnvObj)
以下に示す出力は代表的なものです。実際の結果は異なる可能性があります。
Compatible GPU : PASSED CUDA Environment : PASSED Runtime : PASSED cuFFT : PASSED cuSOLVER : PASSED cuBLAS : PASSED cuDNN Environment : PASSED TensorRT Environment : PASSED Basic Code Generation : PASSED Basic Code Execution : PASSED Deep Learning (TensorRT) Code Generation: PASSED Deep Learning (TensorRT) Code Execution: PASSED results = struct with fields: gpu: 1 cuda: 1 cudnn: 1 tensorrt: 1 basiccodegen: 1 basiccodeexec: 1 deepcodegen: 1 deepcodeexec: 1 tensorrtdatatype: 1 profiling: 0