PyTorch Tensor는 왜 Storage와 Metadata로 분리되어 있는가
단순한 다차원 배열처럼 보이는 Tensor가 실제로 6원소 튜플로 구성된 이유부터, stride가 CUDA 커널 선택을 바꾸고 view가 zero-copy인 이유까지 추적한다.
총 7편 · 순서대로 읽기를 권장
단순한 다차원 배열처럼 보이는 Tensor가 실제로 6원소 튜플로 구성된 이유부터, stride가 CUDA 커널 선택을 바꾸고 view가 zero-copy인 이유까지 추적한다.
Forward-mode JVP와 reverse-mode VJP의 비용 분석부터 computation graph의 동적 생성, custom Function 구현, double backward까지 — autograd의 설계 철학을 추적한다.
aten::add 한 호출이 CPU·CUDA·Autograd kernel 중 어느 것으로 실행될지 결정하는 Dispatcher의 설계 철학부터 functorch의 함수형 변환까지, PyTorch 내부 구조를 추적한다.
SM과 Warp 계층부터 Memory Coalescing, Bank Conflict, Warp Divergence, Reduction 최적화까지 — CUDA 커널 성능을 지배하는 하드웨어 원칙을 추적한다.
cpp_extension JIT 컴파일부터 Triton block-level 추상화, cuBLAS/cuDNN 선택 기준, kernel fusion의 정량적 효과까지, PyTorch가 GPU 메모리를 다루는 방식을 추적한다.
IEEE 754 비트 구조부터 FP16 언더플로우의 정량적 분석, Loss Scaling의 수학적 정당성, BF16·TF32·Stochastic Rounding까지 — Mixed Precision의 설계 결정을 하나의 원리로 추적한다.
Dynamo의 바이트코드 캡처부터 AOTAutograd의 심볼릭 역전파, Inductor의 커널 퓨전, 분산 학습과의 통합까지, PT 2.0 컴파일 파이프라인의 설계 철학을 추적한다.