HN 日本語サマリー

← 一覧へ戻る
プログラミング

Windows上のAMD向けCUDA

CUDA for AMD on Windows (github.com)

61 pointsby chiassedu8013 コメント

要約

このプロジェクトは、ZLUDAとROCm/HIPを利用して、Windows上でAMD GPU上でCUDAターゲットのアプリケーションを実行可能にするための再現可能なセットアップを提供します。特に、LibTorchを使用するCUDA対応のコンピューティングワークロードを対象としています。現時点ではAMD Radeon RX 9060 XT (gfx1200) のみが検証済みですが、他のGPUもテスト対象となり得ます。セットアップ手順や診断ツールも提供されています。

全文翻訳

Windows上のAMD向けCUDA 動作する再現可能なスタックがアップロードされました。 ZLUDA + ROCm/HIPを介して、AMD GPU上でCUDAターゲットのWindowsアプリケーションを実行します。 ZLUDA + AMD HIP/ROCmを中心に構築された、再現可能なWindows CUDA互換セットアップです。 CUDA対応のコンピューティングアプリケーション、特にCUDA対応LibTorchを使用するワークロードを対象としています。 重要 現在、検証済みのハードウェアはAMD Radeon RX 9060 XT (gfx1200) のみです。他のAMD GPUは候補ですが、動作が保証されているわけではありません。別のカードをテストした場合は、動作するか失敗するかに関わらず、GPU互換性レポートを開いてください。 本日確認済み プライベート/リカバリされたDLLなしで、公開されているアップストリームパスがテストされました。 ZLUDA v6-preview.69 (公式ZLUDAリリースより) AMD HIP SDK 6.4 LibTorch 2.3.0 + cu118 RX 9060 XT / gfx1200 nvcuda, cuBLAS, cuBLASLt, cuSPARSE, cuFFTはすべてcuda_checkに合格しました。 実際の2,216,347パラメータのPPOネットワークでフォワード/推論が完了し、PPO学習とオプティマイザがCUDA対応デバイスで動作しました。 このリポジトリによって生成されたランタイムを使用して、65,536タイムステップのクリーンな検証イテレーションが完了しました。 この統合テストでは、当初このプロジェクトの動機となったのと同じCUDA対応LibTorchトレーニングワークロードが使用されました。詳細はdocs/VALIDATION.mdを参照してください。 これは、すべてのCUDAプログラムまたはAIモデルが動作することを意味するものではありません。CUDA API/ライブラリのカバレッジはワークロードに依存します。 仕組み CUDAターゲットのWindowsアプリケーション | ZLUDA | cuBLAS / cuSPARSE / cuFFT互換性 | rocBLAS / hipBLASLt / rocSPARSE / HIP | AMD GPU インストール 1. AMDの前提条件をインストールします。 最新のAMD GPUドライバと、HIPライブラリを含むWindows用AMD HIP SDKをインストールします。検証済みのリファレンスではHIP SDK 6.4を使用しています。新しいバージョンも動作する可能性がありますが、報告されるまで未検証として扱ってください。 AMD Windows HIP SDKガイド: https://rocm.docs.amd.com/projects/install-on-windows/en/docs-6.4.2/index.html 2. インストーラーをクローンして実行します。 ```bash git clone https://github.com/Speedstu/CUDA-for-AMD-Windows.git cd CUDA-for-AMD-Windows powershell -ExecutionPolicy Bypass -File .\scripts\install.ps1 ``` install.ps1は以下の処理を行います。 AMD GPUとネイティブのgfxXXXXターゲットを検出します。 AMDドライバ/HIP SDKおよび必要な数学ライブラリを検証します。 ピン留めされた公式ZLUDA Windowsビルドをダウンロードします。 LibTorch 2.3.0+cu118(約2.66 GB)をダウンロードします。 ダウンロードされたSHA-256ハッシュを検証します。 .runtime\runtime-config.jsonおよび.runtime\gpu-report.jsonを生成します。 インストールされたAMDスタックに対してZLUDAのcuda_check.exeを実行します。 LibTorchが不要な場合: ```powershell .\scripts\install.ps1 -SkipLibTorch ``` CUDAターゲットアプリケーションを実行する ```powershell .\scripts\run-zluda.ps1 -Program C:\path\to\app.exe ``` ランチャーは、必要なZLUDA互換DLLをターゲットアプリケーションの隣にステージングし、その実行のためにHIP/ROCmランタイムパスを設定します。 起動せずにステージングすることもできます: ```powershell .\scripts\stage-runtime.ps1 -TargetDir C:\path\to\your-app ``` マシンを診断する ```powershell .\scripts\doctor.ps1 .\scripts\gpu-scan.ps1 .\scripts\test-runtime.ps1 ``` GPUスキャナーは、モデル、gfxアーキテクチャ、ドライバ、HIP情報を記録します。意図的にユーザー名、トークン、またはユーザーファイルを収集することはありません。 検証済みマシンでの例: AMD Radeon RX 9060 XT -> gfx1200 -> RDNA4 -> validated-reference 現在のGPUステータス GPU | プロジェクトステータス --- Radeon RX 9060 XT gfx1200 | ✅ 検証済みリファレンス スキャナーは他のWindows HIPアーキテクチャファミリーを認識し、サポートを主張するのではなく、未検証の候補としてマークします。検出がワークロードの実行を証明するわけではありません。 AMDの現在のWindowsハードウェアテーブル: https://rocm.docs.amd.com/projects/install-on-windows/en/latest/reference/system-requirements.html 検証済みセットアップでのランタイムカバレッジ CUDA対応コンポーネント | 結果 --- CUDAドライバ / nvcuda | ✅ cuBLAS | ✅ (rocBLAS経由) cuBLASLt | ✅ (hipBLASLt経由) cuSPARSE | ✅ (rocSPARSE経由) cuFFT | ✅ cuDNN | ⚠️ (検証済みの安定版Windows HIP SDKでは利用不可) 安定版Windows HIP SDKには、MIOpenのような完全なROCm AIライブラリスクैकが含まれていないため、cuDNNを必要とする畳み込みが多いソフトウェアは、より新しい/ナイトリー版のHIPスタックまたは追加の作業が必要になる場合があります。Dense/GEMMが多いLibTorchトレーニングは、必ずしもcuDNNを必要としません。検証済みのPPOワークロードはcuDNNなしで完了しました。 パフォーマンス 2026-09-13に、同じRX 9060 XT PPOワークロードで10回のイテレーションを実行するA/Bテストを行いました。各トライアルの最初のイテレーションをウォームアップとして破棄した後、公開アップストリームパスは13,278 median overall SPSに達し、リカバリされたカスタムオーバーレイは12,876でした。このワークロードでは、カスタムオーバーレイは約3.03%遅かったため、アップストリームがデフォルトのままです。 過去のチューニング済み実行では、異なるトレーニング構成が使用され、約70k~109k overall steps/sに達しました。方法論と生データについては、docs/BENCHMARKS.mdを参照してください。 オプションの過去のカスタムオーバーレイ 元の開発環境では、カスタムcuBLAS/cuBLASLt/HIPオーバーレイも実験しました。これは、検証済みの公開パスには必要なく、上記の制御されたA/Bテストに基づくと、現在のリファレンスPPOワークロードではパフォーマンス上の利点はありません。 リカバリされたDLLは、manifests/recovered-artifacts.sha256のマニフェストにフィンガープリントとして残っています。元のカスタムラッパーソース/出所が不完全であり、リカバリされたHIPランタイムにはサードパーティのAMDバイナリが含まれているため、バイナリブロブとしては公開されていません。詳細はdocs/CUSTOM_OVERLAY.mdを参照してください。 バグを見つけたか、別のGPUをテストしましたか? 問題を公開してください。失敗したテストも役立ちます。 ```powershell .\scripts\gpu-scan.ps1 -OutputPath .\gpu-report.json .\scripts\test-runtime.ps1 ``` その後、アプリケーション、結果、および最初の有用なエラー/出力を記載したGPU互換性レポートを開いてください。 リポジトリのレイアウト scripts/ : インストール、診断、スキャナー、ステージング、ランチャー manifests/ : ピン留めされたバージョン、ハッシュ、GPUアーキテクチャメタデータ docs/ : 検証、アーキテクチャ、ベンチマーク、トラブルシューティング、例 examples/integration/ : リファレンススニペット .runtime/ : 生成された依存関係とレポート。Gitによって無視されます。 local-artifacts/ : ローカルアーカイブファイル。Gitによって無視されます。 制限事項 このプロジェクトによって現在検証されているのは、RX 9060 XT / gfx1200のみです。 ZLUDAは完全なCUDA実装ではありません。 Windowsは、完全なROCmエコシステムの一部のみを公開します。 検証済みの安定版HIP SDKパスでは、cuDNN/MIOpenは利用できません。 NCCL、TensorRT、サポートされていないPTXの動作、および一部のカスタムCUDA拡張機能は失敗する可能性があります。 ZLUDA_CC=8.6は、AMD GPUアーキテクチャではなく、CUDA対応の互換性値です。 ライセンスとサードパーティソフトウェア プロジェクト所有のスクリプトとドキュメントはMITライセンスです。ZLUDA、AMD ROCm/HIP、NVIDIA CUDAコンポーネント、およびPyTorch/LibTorchは、それぞれのアップストリームライセンスを保持します。詳細はTHIRD_PARTY_NOTICES.mdを参照してください。