GPU Coder는 MATLAB 코드와 Simulink 모델로부터 최적화된 CUDA® 코드를 생성합니다. 생성된 코드는 딥러닝, 임베디드 비전, 레이다 및 신호 처리 알고리즘 내 병렬화 가능 부분에 대한 CUDA 커널을 포함합니다. 생성된 코드는 높은 성능을 위해 NVIDIA® TensorRT™를 호출할 수 있습니다. 생성된 CUDA를 프로젝트에 소스 코드 또는 정적/동적 라이브러리로서 통합하고 NVIDIA Jetson™ 및 NVIDIA DRIVE™ 플랫폼에 임베딩된 GPU 등의 최신 NVIDIA GPU에 맞게 컴파일할 수 있습니다. Jetson 및 DRIVE 플랫폼에서 주변기기에 액세스하고 수작업으로 작성된 CUDA를 생성된 코드에 통합할 수 있습니다.
GPU Coder와 Embedded Coder를 함께 사용하면 생성된 CUDA를 프로파일링하여 병목 지점과 성능을 최적화할 기회를 식별할 수 있습니다. 양방향 링크를 사용해서 MATLAB 코드와 생성된 CUDA 간의 추적 작업을 수행할 수 있습니다. SIL(Software-in-the-Loop) 및 PIL(Processor-in-the-Loop) 테스트를 통해 생성된 코드의 수치적 동작을 검증할 수 있습니다.
MATLAB에서 CUDA 코드 생성
MATLAB 알고리즘으로부터 생성된 CUDA 코드를 데스크탑 RTX 카드부터 데이터 센터, 임베디드 Jetson 및 DRIVE 플랫폼에 이르기까지 널리 쓰이는 NVIDIA GPU에 대해 컴파일하고 실행할 수 있습니다. 생성된 코드는 고객에게 사용료 없이 무료로 배포할 수 있습니다.
Simulink에서의 CUDA 코드 생성
GPU Coder와 Simulink Coder를 함께 사용하여 Simulink 모델로부터 CUDA 코드를 생성하고 NVIDIA GPU에 배포할 수 있습니다. NVIDIA GPU에서 Simulink 시뮬레이션의 계산 집약적 부분을 가속화할 수 있습니다.
NVIDIA Jetson 및 DRIVE로의 배포
GPU Coder는 생성된 코드를 NVIDIA Jetson 및 DRIVE 플랫폼에 배포하는 작업을 자동화합니다. 주변기기에 액세스하고 센서 데이터를 수집하며 알고리즘과 주변기기 인터페이스 코드를 보드에 배포하여 단독으로 실행할 수 있습니다.
딥러닝에 사용 가능한 코드 생성
미리 정의되거나 사용자 지정된 다양한 딥러닝 신경망을 NVIDIA GPU에 배포할 수 있습니다. 훈련된 딥러닝 신경망과 더불어 전처리나 후처리에 사용되는 코드를 생성하여 전체 알고리즘을 배포할 수 있습니다.
생성된 코드 최적화
GPU Coder는 메모리 관리, 커널 융합, 자동 조정을 포함한 최적화를 자동으로 적용합니다. INT8 또는 bfloat16 코드를 생성하여 메모리 사용량을 줄일 수 있습니다. TensorRT와 통합하여 성능을 더욱 향상할 수 있습니다.
신호 기록, 파라미터 조정 및 코드 동작 검증
Simulink Coder와 GPU Coder를 함께 사용하면 실시간으로 신호를 기록하고 파라미터를 조정할 수 있습니다. MATLAB과 생성된 CUDA 코드 간의 대화형 방식 추적을 위해 Embedded Coder를 추가하여 생성된 CUDA 코드의 동작을 SIL 테스트를 통해 수치적으로 검증할 수 있습니다.
MATLAB 및 Simulink 시뮬레이션 가속화
생성된 CUDA 코드를 MATLAB 코드로부터 MEX 함수로서 호출하여 실행 속도를 높일 수 있습니다. GPU Coder와 Simulink Coder를 함께 사용하면 NVIDIA GPU에서 Simulink 모델에 있는 MATLAB Function 블록의 계산 집약적 부분을 가속화할 수 있습니다.
제품 관련 자료:
“데이터 주석부터 딥러닝 모델의 선택, 훈련, 테스트, 미세 조정에 이르기까지, MATLAB에는 우리에게 필요한 모든 툴이 있었습니다. 또한 GPU Coder 덕분에 GPU 관련 경험이 부족했어도 NVIDIA GPU로의 배포를 신속히 진행할 수 있었습니다.”
Valerio Imbriolo, Drass Group