AITemplate, Meta AI의 혁신적인 새로운 추론 엔진
요약
AITemplate는 Meta AI가 개발하고 오픈소싱한 통합 추론 시스템으로, 기존 플랫폼 종속적인 블랙박스 런타임 환경의 한계를 극복했습니다. 이 프레임워크는 AMD와 NVIDIA 양사 GPU 하드웨어에 모두 최적화된 백엔드를 제공하며, PyTorch 모델을 고성능 C++ 코드로 변환하여 추론 가속화를 실현합니다. 특히, 고급 커널 융합(Kernel Fusion) 기술을 통해 NVIDIA A100 및 AMD MI200 등 현세대 데이터센터 GPU에서 최대 12배 (NVIDIA) 또는 4배 (AMD)의 성능 향상을 달성하며, 개발
핵심 포인트
- AITemplate는 AMD와 NVIDIA 양사 GPU를 모두 지원하는 통합 추론 시스템으로, 플랫폼 종속성을 제거하고 높은 유연성을 제공합니다.
- 고급 커널 융합(Kernel Fusion) 기술을 통해 트랜스포머 어텐션 블록 등에서 데이터 전송 병목 현상을 해결하여 컴퓨팅 효율을 극대화했습니다.
- NVIDIA A100 및 AMD MI200 시스템에서 PyTorch 대비 최대 12배 (NVIDIA), 4배 (AMD)의 성능 향상(eager mode 기준)을 입증했습니다.
- Python 기반으로 모델을 컴파일하고 C++ GPU 템플릿 코드를 생성하는 방식으로, 사용 편의성과 뛰어난 이식성을 확보했습니다.
GPU는 컴퓨터 비전(computer vision), 자연어 처리(natural language processing), 멀티모달 학습(multimodal learning)과 같은 분야에서 AI 모델을 배포하는 데 필요한 컴퓨팅 자원을 제공하는 데 중요한 역할을 합니다. 현재 AI 실무자들은 고성능 GPU 추론 솔루션을 선택할 때 매우 제한적인 유연성을 가지고 있습니다. 그 이유는 이러한 솔루션들이 플랫폼별로 특화되어 있고 폐쇄적인 블랙박스(black box) 런타임 환경에 집중되어 있기 때문입니다. 한 기술 제공업체의 GPU를 위해 설계된 머신러닝 시스템은 다른 제공업체의 하드웨어에서 작동하려면 완전히 재구현되어야 합니다. 이러한 유연성 부족은 복잡한 런타임 환경 내의 하드웨어 종속성 때문에 솔루션을 구성하는 코드를 반복하고 유지보수하기 어렵게 만듭니다.
더욱이, AI 프로덕션 파이프라인은 종종 빠른 개발 속도를 요구합니다. 이 분야는 빠르게 발전하고 있기 때문에 개발자들은 새로운 모델링 기법을 시도하는 데 열의를 보입니다. TensorRT와 같은 독점 소프트웨어 툴킷(proprietary software toolkits)이 커스터마이징 방법을 제공하지만, 이러한 방법들만으로는 종종 요구 사항을 충족하기에 충분하지 않습니다. 게다가, 폐쇄적이고 독점적인 솔루션은 코드를 빠르게 디버깅하는 것을 더 어렵게 만들어 개발 민첩성(development agility)을 떨어뜨릴 수 있습니다.
이러한 산업적 과제들을 해결하기 위해 Meta AI는 AMD와 NVIDIA GPU 하드웨어 모두를 위한 별도의 가속 백엔드(acceleration back ends)를 갖춘 통합 추론 시스템인 AITemplate (AIT)를 개발하고 오픈소싱하고 있습니다. AIT은 합성곱 신경망(convolutional neural networks), 트랜스포머(transformers), 디퓨저(diffusers)와 같이 널리 사용되는 다양한 AI 모델에서 하드웨어 네이티브에 가까운 Tensor Core (NVIDIA GPU) 및 Matrix Core (AMD GPU) 성능을 제공합니다. AIT을 통해 이제 두 GPU 공급업체의 하드웨어 모두에서 고성능 추론 실행이 가능해졌습니다. 저희는 AIT을 사용하여 PyTorch의 eager mode 대비 NVIDIA GPU에서 최대 12배, AMD GPU에서 4배의 성능 향상을 달성했습니다.
AITemplate은 AI 모델을 고성능 C++ GPU 템플릿 코드로 변환하여 추론을 가속화하는 Python 프레임워크입니다. 저희 시스템은 속도와 단순성을 염두에 두고 설계되었습니다. AITemplate에는 두 개의 계층이 있습니다. 첫 번째는 그래프를 최적화하기 위해 다양한 그래프 변환(graph transformations)을 수행하는 프런트엔드(front-end) 계층이며, 다른 하나는 GPU 타겟을 위한 C++ 커널 템플릿(C++ kernel templates)을 생성하는 백엔드(back-end) 계층입니다. 또한, AIT은 외부 라이브러리에 대한 의존성을 최소화합니다. 예를 들어, 추론을 위한 생성된 런타임 라이브러리(runtime library)는 자체적으로 완결성이 있으며 CUDA/ROCm 런타임 환경만 필요합니다. (CUDA: NVIDIA의 Compute Unified Device Architecture)
AI 자동 생성 콘텐츠
본 콘텐츠는 HN Chip/GPU의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기