2020년 9월 28일
GPU (Graphic Processing Unit)
I. 영상 처리, GPU (Graphic Processing Unit)의 개념
- 컴퓨터 모니터에 픽셀(화소)로 투영되는 그래픽 처리를 위해 부동소수점 연산 기반 병렬 처리 특화 처리 장치
- 특히 인공지능(AI)에서 많은 수의 데이터 학습 시 성능 향상, 다중 코어 병렬 연산 환경이 필수적이므로 최근 GPU 활용 폭발적 증가
II. GPU의 구조/구성요소와 핵심 기술
가. 그래픽카드의 구조와 GPU의 구조/구성요소
그래픽카드 구조 | ||
---|---|---|
GPU 구조 | ||
GPU 구성요소 | SP | – Streaming Processor – GPU 기본 Unit 단위, 레지스터와 FP연산, Int연산 사용 |
SM | – Streaming Multiprocessor – 명령어 처리 단위, 명령어에 대한 Fetch/Decode와 처리 | |
TPC | – Texture/Processor Cluster – 그래픽 처리 단위, SM 및 쉐이더, 텍스처 유닛 집합으로 구성 |
- 연산 필요 데이터를 그래픽카드 메모리에 복사하고 GPU 연산 결과를 컴퓨터 메인메모리에 복사하여 그래픽 송출 등 처리
나. GPU의 핵심 기술
구분 | 핵심 기술 | 기능 |
---|---|---|
그래픽 제어 | 렌더링 (Rendering) | – 컴퓨터 프로그램을 사용하여 모델로부터 영상 생성 |
셰이딩 (Shading) | – 빛의 거리와 각도에 따라 물체 표면의 조도 변화 | |
블렌딩 (Blending) | – 2개의 이미지 결합 표현, 투명 오브젝트 생성/제어 | |
연산 제어 | 파이프라인 (Pipeline) | – Instruction 처리 과정을 여러 단계로 세분화하여 병렬처리 |
부동소수점 연산 (FLOPS) | – 소수점 미고정, 지수와 가수를 분리 표기하여 실수 표현 |
- GPU와 CPU는 컴퓨터 데이터 처리 관점에서는 유사하나 세부적으로 사용 목적과 구조, 연산 방식 등 차이점 존재
III. GPU와 CPU의 차이점
비교 항목 | GPU | CPU |
---|---|---|
사용 목적 | 그래픽 처리 | 범용 계산 처리 |
코어 개수 | 저성능 코어 다수 탑재 (수백 ~ 수천) | 고성능 코어 소수 탑재 (1 ~ 128) |
연산 방식 | 부동 소수점 연산 | 고정/부동 소수점 연산 |
병렬 처리 | 병렬 처리에 최적화 | 직/병렬 처리 가능 병렬처리는 GPU보다 낮은 수준 |
프로그래밍 플랫폼 | CUDA, OpenCL, OpenACC | GCC, JAVA, Python |
주요 제조사 | NVIDIA | Intel, AMD |
- 일반 연산을 그래픽 파이프라인에 연결하여 그래픽이 아닌 데이터에 스트림 프로세싱에 사용하는 GPGPU 다수 활용 추세
[참고]
- 소프트웨어정책연구소(SPRi), “이슈리포트, AI 성능개선을 위한 클라우드 GPU 가상화 기술의 현황과 향후방향”, 2020. 04