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은 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 관련 컴파일러 프로젝트입니다.