GPU: 그래픽/ML 병렬 프로세서
GPU, Graphics Processing Unit, CUDA, 그래픽 카드
정의
GPU (Graphics Processing Unit) 는 원래 그래픽 렌더링용이었지만, massively parallel 아키텍처가 딥러닝과 HPC 에도 이상적. NVIDIA, AMD, Intel 이 3 대 제조사.
아키텍처 개요
Streaming Multiprocessor (SM)
NVIDIA GPU 의 병렬 유닛. 각 SM 은 수십~수백 개 CUDA 코어 + 공유 메모리 + register file.
H100 (Hopper): 132 개 SM × 128 FP32 코어 = 16896 CUDA cores.
SIMT (Single Instruction Multiple Thread)
Warp (32 스레드) 단위로 같은 명령 실행. Warp 내부는 SIMD 유사, warp 간은 독립.
메모리 계층
| 층 | 크기 | 지연 | 대역폭 |
|---|---|---|---|
| Register | 스레드별 | ~1 cycle | 최고 |
| Shared memory | SM 당 ~100KB | ~1 cycle | 매우 높음 |
| L1 cache | SM 당 | ~10 cycles | 높음 |
| L2 cache | GPU 전체 | ~200 cycles | 중간 |
| Global memory (HBM) | 40-80 GB | ~500 cycles | ~3 TB/s (H100) |
딥러닝 특화
Tensor Core
행렬곱 전용 유닛. FP16/BF16/FP8 지원. Ampere+ 는 sparse tensor 지원.
정밀도
FP32 → FP16/BF16 → FP8 → INT8/INT4. 낮은 정밀도 = 큰 처리량 + 낮은 메모리. 혼합 정밀도 학습 (mixed precision) 이 표준.
세대
| 년도 | NVIDIA | AMD |
|---|---|---|
| 2020 | A100 (Ampere) | MI100 |
| 2022 | H100 (Hopper) | MI250 |
| 2024 | B200 (Blackwell) | MI300X |
소프트웨어 스택
- CUDA: NVIDIA 독점 API
- PyTorch, TensorFlow, JAX: CUDA/ROCm/XLA 기반
- Triton (OpenAI): Python 에서 CUDA 커널 작성
- cuDNN, cuBLAS: NVIDIA 최적화 라이브러리
- ROCm: AMD 대응 스택
참고
이 글의 용어 (4개)
- HBMml
- 정의 HBM (High Bandwidth Memory)는 DRAM die 를 수직으로 적층해 매우 높은 대역폭을 제공하는 메모리 패키지. AI 시대 GPU/TPU 의 메모리 병목…
- NPU (Neural Processing Unit): 엣지 AI 칩ml
- 정의 NPU (Neural Processing Unit) 는 모바일/엣지 디바이스용 저전력 AI 가속기. 스마트폰, 노트북, IoT 에 내장. 특징 - 저전력: 배터리 구동 (수…
- SIMTml
- 정의 SIMT (Single Instruction, Multiple Threads) 는 NVIDIA 가 정립한 GPU 의 실행 모델이다. 한 명령(instruction) 을 한 …
- TPU (Tensor Processing Unit): Google 의 ML ASICml
- 정의 TPU (Tensor Processing Unit) 는 Google 이 딥러닝 워크로드용으로 만든 ASIC (application-specific IC). 2015 년 v1…
💬 댓글