AMD、ROCmベースのCUDA実装をひそかに支援しオープンソースとして公開
- AMDは、開発者がNVIDIAのCUDA APIを対象とするコードベースをHIP/ROCm上で実行できるように、長年にわたり取り組んできた。
- こうした取り組みにもかかわらず、最適な性能を追求するのであれば、良い解決策(シンプルで即時に使え、性能が保証されるもの)とは言えなかった。
- 過去2年間、AMDは多くのNVIDIA CUDAアプリケーションがソースコードの変更なしにAMD ROCmスタック上で動作できるよう、ライブラリレベルでのバイナリ互換性を提供するプロジェクトをひそかに支援してきた。
ZLUDA: Intel Graphics向けのCUDAサポート
- 数年前、ZLUDAというプロジェクトがIntel GraphicsでCUDAをサポートするために始まったが、個人的な理由で中断された。
- ZLUDAの開発者であるAndrzej Janikは、2022年にAMDから、AMD GPU上でHIP/ROCmを使ってZLUDAを適用するための契約を受けた。
- Janikはこの2年間、Radeon GPU向けにZLUDAを実装し、多くのCUDAソフトウェアが修正なしでHIP/ROCm上で動作できるようにした。
ZLUDAのオープンソース公開
- AMDは今年、このプロジェクトへの資金提供を打ち切り、ソフトウェア製品としてリリースしないことを決定した。
- しかし契約終了時に、Janikがこの成果をオープンソースとして公開できる条項があった。
- Janikは、この新しいZLUDA実装をテストし、ベンチマークするためのアクセスを提供している。
ZLUDA実装の制限とオープンソースコード
- ZLUDA実装は、NVIDIA OptiXのサポートが完全ではなく、PTXアセンブリコードを使わないソフトウェアは現時点では扱えないなど、100%安全というわけではない。
- それでも多くの場合、この実装は単独開発者の成果として驚くほど高い能力を持っている。
- オープンソースコードはApache 2.0またはMITライセンスのデュアルライセンスとなっている。
- このRadeon向け実装にはRustプログラミング言語が使われている。
GN⁺の見解
- この記事は、AMDがCUDA互換性を提供するためにひそかに支援していたプロジェクトを紹介しており、これはオープンソースコミュニティへの大きな貢献になり得る。
- ZLUDAは、開発者がソースコードを変更せずにAMDプラットフォーム上でCUDAアプリケーションを実行できるようにする重要な前進だ。
- このような取り組みは、AMD GPUユーザーにより広いソフトウェアエコシステムへのアクセス機会を提供し、特にRustのようなモダンなプログラミング言語を活用している点が興味深い。
2件のコメント
NVIDIA、くそくらえ!
Hacker Newsの意見
AMDが資金提供を打ち切った結果、ZLUDAが公開された
CUDA Dark APIへの言及
AMDがCUDAの独占を崩すことを応援する意見
Stable DiffusionをAMD GPUで動かそうとした試みと、その難しさについての体験談
BlenderがOpenCLを捨ててCUDAバックエンドを採用してから数年後にRadeon HIPバックエンドが追加されたが、ZLUDA + CUDAバックエンドを使う方がRadeon HIPバックエンドよりわずかに速いことが示された。
AMDがこのプロジェクトへの資金提供を打ち切ったのは理解しがたい決定に見える。
NvidiaがカーネルのGPLライセンスドライバーチェックを回避したというニュースに関連する質問
AMDのROCm/HIPスタックを自分でコンパイルしたい人向けのガイドがPhoronixの記事で紹介されている。
ROCmは公式ドキュメントよりもGitHubの方がよく説明されており、これはAMDが市場で競争力を失う理由の1つであるとして、ブランディングの重要性が強調されている。
AMDはこのプロジェクトにもっと多くのチームを割り当てるべきだという意見がある。