How Deep Learning Computes
행렬 연산에서 모델 성능까지, 딥러닝 계산을 개념 단위 카드와 학습 경로로 따라갑니다. 카드는 여러 경로에서 재사용됩니다.
처음이라면 여기부터
AI 시스템 계산을 이해하는 데 가장 기본이 되는 세 경로입니다.
1 행렬 연산에서 Roofline 분석까지
행렬 곱셈의 연산량과 메모리 이동량에서 출발해 산술 강도와 Roofline 분석으로 이어지는 첫 번째 경로.
2 Forward Pass에서 학습 메모리까지모델을 행렬 연산의 반복으로 보고, forward/backward/update 동안 activation, gradient, optimizer state가 어떻게 생기는지 따라간다.
3 Transformer 구조를 텐서 흐름으로 이해하기Embedding, attention, MLP/FFN 세 덩어리에서 시작해 Transformer block과 MoE까지 텐서 모양 중심으로 따라간다.
전체 지식 지도
추천 경로를 먼저 진하게 표시하고, 나머지 경로는 배경 지도로 보여줍니다.
모든 학습 경로
관심 있는 주제로 바로 들어갈 수도 있습니다.
- CUDA Attention과 FlashAttention — naive attention에서 시작해 online softmax, tiling, IO 분석을 거쳐 FlashAttention forward의 핵심 아이디어를 이해한다.
- CUDA 좌표계와 첫 커널 — CPU loop에서 출발해 vectorAdd, grid/block/thread, host/device memory, 2D/3D indexing, warp와 block shape까지 익힌다.
- CUDA Kernel Optimization Basics — CUDA event timing, memory coalescing, shared memory, tiled matmul, reduction, warp primitive, occupancy를 통해 naive kernel을 최적화하는 기본기를 익힌다.
- Transformer를 위한 CUDA Naive Kernels — CPU reference와 비교하며 transpose, GEMM, GEMV, softmax, RMSNorm forward/backward를 naive CUDA kernel로 구현하고 PyTorch JIT extension으로 연결한다.
- Distributed Matmul: Sharded Matrices and Collective Operations — 행렬을 여러 accelerator에 나눠 계산할 때 mesh, sharding, collective communication이 어떻게 연결되는지 이해한다.
- Forward Pass에서 학습 메모리까지 — 모델을 행렬 연산의 반복으로 보고, forward/backward/update 동안 activation, gradient, optimizer state가 어떻게 생기는지 따라간다.
- LLM 추론과 vLLM 내부 구조 — LLM 추론 엔진의 계층 구조에서 시작해 prefill/decode, KV cache, batching, PagedAttention, scheduler까지 vLLM을 깊게 이해하는 경로.
- LLM Training Parallelism — 단일 GPU 학습 step에서 출발해 DP, gradient overlap, 병렬화와 샤딩의 차이를 이해한다.
- 행렬 연산에서 Roofline 분석까지 — 행렬 곱셈의 연산량과 메모리 이동량에서 출발해 산술 강도와 Roofline 분석으로 이어지는 첫 번째 경로.
- Transformer 구조를 텐서 흐름으로 이해하기 — Embedding, attention, MLP/FFN 세 덩어리에서 시작해 Transformer block과 MoE까지 텐서 모양 중심으로 따라간다.