InfiniTensor/InfiniTensor
InfiniTensor is a high-performance inference engine tailored for GPUs and AI accelerators. Its design focuses on effective deployment and swift academic validation.
InfiniTensor – 경량이고 확장 가능한 AI 컴퓨테이션 그래프용 런타임
개요
- InfiniTensor는 컴퓨테이션 그래프(예: ONNX 모델)를 로드하고 변환하며 실행하는 오픈 소스 C++ 라이브러리입니다. 네이티브 CPU 백엔드가 포함되어 있으며, InfiniOps 및 InfiniRT라고 하는 사용자 정의 가속기 백엔드에 작업을 위임할 수 있습니다.
- 핵심 라이브러리는 하드웨어에 독립적이며, 실제 디바이스별 커널은 InfiniTensor와 함께 설치하는 별도의 SDK에 있습니다.
중요성
- 현대 AI 워크로드는 ONNX와 같은 그래프 기반 중간 표현(IR)으로 표현되는 경우가 많습니다. 해당 IR을 가져오고 그래프 수준 최적화를 적용한 다음 CPU 또는 전용 가속기에서 실행할 수 있는 런타임은 추론 스택의 핵심 부분입니다.
- 그래프 엔진(InfiniTensor)과 디바이스 커널(InfiniOps/InfiniRT)을 분리함으로써, 하드웨어 벤더는 핵심 런타임을 수정하지 않고도 자체 구현을 플러그인할 수 있습니다.
주요 기능(README에 설명된 대로)
- ONNX 임포터 – ONNX 파일을 내부 그래프 표현으로 파싱합니다.
- 그래프 변환 레이어 – 일반적인 재작성을 지원합니다. 향후 작업에서는 더 고급 파생 기반 최적화를 위해 RefactorGraph 및 EinNet을 언급합니다.
- CPU 런타임 – 개발 및 폴백용 내장 순수 C++ 실행 엔진(
pyinfinitensorPython 바인딩). - 가속기 위임 – InfiniOps/InfiniRT 빌드가 있으면 연산자가 가속기로 디스패치됩니다. 지원되지 않는 연산자는 자동으로 폴백하는 대신 명시적 오류를 발생시킵니다.
- Python API –
make install-python으로 설치할 수 있으며, 런타임을pyinfinitensor패키지로 노출합니다. - 테스트 스위트 – C++ 단위 테스트, ONNX 프론트엔드 테스트, Python API 테스트가 제공됩니다.
시작하기
- 저장소를 클론하고 서브모듈을 초기화합니다(
git submodule update --init --recursive). - CPU 전용 Python 패키지를 빌드하고 설치합니다.
make install-python INFINI=OFF PYTHON=$(command -v python3) - 가속기 지원을 위해 먼저 해당 InfiniOps 및 InfiniRT SDK를 설치한 다음
INFINI=ON으로 다시 빌드하고 SDK 접두사를 지정합니다. - 제공된
make타겟(build,test-cpp,test-onnx,test-api)을 사용하여 설치를 컴파일하고 검증합니다.
로드맵 하이라이트
- RefactorGraph – 차세대 그래프 프레임워크(별도 저장소로 링크).
- EinNet – 파생 기반 텐서 프로그램 최적화(실험 브랜치
NNET_e2e). - PET – 텐서 프로그램 자동 수정을 위한 부분 등가 변환.
- InfiniOps/InfiniRT 생태계를 통한 가속기 지원 지속 확장.
대상 사용자
- 사용자 정의 AI 연산자를 구축하거나 새로운 그래프 최적화 패스를 탐구하는 연구자.
- ONNX 모델에 자체 커널을 노출하기 위한 얇고 재사용 가능한 프론트엔드를 원하는 하드웨어 벤더.
- CPU에서 추론을 위한 경량 Python 친화적 런타임이 필요하고 독점 가속기를 플러그인할 수 있는 개발자.
자세한 정보
- 설치 가이드, 사용자 가이드, 분산 예제는
/docs및/examples디렉토리에 있습니다. - 관련 연구 논문 EinNet(OSDI 2023) 및 PET(OSDI 2021)은 프로젝트가 기반으로 하는 최적화 기술에 대한 더 깊은 맥락을 제공합니다.
관련
- 프로젝트
- 프로젝트
- 프로젝트
- 프로젝트
- 프로젝트