Graphic Processing Unit 구조
GPU라는 놈이 nVidia가 표준도 아닌것이 가장 많이 사용되고 있기 때문에,
nVidia의 CUDA만 본다. 내 연구실 컴퓨터 GPU도 GTX280이다. ㅇㅋ
CPU와 GPU의 구조이다.
딱봐도 느껴지는것은 GPU는 병렬구조를 갖고 있다는 것
그리하야 CPU에서 하지 못하는 병렬 계산을 GPU에서는 해낼 수 있다.
GPU 전체가 그래픽카드를 의미하는 말은 아니고
그래픽 카드에서 계산을 담당하는 부분이 바로 GPU인 것이다.
CUDA는 이미지 및 동영상, 그래픽 처리에 아주 월등한 성능을 보여주고
최근 다양한 용도로 사용되고 있다.
기본 아키텍쳐가
CPU 변수 -> GPU 처리 -> 다시 CPU가 처리된 내용을 처리
물론 복잡한 행렬식이나 벡터계산을 병렬적으로 처리하여 CPU에 비해 월등한 성능을 보여준다.
SM : Streaming Multiprocessor 로, GPU는 SM의 집합으로 이루어져 있다.
SM은 8개의 SP로 이루어져 있다.
32개의 스레드가 있으며(왜 32개인지는 SP설명 때 설명),
이 32개의 스레드는 워프(Warp)라는 단위로 불리운다.
16개의 스레드로 메모리참조를 하는 경우에는 하프워프(HalfWarp)라고 한다.
GPU는 1SM 단위(32스레드)로 동작(메모리참조)한다
SP : Scalar Processor 로, 4개의 스레드로 구성되어 있고, 실행한다.
때문에 SM은 32개의 스레드로 구성되어 있는 것이다.
SM = 8개의 SP = 1개의 SP에는 4개의 스레드
4단계 연산자 파이프라인에 따라 4개의 8스레드 묶음 병렬 실행
스레드, 블록, 그리드
Compute Capability 1.3 기준이며, 그래픽카드의 사양에따라 얼마든지 달라질 수 있다.
스레드 : 최소 명령어 처리 단위
블록 : 스레드 묶음으로 최대 512개의 스레드를 가질 수 있다
그리드 : 블록이 모여 그리드가 된다, 그리드의 배치는 2차원까지만 지원되며 z축은 1로 고정이다.
어쨋든 기본 구조는 여기까지.
이걸 어떻게 써먹어서 성능을 높여볼 수 있을까를 연구해보자.
이 모든 성능적 우월함을 제쳐두고
한가지 아쉬운 점은 표준화가 되어 있지 않기 때문에 오로지 nVidia GPU에서만 돌아간다는 것
그것도 CUDA를 지원하는 GPU에서만 작동한다는게 가장 큰 단점
'Graphics > GPU' 카테고리의 다른 글
GPU 최적화 기초 - 전역메모리 참조시간, 지연감춤 (0) | 2014.06.09 |
---|---|
GPU 최적화 기초 - 활성 블록 수와 자원 (0) | 2014.06.09 |
GPU 최적화 기초 - 활성화 비율 (0) | 2014.06.09 |
GPU 최적화 기초 - 지역, 전역메모리 접근 속도 (0) | 2014.06.09 |
GPU 최적화 기초 - 메모리 접근 주안점 (0) | 2014.06.09 |