undefined분 읽기
분산 LLM 학습 04 - PyTorch DDP는 내부에서 무엇을 하는가
DDP는 단순 래퍼가 아니라 autograd hook, gradient bucket, process group을 사용해 동기화를 조직하는 런타임이다
DDP는 단순 래퍼가 아니라 autograd hook, gradient bucket, process group을 사용해 동기화를 조직하는 런타임이다
FSDP는 전체 파라미터를 shard한 채 필요할 때만 모아 쓰는 방식으로 메모리 문제를 직접 겨냥한다
PyTorch를 단순한 파이썬 라이브러리가 아니라 런타임으로 이해해야 성능과 확장 문제를 제대로 다룰 수 있다
텐서를 다차원 배열로만 보면 view와 layout 문제를 잘못 이해하게 된다
shape가 같아도 memory layout이 다르면 operator 선택과 성능이 달라지고 때로는 보이지 않는 복사가 생긴다
같은 operator 이름 아래 여러 backend와 여러 역할의 구현을 연결해 주는 중심 계층이 dispatcher다
autograd는 단순 미분 기능이 아니라 연산 그래프와 gradient propagation을 조직하는 런타임이다
custom autograd function은 빠른 실험 도구이기도 하지만 backward 책임을 직접 지는 계층이기도 하다
PyTorch의 CUDA 메모리는 단순 malloc/free가 아니라 caching allocator 위에서 재사용된다