6 ポイント 投稿者 GN⁺ 2024-02-13 | 2件のコメント | WhatsAppで共有

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件のコメント

 
bbulbum 2024-02-13

NVIDIA、くそくらえ!

 
GN⁺ 2024-02-13
Hacker Newsの意見
  • AMDが資金提供を打ち切った結果、ZLUDAが公開された

    • AMDは2年間の開発の末、CUDAアプリケーションをAMD GPU上で動作させることはビジネスケースにならないと判断した。
    • 契約条件により、AMDが追加開発を適切でないと判断した場合、ZLUDAを公開できる。
  • CUDA Dark APIへの言及

    • CUDA Dark APIは文書化されていない関数群で構成されており、それらの正確な数は不明。
    • 一般的なアプリケーションは、最も一般的な1つか2つの関数を使う。
    • これらの関数は名前や引数の型が知られておらず、実装に時間がかかる。
    • ZLUDAは、アプリケーションがそれを使用しているのを観測した後、ケースごとにリバースエンジニアリングして実装した。
  • AMDがCUDAの独占を崩すことを応援する意見

    • 翻訳レイヤーには、即座にハードウェアの実用性を高め、採用を促進できる利点がある。
    • しかし、開発者がROCmをサポートせず、翻訳レイヤーだけを使うリスクがある。
    • Proton+DXVKはLinuxゲーミングに良い影響を与えたが、GPUコンピューティング性能を引き出すには、特定のアーキテクチャに合わせたチューニングが必要。
    • AMDは市場で競争力を持つために何かをしなければならない。
  • Stable DiffusionをAMD GPUで動かそうとした試みと、その難しさについての体験談

    • ROCmのインストールとGPUの認識には問題がなかったが、MLの世界がNvidia中心であるため、PyTorchなどの導入が難しかった。
    • 最終的にモデルの読み込みには成功したが、ソフトウェアがグラフィックセッションをクラッシュさせる前に、画像を1枚も生成できなかった。
    • この経験により、再びNvidia GPUを買いたいという気持ちになった。
  • BlenderがOpenCLを捨ててCUDAバックエンドを採用してから数年後にRadeon HIPバックエンドが追加されたが、ZLUDA + CUDAバックエンドを使う方がRadeon HIPバックエンドよりわずかに速いことが示された。

  • AMDがこのプロジェクトへの資金提供を打ち切ったのは理解しがたい決定に見える。

    • CUDA-on-ROCmはNVIDIAの独占を崩す可能性があり、NVIDIAがCUDAに変更を加えることへの抑止力にもなり得る。
    • 市場で1位でないなら、実際の価値で競争するために、事実上の標準に従い、本当にオープンな標準を作ってそれに従うべきだ。
  • NvidiaがカーネルのGPLライセンスドライバーチェックを回避したというニュースに関連する質問

    • カーネル6.6で、Nvidiaがこれを修正しなければドライバーをブロックするという話があったが、Nvidiaの対応はなかった。
    • 現在カーネル6.7.4を使っており、Nvidiaが問題を解決したのか、それともブロックが延期されたのかについて、情報が錯綜している。
  • AMDのROCm/HIPスタックを自分でコンパイルしたい人向けのガイドがPhoronixの記事で紹介されている。

  • ROCmは公式ドキュメントよりもGitHubの方がよく説明されており、これはAMDが市場で競争力を失う理由の1つであるとして、ブランディングの重要性が強調されている。

  • AMDはこのプロジェクトにもっと多くのチームを割り当てるべきだという意見がある。