본문 바로가기
Hardware

[HW] GPU 구조 / CUDA 시스템에서 host(CPU)에서 devie(GPU)로 커널 호출 시, thread들이 SIMT 형태로 병렬 처리되는 과정 /Nvidia GPU Architecture Roadmap

by @__100.s 2022. 1. 27.
반응형

GPU  Structure

NVIDIA GT200 GPU architecture

  • 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 형태로 병렬 처리되는 과정

  1. CPU에서 커널을 호출하면 Thread block Scheduler는 커널을 여러개의 Thread block 으로 나누어 SM에 할당해준다.
  2. 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라고 정의한다.

  • 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 및 쉐이더, 텍스처 유닛 집합으로 구성된다.

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