GPU Coder

 

GPU Coder

NVIDIA GPU에 활용할 수 있는 CUDA 코드 생성

GPU Coder를 사용하면 MATLAB 코드로부터 최적화된 CUDA 코드를 생성하여 딥러닝, 임베디드 비전, 자율 시스템에 활용할 수 있습니다. 생성된 코드는 최적화 NVIDIA CUDA 라이브러리를 호출하고, 프로젝트에 소스 코드, 정적 라이브러리 또는 동적 라이브러리로써 통합시킬 수 있으며, NVIDIA Tesla나 NVIDIA Tegra와 같은 GPU에 프로토타이핑하는 데 사용할 수 있습니다. MATLAB 내에서 생성된 CUDA를 사용하여 MATLAB 코드에서 계산 집약적인 부분을 가속화할 수 있습니다. GPU Coder를 이용하면 MATLAB 알고리즘과 생성된 코드에 기존의 CUDA 코드를 통합시킬 수 있습니다.

GPU Coder를 Embedded Coder®와 함께 사용하여 SIL(software-in-the-loop) 테스팅을 통해, 생성된 코드의 결과를 검증 할 수 있습니다.

빠르고 유연한 CUDA 코드 생성

최적화 CUDA 코드 생성. 로열티 없이 코드 배포.

로열티 없이 알고리즘 배포

코드를 생성하고 컴파일하여 데스크탑 시스템, 데이터 센터, 임베디드 하드웨어 등에 널리 사용되는 NVIDIA GPU에서 실행하십시오. 생성된 코드는 로열티가 없습니다. 상용 응용 프로그램에서 고객에게 무료로 배포할 있습니다.

Explore gallery (2 images)

지원되는 툴박스 및 함수로부터 코드 생성

GPU Coder는 다양하고 폭넓은 MATLAB 언어 기능을 이용하여 코드를 생성합니다. 설계 엔지니어는 이 코드를 이용해서 더 큰 시스템의 구성요소인 알고리즘을 개발할 수 있습니다. MATLAB 및 툴박스에는 390개가 넘는 연산자 및 함수가 포함되어 있습니다.

코드 생성을 위한 MATLAB 언어 및 툴박스 지원.

레거시 코드 통합

레거시 코드 통합 기능을 활용하여 신뢰할 수 있는 또는 최적화 수준이 높은 CUDA 코드를 MATLAB 알고리즘에 통합하고 테스트한 다음에, 생성된 코드에서 해당 CUDA 코드를 호출해 보십시오.

생성된 코드에 기존 CUDA 코드를 통합.

딥러닝 네트워크에서 CUDA 코드 생성

딥러닝 툴박스를 이용하여, 학습된 딥러닝 네트워크를 배포

엔드 투 엔드 딥러닝 알고리즘 배포

Deep Learning Toolbox™에 있는 ResNet-50, SegNet 등 학습된 다양한 딥러닝 네트워크를 NVIDIA GPU에 배포하십시오. 학습된 딥러닝 네트워크 이외에도, 전처리나 후처리에 사용되는 코드를 생성하여 전체 알고리즘을 배포하십시오.

SegNet을 비롯한 학습된 다양한 딥러닝 네트워크를 배포합니다.

추론을 위한 최적 코드를 생성

GPU Coder는 특정 알고리즘과 함께 추론을 실행하는 데 필요한 코드만 생성하기 때문에, 다른 딥러닝 솔루션에 비해 생성되는 코드가 작습니다. 생성된 코드는 TensorRT™, cuDNN을 비롯한 최적화된 라이브러리를 호출합니다.

cuDNN을 이용하여 Titan V GPU에서 VGG-16으로 단일 이미지 추론.

TensorRT를 이용한 최적화

고성능 딥러닝 추론 옵티마이저이며 런타임 라이브러리인 NVIDIA TensorRT와 통합하는 코드를 생성합니다. INT8 또는 FP16 데이터형을 이용하여, 표준 FP32 데이터형에 비해 성능을 한층 업그레이드합니다.

TensorRT와 INT8 데이터형을 이용한 실행 속도 개선

생성된 코드 최적화

GPU Coder에 의해 생성된 코드는 자동으로 최적화가 적용됩니다. 설계 패턴을 활용하여 성능을 더욱 개선할 수 있습니다.

CPU-GPU 간 데이터 전달을 최소화하고 메모리 활용을 최적화

GPU Coder는 MATLAB 코드 세그먼트를 자동으로 분석, 식별, 구분하여 CPU 또는 GPU에서 실행시킵니다. CPU와 GPU 간 데이터 복사 횟수를 최소화하는 기능도 있습니다. 프로파일링 툴을 이용하여 잠재적인 기타 병목 현상을 찾아냅니다.

잠재적인 병목 현상이 표시된 프로파일 보고서.

최적화된 라이브러리를 호출

GPU Coder를 통해 생성된 코드는 TensorRT, cuDNN, cuSolver, cuFFT, cuBLAS, Thrust 등 최적화된 NVIDIA CUDA 라이브러리를 호출합니다. MATLAB 툴박스 함수에서 생성된 코드는 가능할 경우 언제나, 최적화된 라이브러리에 매핑됩니다.

생성된 코드에 기존 CUDA 코드를 통합.

추가적인 속도 향상을 위해 설계 패턴을 활용

스텐실 프로세싱과 같은 설계 패턴은 공유 메모리를 사용하여 메모리 대역폭을 개선합니다. 컨벌루션과 같은 특정한 함수를 사용하면 자동으로 적용됩니다. 특수한 프라그마를 이용하여 수동으로 호출할 수도 있습니다.

스텐실 프로세싱 설계 패턴.

하드웨어에서 프로토타이핑

알고리즘을 자동으로 CUDA 코드로 변환시켜서 하드웨어 속도를 높이십시오.

NVIDIA Jetson 및 DRIVE 플랫폼에 대한 프로토타이핑

GPU Coder™의 NVIDIA® GPU 지원 패키지를 활용하여, 생성된 코드를 자동으로 NVIDIA Jetson™ 및 DRIVE™ 플랫폼에 크로스 컴파일링하고 배포하십시오.

NVIDIA Jetson 플랫폼으로의 프로토타이핑.

MATLAB 및 생성된 코드로부터 주변기기와 센서에 액세스

MATLAB으로부터 NVIDIA 타겟과 원격 통신을 하여, 웹캠과 기타 지원 주변기기에서 데이터를 획득하여 빠르게 프로토타이핑을 하십시오. 단독 실행을 위해 보드에 제공하는 주변기기 인터페이스 코드와 함께 알고리즘을 구축하고 배포하십시오.

MATLAB 및 생성된 코드로부터 주변기기와 센서에 액세스.

프로토타이핑에서 시스템 양산으로 이동

GPU Coder와 Embedded Coder®를 이용하여, 생성된 CUDA 코드와 MATLAB 코드를 하나씩 비교해 가면서 대화형으로 추적하십시오. SIL(software-in-the-loop) 및 PIL(processor-in-the-loop) 테스팅을 이용하여, 하드웨어에서 실행 중인 생성된 코드의 결과를 확인하십시오.

GPU Coder와 Embedded Coder를 활용한 대화형 추적 가능성 보고서.

알고리즘 가속화

CUDA 코드를 생성하고 컴파일하여 MATLAB 내부에서 사용하십시오.

GPU를 이용한 알고리즘 가속화

생성된 CUDA 코드를 MATLAB 코드에서 MEX 함수로서 호출하여, 실행 속도를 높이십시오. 다만 성능은 MATLAB 코드의 내용에 따라 달라질 수 있습니다. 생성된 MEX 함수를 프로파일링하여 병목 현상을 찾아내고 최적화에 집중하십시오.

최신 기능

YOLO V2 물체 탐지기

YOLO V2 물체 탐지기로부터 코드를 생성하여 cuDNN과 Tensor RT 타겟에 사용합니다.

TensorRT 지원

딥러닝 추론 애플리케이션의 FP16 최적화를 활용하는 코드를 생성합니다.

CUDA 최적화 전치 함수

공유 메모리를 이용하여 전치를 적용함으로써 성능 향상

제한 없는 변수 지원

최대 크기를 알 수 없고 컴파일 시간에 치역이 무제한인 변수에 관한 코드를 생성합니다.

pdist, pdist2, cwtfunctions에 관한 코드를 생성합니다.

추가적인 통계, 머신 러닝, 웨이블렛 함수에 관한 코드를 생성합니다.

이러한 기능과 해당 함수에 대한 세부 정보는 릴리스 정보를 참조하십시오.

무료 평가판 받기

30일 동안 사용해 보세요.

다운로드

구매하기

제품별 가격을 확인하세요.

학생이세요?

학생용 MATLAB 및 Simulink를 확인하세요.

자세히 보기