undefined분 읽기
PyTorch 내부 구조 01 - 왜 PyTorch internals를 알아야 하는가
PyTorch를 단순한 파이썬 라이브러리가 아니라 런타임으로 이해해야 성능과 확장 문제를 제대로 다룰 수 있다
Lectures 카테고리의 모든 포스트
PyTorch를 단순한 파이썬 라이브러리가 아니라 런타임으로 이해해야 성능과 확장 문제를 제대로 다룰 수 있다
텐서를 다차원 배열로만 보면 view와 layout 문제를 잘못 이해하게 된다
shape가 같아도 memory layout이 다르면 operator 선택과 성능이 달라지고 때로는 보이지 않는 복사가 생긴다
같은 operator 이름 아래 여러 backend와 여러 역할의 구현을 연결해 주는 중심 계층이 dispatcher다
autograd는 단순 미분 기능이 아니라 연산 그래프와 gradient propagation을 조직하는 런타임이다
custom autograd function은 빠른 실험 도구이기도 하지만 backward 책임을 직접 지는 계층이기도 하다
PyTorch의 CUDA 메모리는 단순 malloc/free가 아니라 caching allocator 위에서 재사용된다
PyTorch의 CUDA 연산은 기본적으로 비동기이기 때문에 실제 병목을 읽으려면 stream semantics를 알아야 한다
C++ extension은 PyTorch runtime과 사용자 정의 연산을 연결하는 첫 번째 실전 관문이다