Zaneham/Booth

Open-source CUDA, Triton and HIP compiler targeting multiple GPU and CPU architectures.

해결하는 문제

Booth은 GPU 전용 언어에 얽매이지 않도록 설계된 컴파일러입니다. CUDA C, HIP, 또는 Triton으로 커널을 작성하고, AMD GPU(RDNA 2/3/4), NVIDIA GPU(PTX 또는 네이티브 SASS/cubin을 통해), Tenstorrent Metalium, 그리고 GPU가 없는 환경을 위한 표준 x86-64 CPU까지 다양한 하드웨어 타겟으로 컴파일할 수 있습니다.

작동 방식

Booth은 CUDA, HIP, Triton 소스 코드를 받아 자체 내부 표현(IR)으로 낮추는 크로스컴파일러로 작동합니다. 이후 타겟 아키텍처용 기계어 또는 저수준 명령어를 생성할 수 있습니다. LFortran을 통한 Fortran do concurrent 커널과 OCaml 함수를 포함한 여러 프론트엔드를 지원하며, SSA 레지스터 할당과 분기 분석과 같은 고급 컴파일러 기법을 구현하여 GPU 실행을 최적화합니다.

대상 사용자

한 개의 코드베이스에서 여러 GPU 아키텍처를 타겟으로 하거나, 테스트 및 개발을 위해 GPU 스타일 커널을 CPU 하드웨어에서 실행하고자 하는 GPU 개발자, 연구자, 애호가에게 적합합니다.

주요 특징

  • 다중 GPU 타겟: NVIDIA, AMD, Tenstorrent 하드웨어를 지원합니다.
  • Triton → CPU: LLVM이 필요 없이 Triton 커널을 네이티브 x86-64 코드로 직접 컴파일할 수 있습니다.
  • 네이티브 NVIDIA 백엔드: GPU가 직접 로드할 수 있는 cubin 파일을 생성하여 드라이버의 JIT를 우회할 수 있습니다.
  • 광범위한 언어 지원: CUDA C, HIP, Triton, Fortran(LFortran을 통해), OCaml을 수용합니다.
  • 메인프레임 스타일 디버깅: 커널 오류 시 구조화된 크래시 덤프와 파라미터 스냅샷을 제공합니다.

관련

  • 프로젝트
  • 프로젝트
  • 프로젝트
  • Dispatch
  • 프로젝트