1. GPGPU의 개요

가. 정의

GPGPU는 그래픽 처리를 위해 설계된 GPU의 대규모 병렬 연산능력을 범용 응용프로그램의 연산에 활용하는 병렬 컴퓨팅 기술이다.

나. 등장배경

  • AI·과학연산·영상처리 등 대규모 병렬연산 요구 증가
  • CPU의 소수 고성능 Core 방식에서 GPU의 다수 Core를 활용한 병렬처리로 연산 가속

2. GPGPU 구조 및 구성요소

3. GPGPU 처리과정

① 데이터 전송 → ② Kernel 실행 → ③ 병렬연산 → ④ 결과 회수

① CPU가 Main Memory의 데이터를 GPU Memory로 전송
② CPU(Host)가 GPU에 Kernel 실행 명령
③ GPU의 다수 Thread가 병렬로 연산 수행
④ 연산 결과를 GPU Memory에서 Main Memory로 전송

→ 최근에는 Unified Memory, 고속 인터커넥트 등 활용으로 병목 해소

4. GPGPU 특징 및 활용

장점높은 병렬처리 성능, 높은 메모리 대역폭, 부동소수점·행렬연산에 유리
단점분기·복잡한 흐름제어에 불리, 병렬화 가능한 문제만에 적합, CPU-GPU 데이터 전송 오버헤드
CPUCore당 성능보다 다수 Core를 이용한 Throughput 중심
활용AI/DL : 행렬·Tensor 연산 가속
HPC : 기상예측, 유체해석, 과학 시뮬레이션
영상처리 : Rendering, Encoding, Computer Vision

5. GPGPU 프로그래밍 플랫폼

플랫폼특징
CUDANVIDIA, CUDA C/C++, Kernel 기반 병렬 프로그래밍, NVIDIA GPU 종속
OpenCLKhronos Group, CPU·GPU 등 이기종 플랫폼 지원, 높은 이식성
OpenACCDirective 기반 병렬화, 기존 C/C++/Fortran 코드의 GPU 가속 용이
C++ AMPMicrosoft의 C++ 기반 병렬 프로그래밍 모델, DirectX 기반 GPU 활용




댓글

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다