이 번역 페이지는 최신 내용을 담고 있지 않습니다. 최신 내용을 영문으로 보려면 여기를 클릭하십시오.
필수 제품 설정하기
GPU Coder™를 사용하여 CUDA® 코드를 생성하려면 필수 소프트웨어를 설정하십시오. 생성된 코드를 컴파일하려면 컴파일러를 설정하십시오. 독립 실행형 코드를 배포하려면, 생성 코드에서 사용하는 라이브러리를 찾는 환경 변수를 추가로 설정해야 합니다. GPU Coder에 필요한 소프트웨어와 버전에 대한 자세한 내용은 필수 제품 설치하기 항목을 참조하십시오.
컴파일러 설정하기
생성된 CUDA 코드를 컴파일하려면 지원되는 컴파일러를 호스트 컴퓨터에 설치해야 합니다.
Windows
Windows®에서, GPU Coder는 Microsoft® Visual C++® 컴파일러만 지원합니다. MATLAB®이 Windows 시스템에서 여러 개의 컴파일러를 감지하면 그중 하나를 디폴트 컴파일러로 선택합니다. 선택된 컴파일러가 GPU Coder와 호환되지 않는 경우 컴파일러 선택을 변경하십시오.
디폴트 C++ 컴파일러를 변경하려면 mex -setup C++
명령을 사용하여 다른 컴파일러를 설정할 수 있는 링크가 포함된 메시지를 표시하십시오. 사용자가 선택한 컴파일러는 mex -setup C++
를 호출하기 전까지 디폴트 컴파일러로 유지됩니다. 자세한 내용은 디폴트 컴파일러 변경하기 항목을 참조하십시오. C의 디폴트 컴파일러를 변경하려면 mex -setup C
를 사용하십시오.
Linux
Linux® 플랫폼에서 GPU Coder는 C/C++ 언어용 GCC/G++ 컴파일러만 지원합니다.
환경 변수 설정하기
독립 실행형 코드를 생성하려면, 코드 생성에 필요한 툴, 컴파일러 및 라이브러리를 찾는 환경 변수도 설정해야 합니다. NVIDIA® GPU용 코드를 생성하려면, CUDA 툴킷을 찾는 환경 변수를 설정하십시오. 생성 코드에 타사 라이브러리를 사용하려면, 해당 라이브러리를 찾는 환경 변수도 설정해야 합니다.
MEX 함수를 생성하고 GPU에서 Simulink® 시뮬레이션을 가속화하기 위해, GPU Coder는 호스트 컴파일러와 NVIDIA 라이브러리를 사용합니다(MATLAB과 함께 설치됨). MEX 함수를 생성하거나 시뮬레이션을 가속화하기 위해 환경 변수를 설정할 필요가 없습니다.
참고
GPU Coder는 MATLAB Runtime을 사용하여 생성된 CUDA MEX 파일의 독립 실행형 배포를 지원하지 않습니다.
R2025a에서는: MEX 함수 생성이나 Simulink 시뮬레이션 가속화를 위해 NVIDIA TensorRTTM 라이브러리가 MATLAB에 기본적으로 설치되지 않습니다. TensorRT 라이브러리를 사용하려면
gpucoder.installTensorRT
를 사용해서 설치해야 합니다.
Windows
Windows에서 독립 실행형 코드를 생성하고 배포하려면 다음 환경 변수를 설정하십시오.
Windows에서는 툴, 컴파일러, 라이브러리에 대한 경로에 공백이나 특수 문자가 있으면 빌드 프로세스 중에 문제가 발생할 수 있습니다. 공백이 포함되지 않은 위치에 타사 소프트웨어를 설치하거나, Windows 설정을 변경하여 파일, 폴더, 경로의 짧은 이름을 만들 수 있도록 해야 합니다. 자세한 내용은 MATLAB Answers에서 Windows 짧은 이름을 사용하는 해결책을 참조하십시오.
변수 이름 | 설명 | 예시 경로 |
---|---|---|
CUDA_PATH | CUDA 툴킷 설치 경로. | 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 툴킷 인스톨러는 이 값을 자동으로 설정합니다. | 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 툴킷 실행 파일 경로. | /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