buddy-compiler/buddy-mlir
An MLIR-based compiler framework bridges DSLs (domain-specific languages) to DSAs (domain-specific architectures).
그것은 무엇인가
Buddy MLIR은 LLVM의 MLIR 인프라 위에 구축된 오픈 소스 컴파일러 프레임워크입니다. 개발자는 도메인 특화 언어(DSL)를 정의하고 CPU, RISC‑V 코어 또는 NVIDIA GPU와 같은 도메인 특화 하드웨어(DSA)에서 효율적으로 실행되는 코드를 생성할 수 있습니다. 이 프로젝트는 사용자 정의 바이너리 형식(.rax)으로 컴파일되고 작은 런타임(buddy‑cli)으로 실행되는 기성 모델 파이프라인(예: DeepSeek R1, Whisper, Qwen3‑VL)을 제공합니다.
왜 중요한가
현대 AI 모델은 거대하고 하드웨어를 인식합니다. 최상의 성능을 얻으려면 모델 표현과 대상 가속기의 긴밀한 공동 설계가 필요한 경우가 많습니다. Buddy MLIR은 고수준 MLIR 패스를 작성하고, 하드웨어 특화 하위 변환을 플러그인하고, CUDA나 어셈블리를 수동으로 작성하지 않고 실행 가능한 바이너리를 생성할 수 있는 단일 장소를 제공합니다. 이는 연구자와 칩 설계자가 새로운 AI 커널을 실험하고 RISC‑V 또는 맞춤형 ASIC과 같은 새로운 아키텍처에서 벤치마킹하는 장벽을 낮춥니다.
누가 봐야 하는가
- AI 컴파일러 연구자: 새로운 방언이나 최적화를 프로토타입하기 위해 모듈식 MLIR 기반 스택이 필요한 사람.
- 하드웨어 아키텍트: 도메인 특화 가속기를 구축하고 기존 대규모 언어 모델 워크로드를 그 위에 컴파일하는 방법을 원하는 사람.
- ML 엔지니어: 최첨단 모델(DeepSeek, Whisper, Qwen3‑VL)을 비표준 플랫폼(RISC‑V, 다중 CPU NUMA 노드, GPU)에서 최소한의 수동 튜닝으로 실행하는 데 관심이 있는 사람.
- 학생: 딥러닝 워크로드를 위한 컴파일러 파이프라인을 배우는 사람. 저장소에는 엔드투엔드 예제와 Python 친화적인 API가 포함되어 있습니다.
시작하는 방법
- 시스템 종속성 설치 – LLVM/MLIR,
flatbuffers,libnuma등. - 서브모듈과 함께 클론하고 CMake/Ninja를 사용하여 번들된 LLVM/MLIR을 빌드합니다.
- Python 가상 환경 생성하고
requirements.txt를 설치합니다(pip, uv 또는 conda 모두 가능). - Buddy MLIR 빌드 – CMake를 방금 빌드한 LLVM/MLIR 디렉토리를 가리키고, Python 바인딩을 활성화하고,
ninja를 실행합니다. - 모델 컴파일 – JSON 사양(예:
models/whisper/specs/base.json)으로tools/buddy-codegen/build_model.py를 실행합니다. 템플릿 기반 코드 생성을 위해 레이어 분할을 선택적으로 활성화합니다. - 추론 실행 – 생성된
.rax파일을build/bin/buddy-cli와 함께 사용하고, 필요에 따라 프롬프트, 오디오 또는 이미지를 제공합니다. - 선택 사항 – 쉬운 pip 설치를 위해 wheel을 빌드(
scripts/release.sh)하거나 엔드투엔드 테스트 스위트를 활성화합니다(-DBUDDY_ENABLE_E2E_TESTS=ON).
저장소에서 볼 수 있는 것
llvm/서브모듈 – 컴파일러 빌드에 사용되는 트리밍된 LLVM/MLIR 소스 트리.tools/buddy-codegen/– 모델 사양(JSON)을 MLIR로 변환한 다음 사용자 정의 런타임으로 하위 변환하는 Python 스크립트.models/– DeepSeek R1, Whisper, Qwen3‑VL용 기성 사양 및 테스트 데이터.examples/– IR 수준 변환과 런타임 호출 방법을 보여주는 작은 프로그램.scripts/– wheel 릴리스 및 Docker 기반 many‑linux 빌드를 위한 헬퍼 스크립트.- 문서 – 환경 설정, 레이어 분할, many‑linux 참고 사항 및 기여 지침을 다루는 광범위한
docs/.
TL;DR
Buddy MLIR은 고수준 AI 모델과 맞춤형 하드웨어를 연결하는 실제 연구급 컴파일러 스택입니다. 통합된 MLIR 기반 워크플로우로 CPU, RISC‑V 또는 GPU에서 대규모 언어-비전 모델을 컴파일, 최적화 및 실행할 수 있는 방법을 제공합니다.
관련
- 프로젝트
- 프로젝트
- 프로젝트
- 프로젝트
- 프로젝트