メインコンテンツ

このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。

前提条件となる製品の設定

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 インストールのルート フォルダーへのパス。ルート フォルダーには、bin サブフォルダー、include サブフォルダー、lib サブフォルダーが含まれます。

C:\Program Files\NVIDIA\CUDNN\v8.9\
NVIDIA_TENSORRT

TensorRT インストールのルート フォルダーへのパス。ルート フォルダーには、bin サブフォルダー、data サブフォルダー、include サブフォルダー、lib サブフォルダーが含まれます。

C:\Program Files\NVIDIA\CUDA\v12.2\TensorRT\
PATH

CUDA 実行可能ファイルへのパス。通常、CUDA Toolkit インストーラーにより、この値は自動的に設定されます。

C:\Program Files\NVIDIA\CUDA\v12.2\bin

cudnn.dll ダイナミック ライブラリへのパス。このライブラリ名はご使用のシステムでは異なる可能性があります。

C:\Program Files\NVIDIA\CUDNN\v8.9\bin

TensorRT の nvinfer* ダイナミック ライブラリへのパス。このライブラリ名はご使用のシステムでは異なる可能性があります。

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 ターゲット ハードウェアで LD_LIBRARY_PATH を設定します。

/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

参考

アプリ

関数

オブジェクト

トピック