CUDA란?

CUDA(Compute Unified Device Architecture, 쿠다)는 그래픽 처리 장치(GPU)에서 수행하는 (병렬 처리)알고리즘을 C프로그래밍 언어를 비롯한 산업표준언어를 사용하여 작성할 수 있도록 하는 GPGPU 기술입니다. CUDA는 NVIDIA가 개발해오고 있으며 이 아키텍처를 사용하려면 NVIDIA GPU와 특별한 스트림 처리 드라이버가 필요합니다. CUDA는 G8X GPU로 구성된 GeForce 8시리즈급 이상에서 동작합니다. CUDA는 CUDA GPU 안의 명령셋과 대용량 병렬 처리 메모리를 접근할 수 있도록 해 줍니다.


CUDA 작업 처리 및 현재

NVIDIA사의 그래픽 처리 장치 내부에 여러 개의 CUDA코어들이 들어있는데, 이 여러 개의 코어들이 병렬로 묶인 채 동시에 작업을 수행하여 일을 처리합니다.  CUDA코어의 개수가 많아질수록 더 좋은 성능을 낼수 있습니다. NVIDIA사의 최상급 게이밍 GPU인 GEFORCE GTX 590에는 1024개의 CUDA코어를 가지고 있습니다. 590이 580을 두개로 묶은 거라서 512 * 2 = 1024가 됩니다.



나머지 GPU들은 아래와 같은 CUDA코어 수를 가지고 있습니다.


GTX580: 512개

GTX570: 480개

GTX480: 480개

GTX460: 336개

GTS450: 192개

GT440: 144개

GT430: 96개

GT420: 48개

GT8600: 32개


CUDA의 단점

CUDA기술을 사용하려면 우선 지원되는 하드웨어, 소프트웨어가 필요합니다. AMD의 GPU를 쓰시는 분들은 CUDA를 쓸 수 없고 OpenCL을 써야합니다. 아직까지 OpenCL이 보편화되지 않은 지금은 CUDA가 거의 독점하다 시피 한 상태입니다. OpenCL은 오픈소스, 즉 소스가 공개되어 있어서 여러 개발자들이 OpenCL에 대한 개발에 참여할 수 있어서 가능성이 매우 커보입니다. 하지만 OpenCL이 보편화되지 않은 지금은 CUDA가 거의 독점하다 시피 한 상태입니다.



하지만 CUDA란 기술이 좋은 점은 CPU가 하는 일을 GPU가 떠맡게 되서 CPU에게 일거리를 더 줄 수 있으며, 많은 소프트웨어에서 CUDA 기술을 지원하고 있습니다. 대표적 동영상 프로그램인 어도비프리미어, 소니베가스에서도 CUDA를 통해 CPU에 많은 부하를 줄여 더 빠른 작업처리 효과를 얻을 수 있습니다.