태그: 모바일 편집 모바일 웹 편집 |
태그: 모바일 편집 모바일 웹 편집 |
||
| (같은 사용자의 중간 판 하나는 보이지 않습니다) | |||
| 2번째 줄: | 2번째 줄: | ||
[[분류: 컴퓨터]] | [[분류: 컴퓨터]] | ||
'''CUDA'''는 [[NVIDIA]] 사에서 제공하는 GPGPU 솔루션(CUDA API) 및 그 실행 주체가 되는 [[그래픽 카드]] 내의 연산부(CUDA Core)를 뜻한다. | '''CUDA'''는 [[NVIDIA]] 사에서 제공하는 GPGPU 솔루션(CUDA API) 및 그 실행 주체가 되는 [[그래픽 카드]] 내의 연산부(CUDA Core)를 뜻한다. 현재 GPGPU를 잘 활용하는 신경망 [[인공지능]] 연구 분야에서 절대적인 입지를 가지고 있다 | ||
== 탄생 | == 탄생 배경과 현황 == | ||
그래픽 카드는 원래 2D 및 3D [[렌더링]]을 위해 대량의 SIMD 명령어를 위주로 한꺼번에 작동하도록 특별히 설계된 IC 칩이기 때문에 CPU의 벡터 명령어 집합처럼 벡터 프로세싱에 특화되어 있다. 이때 컴퓨터공학 전문가들이 GPU를 가지고 과학적 연구를 위한 수치 연산을 시도할 것이라는 것을 예상한 NVIDIA는 2006년 발표된 G80 GPU(Geforce 8000번대)부터 MIMD 명령어도 집어넣어 최초로 그래픽스 연산이 아닌 벡터 프로세싱 연산도 지원하도록 개선하고 관련 툴 프로그램(SDK)도 제공하였다. 이에 뒤늦게 2009년에 [[Apple]]이 주도하여 개발한 [[OpenCL]]을 중심으로 [[인텔]]과 [[AMD]]가 반격을 시도했으나 이미 3년이나 벌어진 발표 시기 사이에 CUDA를 활용한 각종 라이브러리가 쏟아져 나왔고 OpenCL의 기능은 CUDA도 다 지원할 수 있었기 때문에 이 CUDA 라이브러리들을 전부 OpenCL로 포팅하는 시도는 대부분 좌절되었고 현재까지도 CUDA가 OpenCL에 비해 범용 연산에 대한 수요 측면에서 우위를 차지하는 환경이 조성되었다. | 그래픽 카드는 원래 2D 및 3D [[렌더링]]을 위해 대량의 SIMD 명령어를 위주로 한꺼번에 작동하도록 특별히 설계된 IC 칩이기 때문에 CPU의 벡터 명령어 집합처럼 벡터 프로세싱에 특화되어 있다. 이때 컴퓨터공학 전문가들이 GPU를 가지고 과학적 연구를 위한 수치 연산을 시도할 것이라는 것을 예상한 NVIDIA는 2006년 발표된 G80 GPU(Geforce 8000번대)부터 MIMD 명령어도 집어넣어 최초로 그래픽스 연산이 아닌 벡터 프로세싱 연산도 지원하도록 개선하고 관련 툴 프로그램(SDK)도 제공하였다. 이에 뒤늦게 2009년에 [[Apple]]이 주도하여 개발한 [[OpenCL]]을 중심으로 [[인텔]]과 [[AMD]]가 반격을 시도했으나 이미 3년이나 벌어진 발표 시기 사이에 CUDA를 활용한 각종 라이브러리가 쏟아져 나왔고 OpenCL의 기능은 CUDA도 다 지원할 수 있었기 때문에 이 CUDA 라이브러리들을 전부 OpenCL로 포팅하는 시도는 대부분 좌절되었고 현재까지도 CUDA가 OpenCL에 비해 범용 연산에 대한 수요 측면에서 우위를 차지하는 환경이 조성되었다. 이후로 나오는 ROCm이나 OneAPI 같은 후발주자도 가뿐하게 물리치는 상황이다. | ||
TensorFlow, Pytorch 같은 신경망 AI 프레임워크들도 모두 CUDA를 사용한 GPU 기반 AI 가속을 중점적으로 지원한다 | |||
== 사용법 == | == 사용법 == | ||