본문 바로가기
IT기술노트/컴퓨터구조 및 운영체제

GPGPU(General Purpose Graphic Processing Units)

by 비트코기 2023. 10. 19.

GPGPU(General Purpose Graphic Processing Units)


I. GPU의 수행능력 확대, GPGPU의 개요

- GPU를 그래픽 연산 외, 일반 컴퓨팅 영역에서 활용하는 것을 목적으로 중앙처리장치가 담당하던 응용 프로그램의 계산에 GPU를 사용하는 기술

- 등장배경 : 기계학습의 성장, 빅데이터 처리 필요

- 특징 : 초병렬 SIMD/SIMT 구조, 플랫폼 지원


II. GPGPU의 구성도 및 구성요소

가, GPGPU의 구성도

- GPGPU 아키텍처는 여러개의 SM들로 구성되며, SM은 여러개의 SP로 구성

 

나. GPGPU의 구성요소

구분 구성요소 설명
멀티 프로세서 SM - Stream Multiprocessor
- 제어 로직과 명령 캐시를 공유하는 수많은 스트리밍 프로세서(SP)로 구성된 멀티 프로세서
- SM에 독립적 명령어 스케줄러 보유
- 다수 스레드 동시 실행
SM SP - Streaming Processor
- 기본적 논리/수학 연산을 수행하고 MDA(Multiply-Add) 명령어도 지원하여 한클럭당 2개의 연산 수행이 가능한 프로세서
SFU - Special Function Units
- 초월 함수, 픽셀 Attribute 보간 등의 연산에 사용되며 4개의 부동 소숫점 곱셈기 포함
Shared Memory - 16KB 용량으로, 블록의 스레드들이 data 교환을 위해 공유하는 메모리
메모리 Global Memory - GPU에서 가장 큰 메모리로 CUDA 코딩 시 모든 데이터 저장
스케줄링 단위 WARP - SM에 할당된 스레드들을 32개씩 한 사이클에 동시에 수행하도록 하는 스케줄링
지원 소프트웨어 CUDA - Compute Unified Device Architecture
- GPU에서 수행하는 병령처리 알고리즘을 C언어를 비롯한 표준 언어를 사용하여 작성할 수 있도록 하는 GPGPU 기술

III. GPGPU 플랫폼

- CUDA, OpenCL, OpenACC, C++AMP

- OpenCL(Open Computing Language)은 CPU, GPU, DSP등의 프로세서로 이루어진 이종 플랫폼에서 실행되는 프로그램 작성을 도와주는 프레임워크

반응형

댓글