GPU 구조 2 - SM

GPU 구조 시리즈

  1. GPU 구조 1 - 개요
  2. GPU 구조 2 - SM

발생

오늘은 GPU의 구조 중 SM 에 대해 알아보겠다. NVDIA GPU 기준임을 명심하길 바란다.

SM(Streaming Multiprocessor)

SM 은 GPU 내부의 병렬 연산을 수행하는 기본 단위 블록을 뜻한다. 각 SM은 수십-수백개의 CUDA Core/ALU 를 포함한다. CPU가 소수의 코어로 직렬 연산을 수행하는 반면 GPU는 수십-수백개의 SM을 이용해 병렬 연산을 수행한다.

SM 구성 요소

하나의 SM은 다음과 같은 구성을 이룬다.

  • CUDA Core
    • 부동소수점 연산을 수행하는 기본 연산 장치
  • Tensor Core
    • 행렬 곱셈에 특화된 유닛
  • Warp Scheduler
    • 여러 스레드 그룹(=Warp)을 관리하고 실행 순서를 조정하는 장치
    • 하나의 SM에는 여러 Warp Schedular가 있을 수 있다.
  • Shared Memory (L1 Cache)
    • 스레드 블록 간 데이터를 빠르게 공유하는 고속 메모리
  • Load / Store Unit (LD / ST)
    • 메모리 접근 담당 유닛
  • SFU (Special Function Unit)
    • 삼각함수, 제곱근 등 복잡한 수학 연산 처리 유닛

SM의 동작

GPU에서 실행되는 코드는 스레드 단위로 수행되며 이 스레드들이 SM 내부에서 병렬로 처리된다. 이때 스레드들이 처리되는 과정은 아래와 같다.

  1. 스레드 그룹화 : Thread -> Warp -> Block -> Grid
    1. FP32 ALU 기준으로 32개의 스레드가 하나의 Warp로 묶인다.
    2. 여러 Warp가 하나의 Block을 구성
    3. 여러 Block이 GPU 전체의 Grid를 구성한다.
  2. 스케줄링
    1. SM은 Warp Schedular를 이용해 여러 Warp를 CUDA Core로 실행하도록 동작
    2. Warp를 처리 중 메모리 접근 지연(latency)이 발생하면 다른 Warp로 전환하는 동작을 통해 효율을 유지한다.
  3. 병렬 연산
    1. 각 SM의 CUDA Core들이 동시에 여러 Warp의 연산을 수행한다.

간단히 정리하면 아래와 같다.

스레드 그룹화 -> Warp Scheduling (Warp 선택) -> 병렬 연산 (CUDA, Tensor Core 이용) -> Global Memory 통신 -> 결과 저장 -> Warp Scheduling (다음 Warp 선택) -> 반복

용어 정리

FP32 ALU 란? FP32 ALU = Floating Point 32-bit ALU 즉 32비트 부동소수점(실수) 연산을 수행하는 ALU 를 뜻 한다.

Warp 란? Thread의 그룹을 뜻 한다. FP32 기준으로 32개의 Thread = 1 Warp이다.

Grid 란? GPU의 커널이 실행될 때 생성되는 모든 Block 들의 집합을 뜻 한다.

CUDA 란? Compute Unified Device Architecture NVIDIA가 개발한 병렬 컴퓨팅 플랫폼 및 프로그래밍 모델을 뜻 한다. GPU를 그래픽뿐만 아니라 범용 계산에서도 사용 할 수 있게 만든 컴퓨팅 아키텍쳐이다.

결론

SM은 GPU의 성능을 결정짓는 핵심이다.

  • 많은 SM 수 -> 더 많은 병렬 연산을 가능
  • 강력한 SM 구조 -> 연산 효율 향상

이런 SM을 이용해서 GPU의 연산 성능인 FLOPS도 알 수 있다.

$SM의\space수 \space \times SM당 \space 코어 \space수 \space \times 클럭 \space속도 \space = FLOPS$

오늘은 GPU의 핵심인 SM에 대해 간단히 알아보았다.
GPU에 대해 점점 이해가 되고 있다.

Day-38


tech 2025-10-17-GPU 구조 1 - 개요