This repository serves as a curated collection of learning resources for AI compilers, focusing on TVM and MLIR. It targets engineers and researchers interested in understanding and optimizing deep learning models through compiler techniques, offering practical examples, paper readings, and video tutorials.
How It Works
The project organizes learning materials into distinct categories: scheduler
(TVM scheduling examples), dataflow_controlflow
(distinguishing data and control flow), paper_reading
(compiler papers like PET, Ansor, MLIR), relay
(TVM Relay IR examples), codegen
(TVM code generation), and torchscript
(PyTorch TorchScript usage). It also includes practical scripts for compiling TVM in Docker, running ResNet18 inference with TVM via ONNX and PyTorch, and exporting ONNX models.
Quick Start & Requirements
- Install: Primarily uses Python packages. Specific examples may require TVM installation (e.g.,
pip install apache-tvm
).
- Prerequisites: Python, TVM (specific versions may be needed for examples), PyTorch, ONNX. Some examples might benefit from CUDA-enabled GPUs for performance testing.
- Resources: Setup involves installing Python packages and potentially compiling TVM. Resource requirements vary by example, with some demonstrating performance on specific hardware like Jetson Nano or x86 CPUs.
- Links:
Highlighted Details
- Comprehensive collection of video tutorials and translated content on TVM, MLIR, and LLVM from various sources.
- Practical examples demonstrating TVM's capabilities, including custom passes, cross-compilation, and optimizing GEMM operations.
- Includes guides on exporting PyTorch models to ONNX and running them with TVM.
- Features paper reading notes on key AI compiler research topics like Ansor and PET.
Maintenance & Community
- The repository is maintained by BBuf.
- Links to related learning repositories by the author are provided.
- Community engagement is encouraged via GitHub stars.
Licensing & Compatibility
- The repository itself does not explicitly state a license in the README. Individual components or linked resources may have their own licenses.
Limitations & Caveats
- The project is a collection of learning resources rather than a single, runnable tool, meaning direct execution depends on individual script requirements and setup.
- Some examples might be tied to specific versions of TVM or other dependencies, potentially requiring adjustments for compatibility.