[프로그래밍] 05. GPGPU(General-Purpose computing on Graphics Processing Units)

Seoeun Park·2024년 4월 21일

CS

목록 보기
5/10
                          ▲ NVIDIA가 만든 GPGPU 플랫폼 및 API 모델인 CUDA.

🖥️ 개요

GPU가 그래픽 처리에 사용되기 시작한 후, 몇몇 개발자들은 이를 그래픽처리뿐 아니라 범용적인 계산에도 사용할 수 있음을 알게된다.
이후 그래픽카드 제조사도 이러한 범용 계산 기능을 공식적으로 지원하기 시작했으며 이를 GPGPU라고 칭하기 시작했다.


🖥️GPGPU란?

GPU(Graphic Processing Unit)를 그래픽처리 뿐만 아니라 범용적인 계산에 사용하는 것을 칭한다. 따라서 그래픽 처리 개념에 과학 연산의 개념이 덧붙여진 개념으로 이해할 수 있다.

GPGPU를 활용하기 위해서는 이를 지원하는 GPU뿐 아니라 GPU의 명령어셋을 사용할 수 있게 해주는 소프트웨어 레이어가 필요한데, 대표적으로 NVIDIA의 CUDA와 범용으로 사용 가능한 OpenCL이 있습니다.


🖥️ GPU와 GPGPU의 차이는?

원래 GPU의 용도는 그래픽 처리를 위한 보조 장치였지만 컴퓨터의 중앙처리 장치인 CPU를 대신해 데이터 연산 및 처리를 하는 범용 계산 장치로 쓰이게 되었다.
즉, GPU와 GPGPU의 차이는 GPU의 활용도에 따라 명칭의 차이가 있다. (해당 유닛이 GPU라는 본질에는 차이가 없다.)

CPU는 순차적으로 작업을 처리하는 직렬 형태로 복잡한 계산 처리가 가능하지만 GPU의 병렬 형태의 계산 처리에 비해 속도 차이가 상당하기 때문에, 머신러닝 등에서 GPGPU를 활용하고 있다.

그래픽 처리 도구였던 GPU가 범용 계산 장치로 쓰이게 되면서 그래픽 카드 제조사에서도 관련 기능들을 지원하기 시작했고, 그중 대표적인 것이 NVIDIA 사에서 나온 CUDA이다.

🖥️ GPGPU의 활용

GPGPU는 위에서 언급한 것처럼 상당량의 단순 연산(행렬곱)에 기반을 두고 있으며, 이는 GPU가 병렬로 처리하기 아주 적합하기 때문에 주로 머신러닝 분야에서 사용된다.
이외에도 렌더링, 영상 인코딩/디코딩, 유체 시뮬레이션, 암호화폐 채굴 등 다양한 분야에서 활발히 활용되고 있다.

계속적인 인공지능(AI) 이슈로 GPU의 수요와 가치는 폭증하고 있으며, 이러한 고성능 자원을 보유하는 일뿐만 아니라, 효율적으로 관리하고 사용할 수 있게 하는 HPC 솔루션에 대한 관심도 급증하고 있다.


출처 :
https://www.clunix.com/insight/it_trends.php?boardid=ittrend&mode=view&idx=774
https://sparcs.org/blog/introducing-gpu/

profile
게임 개발 공부 시작!

0개의 댓글