반응형
GPU Structure
- SP(Scalar Processor)
- 정수 계산을 위한 ALU(Int), 실수 계산을 위한 FPU(FP), 데이터를 로드/스토어 하기 위한 LSU(move,cmp)으로 이루어진다.
- NVIDIA의 경우, SP를 CUDA core라고 부른다.
- SM (Streaming Multiprocessor)
- 명령어 처리 단위, 명령어에 대한 Fetch/Decode를 처리한다.
- 위 GPU에서는 SP 8개가 모여서 SM을 이룬다. SM은 SP를 제어하고 명령어 캐시와 데이터 캐시를 가지고 있다.
- GPU의 각 세대마다 SM, SP의 개수가 차이난다.
- SM은 CUDA에서 warp 단위의 실행을 담당한다.
CUDA 시스템에서 host(CPU)에서 devie(GPU)로 커널 호출 시, thread들이 SIMT 형태로 병렬 처리되는 과정
- CPU에서 커널을 호출하면 Thread block Scheduler는 커널을 여러개의 Thread block 으로 나누어 SM에 할당해준다.
- Thread block Scheduler는 Thread block으로 나누어진다. 각 block은 SM에 할당되고, SM 내의 Warp Scheduler가 이 Thread block을 실제로 연산을 수행할 SP에게 Thread로 나누어준다.
- 여기서 나누어진 32개의 thread를 1 warp라고 한다. 1 warp의 thread들은 같은 명령어를 동시에 수행한다.
- warp는 NVIDIA식 용어로, 32개의 Thread block을 1 warp라고 정의한다.
- AMD에서는 warp 대신 wavefront라는 용어를 사용, 64개의 Thread block을 1 wavefront라고 정의한다.
- 여기서 나누어진 32개의 thread를 1 warp라고 한다. 1 warp의 thread들은 같은 명령어를 동시에 수행한다.
- SIMT (Single Instruction Multi Thread)
- Warp 단위로 병렬처리
- warp는 같은 명령어로 동시에 동작 가능한 thread들의 집합을 의미한다. 이 동작을 lock-step이라고 한다. 따라서 어떠한 warp가 존재한다면 이 warp에 존재하는 thread들은 같은 명령어로 동작을 수행한다. 이 동작을 Single Instruction Multi Thread(SIMT)라고 한다.
- Shared Memory
- SM 내에 있는 SP들이 서로 데이터를 공유하고 빠르게 사용할 수 있는 메모리이다.
- TPC (Texture/Processor Cluster)
- 그래픽 처리 단위, SM 및 쉐이더, 텍스처 유닛 집합으로 구성된다.
- 그래픽 처리 단위, SM 및 쉐이더, 텍스처 유닛 집합으로 구성된다.
Nvidia GPU Architecture Roadmap
- Nvidia 의 GPU 아키텍처 변천사
- Tesla(2006) – Fermi(2010) – Kepler(2012) – Maxwell(2014/2015) – Pascal(2016) – Volta(2017)- Amphere(2020)
- 위의 Nvidia GT200은 Tesla Architecture에 해당한다.
참고
반응형
'Hardware' 카테고리의 다른 글
[HW] CPU, GPU, TPU 비교 (0) | 2021.09.07 |
---|---|
[HW] 딥러닝에 GPU를 사용하는 이유 / CPU와 GPU의 차이 (0) | 2021.09.05 |