GPU를 사용하여 MATLAB 코드 가속화?
AccelerEyes는 2012 년 12 월 GPU 코드에서 Mathworks와 함께 작동한다고 발표했으며 MATLAB 용 Jacket 제품을 중단했습니다.
http://blog.accelereyes.com/blog/2012/12/12/exciting-updates-from-accelereyes/
불행히도 그들은 더 이상 Jacket 라이센스를 판매하지 않습니다.
내가 아는 한 ArrayFire를 기반으로 한 Jacket GPU Array 솔루션은 MATLAB에서 제공하는 gpuArray 솔루션보다 훨씬 빠릅니다.
gpuArray로 작업을 시작했지만 많은 기능이 제대로 구현되지 않은 것을 확인했습니다. 예를 들어 간단한
myArray(:) = 0
매우 느립니다. 일부 사용자 지정 CUDA-Kernels를 작성했지만 제대로 구현되지 않은 표준 MATLAB 기능은 코드 전체에서 gpuArray를 일관되게 사용하더라도 많은 오버 헤드를 추가합니다. MATLAB 코드를 손으로 작성한 CUDA 코드로 대체하여 몇 가지 문제를 해결했지만 MATLAB 표준 기능을 다시 구현하고 싶지 않습니다.
내가 놓친 또 다른 기능은 희소 GPU 매트릭스입니다.
그래서 내 질문은 다음과 같습니다.
MATLAB에서 제공하는 잘못 구현 된 기본 GPU 구현의 속도를 높이려면 어떻게해야합니까? 특히, GPU를 사용하여 MATLAB에서 희소 행렬 연산의 속도를 높이려면 어떻게해야합니까?
AccelerEyes의 설립자 인 John의 강연에 참석하게되어 기뻤습니다. 그들은 잘못 작성된 코드를 제거하고 여기저기서 몇 비트를 절약 한 코드로 대체했기 때문에 속도 향상을 얻지 못했습니다. 그들의 속도 향상은 대부분 캐시의 가용성을 활용하고 메모리 (GPU) 내에서 많은 작업을 수행하는 데있었습니다. Matlab은 내가 올바르게 기억한다면 GPU와 CPU 간의 데이터 전송에 의존했기 때문에 속도 향상이 미쳤습니다.
MATLAB은 CUDA 기반 GPU를 지원합니다. "Parallel Computing Toolbox"에서 액세스해야합니다. 이 두 링크가 도움이되기를 바랍니다.
주요 특징들
- 여러 프로세서에서 작업 병렬 알고리즘을 실행하기위한 병렬 for 루프 (parfor)
- CUDA 지원 NVIDIA GPU 지원
- 로컬에서 실행되는 작업자를 통해 데스크톱에서 멀티 코어 프로세서를 완전히 사용
- 컴퓨터 클러스터 및 그리드 지원 (MATLAB 분산 컴퓨팅 서버 포함)
- 병렬 애플리케이션의 대화 형 및 일괄 실행
- 대규모 데이터 세트 처리 및 데이터 병렬 알고리즘을위한 분산 배열 및 단일 프로그램 다중 데이터 (spmd) 구성
NVIDIA CUDA 지원 GPU에 대한 MATLAB GPU 컴퓨팅 지원
GPU 컴퓨팅에 MATLAB을 사용하면 C 또는 Fortran을 사용하는 것보다 GPU로 애플리케이션을 더 쉽게 가속화 할 수 있습니다. 익숙한 MATLAB 언어를 사용하면 복잡한 GPU 아키텍처 또는 저수준 GPU 컴퓨팅 라이브러리를 배우지 않고도 CUDA GPU 컴퓨팅 기술을 활용할 수 있습니다.
다음 을 지원하는 Parallel Computing Toolbox를 통해 MATLAB과 함께 GPU를 사용할 수 있습니다 .
- 컴퓨팅 기능 2.0 이상이 있는 CUDA 지원 NVIDIA GPU . 14a 및 이전 릴리스의 경우 컴퓨팅 기능 1.3이면 충분합니다.
- MATLAB에서 직접 GPU 사용
- fft, 필터 및 여러 선형 대수 연산과 같은 GPU 지원 MATLAB 함수
- 툴박스의 GPU 지원 함수 : Image Processing Toolbox, Communications System Toolbox, Statistics and Machine Learning Toolbox, Neural Network Toolbox, Phased Array Systems Toolbox, Signal Processing Toolbox (신호 처리 알고리즘에 대한 GPU 지원에 대해 자세히 알아보기)
- 한 줄의 MATLAB 코드 만 사용하는 MATLAB 응용 프로그램의 CUDA 커널 통합
- Parallel Computing Toolbox 및 MATLAB Distributed Computing Server에서 MATLAB 작업자를 사용하는 데스크탑 및 컴퓨터 클러스터의 다중 GPU
참조 URL : https://stackoverflow.com/questions/16943670/accelerating-matlab-code-using-gpus
'programing' 카테고리의 다른 글
oriento / orientjs의 여러 레코드 선택 및 업데이트 및 워터 라인의 트랜잭션 (0) | 2021.01.16 |
---|---|
Contex 그리기 + 페이지 매김 (0) | 2021.01.16 |
vim의 함수 본문에서 인수 강조 (0) | 2021.01.16 |
Android에서 ColorMatrixFilter를 사용하여 블렌드 모드를 빼시겠습니까? (0) | 2021.01.16 |
static_assert 출력에 유형 이름을 통합 하시겠습니까? (0) | 2021.01.16 |