NVIDIA GPUの専用言語であるCUDAを、AMD GPU上で直接実行できるオープンソースコンパイラ「BarraCUDA」が開発者コミュニティで大きな注目を集めています。Hacker Newsでは365ポイントを獲得し、GPU市場の独占構造に風穴を開ける可能性として話題になりました。

BarraCUDAとは何か

BarraCUDAは、CUDA Cのソースコード(.cuファイル)をAMD RDNA 3(gfx1100)向けのバイナリにコンパイルするツールです。約15,000行のC99で書かれており、LLVMへの依存がゼロという点が特徴的です。

通常、CUDAコードをAMD GPUで動かすにはHIPへの変換が必要ですが、BarraCUDAはその変換レイヤーを完全に省略しています。レキサー、パーサー、独自のIR(中間表現)、そして約1,700行の手書きによる命令選択を経て、ELF形式の.hsacoバイナリを出力する仕組みになっています。

コンパイルパイプラインの構造

BarraCUDAの処理フローは以下のように構成されています。

  1. プリプロセッサ(#include、#define、マクロ、条件分岐の処理)
  2. レキサー(ソースコードをトークンに分解)
  3. 再帰下降パーサー(AST=抽象構文木の生成)
  4. 意味解析(型チェック、スコープ解決)
  5. BIR(BarraCUDA IR)への変換(SSA形式、型付き命令)
  6. mem2reg最適化(allocaをSSAレジスタに昇格)
  7. GFX11マシンコードの生成

これだけの処理を外部依存なしで実装している点は、コンパイラ技術として見ても意欲的な取り組みと言えるでしょう。

なぜBarraCUDAが注目されるのか

AI・機械学習の急速な発展に伴い、GPU需要は爆発的に増加しています。しかし、多くのAIフレームワークやライブラリがCUDA前提で構築されているため、事実上NVIDIAのGPUが必須という状況が続いてきました。

AMDのGPUはハードウェアとしては十分な性能を持ちながら、CUDAエコシステムに入れないことがボトルネックになっていたのです。BarraCUDAはこの壁を、翻訳レイヤーではなく直接コンパイルで乗り越えようとしています。

Tenstorrentへの展開も

GitHubリポジトリによると、BarraCUDAはAMD GPUだけでなく、Tenstorrent(Jim Keller率いるAIチップスタートアップ)のアーキテクチャ向け実装も進行中です。専用ブランチが公開されており、対応アーキテクチャの拡大が予定されています。

GPU以外のAIアクセラレータへの展開は、CUDAの「NVIDIAロックイン」を打破する上で非常に重要な動きと考えられます。

現時点での制約

もちろん、現段階ではいくつかの制約があります。対応アーキテクチャはRDNA 3(gfx1100)に限定されており、CUDA APIの全機能をカバーしているわけではありません。

本番環境でNVIDIA GPUの代替として使うにはまだ時期尚早ですが、概念実証としての完成度は高く、今後のロードマップにも期待が持てる内容になっています。

まとめ

BarraCUDAは、GPU市場におけるNVIDIA一強体制に対する技術的な挑戦として注目に値するプロジェクトです。LLVM非依存で.cuファイルを直接コンパイルするアプローチは独自性が高く、Tenstorrentへの展開も含めて今後の動向から目が離せません。

GPU選択の自由度が広がれば、AI開発全体のコスト削減やイノベーション促進にもつながるはずです。引き続きプロジェクトの進展を追っていきたいところです。

関連リンク