summary - skkumel.skku.edu/201302_gpu.pdfissue 4 실감 멀티미디어 ui/ux와 고성능...

52
SUMMARY 목적 실감 멀티미디어 UI/UX차세대 고성능 컴퓨팅을 위한 그래픽 프로세서(GPU : Graphics Processing Unit)기술 발전 산업 동향을 심층 조망하여 R&D 과제 기획에 활용하고 관련 분야 종사자들에게 양질의 정보를 제공하고자 주요현황 GPU1980년대 제한된 기능의 전용 하드웨어 구조에서 출발하여 1990년대 후반 프로그래머블 구조로 진화하면서 기능과 성능이 획기적으로 향상되고 있어 PC, 고성능 워크스테이션, 게임기부터 스마트폰, 태블릿, 스마트TV 대부분의 정보가전기기에 채용되고 있음 점진적으로 CPU통합되어 One-chip되는 추세이며 대규모 데이터 병렬 처리가 가능한 구조적 특성과 SW 개발 환경의 발전으로 3D 그래픽스 아니라 과학 학술 연산, 금융 정보 분석, 대규모 시뮬레이션 등에 활용되는 GPGPU(General Purpose GPU)발전해가고 있음 시사점 정책제안 GPU정보 가전 기기를 위한 실감 멀티미디어 UI/UX 구현의 핵심 요소기술인 동시에 범국가적으로 중요한 수퍼 컴퓨팅, 빅데이터, 클라우드 가상화 기술을 위한 대표적인 SoC-SW 융합 기술로 IT 융복합 산업 전반에 파급 효과가 지대하므로 기술 개발과 더불어 부족한 전문 인력 양성에 집중적인 관심과 지원이 필요함 l저자l 한태희 PD / KEIT 시스템반도체 PD실 이유상 책임 / KEIT 시스템반도체 PD실 실감 멀티미디어 UI/UX와 고성능 컴퓨팅을 위한 GPU 기술 및 산업 동향

Upload: others

Post on 25-Jun-2020

1 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: SUMMARY - SKKUmel.skku.edu/201302_GPU.pdfISSUE 4 실감 멀티미디어 UI/UX와 고성능 컴퓨팅을 위한 GPU 기술 및 산업 동향 080 한국산업기술평가관리원 Korea

SUMMARY

목적

� 실감 멀티미디어 UI/UX와 차세대 고성능 컴퓨팅을 위한 그래픽 프로세서(GPU : Graphics Processing Unit)의 기술 발전 및 산업 동향을 심층 조망하여 R&D 과제 기획에 활용하고 관련 분야 종사자들에게 양질의 정보를 제공하고자 함

주요현황

� GPU는 1980년대 제한된 기능의 전용 하드웨어 구조에서 출발하여 1990년대 후반 프로그래머블 구조로 진화하면서 기능과 성능이 획기적으로 향상되고 있어 PC, 고성능 워크스테이션, 게임기부터 스마트폰, 태블릿, 스마트TV 등 대부분의 정보가전기기에 채용되고 있음

� 점진적으로 CPU와 통합되어 One-chip화 되는 추세이며 대규모 데이터 병렬 처리가 가능한 구조적 특성과 SW 개발 환경의 발전으로 3D 그래픽스 뿐 아니라 과학 학술 연산, 금융 정보 분석, 대규모 시뮬레이션 등에 활용되는 GPGPU(General Purpose GPU)로 발전해가고 있음

시사점 및 정책제안

� GPU는 정보 가전 기기를 위한 실감 멀티미디어 UI/UX 구현의 핵심 요소기술인 동시에 범국가적으로 중요한 수퍼 컴퓨팅, 빅데이터, 클라우드 및 가상화 기술을 위한 대표적인 SoC-SW 융합 기술로 IT 융복합 산업 전반에 파급 효과가 지대하므로 기술 개발과 더불어 부족한 전문 인력 양성에 집중적인 관심과 지원이 필요함

l저자l 한태희 PD / KEIT 시스템반도체 PD실

이유상 책임 / KEIT 시스템반도체 PD실

실감 멀티미디어 UI/UX와 고성능 컴퓨팅을 위한 GPU 기술 및 산업 동향

Page 2: SUMMARY - SKKUmel.skku.edu/201302_GPU.pdfISSUE 4 실감 멀티미디어 UI/UX와 고성능 컴퓨팅을 위한 GPU 기술 및 산업 동향 080 한국산업기술평가관리원 Korea

PD ISSUE REPORT FEBRUARY 2013 VOL 13-2KEIT PD Issue Report

한국산업기술평가관리원 Korea Evaluation Institute of Industrial Technology080 081

1. GPU 개요

�GPU(Graphics Processing Unit)란?

� GPU는 광원효과와 객체의 변형 등에 의해 매번 다시 그려지는 컴퓨터 그래픽스(Computer Graphics : CG) 영상 구현에 필요한 수학적 연산이 집약된 작업을 수행하는 특수 목적 프로세서로 탄생하여 초창기에는 그래픽 처리 작업에서 CPU의 부담을 덜어주는 역할을 수행했음

-� GPU라는 용어는 1999년 세계 최초의 GPU인 GeForce 256 싱글칩 프로세서를 출시한 엔비디아(Nvidia)에 의해 대중화되었으며, 업계 라이벌인 ATI(2006년 AMD에 합병)는 2002년 Radeon 9700을 VPU(Visual Processing Unit)로 명명하여 출시함[1]

3D 모델링 : 3D Primitive의 집합 이미지 : 2D 화소(pixel) 배열 * Primitives : 기본 기하구조(점, 선, 삼각형, 다각형)

Ⅰ그림 4-1 3D 그래픽스 처리 과정Ⅰ

� GPU는 컴퓨터 그래픽 조작 과정에서 필요한 고도의 병렬 구조 알고리즘에 대해 CPU보다 매우 효과적인 대블록 단위 데이터 처리가 가능함([그림 4-1] 참조)

-� GPU는 본질적으로, 대중화된 스트림 프로세서(stream processor : SIMD기반 병렬 컴퓨팅 프로세서)라 할 수 있으며 대규모 데이터 병렬처리를 위한 어레이 구조 및 SIMD(Single Instruction Multiple Data) 연산 방식으로 특징화됨

Page 3: SUMMARY - SKKUmel.skku.edu/201302_GPU.pdfISSUE 4 실감 멀티미디어 UI/UX와 고성능 컴퓨팅을 위한 GPU 기술 및 산업 동향 080 한국산업기술평가관리원 Korea

ISSUE 4실감 멀티미디어 UI/UX와 고성능 컴퓨팅을 위한 GPU 기술 및 산업 동향

한국산업기술평가관리원 Korea Evaluation Institute of Industrial Technology080 081

GTX 700 Add-in 그래픽 카드 GTX 700을 구성하는 Kepler기반 GK110 칩

Ⅰ그림 4-2 GPU 구조(엔비디아 GeForce GTX 700Ⅰ

● 인텔 Ivy Bridge● AMD Fusion

DDR3 mDDR2

메모리 컨트롤러메모리 컨트롤러

GPU코어

GPU코어

ARMCPU코어

CPU SoC (선택 사양인 그래픽 카드)

PC 모바일

AP

● 엔비디아 GeForce● AMD Redeon

● Apple A6● 삼성 엑시노스● 퀄컴 Snapdragon● 엔비디아 Tegra

● Imagination PowerVR● ARM Mail● 퀄컴 Adreno● 엔비디아 ULP GeForce

x86 CP코어

High-endDiscreteGPU 칩

GDDR5

Ⅰ그림 4-3 PC vs 모바일 기기에서 CPU-GPU 구현 방식 비교Ⅰ

� GPU는 [그림 4-3]에 보인 바와 같이 Add-in 그래픽 카드 상의 discrete GPU(dGPU)로 존재하거나(예 : 엔비디아 GeForce, AMD Radeon), x86 CPU와 싱글칩으로 통합(예 : PC용 인텔 Ivy Bridge, AMD Fusion), 또는 ARM CPU와 통합된 Application Processor(예 : Apple A6, 삼성전자 엑시노스, 엔비디아 Tegra, 퀄컴 Snapdragon 등)의 코어 IP 등 제품 별 시장 요구 사항(기능/성능/가격/전력소모)에 따라 다양하게 분화되고 있음

-� 그래픽카드용 dGPU가 훨씬 더 많은 연산 자원과 GDDR5 전용 메모리 인터페이스를 갖추고 있어 성능이 우월하나 전력 소모 역시 압도적으로 높음[2]([그림 4-4] 참조)

Page 4: SUMMARY - SKKUmel.skku.edu/201302_GPU.pdfISSUE 4 실감 멀티미디어 UI/UX와 고성능 컴퓨팅을 위한 GPU 기술 및 산업 동향 080 한국산업기술평가관리원 Korea

PD ISSUE REPORT FEBRUARY 2013 VOL 13-2KEIT PD Issue Report

한국산업기술평가관리원 Korea Evaluation Institute of Industrial Technology082 083

Ⅰ그림 4-4 GPU 세그먼트별 트랜지스터 개수 및 전력소모 비교Ⅰ

� 스마트폰을 위시한 모바일 정보 기기에서도 3D 그래픽 및 비디오 기능에 점차 고화질/고해상도를 요구함에 따라 모바일 GPU의 중요성이 갈수록 부각되고 있으며 이에 따른 기술 발전 또한 급속도로 진행 중

Ⅰ그림 4-5 PC에서의 CPU-GPU 통합 추세와 인텔 최신 CPU칩 구조 변화Ⅰ

Page 5: SUMMARY - SKKUmel.skku.edu/201302_GPU.pdfISSUE 4 실감 멀티미디어 UI/UX와 고성능 컴퓨팅을 위한 GPU 기술 및 산업 동향 080 한국산업기술평가관리원 Korea

ISSUE 4실감 멀티미디어 UI/UX와 고성능 컴퓨팅을 위한 GPU 기술 및 산업 동향

한국산업기술평가관리원 Korea Evaluation Institute of Industrial Technology082 083

Latency-oriented, Large cache

Few functional units

Throughput-oriented, Small amount of cache

Large functional units

CPU GPU

Ⅰ그림 4-6 CPU와 GPU의 단순화된 구조 비교Ⅰ

�CPU vs. GPU

� CPU는 범용 SW 처리 목적으로 설계되어 순차 동작 및 단일 쓰레드(thread) latency 최적화 관점의 아키텍처를 기반으로 하는 반면, GPU는 3D 그래픽스를 위한 대규모 데이터 병렬 연산과 throughput 최적화를 목표로 설계되어짐

-� CPU는 제어 구조가 상대적으로 복잡하고 캐시 메모리의 비중이 높은 반면 GPU는 연산을 담당하는 기능 블록(ALU : Arithmetic Logic Unit)이 대규모로 존재하며 캐시는 소량 분산 구조가 일반적임([그림 4-6])

※� GPU는 스트림 처리 방식이므로 데이터 재사용 빈도가 낮고 CPU에 비해 싱글 쓰레드의 latency에 덜 민감하며, 멀티쓰레딩으로 latency hiding을 수행하여 캐시 메모리 용량을 크게 필요로 하지 않음

Ⅰ그림 4-7 CPU - GPU 기술의 진화 추세Ⅰ

Page 6: SUMMARY - SKKUmel.skku.edu/201302_GPU.pdfISSUE 4 실감 멀티미디어 UI/UX와 고성능 컴퓨팅을 위한 GPU 기술 및 산업 동향 080 한국산업기술평가관리원 Korea

PD ISSUE REPORT FEBRUARY 2013 VOL 13-2KEIT PD Issue Report

한국산업기술평가관리원 Korea Evaluation Institute of Industrial Technology084 085

-� GPU는 병렬화된 데이터 경로, 캐시 등 메모리 아키텍처에서 CPU와 많은 차이점을 보이고 있으나(표4-1), 최근 GPU를 범용 어플리케이션에 적용하고자 하는 움직임(GPGPU : General Purpose GPU)에 의해 상당 부분 CPU 진화 구조와 수렴하는 추세([그림 4-7])를 보이고 있음[4]

Ⅰ표 4-1 CPU vs. GPU 특징 비교Ⅰ

CPU GPU

설계 목적 •� 순차적인 명령어 스트림 처리에 적합하도록 설계•� 데이터 병렬성을 갖는 명령어 스트림을 빠르게 수행하도

록 설계

하드웨어자원배분

•� 단일 쓰레드 수행 가속을 위하여, Out-of-order를 지원 하는 수 퍼 스 칼 라 C P U 는 명 령 어 재 배 열 버 퍼

( instruct ion reorder buffer) , 명령어 대기열

(reservation station), 분기예측(branch prediction) 하드웨어, 온 칩 캐시에 많은 트랜지스터가 할당됨

•� 동시 수행되는 수천 개의 쓰레드 지원 및 쓰레드 간 통신, 광대역 메모리 인터페이스 지원을 위해 어레이 구조, 멀티쓰레딩 하드웨어, 공유 메모리, 다중 채널 메모리 컨트롤러 등에 많은 면적이 할당됨

캐시의 역할 •� CPU는 메모리 액세스 상의 latency를 줄여 성능향상을 도모하기 위해 캐시를 사용

•� 메모리 대역폭을 극대화하기 위해 소프트웨어가 관리하는 공유 메모리 형태로 캐시를 운용

Latency 관리

•� 대용량 캐시와 분기예측 하드웨어를 통해 메모리 latency를 핸들링하며 이것으로 인해 상당한 면적과 전력이 소모됨

•� 한 번에 수천 개의 쓰레드를 지원하여, 만일 특정 쓰레드가 메모리 로드를 위해 대기 중이라면 지연 시간 없이 바로 다른 쓰레드로 스위칭 함으로써 latency hiding

멀티쓰레딩 •� 쓰레드 스위칭에 걸리는 시간이 수십~수백 사이클 소요됨 •� 거의 즉각적인 쓰레드 스위칭이 가능

메인 메모리 대역폭

•� 높은 메모리 대역폭이 필요하나 GPU 대비 상대적으로 낮음•� 그래픽 데이터 처리 특성상 온 칩 다중 채널 메모리 컨트

롤러를 지원함으로써 CPU에 비해 10배 이상의 메모리 대역폭을 지원(dGPU의 경우)

Ⅰ표 4-2 프로세서에서의 병렬성(Parallelism) 수준Ⅰ

명령어 수준 병렬성

(Instruction-Level Parallelism : ILP)•� 하나의 명령어 스트림으로부터 독립적인 명령어들을 병렬적으로 수행 (수퍼스칼라, VLIW)

쓰레드 수준 병렬성

(Thread-Level Parallelism : TLP)•� 동시에 독립적인 명령어 스트림을 병렬적으로 수행(멀티쓰레딩, SIMT)

데이터 수준 병렬성

(Data-Level Parallelism : DLP)•� 같은 타입의 데이터에 대한 병렬적 처리(벡터/SIMD)

� CPU는 순차적인 처리와 임의의 메모리 접근 latency를 최소화하기 위해 대용량 캐시와 복잡한 흐름 제어 구조를 가지며,

-� GPU는 단순한 흐름 제어구조와 한정된 캐시를 가지면서 병렬연산 수행을 위한 데이터 처리 기능 블록(예 : ALU)에 보다 많은 면적을 할당하여 throughput을 최대화하는 동시에 멀티쓰레딩을 통해 메모리 latency를 은닉(latency hiding)함

� 프로세서에서의 병렬성(Parallelism) 수준은 [표4-2]와 [그림4-8]과 같이 구분되며, 프로그래밍의 용이성, 병렬수행에서의 유연성, 면적/성능/전력소모 효율성은 해당 프로세서의 병렬성 선택에 대한 기준이 되고 있음

Page 7: SUMMARY - SKKUmel.skku.edu/201302_GPU.pdfISSUE 4 실감 멀티미디어 UI/UX와 고성능 컴퓨팅을 위한 GPU 기술 및 산업 동향 080 한국산업기술평가관리원 Korea

ISSUE 4실감 멀티미디어 UI/UX와 고성능 컴퓨팅을 위한 GPU 기술 및 산업 동향

한국산업기술평가관리원 Korea Evaluation Institute of Industrial Technology084 085

-� SIMD는 명령어 수준에서 하나의 명령어로 동시에 다중 데이터를 처리하는 개념이며 프로그래밍 단계에서 고려되어 컴파일 시 수행이 스케줄링 됨

-� SIMT(Single Instruction Multiple Thread)는 명령어 스트림에서 하드웨어적 핸들링을 통해 동일한 기능 블록을 공유하는 쓰레드형 명령어를 동시에 처리하는 구조로 실제 수행 시(run time) 동적으로 스케줄링이 이루어짐

※� SIMT는 엔비디아가 고안한 용어로 넓은 의미에서 SIMD의 부분 집합에 해당

컴파일 시 스케줄됨(SW적)

데이터 수준병령성(DLP)

명령어 수준병령성(ILP)

VLIW(Very Long Instruction Word)

SIMDVector SIMT

Superscalar,SMT (Simultaneous Multi-

threading)

실행 시 동적 스케줄됨(HW적)

Ⅰ그림 4-8 프로세서 병렬성 분류Ⅰ

GPGPU(General Purpose GPU)

� 초기 GPU는 고정된 파이프라인 구조로 그래픽 렌더링을 보조하는 그래픽 가속 전용 hardwired 로직 형태로 개발됨

-� VLSI 기술이 진보함에 따라 기능/성능 확장성이 용이한 프로그래머블 프로세서로 진화하였으며 3D 게임과 같은 어플리케이션에서 실감도 요구가 증가함에 따라 메모리 대역폭과 성능의 고도화가 빠르게 이루어져오고 있음[5]

� 최근 다양한 대규모 병렬 처리 연산이 필수적인 수퍼 컴퓨팅 분야에서 GPU를 활용하기 시작

※� 2012년 11월 발표된 세계 Top 500 수퍼컴퓨터 중 GPU를 탑재한 기기는 총 62대로 전년 동기 대비 58% 증가했으며, 세계 최고 수퍼컴퓨터로 선정된 미국 테네시주 오크리지 국립연구소(Oak Ridge National Laboratory)에 위치한 타이탄 수퍼컴퓨터는 AMD 옵테론 6274 CPU와 함께 엔비디아의 Kepler 아키텍처 기반 Tesla K20 GPU가 채용되고 있음[6]

-� GPU 벤더들이 이러한 수요를 인식하여 범용 컴퓨팅을 위한 GPU 아키텍처 튜닝, C-like 프로그래밍 환경 개발 등의 노력을 통해 보다 유연한 아키텍처인 GPGPU로 진화하고 있음

Page 8: SUMMARY - SKKUmel.skku.edu/201302_GPU.pdfISSUE 4 실감 멀티미디어 UI/UX와 고성능 컴퓨팅을 위한 GPU 기술 및 산업 동향 080 한국산업기술평가관리원 Korea

PD ISSUE REPORT FEBRUARY 2013 VOL 13-2KEIT PD Issue Report

한국산업기술평가관리원 Korea Evaluation Institute of Industrial Technology086 087

Ⅰ표 4-3 범용 GPU(GPGPU) 응용 분야[8]Ⅰ

응용분야 특징

선형 대수 연산 •� 데이터 스트림을 texture로, shader 프로그램을 커널로 간주하면 저밀도/고밀도 행렬 연산이 가능함

유체 시뮬레이션•� 일반적으로 Navier-Strokes 방정식(2차 편미분 방정식을 포함한 연립 방정식)이 사용되어 막대한 연산

시간이 소모되나, GPU를 이용한 병렬 연산을 통해 획기적으로 개선 가능

디지털 신호 처리 •� Convolution 기반의 DWT(Discrete Wavelet Transform)에 SIMD 알고리즘을 적용해 고속 처리 가능함

데이터베이스 처리 •� 관계형 Query, 논리곱 선택, 집단화 명령의 속도를 향상

분자동역학•� 분자 모델링에서 가장 많이 사용하는 연산인 쌍 포텐셜(Pair Potential) 분리는 CPU에 비해 수십 배 이상

빠르게 연산 가능함

HPC(High Performance Computing)

•� GPGPU를 MPP(Massive Parallel Processing)로 구성하는 수퍼컴퓨터가 다수 등장하고 있음

� GPGPU는 GPU의 대규모 데이터 병렬 처리 기능을 활용하여 CPU가 전통적으로 취급했던 응용 프로그램들의

계산을 수행하는 기술임

-� 프로그램 가능한 단정도(single precision) 및 배정도(double precision) 부동 소수점 연산을 그래픽

파이프라인에 연결하여, 스트림 프로세싱이 가능하게 됨

※� 배정도 부동소수점 연산은 제한적으로 지원됨

-� GPU는 그래픽 처리에 특화 설계되어 CPU에 비해 제어 구조와 SW 개발 환경, 효과적으로 하드웨어를 사용하는

방식 등에 제약이 있으나 지속적으로 개발 편의성 측면에서 발전하고 있음

� GPU의 범용 프로그래밍이 가능한 표준 API(Application Program Interface)와 SDK(SW Development Kit)가

속속 등장하면서 활용도가 증대됨[7]

-� 2006년 엔비디아는 멀티 GPU 제어를 지원하며 유연한 인터페이스와 메모리 scattering을 제공하는 병렬

컴퓨팅 플랫폼이자 프로그래밍 모델인 CUDA(Compute Unified Device Architecture)를 발표

-� 같은 해, 엔비디아의 업계 라이벌인 ATI는 GPGPU 컴퓨팅을 위한 low-level API인 CTM(Close To Metal)을

발표하였으나, AMD에 인수 합병된 이후 AMD는 CTM 대신 OpenCL로 전환하였고 이후 다양한 그래픽스 API와

OpenCL 및 DirectCompute를 지원하는 Stream SDK를 제공하고 있음

-� 2008년 Apple, AMD, IBM, 인텔, 엔비디아가 참여한 크로노스 그룹(Khronos Group)에서 C 언어 기반의

개방형 범용 병렬 컴퓨터 프레임워크인 OpenCL(Open Computing Language)을 발표

※� OpenCL은 초기 Apple에 의해 개발된 이후 AMD, IBM, 인텔, 엔비디아와의 협력을 통해 완성된 1.0 버전이

크로노스 그룹에 의해 2008년 12월 승인되어 공개됨

-� 수퍼컴퓨팅에 GPU 활용이 늘어나고 있는 것은 사실이나 CPU에 비해 여전히 미흡한 범용성과 함께 더욱

개선되어야 할 SW 개발 환경, 숙련된 GPU SW 인력 부족 등이 GPGPU 확산에 있어 문제점으로 지적되고 있음

Page 9: SUMMARY - SKKUmel.skku.edu/201302_GPU.pdfISSUE 4 실감 멀티미디어 UI/UX와 고성능 컴퓨팅을 위한 GPU 기술 및 산업 동향 080 한국산업기술평가관리원 Korea

ISSUE 4실감 멀티미디어 UI/UX와 고성능 컴퓨팅을 위한 GPU 기술 및 산업 동향

한국산업기술평가관리원 Korea Evaluation Institute of Industrial Technology086 087

�모바일 임베디드 GPU

� 배터리로 구동되는 모바일 디바이스는 임베디드 시스템 특성상 데스크톱 시스템보다 자원의 제약이 심하기 때문에 모바일 GPU 설계에는 특별한 기법이 필요[9]

-� 전력 소모 제약 : 저전력 이슈는 모바일 디바이스에 한정된 것은 아니지만, 데스크톱 대비 고강도의 저전력 기법이 시스템 수준에서 회로/소자 수준까지 요구됨

-� 메모리 용량 및 대역폭 제약 : 모바일에서는 CPU코어와 GPU코어가 같은 메모리 버스를 공유하여 dGPU처럼 전용 GDDR5 초고속 메모리 인터페이스 사용이 불가능하므로, 모바일 GPU는 이미지를 세부 구역화하여 처리하는 타일(tile) 기반 렌더링 같은 특별한 기법을 사용

-� OpenGL 대신, 임베디드 시스템을 위해 OpenGL의 부분 집합으로 경량화하여 개발된 OpenGL ES(OpenGL Embedded System)을 지원

� 모바일 GPU의 제한된 하드웨어 성능과 프로그래밍 환경으로 인해 그래픽 파이프라인의 동작을 재정의하는 shader 및 그래픽 파이프라인 처리 과정을 빌려 수행하는 병렬 처리에 제약이 많음

� 모바일 GPU가 OpenCL을 지원하면서, 병렬처리 프로그래밍 자율성이 증대됨

-� OpenCL을 이용해 GPGPU 기반 프로그래밍을 수행하는 경우, 특히 공유 메모리 사용, 병렬 쓰레드 간의 동기화, 가용 메모리 공간 전체에 대한 scatter 연산이 가능하므로 구현 가능한 알고리즘의 범위가 증가함

Ⅰ그림 4-9 최신 스마트폰의 모바일 GPU 채용 현황[10]Ⅰ

�GPU 시장 동향

� 그래픽스 처리 관련 하드웨어 및 소프트웨어 세계 시장은 2013년 123억 달러(출처 : IDC 2010)로 예상되며 엔비디아, AMD, Imagination 社등이 시장을 선점하고 있음

-� 다수의 시장 조사기관에서 멀티코어 GPGPU를 이용한 데이터 병렬 처리 및 멀티미디어 가속 기술이 향후 모바일, 데스크톱, 정보가전, HPC에 필요한 시스템반도체의 성능, 가격, 확장성 등에 직접적인 영향을 줄 것으로 예측하고 있으며,

Page 10: SUMMARY - SKKUmel.skku.edu/201302_GPU.pdfISSUE 4 실감 멀티미디어 UI/UX와 고성능 컴퓨팅을 위한 GPU 기술 및 산업 동향 080 한국산업기술평가관리원 Korea

PD ISSUE REPORT FEBRUARY 2013 VOL 13-2KEIT PD Issue Report

한국산업기술평가관리원 Korea Evaluation Institute of Industrial Technology088 089

-� 기존 3D 그래픽스 뿐 아니라 가상/증강현실을 이용한 UI/UX, 웹브라우징, 범용 컴퓨팅을 위한 GPU 관련 산업(HW, SW, 콘텐츠, 서비스)이 지속적인 성장을 할 것으로 전망됨

� GPU 시장은 size, 가격, 성능 요구사항에 의해 다양하게 분화하고 있음 : 엔비디아 GeForce나 AMD의 Radeon 같은 고성능 discrete GPU부터, x86 CPU와 싱글칩 통합된 형태(인텔 Ivy Bridge, AMD Fusion), 엔비디아 Tegra나 퀄컴 Snapdragon 같은 임베디드 모바일 계열 등

� 2010년도 Jon Peddie Research社의 GPU 시장 조사 자료에 의하면 PC GPU 시장에서(Discrete & Integrated GPU) 인텔이 43.5%, 엔비디아 31.5%, AMD가 24.0%의 시장 점유율을 보이고 있으며[2],

-� Discrete GPU로 한정할 경우 2012년 3Q 기준 엔비디아가 63.7%, AMD가 34.4%로 시장을 독점 양분하고 있음

� 모바일 GPU(노트북 등 x86 CPU탑재 제품 제외 )의 경우 2010년까지 PowerVR의 기술력을 앞세운 Imagination社가 50%내외의 압도적 시장 점유율을 보였고, AP-모뎀 통합 칩을 앞세운 퀄컴이 33%로 그 뒤를 이었으나, 2011년 삼성전자 엑시노스 AP에 ARM Mali GPU 코어가 탑재되면서 ARM의 시장 점유율이 한때 20%(분기 실적 기준)까지 상승

-� 모바일 기기에서도 게임, UI/UX를 중심으로 고성능 3D 그래픽스 기능을 요구함에 따라 멀티 Shader 기반의 GPU 코어가 AP(Application Processor)에 광범위하게 채용되고 있으며 성능 향상 경쟁이 치열하게 전개되고 있음

-� 차세대 스마트 기기(스마트폰, 태블릿, 패블릿 등)는 지능형 3D UI/UX를 기반으로 사용자 편의성 및 디바이스-사용자간의 상호작용에 집중할 것으로 보이며, 이를 위해 3D 영상인식, 가상·증강현실 등을 강화한 디바이스로 발전할 것으로 전망

� 그래픽/멀티미디어 분야 전문 시장 조사기관인 Jon Peddie Research에 의하면, CPU와 GPU를 통합한 Integrated graphics solution이 GPU의 자연스런 진화 방향임에도 불구하고 성능과 SW 문제로 인해 discrete GPU(dGPU) 시장을 대체하기는 당분간 불가능할 것으로 판단하고 있으며, 2015년까지 dGPU 시장은 연평균 10%의 견조한 성장세를 보일 것으로 예상[2]

영화 CAD/CAM 게임

가상현실 의료 영상 Scientific Visualization

Ⅰ그림 4-10 GPU 응용 분야Ⅰ

Page 11: SUMMARY - SKKUmel.skku.edu/201302_GPU.pdfISSUE 4 실감 멀티미디어 UI/UX와 고성능 컴퓨팅을 위한 GPU 기술 및 산업 동향 080 한국산업기술평가관리원 Korea

ISSUE 4실감 멀티미디어 UI/UX와 고성능 컴퓨팅을 위한 GPU 기술 및 산업 동향

한국산업기술평가관리원 Korea Evaluation Institute of Industrial Technology088 089

2. 3D 렌더링&그래픽 파이프라인

�렌더링(Rendering) 이란?

� 모델(scene 파일)을 기반으로 컴퓨터를 이용하여 이미지의 형태와 위치, 광원 등의 외부 정보를 고려하고 실감 영상을 표현하는 도형 기법으로 2D/3D 그래픽스에서 최종 단계로 영상을 생성하는 작업을 의미

-� 2D 그래픽에서 렌더링은 동영상에 대한 추가 영상 처리하여 최종 이미지를 만드는 공정이고, 3D 그래픽의 경우 컴퓨터로 생성한 모델 데이터에 빛과 색깔, 질감, 그림자 등을 적용해 디스플레이 장치에서 3차원 입체감을 형상화하는 작업을 말함

� 현실감 있는 렌더링을 위해서는 장면상의 모든 광원 입자/파동의 움직임을 추적하는 것이 필요하나, 부분적인 광원 입자 추적조차도 과도한 계산 시간이 소요되므로 3D 렌더링에서는 보다 효율적으로 입자기반 광 물리법칙을 근사하는 다음 4가지 모델링 기법이 주로 사용됨[12]

-� Rasterization(scanline rendering) : 고도의 광학적 효과 없이 3D 객체를 2D 이미지 평면에 기하학적으로 투사하고 이미지의 해상도에 따라 화소로 변환한 후, 직접 광원 반사만을 고려하여 색채와 음영을 표현하는 기법

-� Ray tracing : 광선(ray) 경로에 대해 Rasterization의 상대 개념으로 흔히 비교되며, 특정 視點(view point)에서 광선을 이미지 평면상의 샘플링 지점으로 투사한 후, 이 광선의 반사 경로를 추적하여 광원까지 미치는 빛의 반사 정도를 누적하는 기법. 일반적으로 전반사(specular reflection)만을 고려하며, 난반사까지 고려하는 확장 기법은 path tracing이라 함

-� Radiosity : 장면 내의 기하정보만으로 복사 에너지 투과를 지배하는 물리적 법칙을 고려해 빛의 난반사를 계산하는 기법으로 상당히 정교한 광 효과를 모델링할 수 있으나 정반사와 굴절을 고려하기 어렵고, 정적인 장면에만 적용되며, 또한 계산량이 커서 일반적으로 자주 사용되지 않음

-� Photon Mapping : 최근 대부분의 오프라인 renderer에서 사용되는 기법으로, path tracing을 효율적으로 근사하며, 먼저 광원에서 광입자(photon)를 투사하여 추적하면서 그 光量을 photon map이라는 구조에 저장하고, 다음 단계로 ray tracing을 수행하는 2단계로 이루어짐. 반사 지점의 주변에 저장된 광입자의 양을 누적하여 다량의 광선 없이 효율적으로 path tracing과 유사한 효과를 얻을 수 있음

※� GPU를 통한 실시간 3D 렌더링은 1) Rasterization 방식이 유일하다고 할 수 있으며, ray tracing의 부분적 구현은 고성능 GPU를 통해 실시간 처리가 가능한 수준까지 연구되고 있으나 3), 4)는 계산량이 방대하여 offline 방식에 적용됨

Ⅰ그림 4-11 Rasterization vs Ray tracingⅠ

Page 12: SUMMARY - SKKUmel.skku.edu/201302_GPU.pdfISSUE 4 실감 멀티미디어 UI/UX와 고성능 컴퓨팅을 위한 GPU 기술 및 산업 동향 080 한국산업기술평가관리원 Korea

PD ISSUE REPORT FEBRUARY 2013 VOL 13-2KEIT PD Issue Report

한국산업기술평가관리원 Korea Evaluation Institute of Industrial Technology090 091

Ⅰ그림 4-12 하드웨어 관점의 Rasterization 렌더링 그래픽 프로세스Ⅰ

�Rasterization

� Rasterization은 오늘날 실시간 3D 렌더링에 가장 보편적으로 사용되는 방식으로 흔히 좀 더 정교한 Ray tracing 방법과 비교되곤 하며, 대중화된 GPU의 기본 동작과 그래픽 API들은 Rasterization에 기반한 그래픽 파이프라인 과정을 통해 설명되고 있음

-� Rasterization은 주변 객체들과의 연관성이 없다는 가정 하에 삼각형(혹은 다각형) 단위로 직접 조명 반사만을 고려하여 처리하므로, 비교적 계산량이 적고 그래픽 하드웨어에서 병렬화 구현이 용이한 반면 전역 조명에 기반한 반사, 그림자, 굴절 등을 정밀하게 묘사하기 어렵기에 이런 효과들은 실시간 처리 가능한 근사 기법으로 보완함

�은면 제거(Hidden surface removal)

� Hidden surface removal(HSR)은 hidden surface determination(HSD), occlusion culling(OC), 또는 visible surface determination(VSD) 등으로도 알려져 있으며, 이미지 내에 존재하지만, 관찰자 관점(viewpoint)에서 장애물, 그림자, 각도 등에 의해 보이지 않게 되는 부분을 결정해 제거하는 것을 말함

Back facing Occluding

Surface overlap Surface intersection

Ⅰ그림 4-13 Hidden surface 요인Ⅰ

Page 13: SUMMARY - SKKUmel.skku.edu/201302_GPU.pdfISSUE 4 실감 멀티미디어 UI/UX와 고성능 컴퓨팅을 위한 GPU 기술 및 산업 동향 080 한국산업기술평가관리원 Korea

ISSUE 4실감 멀티미디어 UI/UX와 고성능 컴퓨팅을 위한 GPU 기술 및 산업 동향

한국산업기술평가관리원 Korea Evaluation Institute of Industrial Technology090 091

ⅰ) Z-buffer 알고리즘

� 가장 대표적인 은면 제거 기법으로 Pixar의 설립자인 Ed. Catmull에 의해 개발되었으며, 각 면의 깊이(Z-축) 값을 별도의 버퍼(Z-buffer)에 임시로 저장 비교해서 최종적으로 어떤 면이 보일 것인지를 결정하는 방법임

-� 각 화소마다 polygon table의 순서에 따라 각 객체 표면의 색상과 깊이 값을 계산하고, 계산된 깊이 값과 현재 Z-Buffer에 저장되어 있는 값을 비교해 새로 계산된 값이 더 크다면(視點과 더 가깝다면) 프레임 버퍼를 갱신하고 그렇지 않다면 기존 값을 그대로 사용하는 방식

-� 이런 과정을 반복하면 결국 Z-buffer 값이 가장 클 때의 프레임 버퍼 값이 해당 화소의 색으로 결정되므로 가장 시점과 가까이 있는 표면을 찾아내는 효과를 얻을 수 있음

� 이 기법은 Z-buffer로 사용하기 위한 메모리가 별도로 필요하고 보이건 보이지 않건 일단 모든 객체를 모두 고려해야 하므로 다소 비효율적이지만,

-� 원리가 매우 단순하기 때문에 구현하기 쉽고, 각 화소에 투영되는 면의 색과 깊이 값만 구하면 되므로 polygon mesh는 물론 모든 유형의 객체에 적용할 수 있으며,

-� 결과를 저장할 때 Z-buffer의 값을 같이 저장하면 각각의 객체들을 따로 렌더링해서 나중에 합성하거나 depth of field 효과를 주는 등의 작업도 가능해진다는 장점을 갖기 때문에 가장 활용도가 높은 기법임

-� 최근에는 전통적인 Z-buffer 알고리즘에 Anti-aliasing 기능을 추가하고 있음

ⅱ) Scanline 알고리즘

� 객체를 구성하는 모서리 목록(Edge Table)과 Polygon 목록(Polygon Table)을 이용하여 한 번에 한 줄씩 각 Scanline과 만나는 면들을 골라내고 이 면들에 대해서만 보이는 면을 판정하는 방법으로 Z-buffer의 크기는 scanline 크기의 깊이 정보를 저장하는 정도만 요구되어 Z-buffer 알고리즘에 비해 요구되는 메모리가 상당히 감소됨[13]

ⅲ) Occlusion culling

� 눈에 보이는 부분만을 효과적으로 판단하여 그려질 영상을 만드는 데 사용되며 불필요한 데이터의 대부분을 Z-buffering 이전 단계에서 미리 제거하여 처리 데이터양을 줄이는 기법으로 실제 영상의 질에 영향을 미치지 않으면서 연산량을 상당히 감소시켜줌

�지역 조명 방법 - Local Illumination

ⅰ) Local Illumination 모델

� 최종적인 이미지에서 보이는 객체의 표면이 어떤 색을 갖게 될 것인지 계산하기 위해 사용하는 것이 illumination 모델로 렌더링의 실감도에 가장 큰 영향을 줌

-� 어떤 객체를 보고 색을 느낀다는 것은 결국 그 객체의 표면에서 반사되는 빛을 눈이 감지하는 것으로 조명의 방향과 표면의 특성 등 여러 가지 요인에 따른 빛의 작용을 계산한다면 보이는 객체 표면의 색상을 결정할 수 있음

Page 14: SUMMARY - SKKUmel.skku.edu/201302_GPU.pdfISSUE 4 실감 멀티미디어 UI/UX와 고성능 컴퓨팅을 위한 GPU 기술 및 산업 동향 080 한국산업기술평가관리원 Korea

PD ISSUE REPORT FEBRUARY 2013 VOL 13-2KEIT PD Issue Report

한국산업기술평가관리원 Korea Evaluation Institute of Industrial Technology092 093

-� 객체 표면에서 일어나는 빛의 반사 작용을 수학적으로 재현하는 방법이 바로 illumination 모델이며, 객체 표면의 색상을 결정할 때 관심을 갖는 특정 표면과 이 표면을 직접 비추는 광원만을 고려하는 것이 local illumination 모델임

� 반사에는 빛이 입사한 방향과 상관없이 임의의 방향으로 빛이 흩어져 특정 색상을 띠게 하는 난반사(diffused reflection)와 일정한 방향으로 빛이 반사되어 하이라이트를 생기게 하는 정반사(specular reflection)로 구분할 수 있음

-� 이상적인 경우 정반사되는 빛은 法線(normal)을 기준으로 입사된 각도 그대로 반사되며(입사각=반사각), 특별히 이런 경우를 일컬어 거울 반사(mirror reflection)라고 함

-� 그러나 대부분의 객체들은 거울 반사 방향을 중심으로 빛이 분산되기 시작해서 거울 반사 방향에서 멀어질수록 빛의 세기가 감소하다가 자연스럽게 난반사되는 빛의 세기로 바뀌게 됨

-� 따라서 광원, 표면, 시점 간의 관계를 고려해서 난반사 및 정반사되는 빛의 세기를 계산하면 물체 표면의 색상이 구해지며, 이것이 바로 local illumination 모델로 RGB 각 채널별로 빛의 세기를 계산한 후 종합하면 최종 색이 됨

� 가장 대표적이고 기본적인 local illumination 모델은 1975년 Phong에 의해 개발되었으며, Phong은 난반사의 계산을 위해서는 Lambert의 cosine 법칙을 이용하고 정반사의 계산을 위해서는 cosna를 곱하는 방법을 이용함

-� α는 반사 벡터 R과 시점 벡터 V사이의 각도로서 이 방법을 사용하면 반사 벡터 R과 시점 벡터 V가 일치하는 지점을 최대값으로 해서 두 벡터 사이의 각도가 벌어질수록 정반사의 세기가 점점 줄어들게 됨

-� n은 사용자가 임의로 지정하는 숫자로서 하이라이트의 크기를 조절하는 역할을 하며, MAX의 Glossiness 값(R2.5의 Shininess 값)이 바로 여기에 해당함

-� Phong 모델은 실제 표면에서 일어나는 물리적인 현상을 기초로 한 방법이 아니라 실험적이며 경험적인 접근 방법으로, 실제 상황과 다소 차이가 날 수 밖에 없다는 단점이 존재하나, 상대적으로 계산양이 적고 구현이 간단하며 최종 결과물이 실제와 상당히 유사하기 때문에, 지금까지도 기본적인 illumination 모델로서 가장 널리 애용되고 있음[14]

ⅱ) Physically Based Local Illumination Model

� 초기의 Physically based illumination 모델들은 올바른 하이라이트를 얻기 위해 정반사 특성에만 물리적 현상에 기초한 계산을 적용할 뿐 난반사 특성은 Phong에서 사용했던 Lambert의 cosine 법칙을 그대로 사용

-� 초기의 Physically based illumination 모델들로 Blinn, Cook-Torrence, Anisotropic 모델 등이 있으며, 최근에는 Oren-Nayar 모델같이 난반사 특성을 계산하기 위한 Physically based illumination 모델도 개발되고 있음

� Blinn 모델은 최초의 Physically based illumination 모델로서 정반사 특성을 계산함에 있어 Phong이 사용했던 cosna 대신에 Torrence와 Sparrow에 의해 개발된 Torrence-Sparrow 모델을 사용

-� Blinn 모델이 Phong 모델과 비교해서 갖게 되는 실질적인 차이점은 정반사를 계산할 때 조명의 입사각에 따라 정반사 특성의 변동 여부임

-� 즉, Phong 모델에서는 입사각과 관계없이 항상 반사각 방향으로 정반사율이 높게 나오지만 실제 세계에서는 빛이 비스듬하게 입사할 경우(입사각이 클 경우) 반사각보다 더 비스듬한 방향으로 정반사율이 높게 나오게 됨

Page 15: SUMMARY - SKKUmel.skku.edu/201302_GPU.pdfISSUE 4 실감 멀티미디어 UI/UX와 고성능 컴퓨팅을 위한 GPU 기술 및 산업 동향 080 한국산업기술평가관리원 Korea

ISSUE 4실감 멀티미디어 UI/UX와 고성능 컴퓨팅을 위한 GPU 기술 및 산업 동향

한국산업기술평가관리원 Korea Evaluation Institute of Industrial Technology092 093

-� 이러한 현상을 정반사율이 가장 높은 부분(peak)과 반사각이 일치하지 않고 떨어져 있다고 해서 off-specular peak라고 하며, 정오에 태양이 지면에서 거의 수직해 있을 때는 하이라이트가 별로 발생하지 않던 아스팔트 표면이, 석양 무렵 태양 빛이 지면에 비스듬하게 입사할 때에는 훨씬 반짝여 보이는 것이 바로 이 현상 때문임

-� Blinn 모델은 이 현상을 제대로 표현할 수 있으며, 같은 이유에서 조명이 뒤에서 비춰지는 경우(Backlight)에도 Blinn 모델의 특성이 두드러지게 나타남

� 이 밖에도 금속 질감을 효과적으로 재현하기 위한 Cook-Torrence illumination 모델, 매끈하게 연마된 금속이나 머리카락 등에서 볼 수 있는 방향성을 갖는 하이라이트 재현을 위한 Anisotropic illumination 모델 등이 많이 사용되는 Physically based illumination 모델임

� Oren-Nayar 모델의 경우 Lambert의 법칙이 표면의 roughness를 반영하지 못하는 것을 보완하기 위해 표면상의 점들 사이의 masking, shadowing, interreflection과 같은 복잡한 물리적 현상을 고려한 것으로 백묵이나 복숭아처럼 미세하게 거친 표면을 효과적으로 재현할 수 있음

�내부 면 색에 대한 사실감 강화 방법 : Global Illumination 모델

� 앞서 언급된 방법들을 종합 반영한 Renderer가 Rasterization(Scanline) Renderer이며, 이는 Z-buffer와 Scanline 알고리즘을 이용해서 보이는 부분을 검출하고 local illumination 모델을 적용해서 화소의 색을 결정하는 방법임

-� Local illumination 모델은 비교적 빠른 렌더링 속도의 경제적 특성이 우수하지만, 빛의 작용을 계산함에 있어 특정 표면과 이 표면을 직접 비추는 광원만을 고려하기 때문에 다른 객체에 의해 반사되거나 다른 객체를 투과 또는 굴절해서 객체 표면에 영향을 미치는 빛에 의한 결과들을 재현할 수 없다는 한계가 존재함

� Local illumination 모델을 개선한 Global illumination 모델은 렌더링 과정에서 객체 상호 간의 관계도 모두 고려하기 때문에 객체들 간의 상호 반사(Interreflection), 굴절, 그림자 효과 등을 재현할 수 있어 훨씬 사실적인 이미지를 생성할 수 있으며, Ray tracing과 Radiosity가 가장 대표적인 예임

-� 보다 더 많은 요인들을 고려함에 따라서, 렌더링에 오랜 시간이 걸린다는 치명적인 단점을 가지고 있으며, 최근 하드웨어 기술 진보와 속도 개선을 위한 많은 방법들이 개발되어 활용이 점점 늘어나는 추세임[15]

Local illumination Global illumination(Radiosity)

Ⅰ그림 4-14 Local illumination vs Global illuminationⅠ

Page 16: SUMMARY - SKKUmel.skku.edu/201302_GPU.pdfISSUE 4 실감 멀티미디어 UI/UX와 고성능 컴퓨팅을 위한 GPU 기술 및 산업 동향 080 한국산업기술평가관리원 Korea

PD ISSUE REPORT FEBRUARY 2013 VOL 13-2KEIT PD Issue Report

한국산업기술평가관리원 Korea Evaluation Institute of Industrial Technology094 095

ⅰ) Recursive Ray Tracing

� Ray tracing은 카메라에 보이는 점의 색깔에 빛의 직간접 효과들을 반영하는 global illumination의 한 방법으로, 눈에서부터 화면을 향해 광선을 방출한 다음 이 광선의 굴절, 반사 등을 계산해서 광선이 시작되었던 조명에 이를 때까지의 경로를 역추적하여 각 화면 화소에 미치는 효과를 반영함

-� 추적하는 과정에서 반사와 굴절이 되풀이하여 일어난다고 하여 recursive ray tracing이라고도 하며, 1980년 Whitted가 제안한 최초의 방법은 그림자광선, 반사광선, 굴절광선이 눈에서 방출된 광선 하나 당 하나씩 대응하여 계산량이 상대적으로 적지만, 아주 이상적인 반사 및 굴절과 경계가 뚜렷한 그림자가 얻어져서 그다지 사실적이지 않음

� Ray tracing에서도 난반사 및 불완전한 정반사 특성을 계산할 때에는 기존의 local illumination 모델을 그대로 사용함

-� 따라서, 거울 반사 특성이 없는 일반적인 객체를 렌더링할 때에는 Ray tracing과 local illumination 모델만을 사용하는 Rasterization 렌더링 사이에 큰 차이가 없음

ⅱ) Distributed Ray Tracing

� 현재 사용되는 대다수의 Ray tracing renderer들이 기반을 두는 Distributed Ray tracing은, Recursive Ray tracing에 의한 결과물의 완벽함 때문에 느껴지는 차가운 영상 등의 非사실적인 측면을 개선하는 기법임[13][14]

-� Recursive Ray tracing에서 광원은 점(따라서 면적이 0)이므로 단일 광선(single ray)으로 표현되어 부분적인 광원의 가려짐 같은 현상은 반영될 수 없어 sharp shadow만 얻어지게 됨

-� Distributed Ray tracing은 시선의 방향에 난수를 더하여 “확률적 분포”를 가해주는 방법으로서, 시선을 설정할 때나 반사와 굴절을 계산할 때 방향을 불규칙하게 흐트러뜨리면 일정한 시선간격에 의한 결점이 나타나지 않을 뿐 아니라 빛이 번지는 효과도 얻을 수 있다는 원리를 이용한 것임

※� 예를 들어, Reflected Ray를 방출하는 과정에서 하나의 광선 대신 여러 광선을 방출하고 그 결과를 종합해 표면의 반사를 계산하여 부드럽게 뭉개지는 반사(blurry reflection)를 표현할 수 있음

-� 또한, 가상의 렌즈를 설정하고 이 방법을 적용하면 피사계 심도(Depth of Field) 효과를 얻을 수도 있으며, 애니메이션에서 시간의 흐름에 적용하면 motion blur 효과를 만들 수도 있음

�렌더링 파이프라인

� 3D 컴퓨터 그래픽에서 ‘그래픽 파이프라인(또는 렌더링 파이프라인)’은 오늘날 대부분의 GPU에서 공통적으로 사용되는 Rasterization 기반 렌더링을 지칭하며, [그림4-15]에 가장 기본적인 vertex, geometry, pixel 처리에 대한 부분이 도시됨

-� 초기 렌더링 파이프라인은 Blinn-Phong 모델을 이용하며 고정되어 있었으나, programmable 구조로 진화하면서 shader 프로그래밍을 통해 vertex, geometry, pixel 처리 등을 사용자가 바꿀 수 있게 됨[16]

-� 최근에는, 기하정보를 더 세분하게 나눌 수 있는 tessellation shader(hull shader, tessellator, domain shader 등)가 추가되어, 더 많은 부분들이 프로그래밍가능하게 바뀌어 가고 있으며, Tessellation shader는 선택적인 단계임

Page 17: SUMMARY - SKKUmel.skku.edu/201302_GPU.pdfISSUE 4 실감 멀티미디어 UI/UX와 고성능 컴퓨팅을 위한 GPU 기술 및 산업 동향 080 한국산업기술평가관리원 Korea

ISSUE 4실감 멀티미디어 UI/UX와 고성능 컴퓨팅을 위한 GPU 기술 및 산업 동향

한국산업기술평가관리원 Korea Evaluation Institute of Industrial Technology094 095

Application

Application

Application

Transform& Light

VertexProcessor

VertexProcessor

GeometryProcessor

AssemblePrimitives

AssemblePrimitives

FragmentProcessor

FragmentProcessor

Rasterize

Rasterize

Rasterize

Shade

Graphics State

Graphics State

Graphics State

Render-to-texture

Render-to-texture

Render-to-texture

CPU

CPU

CPU

GPU

GPU

GPU

Ⅰ그림 4-15 렌더링 파이프라인의 프로그래머블 아키텍처로의 진화Ⅰ

� 응용프로그램 단계(application stage)는 CPU에서 수행되며 사용자 입력 처리와 3D 객체 간 충돌 등과 같은 물리적 연산을 담당하고, GPU 상의 렌더링파이프라인의 첫 단계인 vertex shader(혹은 processor)로 넘겨주기 위한 작업을 수행함

� Vertex shader는 3D 객체를 이루고 있는 primitive 요소(예 : 점 자체, 선의 양 끝점, 삼각형의 꼭지점)의 local 좌표, 색깔, texture 좌표, 법선 벡터 등을 받아서, 카메라 좌표로 이동하는 변환을 수행하는 것이 주목적임

� Geometry 프로세서는 처리된 vertex를 조합하여, 렌더링 primitive를 생성 또는 제거하는 역할 수행

-� 입력된 primitive들에 다른 transformation을 수행하거나, primitive의 instance를 증가 또는 감소시키는 역할을 수행함

※� 예 : 1개의 triangle을 입력받아 4개의 triangle을 생성하거나, 혹은 출력을 없애 후속단계를 거치지 않도록 할 수 있음

� Primitive assembly는 geometry 프로세서를 거치거나, 혹은 vertex shader를 거쳐 온 vertex들을 조합하여 primitive(선분, 다각형)의 형태로 만든 후, rasterization 단계로 전달하며 programmability가 vertex 단계나 fragment 단계에 비해 제한적임

� Rasterization 단계에서는 벡터 그래픽스로 되어 있는 primitive들을 scanline 알고리즘을 이용해, 2D상의 화소로 변환하는 작업을 수행하며 화소로 변환된 primitive들은 다음 단계인 fragment shader로 넘겨져 색을 결정하게 됨

Page 18: SUMMARY - SKKUmel.skku.edu/201302_GPU.pdfISSUE 4 실감 멀티미디어 UI/UX와 고성능 컴퓨팅을 위한 GPU 기술 및 산업 동향 080 한국산업기술평가관리원 Korea

PD ISSUE REPORT FEBRUARY 2013 VOL 13-2KEIT PD Issue Report

한국산업기술평가관리원 Korea Evaluation Institute of Industrial Technology096 097

� Fragment shader(pixel shader) 단계에서는 출력된 이미지 화소의 색을 결정하는 역할을 수행함

-� 화소의 색을 local illumination 모델을 이용해 계산하며, 많은 경우 난반사 효과는 미리 GPU로 로딩 되어 있는 texture 이미지와의 매핑으로부터 읽어오고, 안개 효과(fog effect), 투명도(alpha) 반영과 같은 프레임버퍼 blending에 관련한 나머지 연산을 수행

-� Fragment shader의 결과값으로 depth도 출력되므로, Z-buffer의 값과 비교하여 시점에 더 가까운 경우 프레임 버퍼를 갱신

� 마지막으로 프레임 버퍼에 저장된 화소는 디스플레이 장치로 화면에 뿌려지게 됨

-� 렌더링 하는 화소를 기본 프레임 버퍼가 아닌, 프레임 버퍼와 유사한 형태의 texture 메모리에 렌더링 하여 후처리할 수도 있으며, 이러한 기법을 render-to-texture라 함

3. GPU 프로그래밍 API

�GPU API(Application Programming Interface) 개요

� 1980년대에는 그래픽 카드를 사용할 때 각각의 플랫폼마다 서로 다른 디바이스 드라이버와 인터페이스를 만들어야만 했기 때문에 그래픽 프로그래밍은 매우 복잡할 수밖에 없었음

� 1990년대 초반 워크스테이션을 위한 3D 그래픽 개발을 주로 하던 Silicon Graphics(SGI)社가 수많은 종류의 그래픽 카드에 통합적으로 접근할 수 있는 OpenGL을 발표하였고 곧 산업 표준으로 자리 잡게 됨

-� 1995년 마이크로소프트에서 Direct3D를 출시하여 OpenGL과 경쟁하게 됨

※� [그림-16]은 3D 그래픽스 API를 통한 CPU와 GPU간의 제어 구조를, [표4-4]는 그래픽 관련 SW를 분류하고 있음

Ⅰ그림 4-16 그래픽스 API를 통한 GPU 제어 구조Ⅰ

� GPU의 기능이 GPGPU로 확대되면서 3D 그래픽 외에 데이터 연산을 위한 프로그래밍을 용이하도록 고안된 대표적인 API가 OpenCL이며 비슷한 목적으로 엔비디아는 CUDA, 마이크로소프트는 DirectCompute를 제공하고 있음[17]

Page 19: SUMMARY - SKKUmel.skku.edu/201302_GPU.pdfISSUE 4 실감 멀티미디어 UI/UX와 고성능 컴퓨팅을 위한 GPU 기술 및 산업 동향 080 한국산업기술평가관리원 Korea

ISSUE 4실감 멀티미디어 UI/UX와 고성능 컴퓨팅을 위한 GPU 기술 및 산업 동향

한국산업기술평가관리원 Korea Evaluation Institute of Industrial Technology096 097

�OpenGL(Open Graphics Library)

� 1992년 Silicon Graphics社에서 개발 제안한 범용 그래픽스 API로 간단한 primitive를 통해 3D 그래픽을 구현할 수 있는 250가지 이상의 함수 호출을 포함하고 있음[18]

-� OpenGL은 로열티가 없는 공개 표준으로 하드웨어 제작자와 응용프로그램 개발자가 서로 독립적으로 일하는 것을 가능하게 하며, 비영리 단체인 크로노스 그룹 컨소시엄에서 운영되고 있음

-� 기본 작동 원리는 primitive를 하나의 점, 선, 또는 polygon으로 인식하여 그것을 화소로 변환시켜주는 데 있고, 이러한 과정은 렌더링 파이프라인을 통해 이루어지며, 개발 초기부터 SUN, DEC, SGI 등의 다양한 플랫폼 및 Windows95, X Windows, OS/2 등 다양한 운영 시스템에서 성능을 검증하며 운용되어 왔음

Ⅰ표 4-4 그래픽스 SW 개요Ⅰ

GPU SW 구분 개요

Application SW

•� 3D 모델링 소프트웨어(3D Studio, Maya, etc.)

•� CAD 소프트웨어(Solidedge, Solidworks, Pro/E, etc.)

•� 의료/비즈니스용 시각화(visualization) 소프트웨어

•� 컴퓨터 게임

API

High-level

•� Open Inventor : C++ 기반의 OpenGL을 위한 상위 수준 3D 그래픽 API

•� VRML(Virtual Reality Modeling Language) : 3D interactive 벡터 그래픽스를 위한 파일 포맷 표준

•� Java3D : 자바 플랫폼을 위한 3D API

Low-level•� OpenGL

•� Direct3D

Shading Language

•� 어셈블리

•� GLSL(OpenGL Shading Language) : C언어 문법과 유사한 OpenGL을 위한 shading 언어

•� HLSL(High Level Shader Language) : Direct3D 공식 shading 언어

•� Cg(C for graphics) : HLSL과 유사하며 컴파일러가 OpenGL과 DirectX 양쪽 모두의 shader 프로그램을 생성

� OpenGL은 초기에는 고정된 기능의 파이프라인 형태를 유지하다가 프로그램 가능한 파이프라인 형태의 GPU에 활용할 수 있도록 개발되고 있음

-� OpenGL 1.0에서 1.5까지는 고정된 기능의 파이프라인에 해당하며, 1.5 버전 이후로는 고정된 파이프라인을 갖는 버전은 개발되지 않고 있음

-� OpenGL 2.0 이상 버전은 vertex 프로세서와 fragment 프로세서를 갖는 프로그램 가능한 파이프라인을 가지도록 개발되고 있으며, 이들 프로세서를 프로그래밍 하기 위한 GLSL도 함께 개발되고 있음

-� OpenGL 2.x는 프로그램 가능하도록 파이프라인에 큰 변화를 주었지만 이전 버전들과 호환성을 유지하여, 이전 버전인 1.x에서 실행되던 응용프로그램이 2.x에서 수정 없이 실행 가능하도록 개발되었으며 2012년 8월 현재 4.3 버전까지 발표됨

Page 20: SUMMARY - SKKUmel.skku.edu/201302_GPU.pdfISSUE 4 실감 멀티미디어 UI/UX와 고성능 컴퓨팅을 위한 GPU 기술 및 산업 동향 080 한국산업기술평가관리원 Korea

PD ISSUE REPORT FEBRUARY 2013 VOL 13-2KEIT PD Issue Report

한국산업기술평가관리원 Korea Evaluation Institute of Industrial Technology098 099

� OpenGL ES(Embedded System)는 임베디드 시스템을 위한 3D 그래픽스 API로 OpenGL의 부분집합으로 구성된 프로파일이며, 역시 로열티 없는 공개 표준으로 크로노스 그룹의 컨소시엄에서 관리되고 있음

-� 소프트웨어와 GPU 간의 유연한 인터페이스를 제공하는 한편 메모리 용량이 작고 저전력이 요구되는 임베디드 환경을 고려하여 설계된 까닭에 주요 모바일 및 내장 시스템 플랫폼 환경에서 3D 게임과 다양한 고급 3D 그래픽 기능을 제공하는 데 활용되고 있음

-� OpenGL ES 1.1까지 고정된 파이프라인 구조였으며, 2.0은 프로그램 가능한 vertex 및 fragment 프로세서를 포함하도록 개발되었으나 1.x와의 완벽한 호환은 지원되지 않음

-� OpenGL ES 3.0이 2012년 8월 발표되었으며, OpenGL ES 2.0과 호환되면서 향상된 visual feature들이 추가됨

OpenGL 3.2 렌더링 파이프라인 Direct3D 렌더링 파이프라인

Ⅰ그림 4-17 OpenGL과 Direct3D 렌더링 파이프라인Ⅰ

�DirectX/Direct3D

� MS 社의 DirectX는 Windows 운영체제에서 멀티미디어 응용프로그램을 위한 API 기술 모음임

-� Direct3D는 가장 많은 게임 개발업체들이 지원하는 3D 그래픽스 API로, 1995년 출시되면서 빠른 속도로 새로운 기술들이 추가되어 OpenGL과 경쟁 관계를 유지하고 있음

-� Direct3D는 꾸준히 새로운 버전에서 프로그래밍 편의성을 도모하는 새로운 feature들을 추가하고 있으며, 현재 11.1 버전까지 발표됨

Page 21: SUMMARY - SKKUmel.skku.edu/201302_GPU.pdfISSUE 4 실감 멀티미디어 UI/UX와 고성능 컴퓨팅을 위한 GPU 기술 및 산업 동향 080 한국산업기술평가관리원 Korea

ISSUE 4실감 멀티미디어 UI/UX와 고성능 컴퓨팅을 위한 GPU 기술 및 산업 동향

한국산업기술평가관리원 Korea Evaluation Institute of Industrial Technology098 099

� Direct3D Mobile은 모바일 기기를 위한 마이크로소프트의 운영체제인 Windows Mobile 5.0에서 3D 그래픽 응용프로그램을 개발을 지원하는 API로 Direct3D 8 및 9버전의 일부 요소를 포함하는 모바일 단말용 API임

-� Direct3D Mobile은 OpenGL ES와 마찬가지로 workload를 경감하도록 데스크톱 버전에서 필수적인 부분만을 모아 놓은 임베디드 시스템용 프로파일이며, 아직까지는 vertex 및 fragment shader를 지원하지는 않고 있음

�OpenCL(Open Computing Language)

� OpenCL은 병렬 컴퓨팅기술 분야의 시장이 커짐에 따라, CPU와 GPU, DSP 등의 이종 컴퓨팅 환경에서 단일 프로그래밍 모델을 제공하는 최초의 개방형 산업계 표준으로 OpenGL과 마찬가지로 크로노스 그룹에 의해 유지 관리되고 있음

-� Apple의 제안에 의해 2009년 1.0버전의 스펙이 발표 되었으며 엔비디아, 인텔, ARM, AMD의 기업들이 OpenCL을 지원하는 프레임워크와 플랫폼을 개발 중임

Ⅰ그림 4-18 OpenCL 플랫폼 모델Ⅰ

� OpenCL은 OpenGL과 내부적으로 완벽히 연동되는 구조이며, HPC 서버, 데스크톱, 모바일 장치 등에서 각 칩 벤더들 간의 폭 넓은 호환성을 제공하고 있어서 OpenCL을 지원하는 관련 제품 시장이 급속히 성장할 것으로 예상됨

-� OpenCL은 GPU의 역량을 그래픽 처리 이외의 영역(GPGPU)으로 확장 가능하게 하는 SW 개발 tool 임

� 로열티가 없는 공개된 크로스 플랫폼용 표준으로서 병렬 프로그래밍이 가능하게 함

-� 이종 컴퓨팅 플랫폼 환경에서 병렬성을 갖는 프로그램을 작성할 수 있게 해 주는 프레임워크로, C99에 기반한 프로그래밍 언어를 포함하며 이를 통해 혼성 플랫폼을 정의하고 제어할 수 있는 커널, API 등을 작성할 수 있음(그림4-18 참조)

Page 22: SUMMARY - SKKUmel.skku.edu/201302_GPU.pdfISSUE 4 실감 멀티미디어 UI/UX와 고성능 컴퓨팅을 위한 GPU 기술 및 산업 동향 080 한국산업기술평가관리원 Korea

PD ISSUE REPORT FEBRUARY 2013 VOL 13-2KEIT PD Issue Report

한국산업기술평가관리원 Korea Evaluation Institute of Industrial Technology100 101

4. Shader

�GPU 발전 과정

ⅰ) 1세대 - Rasterization 단계를 가속하는 GPU

� 1990년대 중반에 등장한 초기 GPU는 3D 그래픽스 Rasterization 단계만을 가속하는 간단한 구조로, GPU와 CPU와의 통신에는 PCI(peripheral component interconnect)가 사용됨

-� 비교적 적은 연산으로 3D 객체에 사실감을 더하기 위해 그림이나 사진을 덧씌우는 texture 매핑이 가능했으며, 점차 multi-texturing이 가능해져 한 객체에 매핑 가능한 texture의 수가 점점 증가함

ⅱ) 2세대 - Geometry 연산 가능한 고정된 기능의 GPU

� 2000년대 초반까지의 GPU는 Geometry 단계를 포함한 전체 3D 그래픽스 연산이 하드웨어로 가속되는 형태였으며, CPU-GPU간의 데이터 전송을 위해 필요한 대역폭은 급격히 증가하여 AGP(accelerated graphics port)가 활용됨

-� 3D 모델의 vertex 변환과 빛에 대한 연산을 포함하였으며, multi-texturing 수는 보다 증가하여 CPU-GPU간의 데이터 전송을 위해 넓은 대역폭이 요구되었음

ⅲ) 3세대 - 프로그램이 가능한 GPU

� 2000년대 초반에는 Rasterization 단계에 프로그램 가능한 fragment shader를 포함하고, 그 후 Geometry 단계도 vertex shader를 포함하였으며, CPU-GPU 인터페이스로 보다 빠른 PCI Express가 사용됨

-� 보다 실물에 가까운 표현이 가능하게 되었으며, shader는 초기에는 어셈블리어 형태의 저수준 언어에서 Cg, HLSL, GLSL 등과 같이 C언어와 유사한 상위 수준의 프로그래밍 언어가 개발되면서 프로그램 작성이 용이해지고 있음[19]

�Shader

� Shader는 이미지 내의 음영을 적절하게 생성하는 작업 등 GPU에 유연성을 부여하고자 렌더링 방식을 프로그램 할 수 있게 한 명령어의 집합으로, 고도의 flexibility를 가지고 3D 그래픽 렌더링을 지원함

-� Shading 언어는 shader 내에 정의된 알고리즘에 따라 적응적으로 최종 이미지의 pixel, vertex, texture에서의 위치, 색조, 포화, 밝기, 명암 변경이 가능하여, 공통적인 geometry 변형과 pixel shading 기능만을 지원하는 2세대 GPU 대비 우월한 GPU 프로그래머블 렌더링을 지원

-� Shader를 지원하지 않는 GPU는 실시간 광원 계산 기법 사용을 위해서 GPU에 정의된 point, spot, directional 등의 방식 중에서 하나를 선택해야했지만, shader를 사용하면 프로그래머가 자신만의 새롭고 더욱 사실적인 광원 계산 방식을 GPU에 프로그램 하는 것이 가능함

Page 23: SUMMARY - SKKUmel.skku.edu/201302_GPU.pdfISSUE 4 실감 멀티미디어 UI/UX와 고성능 컴퓨팅을 위한 GPU 기술 및 산업 동향 080 한국산업기술평가관리원 Korea

ISSUE 4실감 멀티미디어 UI/UX와 고성능 컴퓨팅을 위한 GPU 기술 및 산업 동향

한국산업기술평가관리원 Korea Evaluation Institute of Industrial Technology100 101

� 그래픽 렌더링 파이프라인 단계 중 특히 programmability가 요구되는 부분은 3D vertex를 처리하는 vertex shader와 2D상의 화면 처리(rasterization)를 하는 fragment(or pixel) shader임

ⅰ) Vertex Shader

� Vertex shader는 주어진 각 vertex에 대해 1회만 작동하며, 목적은 가상 공간 내 각 vertex의 3차원 위치를 스크린 내에 투시되는 2차원 좌표(깊이를 표시하는 Z-buffer 값 포함)로 변환하는 역할을 하며,

-� 위치, 색, 질감 좌표를 조작하지만, 새로운 vertex들을 생성하지는 못하며, 출력은 그래픽 파이프라인의 다음 단계인 geometry shader나 fragment shader로 전달됨

-� vertex shader는 3차원 모델을 포함하는 어떤 장면에서의 위치, 움직임, 조명, 색채의 상세하고 강력한 제어를 가능하게 함

ⅱ) Geometry Shader

� Direct3D 10과 OpenGL 3.2 등을 통해 비교적 최근에 도입된 shader 타입으로 그래픽 파이프라인 시작의 primitive들로부터 점, 선, 삼각형 등 새로운 그래픽 primitive를 생성할 수 있음

-� Vertex shader 다음으로 수행되며, 인접한 정보를 포함한 전체 primitive를 입력으로 받아 처리한 후 fragment shader에 전달

-� 전형적인 geometry shader 사용 예는 point sprite generation, geometry tessellation, shadow volume extrusion과 cube map으로의 single pass 렌더링 등이며, mesh 복잡도를 자동 변경하여 곡선에 대한 근사계산을 개선하는 장점을 제공함

ⅲ) Fragment Shader(Pixel Shader)

� 각 fragment의 색과 기타 속성을 계산하고, 항상 같은 색을 출력하는 것부터 bump mapping, shadow, 반사 highlight, 반투명 효과 등을 처리하여 출력하는 것까지 포함

-� Fragment의 depth(Z-buffer) 값을 변경하거나 하나 이상의 색을 출력가능(다중 render target일 경우)하며, 장면 전체 geometry에 대한 정보 없이 단일 fragment에 작용하기 때문에 fragment shader만으로는 매우 복잡한 효과를 생성하기 불가능하나,

-� Fragment shader는 그려질 스크린 좌표 정보를 가지고 있으므로 전체 스크린 내용이 texture로 전달되면 스크린과 인접 화소를 샘플링할 수 있어 blur나 edge detection/enhancement와 같은 광범위한 2차원 후처리를 수행할 수 있음

�Unified Shader

� 응용프로그램의 특성에 따라 연산량이 vertex shader 또는 fragment shader 어느 한 쪽에 집중되는 단점을 극복하고 하드웨어 사용의 효율성을 극대화시키기 위해 두 가지 shader 기능을 통합된 Unified shader를 내장하는 GPU 기술이 발전함

Page 24: SUMMARY - SKKUmel.skku.edu/201302_GPU.pdfISSUE 4 실감 멀티미디어 UI/UX와 고성능 컴퓨팅을 위한 GPU 기술 및 산업 동향 080 한국산업기술평가관리원 Korea

PD ISSUE REPORT FEBRUARY 2013 VOL 13-2KEIT PD Issue Report

한국산업기술평가관리원 Korea Evaluation Institute of Industrial Technology102 103

Idle hardware

Idle hardware

Vertex Workload

Pixel Workload

전통적인 Vertex/Fragment 분리 shader 구조 Unified shader 구조

Ⅰ그림 4-19 Shader 통합 필요성Ⅰ

-� GPU는 다수의 vertex shader와 fragment shader를 병렬로 갖고 있으며 shader 내부에도 컴포넌트별 병렬처리 능력을 향상시키기 위한 구조를 택하고 있으나 경우에 따라 geometry 또는 rasterization 중 한 단계에만 연산이 집중되는 경우가 자주 발생하기 때문에 자원(shader)의 효율적 활용에 어려움이 존재함[20][21]

� 통합 shader는 두 shader를 병렬 shader로 통합·구성하여 각각의 shader는 vertex shader 또는 fragment shader로 동작할 수 있으며, 경우에 따라 vertex shader와 fragment shader 간의 연산 집중도의 불균형을 해결 할 수 있음

-� 또한, 통합 shader는 하나의 공통된 명령어 집합(instruction set)을 사용하기 때문에 shader 프로그래밍이 보다 용이해졌으며 하드웨어 추가 없이 geometry shader 등 다른 기능의 shader를 구현할 수 있다는 장점을 지님

Ⅰ표 4-5 Unified Shader 장단점Ⅰ

장점 단점

•� 통합 프로그래밍 모델 제공

•� 모든 프로그래밍 타깃(Texturing, branching, outputs)에 대해 같은 feature 공유

•� Vertex/fragment 프로그램 뿐 아니라 geometry shader 및 GPGPU 관점에서도 활용도 증대

•� 장면 특성에 따른 geometry, fragment workload 복잡도 차이에 대해 shader 하드웨어 자원을 적절히 배분하여 효율 극대화

•� 어떤 종류의 workload를 다음에 처리해야할지를 제어하는 스케줄러 필요

•� 명령어 메모리 등의 일부 증가

•� shader 데이터 입출력간의 경로 조정 필요(distributer)

Page 25: SUMMARY - SKKUmel.skku.edu/201302_GPU.pdfISSUE 4 실감 멀티미디어 UI/UX와 고성능 컴퓨팅을 위한 GPU 기술 및 산업 동향 080 한국산업기술평가관리원 Korea

ISSUE 4실감 멀티미디어 UI/UX와 고성능 컴퓨팅을 위한 GPU 기술 및 산업 동향

한국산업기술평가관리원 Korea Evaluation Institute of Industrial Technology102 103

전통적인 Vertex/Fragment 분리 shader 구조 Unified shader 구조

Ⅰ그림 4-20 Shader 구조 비교Ⅰ

5. GPGPU(General Purpose GPU)

�More than Graphics – GPGPU

� GPU의 성능이 발전하고 PC 및 워크스테이션에 널리 퍼져 사용됨에 따라 GPU의 연산능력을 3D 그래픽스 이외의

다른 분야에도 활용하기 위한 방안을 연구하게 됨[22]

-� 이러한 시도는 GPU가 고정된 구조를 벗어나, 프로그램 가능한 유연한 구조로 발전하고, 또한 CPU를 능가하는

성능 향상을 달성하게 됨에 기인함(그림4-21)

-� 그러나, 기본적으로 GPU 성능은 고도로 병렬화된 컴퓨터 그래픽스 처리과정에 특화된 구조에서 기인한 것으로,

일반 응용분야에 그대로 적용시켜 단순히 계산능력만큼의 성능향상을 기대하기는 쉽지 않음

-� 또한, GPU SW 개발 방법론이 복잡하고 어렵다는 등의 난점도 존재하고 있음

Page 26: SUMMARY - SKKUmel.skku.edu/201302_GPU.pdfISSUE 4 실감 멀티미디어 UI/UX와 고성능 컴퓨팅을 위한 GPU 기술 및 산업 동향 080 한국산업기술평가관리원 Korea

PD ISSUE REPORT FEBRUARY 2013 VOL 13-2KEIT PD Issue Report

한국산업기술평가관리원 Korea Evaluation Institute of Industrial Technology104 105

Ⅰ그림 4-21 GPU performance gains over CPUsⅠ

* 출처 :�Source ©David Kirk/Nvidia and Wen-mei W. Hwu, 2007-2009 ECE

498AL Spring 2010, University of Illinois, Urbana-Champaign

� 일반적으로, 한 화면을 구성하는 fragment가 vertex의 수보다 많기 때문에 GPU 에서 높은 연산능력을 필요로 하는 부분은 fragment shader이며, vertex shader보다 fragment shader의 수가 많게 설계되기 때문에 주로 GPGPU 프로그램은 fragment shader를 활용하도록 설계 되고 있음

-� 먼저 수행하고자 하는 응용프로그램에서 데이터를 서로 독립적이며 병렬로 수행될 수 있는 여러 부분으로 나누어 각각을 fragment shader 프로그램으로 작성하며, 입·출력 데이터는 배열 형태로 texture 메모리에 저장할 수 있게 함

-� 일반적으로 2D 배열을 출력 데이터로 사용하므로, depth 처리가 필요 없는 화면과 평행한 직사각형(quad)을 vertex shader로 보낸 후 화소화하여(즉, rasterization을 거쳐) fragment shader로 전달하며 fragment shader는 각각의 fragment(pixel)에 대해 전달받은 2D 위치를 기준으로 입력 데이터를 접근하고 처리하여 출력함

※� Fragment shader는 각각의 fragment(pixel)에 대해 전달받은 2D 위치를 기준으로 입력 데이터를 접근하고 처리하여 출력하며 출력데이터의 범위는 입력 vertex의 좌표나 그려질 윈도우 영역(viewport)을 출력 배열의 크기로 맞추어 조절할 수 있음

※� 화면과 평행한 사각형은 2D 데이터만을 처리하므로 굳이 3D 좌표를 넘길 필요 없이 z-축 데이터를 무시하기 위해 화면과 평행하도록 z-축의 좌표를 동일하게 사용(보통 z=0)

※� 일반적으로 vertex의 좌표를 옮기기보다는 viewport를 이용해 데이터를 조절함(vertex의 좌표는 GPU로 업로드 되어야 하기 때문에, viewport를 조절하는 것이 편리함)

� 범용 컴퓨팅이 가능한 개발 환경으로 2006년 엔비디아는 CUDA와 함께 이를 지원하는 GeForce 8800을 출시하면서 본격적으로 GPGPU로 집중하기 시작

-� 범용 컴퓨팅이 가능한 통합 프로세서 기술, C언어와 유사한 상위 수준 SIMT 기반 병렬 프로그래밍 언어를 포함한 SW 개발 환경을 제공

Page 27: SUMMARY - SKKUmel.skku.edu/201302_GPU.pdfISSUE 4 실감 멀티미디어 UI/UX와 고성능 컴퓨팅을 위한 GPU 기술 및 산업 동향 080 한국산업기술평가관리원 Korea

ISSUE 4실감 멀티미디어 UI/UX와 고성능 컴퓨팅을 위한 GPU 기술 및 산업 동향

한국산업기술평가관리원 Korea Evaluation Institute of Industrial Technology104 105

GPU GPGPU

Ⅰ그림 4-22 GPU 와 GPGPU 구조 비교(2006년 : 초기)Ⅰ

� 2006년 이전의 초창기 GPGPU는 프로그램이 가능한 vertex/fragment 프로세서와 고정된 기능의 하드웨어 블록(primitive assembly, geometry, z-culling 등)을 갖도록 설계되었으며,

-� 일반 데이터 연산을 그래픽 태스크로 표현하여 그래픽 파이프라인을 통해 처리함

� 2010년까지의 GPGPU는 프로그램 가능한 단일 통합 프로세서로 설계되었으며, 그래픽과 범용 컴퓨팅 모두를 지원하고 IEEE 부동소수점 표준 및 ECC(Error correction code)등 컴퓨팅 specific한 변화를 모두 수용하는 특성을 가짐

-� 또한 C, C++, Python 등을 활용한 프로그래밍 가능하게 되었으며, GPU 및 CPU간 메모리 영역을 분리하고 GPU의 메모리 관리 기능을 부여하여 범용 분야에 대한 수월한 처리가 가능해짐

-� PCI와 AGP를 대신하여 PCIe를 이용해 CPU와 외부 GPGPU을 연결하는 구조로 발전함

Ⅰ그림 4-23 멀티코어 CPU / GPGPU 시스템(2006년 ~ 2010년)Ⅰ

Page 28: SUMMARY - SKKUmel.skku.edu/201302_GPU.pdfISSUE 4 실감 멀티미디어 UI/UX와 고성능 컴퓨팅을 위한 GPU 기술 및 산업 동향 080 한국산업기술평가관리원 Korea

PD ISSUE REPORT FEBRUARY 2013 VOL 13-2KEIT PD Issue Report

한국산업기술평가관리원 Korea Evaluation Institute of Industrial Technology106 107

Ⅰ그림 4-24 Chip Integrated CPU-GPU(2011년 ~ )Ⅰ

� 2011년 이후부터는 멀티코어 CPU와 GPGPU가 싱글 다이(die)에 설계되기 시작하였으며, 최하위 캐시, 메모리 컨트롤러, 메인메모리를 CPU와 GPGPU가 공유하는 형태인 싱글칩 집적형태로 발전하고 있음

-� 싱글칩 집적화로 인하여 비용 절감, latency 감소, 데이터 처리속도 증가, 하드웨어 블록 공유로 인한 활용도 증가 등의 장점을 가지게 되었으며, OpenCL 등을 포함해 SW 개발 환경 발전을 위한 노력이 지속될 것임[23]

�GPU를 포함하는 Heterogeneity(이종) 프로세서 구조

� 컴퓨터 그래픽에 대한 flexibility 요구에 의해 GPU는 고도로 특수화된 파이프라인 구조에서 범용 프로세서에 가깝게 진화해왔으나 여전히 GPU와 전통적인 멀티코어 CPU 구조상엔 커다란 차이가 존재하고 있음[22][23][24]

-� 현저한 차이는 메모리 계층구조로 GPU는 대용량 coherent 캐시의 필요성이 적으며, 이는 GPU에선 프레임 버퍼를 사용하고 Rasterization 기반 렌더링에선 구조적으로 그래픽 데이터를 재사용하는 빈도가 낮기 때문에 가능한 구조이며,

-� 또한, GPU는 특수한 texturing 하드웨어(제한된 addressing과 interpolation 연산을 하는)를 위한 광대역 메모리 버스를 가지고 있기 때문에, 이를 통해 데이터 병렬적인 과학 연산 컴퓨팅에 상당한 성능 향상을 가능케 함

� 초기에는 이러한 성능 향상을 위해 모든 연산이 그래픽 연산으로 변환되는 복잡한 프로그래밍이 필요했으나 C/C++와 유사한 OpenCL 및 CUDA와 같은 프로그래밍 모델이 개발됨으로써 프로그래밍 부담이 줄어들고 광범위하게 GPGPU의 활용도가 높아지는 계기가 됨

-� 그럼에도 불구하고 데스크톱 환경에서 GPU는 CPU와 PCI Express 버스를 통해 연결됨으로 인한 성능 제한과 복잡한 메모리 모델 등의 근본적인 하드웨어 구조에 기인한 생산성 제한이 존재하고 있음

� OpenCL 메모리 모델은 5개(global, local, constant, image, private)의 서로 다른 메모리 공간을 포함하며 각각은 독자적인 coherency policy와 최적화 액세스 패턴을 가지고 있어, 싱글 GPU에 대한 OpenCL 메모리 모델은 전통적인 멀티코어 CPU의 캐시 계층구조보다 더 복잡함

Page 29: SUMMARY - SKKUmel.skku.edu/201302_GPU.pdfISSUE 4 실감 멀티미디어 UI/UX와 고성능 컴퓨팅을 위한 GPU 기술 및 산업 동향 080 한국산업기술평가관리원 Korea

ISSUE 4실감 멀티미디어 UI/UX와 고성능 컴퓨팅을 위한 GPU 기술 및 산업 동향

한국산업기술평가관리원 Korea Evaluation Institute of Industrial Technology106 107

� 또한, 이런 메모리 공간의 대부분은 단지 완화된 일관성(relaxed consistency)만을 구현해서 명확한 동기화

(explicit synchronization)를 프로그래머가 수행해야 하며, 프로그래머가 CPU와 GPU 메모리의 일관성을

DMA(Direct Memory Access) 전송으로 유지해야하나 PCIe에 의한 전송으로 애로사항이 발생함

� 이런 문제점들을 극복하기 위해 AMD의 Fusion이나 엔비디아의 Denver 프로젝트와 같이 밀착 통합(tighter

integration)설계에 대한 방법으로 임베디드 및 모바일 SoC에서 이미 진행되고 있는 CPU-GPU 통합 SoC설계 방식이 적용되고 있으며, 이를 통해 전력 효율성도 향상시킬 수 있게 됨

�CPU-GPU 메모리 계층 구조 Trade-offs

� GPU 구조에만 전용 GDDR 메모리에 의한 광대역 다중 채널 메모리 버스가 지원되는 사례와 같이, CPU와 GPU에 최적화되는 메모리 계층구조가 서로 다름으로 인하여 CPU-GPU 통합 프로세서 설계 시 다음과 같은 trade-off들을 고려하는 것이 필요하게 됨[4]

-� 캐시 다중 계층 구조에서 더 많은 코어를 수용할 수 있는 확장성 보장을 위해 coherency를 유지해야할 캐시 집합은 어디까지인지?

-� 제한된 칩 면적상에서 GPU 병렬 성능 및 CPU의 순차 성능 향상을 동시에 도모하기 위해 트랜지스터 자원을 어떻게 배분해야할지?

-� 제한된 전력 소모 한도 내에서 메모리 인터페이스는 대용량(예 : DDR3)과 광대역(예 : GDDR5) 중 어디에 더 초점을 두어야 하는지?

-� Fusion 아키텍처가 별도의 CPU/GPU 보다 전력효율적임을 보장할 수 있는지?

-� CPU-GPU 통합 칩의 프로그래밍 생산성을 높이기 위해 적정한 수준의 추상화 단계는 어디까지인지?

※� 단순 추상화는 향상된 runtime 시스템과 미들웨어가 요구되며 저수준(low-level) 추상화는 어플리케이션 프로그래밍의 복잡도를 증가시킴

�캐시 일관성 대비 확장성(Cache coherency vs. Scalability) 이슈

� GPU 메모리 계층구조의 특수성은 단순한 비일관적(incoherent) SRAM 스크래치패드 메모리를 갖는 Texturing 유닛의 캐시 조합 등을 통해 확인할 수 있음

-� Texturing 유닛은 통상적으로 2차원 데이터에 대한 규칙적 액세스 패턴을 타깃팅 한 별도의 캐시를 포함하고 있으며, 그래픽 어플리케이션이 갖는 독특한 주소 계산과 보간(interpolation) 등의 제한된 기능을 구현함

� Texturing 유닛을 제외하면 GPU의 캐시 계층구조는 그래픽 연산의 데이터 병렬성에 기인하여 CPU에 비해 훨씬

flat한 구조를 가지고 있음

-� 이러한 flat한 캐시 계층구조의 장점 중 하나는 프로세싱 코어 개수 증가에 따른 확장성이 용이하다는 것이며, 단점은 소규모 코어 그룹에 대해 완화된 consistency 모델만을 지원함으로써 프로그래밍 부담을 증가시킨다는 것임

Page 30: SUMMARY - SKKUmel.skku.edu/201302_GPU.pdfISSUE 4 실감 멀티미디어 UI/UX와 고성능 컴퓨팅을 위한 GPU 기술 및 산업 동향 080 한국산업기술평가관리원 Korea

PD ISSUE REPORT FEBRUARY 2013 VOL 13-2KEIT PD Issue Report

한국산업기술평가관리원 Korea Evaluation Institute of Industrial Technology108 109

-� CPU는 다계층 대용량의 캐시 메모리의 일관성 관리를 위해 MESI 프로토콜 등을 채택하고 있으며, 이러한 캐시 일관성 프로토콜은 프로그래머를 위한 강력한 일관성 모델을 제공함

-� 반면, 일관성 유지에 의한 트래픽 증가로 인해 메모리 확장성은 제한되어, 결국 CPU와 GPU 캐시를 어떻게 구성할지의 문제는 코어 개수의 확장성을 보장하면서 어떻게 캐시 일관성 문제를 해결할 것인지에 대한 trade-off가 필요함[4]

�Case study : AMD Fusion 메모리 계층 구조

� AMD의 Fusion 아키텍처에서 CPU-GPU간의 연결은 Fusion Compute Link(FCL)와 Radeon Memory Bus(RMB), 통합 Northbridge(UNB : Unified North Bridge)등에 의해 이루어짐[4]

Ⅰ그림 4-25 AMD Fusion 메모리 아키텍처Ⅰ

� Fusion 메모리 계층 구조의 목표 중 하나는 각 프로세서 코어의 주된 메모리 액세스 패턴(CPU : low latency, GPU : high bandwidth 액세스)에서의 성능을 유지하면서 CPU-GPU간 데이터를 공유하는데 있으며, 이를 위한 구성 요소로는,

-� OS에 의한 물리 메모리 공간의 CPU-GPU간 공유와 유지 관리 : CPU가 주로 사용하는 페이징 가능한 시스템 메모리와 GPU를 위한 프레임 버퍼 개념의 지역(local) 메모리

-� 전통적인 CPU 캐시 계층 구조 : low latency를 위한 충분한 CPU 캐시 메모리

-� Write Combining Buffers : CPU가 지역 메모리에 write를 할 때 광대역 인터페이스 제공

-� Fusion Compute Link : FCL은 GPU 코어로부터 CPU 캐시까지의 연결 통로로 UNB에 의해 중재되며 캐시 snooping을 통해 CPU와 GPU간 완전한 일관성 유지가 이루어지도록 함

-� Radeon Memory Bus : RMB는 GPU 코어와 물리 메모리 공간의 지역 메모리 간의 광대역 인터페이스를 제공하며 GPU의 일반적인 데이터 액세스 패턴을 지원

Page 31: SUMMARY - SKKUmel.skku.edu/201302_GPU.pdfISSUE 4 실감 멀티미디어 UI/UX와 고성능 컴퓨팅을 위한 GPU 기술 및 산업 동향 080 한국산업기술평가관리원 Korea

ISSUE 4실감 멀티미디어 UI/UX와 고성능 컴퓨팅을 위한 GPU 기술 및 산업 동향

한국산업기술평가관리원 Korea Evaluation Institute of Industrial Technology108 109

� 요약하면 CPU 특성의 메모리 액세스는 전통적인 캐시에 의해, GPU 특성의 메모리 액세스는 RMB에 의해 핸들링 되며, FCL을 통해 필요한 경우 캐시 일관성 유지가 이루어지고, UNB의 주소 변환 기능을 통해 대부분의 메모리 액세스 경로가 제어됨

6. 업체 별 GPU 소개

�엔비디아

� 엔비디아는 GPU 기술의 선도 기업으로 AMD Graphic Technology(舊 ATI)와 high-end GPU 시장을 양분하여 지배하고 있으며, 엔비디아의 대표적인 GPU product는 GeForce로 AMD의 Radeon과 라이벌 관계를 형성하고 있음

� 또한, 최근 엔비디아는 GPU 기술을 바탕으로 고성능 병렬 컴퓨팅 시장에도 진출하는 동시에 Tegra AP를 기반으로 모바일 시장을 공략하고 있음

i) GeForce� GeForce는 엔비디아의 대표적인 GPU 브랜드로 1999년 Add-in 그래픽 카드용으로 처음 소개되어 최근에는 마더보드 통합형 제품 및 임베디드 마켓에도 진출

� 초기 전통적인 Rasterization기반 3D 그래픽 파이프라인 구조에서 GPGPU향으로 아키텍처가 진화하고 있음

Instruction Cache

Register File

Load/Store Units x16Special Func Units x4

Interconnection Network64K Configurable

Cache/Shared MemUniform Cache

SM(32 CUDA Cores)

Core Core Core Core

Core Core Core Core

Core Core Core Core

Core Core Core Core

Core Core Core Core

Core Core Core Core

Core Core Core Core

Core Core Core Core

Scheduler

Dispatch

Scheduler

Dispatch

Fermi GF100(16 SMs)

DRAM

I/F DRAM

I/FDRAM

I/FDRAM

I/FDRAM

I/FDRAM

I/F

Giga

Thr

ead

HOS

T I/F

Lw

SM

Ⅰ그림 4-26 GeForce Fermi 아키텍처Ⅰ

� GeForce 256을 시작으로 현재 Fermi 및 Kepler 아키텍처로 대변되는 GeForce 600 시리즈가 출시되어 있으며, 후속 제품은 ARM CPU를 통합한 Maxwell(프로젝트명 Denver로 당초 2010년 9월 출시 예정이었다가 2014년으로 연기됨) 및 Einstein(출시 일정 미정) 등이 있음[25]

-� Fermi는 32개의 CUDA 코어로 구성된 SM(Stream Multiprocessor)으로 구성되어 있으며 SM내에는 CUDA 코어 간 공유 가능한 64KB의 온칩 메모리가 내장됨(그림4-26)

※� SM이 Fermi 아키텍처의 핵심이며 SM의 주요 아키텍처 특징은 표4-6과 같음

Page 32: SUMMARY - SKKUmel.skku.edu/201302_GPU.pdfISSUE 4 실감 멀티미디어 UI/UX와 고성능 컴퓨팅을 위한 GPU 기술 및 산업 동향 080 한국산업기술평가관리원 Korea

PD ISSUE REPORT FEBRUARY 2013 VOL 13-2KEIT PD Issue Report

한국산업기술평가관리원 Korea Evaluation Institute of Industrial Technology110 111

Ⅰ표 4-6 SM(Stream Multiprocessor) 아키텍처 특징Ⅰ

특징 설명

SIMT(Single Instruction Multiple Thread) 실행

•� SW 쓰레드들은 “warp”이라고 불리는 32개 단위의 그룹으로 묶여 32개(SM이 32개 CUDA 코어로 구성되었기 때문)의 하드웨어 쓰레드에 스케줄 되어 수행됨

•� Warp은 제어 로직을 공유하므로 HW수준에서는 SIMD 방식으로 수행됨. 즉 한 개의 Warp에 1개 명령어가 fetch됨

하드웨어 멀티쓰레딩

•� 하드웨어적으로 멀티쓰레드의 할당 및 분기(branch)에 의한 쓰레드 발산(diverge)을 포함한 스케줄링이 처리됨

•� 하드웨어에 의한 쓰레드 간 빠른 스위칭으로 인해 latency hiding이 가능

실행에 필요한 모든 자원이

쓰레드에 할당

•� 쓰레드는 실행에 필요한 모든 자원을 가지고 있어 기본적으로 제약 없이 병렬 수행이 가능함

Ⅰ표 4-7 SM vs SMX 비교Ⅰ

SM SMX Ratio Ratio(w/clk. freq.)

CUDA Cores 32 192 6x -

SFU(special functional unit) 4 32 8x -

LD/ST 16 32 2x -

Texture unit 4 16 4x -

Warp scheduler 2 4 2x -

Throughput per GPU clk : - - - -

FMA32(32b fused multiply/add) 64 192 3x 3.9x

SFU 8 32 4x 5.2x

LD/ST(64b operations) 16 32 2x 2.6x

Texture 4 16 4x 5.2x

Polygon/clk 0.25 0.5 2x 2.6x

Inst/clk 32x2 32x8 4x 5.2x

Ⅰ표 4-8 엔비디아 아키텍처에서 연산 단위 용어 개념Ⅰ

특징 설명

커널(Kernel)•� GPU 내에서 수행되는 코드(통상적으로 함수(function))를 말하며 다수의 stream processor 상에서 병렬

수행됨. 각 stream processor는 같은 프로그램의 서로 다른 지점에서 병렬 연산(SPMD : Single Program Multiple Data)을 수행

쓰레드(Thread) •� 주어진 인덱스를 갖고 커널 내에서 수행되는 병렬 수행의 가장 작은 기본 단위의 명령어 스트림

블록(Block) •� 쓰레드 그룹을 의미하며 스케줄 가능한 단위의 쓰레드를 묶어 구성됨. 블록 내의 쓰레드는 필요한 경우 동기화 할 수 있음

Warp •� ‘블록(block)’이 SM(Stream Multiprocessor)에 할당되면 SM 각각에 할당되는 단위인 Warp으로 분할되며, Warp에 포함되는 쓰레드의 개수는 implementation specific함

그리드(Grid) •� ‘블록(block)’의 그룹을 말하며 그리드 내의 블록 간에는 동기화를 하지 않음. ‘그리드’는 스케줄 가능한 단위의 블록들을 묶어 구성됨

Page 33: SUMMARY - SKKUmel.skku.edu/201302_GPU.pdfISSUE 4 실감 멀티미디어 UI/UX와 고성능 컴퓨팅을 위한 GPU 기술 및 산업 동향 080 한국산업기술평가관리원 Korea

ISSUE 4실감 멀티미디어 UI/UX와 고성능 컴퓨팅을 위한 GPU 기술 및 산업 동향

한국산업기술평가관리원 Korea Evaluation Institute of Industrial Technology110 111

커널, 그리드, 블록, 쓰레드 관계 SM 매핑 단위(Warp)와 블록의 관계

Ⅰ그림 4-27 엔비디아 GPU에서 연산 처리 단위 용어 개념Ⅰ

Instruction Cache

Register File

Load/Store Units x16Special Func Units x4

Interconnection Network

64K ConfigurableCache/Shared Mem

Uniform Cache

Core Core Core Core

Core Core Core Core

Core Core Core Core

Core Core Core Core

Core Core Core Core

Core Core Core Core

Core Core Core Core

Core Core Core Core

Scheduler

Dispatch

Scheduler

Dispatch

Instruction Cache

Interconnection Network

Tex

Tex

Tex

Tex

Tex

Tex

Tex

Tex

Tex

Tex

Tex

Tex

Tex

Tex

Tex

Tex

64KB Shared Memory/L1 Cache

48KB Read-Only Data Cache

Register File (65,536x32bit)

Wrap Scheduler

Dispatch

Core Core Core Core Core Core Core Core Core Core Core Core

Core Core Core Core Core Core Core Core Core Core Core Core

Core Core Core Core Core Core Core Core Core Core Core Core

Core Core Core Core Core Core Core Core Core Core Core Core

Core Core Core Core Core Core Core Core Core Core Core Core

Core Core Core Core Core Core Core Core Core Core Core Core

Core Core Core Core Core Core Core Core Core Core Core Core

Core Core Core Core Core Core Core Core Core Core Core Core

Core Core Core Core Core Core Core Core Core Core Core Core

Core Core Core Core Core Core Core Core Core Core Core Core

Core Core Core Core Core Core Core Core Core Core Core Core

Core Core Core Core Core Core Core Core Core Core Core Core

Core Core Core Core Core Core Core Core Core Core Core Core

Core Core Core Core Core Core Core Core Core Core Core Core

Core Core Core Core Core Core Core Core Core Core Core Core

Core Core Core Core Core Core Core Core Core Core Core Core

Dispatch Dispatch Dispatch Dispatch Dispatch Dispatch Dispatch

Wrap Scheduler Wrap Scheduler Wrap Scheduler

DPUnit

DPUnit

DPUnit

DPUnit

DPUnit

DPUnit

DPUnit

DPUnit

DPUnit

DPUnit

DPUnit

DPUnit

DPUnit

DPUnit

DPUnit

DPUnit

DPUnit

DPUnit

DPUnit

DPUnit

DPUnit

DPUnit

DPUnit

DPUnit

DPUnit

DPUnit

DPUnit

DPUnit

DPUnit

DPUnit

DPUnit

DPUnit

DPUnit

DPUnit

DPUnit

DPUnit

DPUnit

DPUnit

DPUnit

DPUnit

DPUnit

DPUnit

DPUnit

DPUnit

DPUnit

DPUnit

DPUnit

DPUnit

DPUnit

DPUnit

DPUnit

DPUnit

DPUnit

DPUnit

DPUnit

DPUnit

DPUnit

DPUnit

DPUnit

DPUnit

DPUnit

DPUnit

DPUnit

DPUnit

LD/ST SFU SFU

SFU SFU

SFU SFU

SFU SFU

SFU SFU

SFU SFU

SFU SFU

SFU SFU

SFU SFU

SFU SFU

SFU SFU

SFU SFU

SFU SFU

SFU SFU

SFU SFU

SFU SFU

LD/ST

LD/ST

LD/ST

LD/ST

LD/ST

LD/ST

LD/ST

LD/ST

LD/ST

LD/ST

LD/ST

LD/ST

LD/ST

LD/ST

LD/ST

LD/ST

LD/ST

LD/ST

LD/ST

LD/ST

LD/ST

LD/ST

LD/ST

LD/ST

LD/ST

LD/ST

LD/ST

LD/ST

LD/ST

LD/ST

LD/ST

Instruction Cache

Wrap Scheduler

Dispatch

Register File(65,536x32bit)

Interconnection Network

64KB Shared Memory/L1 Cache

48KB Read-Only Data Cache

Tex

Core

LD/ST

DP Unit

SFU

Fermi SM Kepler SMX

Ⅰ그림 4-28 SM vs SMX 비교Ⅰ

-� Fermi의 후속인 Kepler에서는 SM의 성능대비 전력소모 효율을 2배 향상시킨 새로운 SMX가 등장하였음[20]

([표4-7], [그림 4-28] 참조)

-� Kepler에서는 또한 GPU 활용도를 향상시키고, 병렬 프로그램 설계를 단순화하는 Dynamic parallelism,

Hyper-Q 등의 feature가 추가됨([표 4-9], [그림 4-29] 참조)

Page 34: SUMMARY - SKKUmel.skku.edu/201302_GPU.pdfISSUE 4 실감 멀티미디어 UI/UX와 고성능 컴퓨팅을 위한 GPU 기술 및 산업 동향 080 한국산업기술평가관리원 Korea

PD ISSUE REPORT FEBRUARY 2013 VOL 13-2KEIT PD Issue Report

한국산업기술평가관리원 Korea Evaluation Institute of Industrial Technology112 113

Ⅰ표 4-9 Kepler의 새로운 특징 요약[20]Ⅰ

특징 설명

Dynamic Parallelism

•� CPU와 별개로 GPU에서 자체적으로 처리할 새로운 작업을 생성하고, 결과를 동기화하며, 가속화된 전용 하드웨어 경로를 통해 해당 작업의 스케줄링을 제어하는 기능으로 GPU 연산 효율성을 극대화함으로써 어플리케이션의 더 많은 부분을 전적으로 GPU에서 실행할 수 있게 함

Hyper-Q •� 여러 CPU 코어에서 단일 GPU의 작업을 동시에 실행하도록 하여 GPU 활용도를 높이고 CPU 유휴 시간을 크게 줄이는 기능

Grid management unit

•� GPU에서 실행할 그리드를 관리하고 우선순위를 지정하는 유닛으로 새로운 그리드의 디스패치를 일시 중지하고 대기 중이거나 일시 중단된 그리드를 실행할 준비가 될 때까지 대기열에 넣을 수 있기 때문에 동적 병렬 처리와 같은 강력한 Runtime 시스템을 구현하는 데 필요한 유연성이 확보됨

GPUDirectTM•� 단일 컴퓨터의 GPU 또는 네트워크에 분산된 여러 서버의 GPU가 CPU/시스템 메모리를 거치지 않고

직접 데이터를 교환할 수 있게 하는 기능으로 GPU간 통신에서 CPU가 개입하지 않는 일종의 DMA 기능에 유추하여 볼 수 있음

실행 관리 측면에서의 비교

Kepler에서의 Dynamic Parallelism 개념

Kepler에서의 Hyper-Q 개념

Ⅰ그림 4-29 Fermi vs Kepler 비교Ⅰ

Page 35: SUMMARY - SKKUmel.skku.edu/201302_GPU.pdfISSUE 4 실감 멀티미디어 UI/UX와 고성능 컴퓨팅을 위한 GPU 기술 및 산업 동향 080 한국산업기술평가관리원 Korea

ISSUE 4실감 멀티미디어 UI/UX와 고성능 컴퓨팅을 위한 GPU 기술 및 산업 동향

한국산업기술평가관리원 Korea Evaluation Institute of Industrial Technology112 113

ⅱ) Tegra 시리즈

� Tegra 시리즈는 엔비디아가 모바일 마켓을 위해 개발한 ARM CPU 코어 내장 Application processor로 2008년 Tegra APX2500이 효시임

Ⅰ그림 4-30 ULP GeForce 아키텍처 블록도Ⅰ

� 2010년 CES에서 발표된 Tegra 250(Tegra 2 시리즈)은 안드로이드를 지원하여 본격적으로 스마트폰 등에 채용되기 시작했으며, Tegra 3(코드명 Kal-El)가 2012년 출시됨

-� Tegra 2부터 GeForce의 저전력 버전인 ULP(Ultra Low Power) GeForce를 채용하고 있으며, ULP GeForce는 각각 4개의 vertex shader 및 pixel shader, OpenGL ES 2.0 지원을 위한 몇 가지 특징을 가지고 있음

� Tegra 3는 Tegra 2에 비해 최대 3배 향상된 그래픽 성능과 최고 61%의 전력소비감소를 제공하며, 12시간 동안 HD급 비디오 재생이 가능한 것으로 발표됨

-� vSMP(Variable Symmetric Multiprocessing) 기술을 통해 고성능 컴퓨팅 파워를 필요로 하는 작업은 4개의 고성능 CPU 코어(Cortex-A9 : 최대 1.6~1.7GHz 동작)를 통해 처리하는 반면, 경량 작업은 저전력 특화 설계된 5번째 companion 코어를 통해 처리함으로써 전력 효율을 증대시킴[26]

※� Companion 코어 역시 ARM Cortex-A9이지만, 특별한 저전력 공정(TSMC 40나노 LPG)으로 제조되어 최대 500MHz로 클럭 주파수가 제한되어 있음

-� Tegra 2에 비해 pixel shader가 12개로 3배 늘어나 향상된 그래픽/비디오 처리 기능을 제공

� Wayne이라는 코드명의 최초의 Tegra 4 칩은 ARM Cortex-A15 쿼드코어와 72개의 ULP GeForce 코어를 내장하고 28나노 공정으로 제조된 칩으로 2013년 1월 CES에서 발표되었으며, 또한 同 시리즈로 2013년 Logan, 2014년 Tegra 2의 100배 가까운 성능을 내는 Stark가 예정되어 있음

※� Tegra 4 역시 ‘Tegra 3와 같이 4-Plus-1’ CPU 코어 configuration(4개의 고성능 Cortex-A15 + 1개의 companion 코어 역할의 저전력 저주파수 Cortex-A15)으로 알려져 있음

Page 36: SUMMARY - SKKUmel.skku.edu/201302_GPU.pdfISSUE 4 실감 멀티미디어 UI/UX와 고성능 컴퓨팅을 위한 GPU 기술 및 산업 동향 080 한국산업기술평가관리원 Korea

PD ISSUE REPORT FEBRUARY 2013 VOL 13-2KEIT PD Issue Report

한국산업기술평가관리원 Korea Evaluation Institute of Industrial Technology114 115

-� 2013년 2월 20일 엔비디아는 ‘4 Plus1’ ARM Cortex-A9 멀티코어 CPU 및 60개의 커스텀 GPU코어를 내장하고 HSPA/LTE베이스밴드모뎀(Icerai500SW 기반모뎀)을 통합한 모바일 AP Tegra 4i(프로젝트명 그레이)를 발표

Ⅰ표 4-10 ULP GeForce 특징Ⅰ

특징 설명

Early-Z support •� 연산량이 많은 Z-buffering을 pixel shader 이전에 처리할 수 있도록 지원함으로써 전력 소모를 감소시킴

Pixel / Texture / Vertex cache

•� 시스템 메모리 트래픽 감소를 위한 pixel, texture, vertex 캐시 및 독자적인 캐시 관리 알고리즘 지원

Integrated Pixel Shader & Blend Unit

•� OpenGL ES에서 지원하지 않는 보다 다양한 blending(예 : Adobe Flash blending 모드) 구현을 지원하기 위한 구조

Coverage sampling anti-aliasing(CSAA)

•� 시스템 메모리 액세스를 최소화하기 위한 anti-aliasing 기법으로 전통적인 multi-sample antialiasing(MSAA) 및 super-sample anti-aliasing(SSAA)에 비해 메모리 액세스가 현저하게 감소

Advanced Anisotropic Filtering(AF)

•� 死角에 가까운 극단적인 화각(view angle)에서 표면 질감의 detail을 향상시키는 기술

Optimized memory controller

•� 동적 클럭 속도 조절, GPU 중심 메모리 중재, GPU 요청 그룹핑 등 성능 향상과 저전력을 위한 메모리 컨트롤러 기법 채용

Advanced Power management

•� 다중 클럭 게이팅, 디스플레이 요구 그룹핑, 전력 최적화 트랜지스터, 동적 전압-주파수 스케일링을 포함한 다양한 저전력 기법

Tegra4The World’s Fastest

Mobil Processor

72 4

4G LTE

GPU Cores A15CPU Cores

ModernProcessor

Tegra 4(wayne) 및 주요 특성 Tegra 로드맵

Ⅰ그림 4-31 Tegra 4(Wayne) 칩 사진 및 Tegra 로드맵Ⅰ

�AMD Fusion

� x86 기반 CPU 제조업체인 AMD는 2006년 ATI社를 인수한 이후 엔비디아와 함께 discrete GPU 시장을 양분하고 있으며, 모바일부터 고성능 컴퓨팅용 GPU까지 다양한 라인업을 갖추고 있음

-� Radeon은 AMD의 대표적인 Add-in 카드용 GPU 브랜드이며, 워크스테이션용 FirePro, HPC용 GPGPU인 FireStream 등 다양한 라인업을 가지고 있으나 가장 큰 시장인 모바일 분야에서 취약해 최근 많은 어려움을 겪고 있음

Page 37: SUMMARY - SKKUmel.skku.edu/201302_GPU.pdfISSUE 4 실감 멀티미디어 UI/UX와 고성능 컴퓨팅을 위한 GPU 기술 및 산업 동향 080 한국산업기술평가관리원 Korea

ISSUE 4실감 멀티미디어 UI/UX와 고성능 컴퓨팅을 위한 GPU 기술 및 산업 동향

한국산업기술평가관리원 Korea Evaluation Institute of Industrial Technology114 115

LLANO

TRINITY

Ⅰ그림 4-32 2세대 AMD 퓨전 프로세서 APU LLANO, TRINITYⅠ

� AMD는 2006년 ATI 합병 이후 CPU와 GPU를 통합한 코드명 “Fusion”의 APU(Accelerated Processing Unit)를 mainstream 프로세서로 프로모션하고 있음

-� 부동소수점 연산과 같은 데이터 중심의 계산을 GPU로 이관하여 강력한 성능을 발휘하도록 함

Page 38: SUMMARY - SKKUmel.skku.edu/201302_GPU.pdfISSUE 4 실감 멀티미디어 UI/UX와 고성능 컴퓨팅을 위한 GPU 기술 및 산업 동향 080 한국산업기술평가관리원 Korea

PD ISSUE REPORT FEBRUARY 2013 VOL 13-2KEIT PD Issue Report

한국산업기술평가관리원 Korea Evaluation Institute of Industrial Technology116 117

칩 전체 구조

Command Processor

Geometry Assembly

Ultra-threaded Dispatch Processor

Shader Export

Tessellator Rasterizer Hierarchical ZVertex Assembler

Text

ure

Uni

ts

Global Data Share

L1 T

extu

re C

ache

s

Instruction Cache

Memory Controller Memory Controller

L2Cache

Loca

l Dat

a Sh

ares

Constant Cache

GPU 내부 아키텍처

Ⅰ그림 4-33 AMD 1세대 APU A-Series LLANO 구조Ⅰ

-� 1세대 APU인 Llano는 CPU, GPU, Northbridge 기능을 통합하여 32나노 공정으로 2011년 10월 출시하였으며, 2세대 APU인 Trinity는 2012년 5월에 출시됨[27]

※� 2012년 초, AMD는 자사의 APU를 위한 “Fusion” 브랜드 대신 “HSA(Heterogeneous System Architecture)”로 전환 집중하기로 함

Page 39: SUMMARY - SKKUmel.skku.edu/201302_GPU.pdfISSUE 4 실감 멀티미디어 UI/UX와 고성능 컴퓨팅을 위한 GPU 기술 및 산업 동향 080 한국산업기술평가관리원 Korea

ISSUE 4실감 멀티미디어 UI/UX와 고성능 컴퓨팅을 위한 GPU 기술 및 산업 동향

한국산업기술평가관리원 Korea Evaluation Institute of Industrial Technology116 117

i) AMD Fusion(2013년 이후 HSA : Heterogenous System Architecture)

� AMD Fusion은 기본적으로 AMD의 x86 CPU와 2006년 ATI를 인수함으로써 확보한 Radeon GPU를 싱글칩(싱글 die)으로 통합한 APU 브랜드명임[29]

-� CPU, GPU외에도 Fusion 플랫폼은 Northbridge, PCIe, DDR3 메모리 컨트롤러와 UVD(Unified Video Decoder)를 통합하고 있음

-� Main stream인 A-series, 저전력 E-series, 태블릿용 Z-series 등 다양한 라인업을 형성하고 있음

Ⅰ그림 4-34 AMD APU 로드맵Ⅰ

ⅱ) AMD Graphics Cores Next(GCN) 아키텍처

� AMD는 최근 3D 게임 분석에서 각 클럭 사이클 당 3~4개 사이의 ALU 연산이 주로 활용된다는 결과에 의해 2011년 기존의 VLIW5 아키텍처에서 VLIW4로 전환한 바 있고, 다시 2012년도에 GCN이라는 새로운 GPU 아키텍처를 발표함(그림4-34 참조)[29]

-� VLIW5는 Radeon HD 5000 및 6000시리즈 및 1세대 APU인 LLANO에 적용된 아키텍처로 1개의 VLIW(Very Long Instruction Word)에 5개의 ALU 연산이 지원되는 반면,

-� VLIW4는 어플리케이션 특성을 고려한 연산자원의 효율성을 증대하기 위해 한 명령어에 동시 수행 가능한 ALU 연산을 4개로 축소한 것으로 2세대 APU인 Trinity에 적용됨

-� VLIW4 및 VLIW5 아키텍처에서 AMD GPU는 16개의 ALU를 가진 다수의 SIMD 엔진으로 구성되어 VLIW 명령어에 의해 동시에 4~5개의 독립적 명령어(VLIW 명령어에 포함된)를 수행하도록 함

-� SIMD 엔진은 64개의 쓰레드로 구성된 Wavefront(엔비디아의 Warp에 해당)를 수행하도록 하며 이는 그래픽스 연산에서는 매우 효과적이었음

-� 그러나 이러한 방식은 데이터 포맷이 복잡해지고 범용 컴퓨팅에서는 데이터 포맷 예측이 불가한 측면이 있어 매 사이클마다 4~5개의 독립적인 연산을 지속적으로 수행하기 어려워 SIMD 엔진의 utilization이 저하되는 결과를 초래

Page 40: SUMMARY - SKKUmel.skku.edu/201302_GPU.pdfISSUE 4 실감 멀티미디어 UI/UX와 고성능 컴퓨팅을 위한 GPU 기술 및 산업 동향 080 한국산업기술평가관리원 Korea

PD ISSUE REPORT FEBRUARY 2013 VOL 13-2KEIT PD Issue Report

한국산업기술평가관리원 Korea Evaluation Institute of Industrial Technology118 119

� 2011년 하반기에 발표한 GCN은 HSA 기반으로 GPGPU의 특성을 고려하여 새로운 명령어 집합으로 설계된 아키텍처로 기본 빌딩 블록은 CU(Compute Unit)이며 이것은 엔비디아의 SM/SMX에 해당한다고 할 수 있음(그림 4-35 참조)

-� GCN에서 각 CU는 벡터 프로세싱을 위한 4개의 SIMD 유닛을 포함하여 각 SIMD 유닛이 16개의 쓰레드에 대해 동시 처리가 가능함

-� VLIW 아키텍처에서는 독립적인 병렬 연산을 컴파일러에 의존하는데 비해 GCN에서는 하드웨어적으로 찾아내는 데 주안점을 둠

-� AMD는 GCN에서의 중요한 혁신 중 하나로 coherent caching을 강조하고 있으며, 캐시 coherency 프로토콜을 통해 L2 캐시가 공유 가능하다고 함

-� 또한 GPU에서 가상 메모리(Virtual memory)를 지원하며, 이것은 AMD가 CPU와 GPU 기술을 모두 확보하고 있기 때문에 가능한 것으로 예상할 수 있음

Ⅰ그림 4-35 VLIW4 vs GCN 아키텍처 비교Ⅰ

Ⅰ그림 4-36 AMD GCN(Graphics Cores Next) CU(Compute Unit) 아키텍처Ⅰ

Page 41: SUMMARY - SKKUmel.skku.edu/201302_GPU.pdfISSUE 4 실감 멀티미디어 UI/UX와 고성능 컴퓨팅을 위한 GPU 기술 및 산업 동향 080 한국산업기술평가관리원 Korea

ISSUE 4실감 멀티미디어 UI/UX와 고성능 컴퓨팅을 위한 GPU 기술 및 산업 동향

한국산업기술평가관리원 Korea Evaluation Institute of Industrial Technology118 119

�Imagination Technologies - PowerVR

� 영국의 Imagination社는 임베디드 모바일 GPU코어 세계 시장 1위 업체로 PowerVR은 GPU 코어 브랜드명임

-� PowerVR은 확장 가능한 구조로 특별한 타일 기반 기술(tile-based deferred rendering, TBDR)을 통해

숨겨진 표면 제거 및 화소 블렌딩(pixel blending)을 처리하며, 32x32타일로 구성된 rasterizer를 사용하여

활성화된 음영 지역만을 shader 처리함[30]

-� 다각형(Polygon) 생성 프로그램이 PowerVR 드라이버에 삼각형 primitive를 전달하면 삼각형 조각 또는

인덱스 형식으로 메모리에 저장하고 다른 아키텍처와 달리, 통상적으로 모든 다각형 정보가 현재 프레임에 대한

수집될 때까지 렌더링 처리를 지연시키며, visible한 부분이 결정 될 때까지, 막대한 연산이 요구되는 texture,

pixel(또는 fragment) 처리 또한 지연시킴

-� 렌더링을 위해 디스플레이를 격자 구조의 직사각형 타일로 구획되며 각 타일에는 그 위치에 해당하는 visible한

삼각형의 목록이 결합되어 타일 별 렌더링 수행

-� 타일에 결합된 삼각형들에 광선이 투사되고 카메라에 가장 가까운 삼각형부터 화소 렌더링이 시작되는데,

전통적인 Z-buffered 렌더링 방식에 비해 다른 객체에 의해 가려지는 지역의 다각형이 어떻게 보이게 되는지를

결정하는 연산을 생략하는 장점을 가짐

-� 또한 다각형을 생성하는 어플리케이션에 의해 처리되는 순서에 무관하게 부분적으로 보이는 다각형의 올바른

처리도 가능하게 됨

Video Memory GPU

Early Z/Depth Test

Vertex Processing

Texture & Shading

Clip. Project & Cull

Raster

Alpha Test

Late Z/Depth Test

Alpha Blend

Geometry Data

Depth(Z) B

uffer

Color Buffer

Texture Data

GPUVideo Memory

Vertex Processing

Texture & Shading

Clip. Project & Cull

Tiling

Tag Buffer

Hidden SurfaceRemoval & Depth Test

Raster

Geometry Data

Transformed

VertexData

TiledPrim

itive Lists

On-chipColorBuffer

On-chipColorBuffer

Texture Data

Texture Data

Alpha Test

Alpha Blend

Position data

Attribute

GPUVideo Memory

Vertex Processing

Texture & Shading

Clip. Project & Cull

Hidden SurfaceRemoval & Depth Test

Tag Buffer

Tiling

Raster

Alpha Test

Alpha Blend

Geometry Data

On-chipColorBuffer

On-chipColorBuffer

TiledPrim

itive Lists

Transformed Vertex D

ata

Texture Data

Texture Data

Immediate Mode Rendering(IMR) Tile Based Rendering(TBR) Tile Based Deferred Rendering(TBDR)

Ⅰ그림 4-37 렌더링 방식 비교Ⅰ

Page 42: SUMMARY - SKKUmel.skku.edu/201302_GPU.pdfISSUE 4 실감 멀티미디어 UI/UX와 고성능 컴퓨팅을 위한 GPU 기술 및 산업 동향 080 한국산업기술평가관리원 Korea

PD ISSUE REPORT FEBRUARY 2013 VOL 13-2KEIT PD Issue Report

한국산업기술평가관리원 Korea Evaluation Institute of Industrial Technology120 121

-� 보다 중요한 것은 렌더링이 한 번에 한 타일로 제한되며 한 프레임 당 타일은 한 번만 처리되기 때문에 타일 전체를 빠른 온칩 메모리에 저장할 수 있고 처리된 타일을 비디오 메모리에서 다음 타일 처리 전 완전하게 제거시킬 수 있음

-� Deferred rendering 선구자가 PowerVR만은 아니지만 시장에 성공적으로 적용한 첫 번째 사례이며, 계층적 Z-buffering(Hierarchical Z)의 최근 진보에서도 deferred rendering의 아이디어를 통합하고 있음

i) PowerVR 시리즈 5

� PowerVR’s 시리즈 5 SGX는 pixel, vertex, geometry shader 하드웨어로 구성되며, OpenGL ES 2.0, DirectX 10.1(with Shader Model 4.1)을 지원

-� 2D/3D 및 GPGPU 프로세싱을 싱글 코어 상에서 수행할 수 있게 하는 USSE(Universal Scalable Shader Engine) 기술을 결합하였으며, 이 기술은 향상된 geometry/pixel 처리 및 진보된 light 효과, 이와 관련된 GPGPU 기능을 지원함

Ⅰ그림 4-38 PowerVR SGX GPGPU 코어 아키텍처Ⅰ

� Apple A4에 채용되어 iPhone 4, iPad, iPod touch, Apple TV등에 탑재되었으며, TI OMAP 3와 4, 삼성전자 Hummingbird 에도 사용되어

-� BlackBerry PlayBook, 노키아 N900, 소니에릭슨 Vivaz, 모토롤라 Droid/Milestone, Droid Bionic, Archos 70, Palm Pre, 삼성 Galaxy SL, Galaxy Nexus, Open Pandora, 삼성 Galaxy S/Galaxy Tab/Wave S8500/Wave II S8530 등에 탑재됨[1]

-� 인텔은 SGX 540을 자사 Medfield 플랫폼에 채택

Page 43: SUMMARY - SKKUmel.skku.edu/201302_GPU.pdfISSUE 4 실감 멀티미디어 UI/UX와 고성능 컴퓨팅을 위한 GPU 기술 및 산업 동향 080 한국산업기술평가관리원 Korea

ISSUE 4실감 멀티미디어 UI/UX와 고성능 컴퓨팅을 위한 GPU 기술 및 산업 동향

한국산업기술평가관리원 Korea Evaluation Institute of Industrial Technology120 121

ⅱ) PowerVR 시리즈 5XT(SGXM)

� USSE에 비해 부동소수점 연산 성능을 배가시켜주는 USSE2 기술을 채택하고 2~16개의 멀티코어를 지원하며, 향상된 shader-driven Tile-Based Deferred Rendering(TBDR) 아키텍처를 통해 모든 모바일 및 데스크톱 표준 API를 지원하고 PowerVR MBX/SGX 시리즈 5와 backward 호환성을 유지함

-� 5XT SGXMP는 SGX 시리즈의 멀티코어 버전으로 Apple A5에 채용되어 iPad 2, iPhone 4S 등에 탑재되었고, 3세대 iPad는 쿼드코어 SGX543MP4가 사용된 A5X SoC가, iPhone 5의 A6 SoC에는 트라이코어 SGX543MP3가 탑재됨

-� 4세대 iPad에서 사용될 A6X SoC에는 쿼드코어 SGX554MP4가 탑재될 예정

Ⅰ그림 4-39 Tile-based Deferred 렌더링 아키텍처Ⅰ

ⅲ) PowerVR 시리즈 6(Rogue)

� PowerVR 시리즈 6는 Imagination의 차세대 아키텍처로 ‘Rogue’라는 코드명을 가지며, ST-Ericsson은 자사의 새로운 Nova 어플리케이션 프로세서에 시리즈 6 ‘Rogue’를 탑재할 예정

�ARM Mali� Mali는 과거 노르웨이의 Falanx라는 GPU 기업을 ARM이 인수하여 확보한 GPU IP 코어의 브랜드명으로, 그래픽스 전용 Mali-4xx MP 계열과 high-end 스마트기기 및 태블릿 시장을 위한 그래픽스/GPU 컴퓨팅용 Mali-T6xx계열로 개발 출시되고 있음[31]

Page 44: SUMMARY - SKKUmel.skku.edu/201302_GPU.pdfISSUE 4 실감 멀티미디어 UI/UX와 고성능 컴퓨팅을 위한 GPU 기술 및 산업 동향 080 한국산업기술평가관리원 Korea

PD ISSUE REPORT FEBRUARY 2013 VOL 13-2KEIT PD Issue Report

한국산업기술평가관리원 Korea Evaluation Institute of Industrial Technology122 123

Ⅰ그림 4-40 ARM사의 GPU 로드맵Ⅰ

* 출처 : Bringing Visual Computing to Life, ARM

i) ARM Mail 400MP/450MP

� Mail-400 MP는 Pixel 프로세서 코어를 1개에서 4개까지, L2캐시를 32KB에서 128KB까지 확장 가능한 구조를 가지고 있으며, 또한 geometry 프로세서는 싱글 쓰레드 심층 파이프라인의 vertex shader로 구성됨(그림4-41 참조)

-� 각 fragment 프로세서는 128 쓰레드 barrel 프로세서, 그래픽에 최적화된 VLIW ISA를 가지며 1 클럭당 1 texture 샘플을 수행하도록 설계 되어있으며, 각 fragment 코어들은 한 번에 한 타일을 처리함

� Mail-450MP는 Mail-400MP의 2배까지 확장(8개의 Fragment 프로세서, 2개의 vertex 프로세서까지 확장) 가능한 구조로 설계되었으며, OpenVG 1.1, OpenGL ES 2.0/1.1에 호환되는 2D/3D 그래픽스 처리가 가능함(표 4-11, 그림4-42 참조)

-� 4K 해상도까지 스케일 가능하며, configurable한 L2캐시를 집적하여 latency 및 메모리 대역폭을 향상시켰으며,

-� 최적의 타일 기반 렌더링 및 immediate 모드를 결합하고, 통합 메모리 액세스와 L2 캐시 공유, 작업량에 따른 각 코어의 on/off 조절을 통해 단계적인 전력관리가 가능하도록 설계되어 성능 대비 전력효율성이 우수함

Page 45: SUMMARY - SKKUmel.skku.edu/201302_GPU.pdfISSUE 4 실감 멀티미디어 UI/UX와 고성능 컴퓨팅을 위한 GPU 기술 및 산업 동향 080 한국산업기술평가관리원 Korea

ISSUE 4실감 멀티미디어 UI/UX와 고성능 컴퓨팅을 위한 GPU 기술 및 산업 동향

한국산업기술평가관리원 Korea Evaluation Institute of Industrial Technology122 123

Mali-400 MP geometry 프로세서

Mali-400 MP fragment 프로세서 Mali-400 MP top level 프로세서

Ⅰ그림 4-41 ARM Mali-400 MP 아키텍처Ⅰ

Ⅰ그림 4-42 ARM Mali-400 MP vs Mali-450 MPⅠ

Page 46: SUMMARY - SKKUmel.skku.edu/201302_GPU.pdfISSUE 4 실감 멀티미디어 UI/UX와 고성능 컴퓨팅을 위한 GPU 기술 및 산업 동향 080 한국산업기술평가관리원 Korea

PD ISSUE REPORT FEBRUARY 2013 VOL 13-2KEIT PD Issue Report

한국산업기술평가관리원 Korea Evaluation Institute of Industrial Technology124 125

Ⅰ표 4-11 Mali-400MP 대비 Mali-450MP 개선사항Ⅰ

개선사항 상세 내용

성능 확장성 강화 •� 선형적 성능 증가를 가져오는 8개까지의 pixel 프로세서 확장 가능

•� Geometry 프로세서 throughput 2배 향상

대역폭 최적화 •� 캐시의 지역성/일관성/latency tolerance 향상

전력 절감 •� 범용 레지스터를 갖는 저전력 구조

•� 저전력을 위한 전용 DMA 엔진

렌더링 효율 증대 •� 전용 동적 load balancing 유닛을 통한 아키텍처 효율 향상과 최적화된 Job 관리

ⅱ) ARM Mali T600 시리즈

� Mail-T600 시리즈는 3D 그래픽 프로세싱과 함께 GPGPU를 지원하는 ‘Midgard’ 아키텍처 기반으로 각 타깃 시장별로 T601에서

T678까지 발표되어 있음

-� T601/T602(중저가 스마트폰용), T604(쿼드코어의 high-end 스마트폰 및 태블릿용), T624(T604의 성능 개선된 버전),

T628(T624의 8 코어 버전), T658(8 코어까지 확장 가능한 고성능 코어로 최근 ARM 로드맵에서 사라짐), T678(T658의 성능

개선된 버전)

-� 이전 세대인 400/450MP와 비교하면 OpenCL 등 GPGPU용 API 지원, 내부 MMU에서 가상메모리(Virtual Memory) 지원,

AMBA4-ACE Lite 버스 인터페이스 지원(이전 세대 GPU는 AMBA3-AXI 지원) 등이 새로 추가된 feature들로 요약됨

� Mail-T604는 비디오 처리 및 GPGPU에 최적화된 아키텍처로 Tri-Pipe-Thread 기반 병렬 파이프라인 아키텍처 기술을

적용하여, OpenGL ES 2.0, OpenCL 1.1, DirectX 11 등을 지원하며 ARM 최초의 GPGPU임

-� 메모리 대역폭 효율 극대화를 위한 타일 기반 멀티 코어 구조, CPU + GPU + Memory + Interconnection 구조에서 시스템적

접근 방식에 의한 효율적인 high throughput 설계 방식 적용으로 성능 대비 높은 전력 효율성을 가지며, 모바일에서 대화면의

DTV까지 커버할 수 있는 스케일러블 아키텍처임(그림4-43)

-� 메모리 대역폭 효율 및 시스템 수준의 에너지 효율을 대폭 향상 시키며, 고성능 CoreLink Cache Coherent Interconnect인

CCI-400(그림4-44)을 통해 일관된 메모리 시스템을 제공함

� Mail-T678은 shader 코어를 8개까지 확장가능하며, 일관된 단일 인터페이스를 통해 CPU와 GPU 성능을 효율적으로 배분할 수

있도록 유연성 및 확장성을 제공함

-� 현재 ARM의 최고 성능 GPU로 OpenGL ES 1.1/2.0/3.0, DirectX 11, OpenCL 1.1, Renderscript, DirectCompute의

광범위한 API를 지원함

Page 47: SUMMARY - SKKUmel.skku.edu/201302_GPU.pdfISSUE 4 실감 멀티미디어 UI/UX와 고성능 컴퓨팅을 위한 GPU 기술 및 산업 동향 080 한국산업기술평가관리원 Korea

ISSUE 4실감 멀티미디어 UI/UX와 고성능 컴퓨팅을 위한 GPU 기술 및 산업 동향

한국산업기술평가관리원 Korea Evaluation Institute of Industrial Technology124 125

Tri-pipe–Thread 기반 병렬 pipeline Mali-T604 시스템 설계 개념도(CoreLink)

Mali-T604 블록도 Mali-T604 vs. Mali-400MP

Ⅰ그림 4-43 Tri-pipe–Thread 기반 병렬 파이프라인 및 Mali-T604 블록도Ⅰ

Cache Coherent InterconnectCCI-400

Dynamic Memory ControllerDMC-400 Network Interconnect

NIC-400

DDR3/LPDDR2

DDR3/LPDDR2 Slaves Slaves

LCDVideoI/Odevice

Mail-T604graphics

QuadCortex-A15

QuadCortex-A15

PHY PHY

Network InterconnectNIC-400

GIC-400

MMU-400 MMU-400 MMU-400

Ⅰ그림 4-44 ARM CoreLink CCI-400Ⅰ

Page 48: SUMMARY - SKKUmel.skku.edu/201302_GPU.pdfISSUE 4 실감 멀티미디어 UI/UX와 고성능 컴퓨팅을 위한 GPU 기술 및 산업 동향 080 한국산업기술평가관리원 Korea

PD ISSUE REPORT FEBRUARY 2013 VOL 13-2KEIT PD Issue Report

한국산업기술평가관리원 Korea Evaluation Institute of Industrial Technology126 127

� ARM은 CPU-GPU코어 간의 메모리 광대역 연결을 지원하기 위해 AMBA4 ACE과 ACE-Lite 버스 프로토콜 기반 버스

인터페이스인 CoreLink CCI-400을 발표함

※� ARM Cortex A-15 / Cortex A-7의 big.LITTLE 구조(그림4-45)에서 CCI-400 버스 링크를 통해 두 CPU 클러스터 간에

L2 캐시가 공유되면서 Full coherency가 지원되며 Mali-T6xx GPU는 CPU-GPU 간의 공유된 데이터를 위해 두 CPU

클러스터의 캐시 컨트롤러를 감시(snoop)할 수 있음. I/O peripheral도 CPU의 L2 캐시를 CCI-400을 통해 감시할 수

있음[32]

Ⅰ그림 4-45 ARM big.LITTLE 구조에서의 하드웨어 시스템 coherency 구조Ⅰ

퀄컴 Adreno

� 퀄컴은 2008년 AMD의 모바일 GPU 사업부를 인수하여 Adreno라는 독자적인 GPU기술을 보유하고 있음

-� Adreno320는 가장 최근 발표된 unified shader 구조의 GPU 코어로 dual 메모리 채널 및 OpenCL 1.1을 지원하며,

Snapdragon S4 계열에 내장되고 있음[33]

Page 49: SUMMARY - SKKUmel.skku.edu/201302_GPU.pdfISSUE 4 실감 멀티미디어 UI/UX와 고성능 컴퓨팅을 위한 GPU 기술 및 산업 동향 080 한국산업기술평가관리원 Korea

ISSUE 4실감 멀티미디어 UI/UX와 고성능 컴퓨팅을 위한 GPU 기술 및 산업 동향

한국산업기술평가관리원 Korea Evaluation Institute of Industrial Technology126 127

� Adreno320 GPU는 FlexRenderTM이라는 타일 기반의 Binning 모드와 타일을 쓰지 않는 Direct 모드를 모두 지원하여,

“Binning”렌더링과 “Direct”렌더링을 지능적으로 교차 수행하여 성능을 최대화하며 전력소모를 최소화하는 기술을 적용하였음[8]

-� Binning 모드는 외부 메모리 대역을 절약할 수 있는 일반적인 방식인 Tiling 모드와 동일한 방식으로, 화면을 타일로 구획 후

렌더링 하여, Depth 버퍼나 color 버퍼를 내장 메모리(GMEM)에서 조달하는 방식이며

-� Direct 모드는 PC용 GPU처럼 외부 메모리에 직접 렌더링 하는 방식으로, immediate 모드라 부르는 방식임

Ⅰ표4-12 Direct 렌더링 모드 vs Binning 렌더링Ⅰ

Direct 렌더링 모드 Binning 렌더링 모드

•� 프레임 내에 어떤 객체가 있는지와 어떤 sorting 작업이 필요한지에 무관하게 시스템 메모리 내의 프레임 버퍼에 그래픽 렌더링 객체를 GPU가 바로 write 함

•� Geometry sorting과 온칩 메모리인 GMEM을 이용해 한 layer이상의 depth 복잡도를 갖는 프레임 렌더링 시 프레임버퍼에 통합 writing을 함으로써 시스템 메모리 트래픽을 감소시킴

7. 결론

� 3D 그래픽 프로세서는 1990년대 후반 프로그래머블 구조의 GPU로 진화 발전하면서 본격적으로 PC, 고성능 워크스테이션, 게임기부터 최근 스마트폰, 태블릿, 스마트TV 등 대부분의 정보가전기기에 채용되고 있음

� 점진적으로 CPU와 통합된 싱글 칩 형태로 데스크톱, 노트북, 스마트폰 등에서 활용되고 있으며, 고성능 분야에서는 별개의 GPU

칩으로 존재

� 차세대 지능형 스마트폰은 모바일 시스템과 사용자 간의 3D 공간상의 상호 작용을 지능화한 사용자 경험 강화형 스마트폰으로

발전할 전망이며, 이를 위한 GPU의 HW-SW 기술 발전 속도가 가속화되고 있음

Page 50: SUMMARY - SKKUmel.skku.edu/201302_GPU.pdfISSUE 4 실감 멀티미디어 UI/UX와 고성능 컴퓨팅을 위한 GPU 기술 및 산업 동향 080 한국산업기술평가관리원 Korea

PD ISSUE REPORT FEBRUARY 2013 VOL 13-2KEIT PD Issue Report

한국산업기술평가관리원 Korea Evaluation Institute of Industrial Technology128 129

Ⅰ그림 4-46 GPU 기술의 진화Ⅰ

� GPU는 대규모 데이터 병렬 처리가 가능한 구조적 특성과 SW 개발 환경의 발전으로, 최근 3D 그래픽스 뿐 아니라 고성능 범용 GPU(GPGPU : General Purpose GPU)로 발전해가면서 정보 가전, PC, 모바일 뿐 아니라 수퍼 컴퓨팅, 빅데이터, 클라우드 및 가상화 기술 발전의 동력원으로 크게 주목받고 있음

Page 51: SUMMARY - SKKUmel.skku.edu/201302_GPU.pdfISSUE 4 실감 멀티미디어 UI/UX와 고성능 컴퓨팅을 위한 GPU 기술 및 산업 동향 080 한국산업기술평가관리원 Korea

ISSUE 4실감 멀티미디어 UI/UX와 고성능 컴퓨팅을 위한 GPU 기술 및 산업 동향

한국산업기술평가관리원 Korea Evaluation Institute of Industrial Technology128 129

[참고문헌]

1.� Online, http://en.wikipedia.org

2.� “An Analysis of the GPU Market”, Jon Peddie Research, 2011년

3.� DAC 2012 Keynote : Designing a 22nm Intel Architecture Multi-CPU and GPU, http://intel.com

4.� “The Tradeoffs of Fused Memory Hierarchies in Heterogeneous Computing Architectures”, Kyle Spafford et el.,

Proceedings of the 9th conference on Computing Frontiers, 2012, pp 103-112, New York,

5.� “GPUs and The Future of Parallel Computing”, Stephen W. Keckler et al., IEEE Micro, Sept/Oct 2011, pp 7~17

6.� Online : http://www.top500.org/lists/2012/11/

7.� “GPU Computing,” SM. Houston et al., Proceedings of the IEEE, Vol. 96, Issue 5, May 2008, pp 879 - 899

8.� “A Survey of General-Purpose Computation on Graphics Hardware”, John D. Owens et al., Computer Graphics

Forum, Vol. 26, Issue 1, pp 80–113, March 2007

9.� “Computer Graphics on Mobile Devices, Bruno Tunjic”, Vienna University of Technology, http://www.cg.tuwien.ac.at

10.� “Company report : LG 전자”, 이순학, 김준환, KB 투자증권, 2012.11.13

11.� “Five social software predictions for 2010 and beyond”, Mar. 2010, Gartner

12.� “Hardware-accelerated global illumination by image space photon mapping”, Morgan McGuire, and David Luebke,

Proceedings of the Conference on High Performance Graphics 2009, pp 77-89

13.� Online : http://www.cs.berkeley.edu/~ug/slide/pipeline/assignments/scan/

14.� “사실적 장면 표현을 위한 렌더링 기술 동향”, 장호욱, 이인호, 전자통신동향분석, 20권 6호, 2005년 12월, pp 97-109

15.� “실사 영상물 제작을 위한 렌더링 기술 동향”, 장호욱, 이주행, 정재숙, 이재호, 최진성, 전자통신동향분석, 22권 4호, 2007년

8월, pp 24-34

16.� “How GPUs work” David Luebke, IEEE Computer, Vol. 40, Issue 2, Feb. 2007, pp 96-100

17.� Online : https://developer.nvidia.com/directcompute

18.� “OpenGL and OpenGL ES”, Bruno Tunjic, Khronos Group, http://www.khronos.org

19.� “3D 그래픽스 가속 하드웨어 기술”, 조승현, 박성모, 엄낙웅, 전자통신동향분석, 22권 5호, 2007년 10월, pp 69-77

20.� “White paper : NVIDIA’s Next Generation CUDA Compute Architecture : Kepler GK110”: http://envidia.com

21.� “GPU System Architecture”, Alan Gray, EPCC, The University of Edinburgh, http://www.epcc.ed.ac.uk/

22.� “Redefining the Role of the CPU in the Era of CPU-GPU Integration”, Manish Arora et al et al., IEEE Micro, Nov/

Dec 2012, pp 4~16

23.� “The Architecture and Evolution of CPU-GPU Systems for General Purpose Computing”, Manish Arora,

Department of Computer Science and Engineering, UC San Diego, 2012

24.� “The future of Microprocessors”, Shekhar Borkar and Andrew A. Chien, May 2011, Communications of the ACM

25.� “White paper : NVIDIA GeForce GTX 680”, http://envidia.com

Page 52: SUMMARY - SKKUmel.skku.edu/201302_GPU.pdfISSUE 4 실감 멀티미디어 UI/UX와 고성능 컴퓨팅을 위한 GPU 기술 및 산업 동향 080 한국산업기술평가관리원 Korea

PD ISSUE REPORT FEBRUARY 2013 VOL 13-2KEIT PD Issue Report

한국산업기술평가관리원130 한국산업기술평가관리원130 한국산업기술평가관리원130 한국산업기술평가관리원130

26.� “White paper : Bringing High-End Graphics to Handheld Devices”, http://envidia.com

27.� “AMD’S “LLANO”FUSION APU”, Denis Foley et al., Hot Chips 23, 19th Aug., 2011

28.� “AMD White Paper : AMD Fusion Family of APUs”, http://amd.com

29.� “AMD White Paper : AMD GRAPHICS CORES NEXT(GCN) ARCHITECTURE”, http://amd.com

30.� Online, http://imgtec.com

31.� Online, http://arm.com

32.� “ARM and Heterogeneous Compute”, John Goodacre, 2012 MPSoC Forum, Quebec,Canada, July 9-13, 2012

33.� “White Paper : Snapdragon S4 Processors : System on Chip Solutions for a New Mobile Age”, http://qualcomm.com

[국내 주요 기술개발 현황]

연구기관 프로젝트명 개요 연구기간

실리콘아츠1 0 0 M r a y / s급 스마트 T V /게임기용 실시간 레이트레이싱 GPU 칩 개발

•� 멀티 칩 구조를 지원하는 실시간 레이트레이싱 GPU Engineering Sample 개발

-� Full HD급 디스플레이 성능을 지원하는 멀티 칩 레이트 레이싱 GPU 시제품 개발

-� 실시간 레이트레이싱 지원을 위한 트리빌딩 하드웨어 ASIC 구현 및 테스팅

-� GPU에 대한 신뢰성 인증

2012.12 -

2015.11

전자부품 연구원

멀티 Shader GPU 통합형 멀티 코어 퓨전 프로세서 원천 기술 개발

•� 차세대 스마트폰 및 휴대형 디바이스, 스마트 TV에서의 3D 영상 분석처리 및 다양한 멀티미디어 처리용 GPU 개발

-� 멀티 Shader GPU 통합멀티코어 CPU- GPU 퓨전프로세서 원천기술 개발

-� 통합 컴파일러 및 SDK 개발

2012.06 -

2016.05

㈜넥셀OpenGL|ES 2.0, OpenVG 1.1, OpenCL 1.1을 동시에 지원하는 GPU를 포함한 SoC개발

•� Multi-threading Processor 기반 OpenGL|ES 2.0, OpenVG, OpenCL 통합 SoC 개발

2011.10 -

2014.09

㈜넥서스 칩스

게임기용 MPU, 3D 그래픽 프로세서

•� 휴대게임기용 MPU/GPU의 One-Chip 개발

-� OpenGL ES 1.2/2.0 호환

-� 30M polygones/s, 532M Pixels/ clock@133MHz

2006.03 -

2008.06

㈜엔트올GPU기반의 Shader 프로그래밍 툴 개발

•� GPU 기반 Shader 프로그래밍 통합 환경 툴 개발

-� 프로그램 가능한 파이프라인 개발

-� Programmable Vertex Shader 개발

-� Programmable Pixel Shader 개발

-� 유연하고 확장 가능한 Shader 통합 환경 툴 개발

-� 향상된 분석 및 최적화 작업

2005.04 -

2006.03

PD ISSUE REPORT FEBRUARY 2013 VOL 13-2KEIT PD Issue Report