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アーキテクチャを1つのコードベースからターゲットにしたいGPU開発者、研究者、趣味の開発者、またはテストや開発のためにGPU風のカーネルをCPUハードウェア上で実行したいユーザーに最適です。

特徴

  • マルチGPUターゲット: NVIDIA、AMD、Tenstorrentハードウェアをサポート。
  • TritonからCPUへのコンパイル: LLVMを必要とせずにTritonカーネルをネイティブx86-64コードに直接コンパイル可能。
  • ネイティブNVIDIAバックエンド: GPUが直接読み込むことができるcubinファイルを生成可能。ドライバーのJITを回避。
  • 広範な言語サポート: CUDA C、HIP、Triton、Fortran(LFortran経由)、OCamlを受付。
  • メインフレーム風のデバッグ: カーネルの障害時に構造化されたクラッシュダンプとパラメータスナップショットを提供。

関連

  • プロジェクト
  • プロジェクト
  • プロジェクト
  • Dispatch
  • プロジェクト