왜 packaging이 중요한가

custom extension은 로컬에서 한 번 돌아간다고 끝이 아니다.

  • PyTorch 버전 차이
  • CUDA toolkit 차이
  • build 환경 차이
  • CI와 wheel 배포 문제

이 문제를 관리하지 못하면 좋은 operator도 팀 코드베이스에 오래 남기 어렵다.

테스트 관점

  • forward correctness
  • backward correctness
  • dtype / device 조합
  • contiguous / non-contiguous 입력
  • AMP 환경

이 정도는 기본으로 봐야 한다.

다음 글에서는 시리즈를 마무리하며, PyTorch internals를 공부한 뒤 실제로 어떤 순서로 custom operator와 runtime 최적화를 확장해 나가면 좋은지 정리한다.