cornell-zhang/allo
Allo Accelerator Design and Programming Framework (PLDI'24)
何を解決するか
Alloは、高性能な機械学習アクセラレータの設計とプログラミングの難しさに対処します。ハードウェアアーキテクチャの設計と実行プログラムの作成を統合的に扱う方法を提供し、よりモジュール化され再利用可能なプロセスを実現します。
動作方法
AlloはMLIRに基づくPython埋め込み言語およびコンパイラです。開発者は振る舞いと構造の組み合わせを使って、小さな再利用可能なコンポーネントから複雑なアクセラレータシステムを構築できます。PyTorchモデルからアクセラレータを自動生成でき、高性能なシミュレータおよび形式的検証ツールと統合されて正しさを保証します。
対象ユーザー
FPGA(AMDおよびIntel)やNPU(AMD Ryzen AI Engine)向けのカスタムAIアクセラレータを開発しているハードウェアアーキテクトやMLコンパイラエンジニア。
主な特徴
- 統合抽象化: ハードウェア設計とソフトウェアプログラミングを1つのフレームワークに統合。
- エンドツーエンドワークフロー: PyTorchモデルからの自動生成をサポートし、検証およびシミュレーション用のツールを備えています。
- マルチバックエンド対応: AMD/Intel FPGAおよびAMD Ryzen NPUをターゲットとしており、将来的にはGPUやASICにも対応予定。
- MLIRベース: 効率的な最適化とコード生成のためにMLIRコンパイラフレームワークを活用。
関連
- プロジェクト
exo-lang/exoExoは、開発者が高レベルなコードを記述し、それを専用ハードウェア向けの最適化されたCコードにコンパイルできる、ハードウェアアクセラレータ用の言語およびコンパイラです。
- プロジェクト
buddy-compiler/buddy-mlirBuddy MLIR は、AI モデルとカスタムハードウェアを共同設計するための MLIR ベースのコンパイラフレームワークです。DeepSeek、Whisper、Qwen3‑VL などのモデルをポータブルな `.rax` バイナリにコンパイルし、小さな CLI ランタイムを使用して CPU、RISC‑V、または GPU 上で実行できます。
- プロジェクト
Xilinx/mlir-aieAMD Ryzen AI NPUsをプログラミングするためのメタルに近いPython APIと、MLIRベースのコンパイラツールチェーン。ベクトル化された計算とデータ移動を直接制御可能。
- プロジェクト
sophgo/tpu-mlirPyTorch や ONNX などのフレームワークから事前に訓練されたニューラルネットワークを、TPU実行用に最適化された `bmodel` ファイルに変換する MLIR ベースの機械学習コンパイラ。
- プロジェクト
NVIDIA/cuda-tileCUDA Tile IRはNVIDIAが開発したMLIRベースのコンパイラインフラで、タイル指向のCUDAカーネル用に専用のダイアレクトを導入しています。C++およびPython API、バイナリバイトコード形式、MLIRからバイトコードまたはcubinへの変換ツールを提供し、NVIDIA Tensor-Coreユニットをターゲットとする高性能カーネルを実現します。このプロジェクトはLLVM/MLIRに基づき、CUDA Toolkit 13.1と整合しており、コンプライアンステストスイートを含んでいます。これはチュートリアルやリストではなく、本格的なAI関連のコンパイラプロジェクトです。