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의 차이점

비교 항목GPUCPU
사용 목적그래픽 처리범용 계산 처리
코어 개수저성능 코어 다수 탑재
(수백 ~ 수천)
고성능 코어 소수 탑재
(1 ~ 128)
연산 방식부동 소수점 연산고정/부동 소수점 연산
병렬 처리병렬 처리에 최적화직/병렬 처리 가능
병렬처리는 GPU보다 낮은 수준
프로그래밍 플랫폼CUDA, OpenCL, OpenACCGCC, JAVA, Python
주요 제조사NVIDIAIntel, AMD
  • 일반 연산을 그래픽 파이프라인에 연결하여 그래픽이 아닌 데이터에 스트림 프로세싱에 사용하는 GPGPU 다수 활용 추세

 

[참고]

  • 소프트웨어정책연구소(SPRi), “이슈리포트, AI 성능개선을 위한 클라우드 GPU 가상화 기술의 현황과 향후방향”, 2020. 04

콘텐츠 사용 시 출처 표기 부탁 드리고, 댓글은 큰 힘이 됩니다^^