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.

What it solves

AutoRT (the next generation of Antares) is a compiler solution designed to help developers optimize and benchmark performance on various hardware accelerators. It specifically addresses the difficulty of creating high-performance operators for PyTorch 2.0, allowing users to bridge the gap between high-level PyTorch code and specific hardware backends like Windows DirectX 12 and Linux CUDA.

How it works

AutoRT acts as a backend for PyTorch 2.0. It uses an intermediate representation (IR) to define operators. Users can define custom, fused operators using either a Python API or a command-line interface, which AutoRT then compiles and optimizes for the target device. It can be used as a benchmark utility for profiling device performance or to accelerate standard PyTorch applications by generating a device-specific runtime.

Who it’s for

Hardware accelerator developers and PyTorch users who need to perform device performance testing, profiling, and the creation of custom high-performance operators for non-standard or new hardware backends.

Highlights

  • Multi-Backend Support: Experimental support for Windows DirectX 12 and Linux CUDA, with goals to support ROCm, OpenCL, SYCL, and Apple Metal.
  • Custom Operator Generation: Ability to create custom or fused operators that go beyond built-in PyTorch functions using a simple IR.
  • PyTorch 2.0 Integration: Seamlessly integrates as a backend for PyTorch 2.0 to accelerate applications like MNIST training and LLM inference (e.g., Llama 2).
  • Benchmarking Utility: Built-in tools for profiling and testing the performance of the target device.

Related

  • Project
  • Project
  • Project
  • Project
  • Project