AMD製GPUでCUDAアプリを動かす「CUDA for AMD on Windows」の現状と課題

マザーボードに取り付けられた高性能なグラフィックボード Technology

Windows環境のAMD製GPU上でCUDAアプリを動かす「CUDA for AMD on Windows」とは

AIやディープラーニング、3Dグラフィックスの分野において、NVIDIAが提供する並列計算プラットフォーム「CUDA」は業界のデファクトスタンダードとなっています。そのため、多くの先進的なアプリケーションやライブラリはCUDA向けに最適化されており、AMD製GPUのユーザーがこれらを利用する際にはハードルが存在していました。

こうした状況を打破する試みとして注目されているのが、オープンソースプロジェクト「CUDA for AMD on Windows」です。本プロジェクトは、Windows環境において、本来NVIDIA製GPU向けにビルドされたCUDAアプリケーションを、AMD製GPU上で実行することを目指しています。これを実現するために、ZLUDAとROCm/HIPを組み合わせて活用しています。

検証済みの動作環境と対応GPUの現状

「CUDA for AMD on Windows」は現在も開発と検証が進められている段階であり、特定のハードウェアやソフトウェア構成において動作が確認されています。プロジェクトが公開している具体的な検証情報は以下の通りです。

基準となるリファレンスデバイス

本プロジェクトにおいて、動作検証の基準となるリファレンスデバイスとして位置づけられているのはAMD Radeon RX 9060 XT (gfx1200)です。このデバイスを中心に、互換性の検証が行われています。

テストされたソフトウェア構成

公開されているアップストリームのみのリファレンスパスにおいて、以下の具体的なソフトウェアスタックの組み合わせでテストが実施されました。

  • ZLUDA v6-preview.69
  • AMD HIP SDK 6.4
  • LibTorch 2.3.0 + cu118

この構成は、LibTorchのCUDA 11.8向けビルドを、AMDのHIP環境およびZLUDAを介して動作させるための具体的な検証ルートとなっています。

その他のGPUにおける検証状況

リファレンスデバイス以外のGPUについても、以下のような検証結果やサポート状況が報告されています。

  • Radeon RX 9070 XT (gfx1201): 別マシンでテストされた、アーカイブ済みのWindows AMD/ZLUDAトレーニングセットアップに基づく外部検証のエビデンスが存在します。
  • Radeon 890M (gfx1150): コミュニティによる部分的なサポートにとどまっています。具体的には、HIP 7.2ランタイムやGEMMは動作するものの、conv2dでのハングアップや、メモリ効率の良いSDPAにおいて出力が不正確になる不具合が報告されています。
開発コードやターミナルが表示された複数のモニター

完全ではない互換性:安全性と数値の正確性における制限

AMD GPU上でCUDAアプリを動かせるという試みは魅力的ですが、利用にあたっては重要な制限事項と安全対策を理解しておく必要があります。

数値の正確性は保証されない

極めて重要な事実として、ZLUDAは完全なCUDA実装ではなく、a cuda_check result of ‘pass’ does not guarantee numerical correctnessとなっています。そのため、互換性チェックツールであるcuda_checkの結果が「pass」と表示されたとしても、計算された数値の正確性を保証するものではありません。AIモデルの推論や学習において、わずかな数値のズレが致命的な結果をもたらす可能性があるため、この制限には十分な注意が必要です。

誤出力を防ぐ実験的パッチの存在

こうした不正確な計算結果がそのまま出力されてしまうリスクを低減するため、プロジェクトでは実験的な「v7パッチ」が用意されています。このパッチは、影響を受けるcubin専用のフォールバック(メモリ効率の良いSDPAの破損など)を検出し、不具合を検出した際には誤った出力を許可する代わりにNO_BINARY_FOR_GPUで安全に処理を終了(fail closed)させます。

このプロジェクトがもたらす重要性と今後の展望

「CUDA for AMD on Windows」の取り組みは、Windows環境でAMD製GPUを所有する開発者やクリエイターにとって、NVIDIA一強とされるAI開発環境に一石を投じる可能性を秘めています。特に、手持ちのRadeon GPUでLibTorchなどのCUDA向けライブラリをテストできる点は大きなメリットです。

しかし、Radeon 890Mでの不具合報告や、数値の正確性が保証されないという現状が示す通り、本プロジェクトは依然として実験的なフェーズにあります。ミッションクリティカルな業務や、厳密な計算精度が求められる研究開発にそのまま導入するのは時期尚早と言えます。今後のZLUDAやAMD HIP SDKのアップデート、およびコミュニティによる検証の積み重ねによって、どこまで実用的な安定性と正確性が確保されるかが、今後の普及の鍵を握るでしょう。

情報元

コメント