Main Content

필수 제품 준비하기

GPU Coder™를 사용하여 CUDA® 코드를 생성하려면 필수 제품 준비하기에 명시된 제품을 설치하십시오.

MEX 설정

GPU Coder로 CUDA MEX를 생성할 때 코드 생성기는 MATLAB®에 포함된 NVIDIA® 컴파일러와 라이브러리를 사용합니다. 사용자는 해당 개발 컴퓨터의 운영 체제에 맞는 MEX 코드 생성기만 설정하면 됩니다.

참고

GPU Coder는 MATLAB Runtime을 사용하여 생성된 CUDA MEX 파일의 독립 실행형 배포를 지원하지 않습니다.

Windows 시스템

Windows® 시스템에 C/C++ 언어용 Microsoft® Visual Studio® 컴파일러가 여러 버전으로 설치되어 있는 경우 MATLAB은 그중 하나를 디폴트 컴파일러로 선택합니다. 선택된 컴파일러가 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 플랫폼

MATLAB 및 CUDA 툴킷은 Linux® 플랫폼에서 C/C++ 언어용 GCC/G++ 컴파일러만 지원합니다. 지원되는 GCC/G++ 버전은 필수 제품 준비하기 항목을 참조하십시오.

환경 변수

독립 실행형 코드(정적 라이브러리, 동적으로 링크된 라이브러리 또는 실행 프로그램)를 생성하려면 추가적인 설정 요구 사항이 있습니다. GPU Coder는 환경 변수를 사용하여 코드 생성에 필요한 툴, 컴파일러 및 라이브러리를 찾습니다.

참고

Windows에서는 툴, 컴파일러, 라이브러리에 대한 경로에 공백이나 특수 문자가 있으면 빌드 프로세스 중에 문제가 발생할 수 있습니다. 공백이 포함되지 않은 위치에 타사 소프트웨어를 설치하거나, Windows 설정을 변경하여 파일, 폴더, 경로의 짧은 이름을 만들 수 있도록 해야 합니다. 자세한 내용은 MATLAB Answers에서 Using Windows short names 항목을 참조하십시오.

플랫폼변수 이름설명
WindowsCUDA_PATH

CUDA 툴킷 설치 경로.

예:

C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.8\

NVIDIA_CUDNN

cuDNN 설치의 루트 폴더 경로. 루트 폴더에는 bin, include, lib 하위 폴더가 있습니다.

예:

C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.8\

NVIDIA_TENSORRT

TensorRT 설치의 루트 폴더 경로. 루트 폴더에는 bin, data, include, lib 하위 폴더가 있습니다.

예:

C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.8\TensorRT\

OPENCV_DIR

호스트의 OpenCV 빌드 폴더 경로. 이 변수는 딥러닝 예제를 빌드하고 실행하는 데 필요합니다.

예:

C:\Program Files\opencv\build

PATH

CUDA 실행 파일 경로. 일반적으로 CUDA 툴킷 인스톨러는 이 값을 자동으로 설정합니다.

예:

C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.8\bin

cudnn.dll 동적 라이브러리 경로. 이 라이브러리의 이름은 설치 환경에 따라 다를 수 있습니다.

예:

C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.8\bin

TensorRT의 nvinfer* 동적 라이브러리 경로. 이 라이브러리의 이름은 설치 환경에 따라 다를 수 있습니다.

예:

C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.8\TensorRT\lib

OpenCV의 동적 링크 라이브러리(DLL) 경로. 이 변수는 딥러닝 예제를 실행하는 데 필요합니다.

예:

C:\Program Files\opencv\build\x64\vc15\bin

LinuxPATH

CUDA 툴킷 실행 파일 경로.

예:

/usr/local/cuda-11.8/bin

OpenCV 라이브러리 경로. 이 변수는 딥러닝 예제를 빌드하고 실행하는 데 필요합니다.

예:

/usr/local/lib/

OpenCV 헤더 파일 경로. 이 변수는 딥러닝 예제를 빌드하는 데 필요합니다.

예:

/usr/local/include/opencv

LD_LIBRARY_PATH

CUDA 라이브러리 폴더 경로.

예:

/usr/local/cuda-11.8/lib64

cuDNN 라이브러리 폴더 경로.

예:

/usr/local/cuda-11.8/lib64/

TensorRT™ 라이브러리 폴더 경로.

예:

/usr/local/cuda-11.8/TensorRT/lib/

타깃 하드웨어의 ARM® Compute Library 폴더 경로.

예:

/usr/local/arm_compute/lib/

ARM 타깃 하드웨어에서 LD_LIBRARY_PATH를 설정합니다.

NVIDIA_CUDNN

cuDNN 라이브러리 설치의 루트 폴더 경로.

예:

/usr/local/cuda-11.8/

NVIDIA_TENSORRT

TensorRT 라이브러리 설치의 루트 폴더 경로.

예:

/usr/local/cuda-11.8/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
           profiling: 0

참고 항목

함수

객체

관련 항목