microsoft/antares

Antares: an automatic engine for multi-platform kernel generation and optimization. Supporting CPU, CUDA, ROCm, DirectX12, GraphCore, SYCL for CPU/GPU, OpenCL for AMD/NVIDIA, Android CPU/GPU backends.

해결하는 문제

AutoRT(안타레스의 다음 세대)는 다양한 하드웨어 가속기에서 성능 최적화 및 벤치마킹을 지원하는 컴파일러 솔루션입니다. 특히 PyTorch 2.0용 고성능 오퍼레이터를 만드는 어려움을 해결하여, 고수준의 PyTorch 코드와 Windows DirectX 12 및 Linux CUDA와 같은 특정 하드웨어 백엔드 사이의 격차를 메웁니다.

작동 방식

AutoRT는 PyTorch 2.0의 백엔드로 작동합니다. 중간 표현(IR)을 사용하여 오퍼레이터를 정의합니다. 사용자는 Python API 또는 명령줄 인터페이스를 통해 사용자 정의 또는 병합된 오퍼레이터를 정의하고, AutoRT가 타겟 장치에 맞게 컴파일하고 최적화합니다. 이는 장치 성능을 프로파일링하기 위한 벤치마크 유틸리티로 사용할 수 있으며, 장치별 런타임을 생성함으로써 표준 PyTorch 애플리케이션을 가속화할 수도 있습니다.

대상 사용자

비표준 또는 새로운 하드웨어 백엔드용 사용자 정의 고성능 오퍼레이터를 생성하고, 장치 성능 테스트, 프로파일링이 필요한 하드웨어 가속기 개발자 및 PyTorch 사용자.

주요 특징

  • 다중 백엔드 지원: Windows DirectX 12 및 Linux CUDA에 대한 실험적 지원. ROCm, OpenCL, SYCL, Apple Metal 지원 계획 중.
  • 사용자 정의 오퍼레이터 생성: 간단한 IR을 사용해 PyTorch 내장 함수를 넘어서는 사용자 정의 또는 병합 오퍼레이터 생성 가능.
  • PyTorch 2.0 통합: PyTorch 2.0의 백엔드로 원활하게 통합되어 MNIST 학습 및 LLM 추론(예: Llama 2)과 같은 애플리케이션을 가속화 가능.
  • 벤치마크 유틸리티: 타겟 장치의 성능을 프로파일링하고 테스트할 수 있는 내장 도구.

관련

  • 프로젝트
  • 프로젝트
  • 프로젝트
  • 프로젝트
  • 프로젝트