このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。
前提条件となる製品の設定
CUDA® コード生成に GPU Coder™ を使用するには、前提条件となるソフトウェアをセットアップします。生成されたコードをコンパイルするには、コンパイラを設定します。スタンドアロン コードを展開するには、生成されたコードが使用するライブラリの場所を特定するための環境変数を追加で設定しなければなりません。GPU Coder に必要なソフトウェアとバージョンの詳細については、前提条件となる製品のインストールを参照してください。
コンパイラの設定
生成された CUDA コードをコンパイルするには、サポートされているコンパイラをホスト マシンにインストールしなければなりません。
Windows
Windows® では、GPU Coder は Microsoft® Visual C++® コンパイラのみをサポートします。MATLAB® が Windows システム上で複数のコンパイラを検出した場合、そのうちの 1 つが既定のコンパイラとして選択されます。選択されたコンパイラに GPU Coder との互換性がない場合は、選択を変更してください。
既定の C++ コンパイラを変更するには、mex -setup C++ コマンドを使用し、別のコンパイラを設定するために使用できるリンクを含むメッセージを表示します。選択したコンパイラは、mex -setup C++ を呼び出すまで既定の設定が維持されます。詳細については、既定のコンパイラの変更を参照してください。既定の C コンパイラを変更するには、mex -setup C を使用します。
Linux
Linux® プラットフォームでは、GPU Coder は C/C++ 言語用の GCC/G++ コンパイラのみをサポートします。
環境変数の設定
スタンドアロン コードを生成する場合は、コード生成に必要なツール、コンパイラ、およびライブラリの場所を特定するための環境変数も設定しなければなりません。NVIDIA® GPU 用のコードを生成するには、CUDA Toolkit の場所を示すための環境変数も設定します。生成されたコードでサードパーティのライブラリを使用するには、それらのライブラリの場所を特定するための環境変数も設定しなければなりません。
GPU Coder は、MEX 関数の生成および GPU 上での Simulink® シミュレーションの高速化のために、MATLAB とともにインストールされるホスト コンパイラと NVIDIA ライブラリを使用します。MEX 関数の生成やシミュレーションの高速化のために環境変数を設定する必要はありません。
メモ
GPU Coder は、MATLAB Runtime を使用して生成された CUDA MEX ファイルのスタンドアロンでの展開をサポートしません。
R2025a の場合: NVIDIA TensorRTTM ライブラリは、MEX 関数の生成や Simulink シミュレーションの高速化のために、MATLAB に既定でインストールされません。TensorRT ライブラリを使用するには、
gpucoder.installTensorRTを使用して TensorRT ライブラリをインストールしなければなりません。
Windows
Windows 上でスタンドアロン コードを生成して展開するには、これらの環境変数を設定します。
Windows では、ツール、コンパイラ、ライブラリへのパスにスペースまたは特殊文字が含まれていると、ビルド プロセス中に問題が生じる可能性があります。スペースが含まれない場所にサードパーティ製のソフトウェアをインストールするか、Windows 設定を変更して、ファイル、フォルダー、およびパスの省略名の作成を有効にしなければなりません。詳細については、MATLAB Answers で Windows ショート ネームの使用に関する解決法を参照してください。
| 変数名 | 説明 | パスの例 |
|---|---|---|
CUDA_PATH | CUDA Toolkit インストールへのパス。 | C:\Program Files\NVIDIA\CUDA\v12.2\ |
NVIDIA_CUDNN | cuDNN インストールのルート フォルダーへのパス。ルート フォルダーには、 | C:\Program Files\NVIDIA\CUDNN\v8.9\ |
NVIDIA_TENSORRT | TensorRT インストールのルート フォルダーへのパス。ルート フォルダーには、 | C:\Program Files\NVIDIA\CUDA\v12.2\TensorRT\ |
PATH | CUDA 実行可能ファイルへのパス。通常、CUDA Toolkit インストーラーにより、この値は自動的に設定されます。 | C:\Program Files\NVIDIA\CUDA\v12.2\bin |
| C:\Program Files\NVIDIA\CUDNN\v8.9\bin | |
TensorRT の | C:\Program Files\NVIDIA\CUDA\v12.2\TensorRT\lib | |
OpenCV のダイナミック リンク ライブラリ (DLL) へのパス。深層学習の例を実行するにはこの変数が必要です。 | C:\Program Files\opencv\build\x64\vc15\bin |
Linux
Linux にスタンドアロン コードを展開するには、これらの環境変数を設定します。
| 変数 | 説明 | パスの例 |
|---|---|---|
PATH | CUDA Toolkit 実行可能ファイルへのパス。 | /usr/local/cuda/bin |
OpenCV ライブラリへのパス。深層学習の例をビルドおよび実行するにはこの変数が必要です。 | /usr/local/lib/ | |
OpenCV ヘッダー ファイルへのパス。深層学習の例をビルドするにはこの変数が必要です。 | /usr/local/include/opencv | |
LD_LIBRARY_PATH | CUDA ライブラリ フォルダーへのパス。 | /usr/local/cuda/lib64 |
cuDNN ライブラリ フォルダーへのパス。 | /usr/local/cuda/lib64/ | |
TensorRT™ ライブラリ フォルダーへのパス。 | /usr/local/cuda/TensorRT/lib/ | |
ターゲット ハードウェアの ARM® Compute Library フォルダーへのパス。 ARM ターゲット ハードウェアで | /usr/local/arm_compute/lib/ | |
NVIDIA_CUDNN | cuDNN ライブラリ インストールのルート フォルダーへのパス。 | /usr/local/cuda/ |
NVIDIA_TENSORRT | TensorRT ライブラリ インストールのルート フォルダーへのパス。 | /usr/local/cuda/TensorRT/ |
ARM_COMPUTELIB | ARM ターゲット ハードウェアにインストールされる ARM Compute Library のルート フォルダーへのパス。ARM ターゲット ハードウェアでこの値を設定します。 | /usr/local/arm_compute |
設定の検証
開発用コンピューターに、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