HardWare

GPU Architecture (Fermi), SM (Streaming Multiprocessor)

  • CUDA core
    • Basic processing unit
    • 하나의 thread를 처리
    • Register, Local memory
  • Streaming Multiprocessor (SM)
    • block들을 처리
    • Shared memory
    • Texture/ Cache

Grid, Block

  • Grid / Kernel
    • Kernel launch 시 생성
    • GPU를 사용 하는 단위
  • Block
    • 각각의 SM에 block들이 배정되어 처리됨
    • Active block
      • 현재 SM에게 배정된 block
      • 개수는 block 당 자원 사용량에 의해 결정됨 - 성능에 영향을 줌

Warp

  • Warp
    • 각 block은 warp 단위로 분할
    • 자신의 execution context를 가짐 - 자기만의 실행 문맥을 가진다.
      • Program counters, registers, Etc.
      • SM의 register(Register File)를 warp(32개의 thread)가 나누어 가짐
    • Warp divergence
      • 한 Warp 안의 threads들이 다른 instruction을 진행 하는 경우, 분기 별로 serial 하게 수행됨
    • Zero context switching overhead
      • 많은 수의 thread를 사용하여, memory access latency를 감출 수 있음
      • context가 바뀔때 register에 저장하여 비용이 많이 들지 않는다.

 


Massive Parallelism for Latency Hiding

 

출처:

https://www.youtube.com/watch?v=MM04LrNlq2I&list=PLBrGAFAIyf5pp3QNigbh2hRU5EUD0crgI&index=19

'Cuda' 카테고리의 다른 글

09_Memory_Active_Warp_CUDA  (0) 2021.09.01
08_Memory_Architecture_CUDA  (0) 2021.08.30
06_Where_is_Thread_CUDA  (0) 2021.08.30
05_How_Kernel_Works_CUDA  (0) 2021.08.30
04_Vector_Sum_CUDA  (0) 2021.08.27

+ Recent posts