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