이 글은 학부 수업을 들으면서 개인적으로 정리한 글입니다. 잘못된 내용이 있다면 댓글로 말씀 부탁드립니다!
CUDA(Comute Unified Device Architecture)는 이름에서도 확인 가능하듯이 기기나 프로그래밍 언어가 아닌 하나의 시스템(또는 모델)이다.
엔비디아(NVIDIA)가 개발, 관리하고 있으며 이 아키텍처를 사용하기 위해서는 엔비디아 GPU와 특별한 처리 드라이버가 필요하다.
GPGPU
먼저 쿠다에 대한 얘기를 하기 전, GPGPU라는 기술에 대해 알아야 한다.
예전의 GPU는 일반적으로 컴퓨터 그래픽스 분야에 주로 활용했다.
GPGPU(General Purpose computing on Graphics Processing Units)는 일반적으로 컴퓨터 그래픽스를 위한 계산에 사용됐던 GPU를 컴퓨터 내의 다른 계산에도 사용할 수 있도록 하는 기술이다.
CUDA
엔비디아에서 개발한 쿠다(CUDA)는 병렬 처리를 위한 알고리즘을 C와 C++ 같은 언어를 사용해 작성할 수 있도록 하는 GPGPU 기술이다.
쿠다를 통해 개발자들은 쿠다가 지원하는 GPU의 병렬 계산 요소 고유의 명령어 집합과 메모리에 접근할 수 있고, GPU의 각 코어는 수천 쓰레드(thread)를 동시에 실행시킬 수 있다.
지원 언어
쿠다는 C/C++를 가장 기본으로 지원한다.
아래 NVDIA CUDA에서 제공하는 자료에 나오듯이, Java, Python 등에서도 사용이 가능하다. (Wrapper)
[참고자료]
[1] https://ko.wikipedia.org/wiki/CUDA
[2] https://ko.wikipedia.org/wiki/GPGPU
[3] https://docs.nvidia.com/cuda/cuda-c-programming-guide/index.html
'컴퓨터 공학 Computer Engineering > 병렬 컴퓨팅 Parallel Computing' 카테고리의 다른 글
[CUDA] 쿠다 프로그램 작성해보기 (.cu 확장자) (2) | 2021.09.18 |
---|---|
병렬 컴퓨팅 소개 (CPU, GPU, 발전 과정) (2) | 2021.09.04 |