cornell-zhang/allo
Allo Accelerator Design and Programming Framework (PLDI'24)
解决的问题
Allo 解决了设计和编程高性能机器学习加速器的困难。它提供了一种统一的方法,既能设计硬件架构,又能编写在上面运行的程序,使整个过程更加模块化和可复用。
工作原理
Allo 是一个基于 MLIR 的 Python 嵌入式语言和编译器。它允许开发者通过行为和结构的组合,从更小、可复用的组件构建复杂的加速器系统。它可以自动从 PyTorch 模型生成加速器,并与高性能模拟器和形式化验证器集成,以确保正确性。
适用人群
正在为 FPGA(AMD 和 Intel)或 NPU(AMD Ryzen AI 引擎)构建定制 AI 加速器的硬件架构师和 ML 编译器工程师。
主要亮点
- 统一抽象:将硬件设计与软件编程整合到一个框架中。
- 端到端工作流:支持从 PyTorch 模型自动生成,并包含验证和模拟工具。
- 多后端支持:目标为 AMD/Intel FPGA 和 AMD Ryzen NPU,未来计划支持 GPU 和 ASIC。
- 基于 MLIR:利用 MLIR 编译器框架实现高效的优化和代码生成。
相关
- 项目
exo-lang/exoExo 是一种用于硬件加速器的语言和编译器,允许开发人员编写高级代码并将其编译为针对专用硬件优化的 C 代码。
- 项目
buddy-compiler/buddy-mlirBuddy MLIR 是一个基于 MLIR 的编译器框架,用于协同设计 AI 模型和定制硬件。它允许你将 DeepSeek、Whisper 和 Qwen3‑VL 等模型编译为可移植的 `.rax` 二进制文件,并通过一个轻量级 CLI 运行时在 CPU、RISC‑V 或 GPU 上运行它们。
- 项目
Xilinx/mlir-aie用于编程 AMD Ryzen AI NPUs 的贴近硬件 Python API 和基于 MLIR 的编译器工具链,支持直接控制向量化计算和数据移动。
- 项目
sophgo/tpu-mlir一个基于 MLIR 的机器学习编译器,可将 PyTorch 和 ONNX 等框架中的预训练神经网络转换为适用于 TPU 执行的优化 bmodel 文件。
- 项目
NVIDIA/cuda-tileCUDA Tile IR 是 NVIDIA 开发的基于 MLIR 的编译器基础设施,引入了专用于分块导向 CUDA 内核的方言。它提供 C++ 和 Python API、二进制字节码格式,以及将 MLIR 转换为字节码或 cubin 的工具,支持针对 NVIDIA Tensor-Core 单元的高性能内核。该项目基于 LLVM/MLIR,与 CUDA Toolkit 13.1 对齐,并包含一致性测试套件。这是一个真正的 AI 相关编译器项目,而非教程或列表。