Apache TVM 핵심 흐름 — Python-first·최적화·유니버설 배포
Apache TVM 핵심 흐름
Apache TVM은 Python-first 개발과 유니버설 배포를 원칙으로 하는 머신러닝 컴파일 프레임워크예요. 사전학습 모델을 받아 컴파일하고, 어디에나 임베드해 실행할 수 있는 배포 모듈을 생성해요. 최적화 과정도 파이썬에서 커스터마이즈할 수 있어요.
핵심 원칙
- Python-first: 최적화 과정이 파이썬에서 완전히 커스터마이즈 가능. TVM 스택을 다시 컴파일하지 않고도 최적화 파이프라인을 쉽게 조정
- 구성 가능(Composable): 최적화 과정이 구성 가능. 새 최적화 패스·라이브러리·코드젠을 기존 파이프라인에 쉽게 추가
핵심 목표
- 최적화: 라이브러리·코드젠을 구성해 ML 워크로드 성능 최적화
- 배포: 새 런타임·새 하드웨어 등 다양한 환경에 ML 워크로드 배포
- 지속 개선·커스터마이즈: 파이썬에서 라이브러리 디스패치를 빠르게 커스터마이즈하며 배포 파이프라인 개선
핵심 흐름
-
모델 가져오기/구성 PyTorch, ONNX 등 다양한 프레임워크에서 모델을 가져와요. LLM 시나리오는 Relax 프론트엔드로 모델을 직접 만들 수도 있어요.
-
구성 가능한 최적화 (pipelines) 파이프라인이 여러 변환을 캡슐화해 두 목표를 달성해요.
- 그래프 최적화: 연산자 융합(fusion), 레이아웃 재작성
- 텐서 프로그램 최적화: 연산자를 저수준 구현(라이브러리·코드젠)에 매핑
두 최적화는 같은 수준에서, 또는 두 단계로 나뉘어 수행돼요.
-
빌드·유니버설 배포 최소 런타임으로 ML을 어디든·어떤 언어든 가져가는 게 목표예요. TVM 런타임은 비파이썬 환경에서도 동작해 모바일·엣지·베어메탈 기기에서 쓸 수 있어요. 네이티브 데이터 구조를 갖고 DLPack 지원으로 PyTorch·TensorFlow·TensorRT 등 기존 생태계와 zero-copy 교환도 가능해요.