The project's README from github.com/Speedstu/CUDA-for-AMD-Windows. As one markdown file: README.md.
A reproducible Windows CUDA compatibility stack for AMD GPUs, built around ZLUDA + AMD ROCm/HIP.
Run CUDA-targeted Windows applications on AMD hardware, verify that work really reaches the GPU, and distinguish a correct result from a crash, timeout, CPU fallback, or silently wrong tensor.
[!IMPORTANT] This project is not a complete CUDA implementation. Support is capability- and workload-specific. The validated reference GPU is currently the Radeon RX 9060 XT (
gfx1200).
Install a current AMD GPU driver and the AMD HIP SDK for Windows with HIP Libraries.
The required HIP version depends on the GPU architecture. The project checks the architecture-specific floor recorded in manifests/windows-gpu-profiles.json.
git clone https://github.com/Speedstu/CUDA-for-AMD-Windows.git
cd CUDA-for-AMD-Windows
powershell -ExecutionPolicy Bypass -File .\scripts\install.ps1
The installer detects the GPU, verifies the HIP environment, downloads pinned assets, stages the runtime, runs a runtime smoke test, and performs numerical checks when a compatible Python/PyTorch environment is available.
.\scripts\run-zluda.ps1 -Program C:\path\to\app.exe
.\scripts\doctor.ps1
.\scripts\test-runtime.ps1
.\scripts\test-functional.ps1 -PythonExe C:\path\to\venv\Scripts\python.exe
The original low-level setup path is intentionally kept compatible for existing users and old posts:
.\scripts\setup.ps1 -DownloadZluda -DownloadLibTorch
See scripts/README.md for the stable user-facing commands and maintainer tooling.
| GPU | Target | Project status | Notes |
|---|---|---|---|
| Radeon RX 9060 XT | gfx1200 |
✅ validated reference | Main development and integration validation platform |
| Radeon RX 9070 XT | gfx1201 |
✅ validated external | Separately tested Windows AMD/ZLUDA training setup |
| Radeon 890M | gfx1150 |
🟡 community partial | HIP/GEMM reported working; broader paths still under validation |
| Other recognized AMD GPUs | architecture-dependent | ⚪ unverified candidate | Detection is not functional validation |
Full details, version floors, evidence levels, known limitations, and the CUDA DLL → AMD backend map: docs/COMPATIBILITY.md.
The public reference path uses pinned upstream components and has been tested with:
v6-preview.696.42.3.0 + cu118gfx1200See docs/VALIDATION.md.
The repository also maintains a pinned, source-based ZLUDA v7-preview.10 patch series for newer CUDA-facing behavior.
Validated work on the reference machine includes areas such as:
The patch set remains separate from the stable installer so experimental work cannot silently redefine the stable path.
See patches/zluda-v7-preview10/README.md.
This project deliberately tests more than tiny API calls.
The reference workload performs rollout, forward, backward, PPO learning, and optimizer work through the CUDA-facing device.
See docs/VALIDATION.md and docs/BENCHMARKS.md.
A recent llama.cpp b10978 build has completed an end-to-end GPU smoke on the RX 9060 XT experimental v7 path:
CUDA0 through ZLUDAThis is evidence for that tested path, not a claim that every llama.cpp kernel or model is supported.
See docs/LLAMA_CPP.md.
Performance claims are kept same-GPU and reproducible where possible; this is not an AMD-vs-NVIDIA benchmark.
On the experimental v7/TheRock path, a clean four-pair FP32 SGEMM validation measured paired median overhead versus direct HIP/rocBLAS of +1.79% at 1024², +0.45% at 2048², and +2.20% at 4096². The corresponding throughput ratios were 98.2%, 99.6%, and 97.8%.
A real VelocityRL 512 agents × rollout 16 smoke separated first-use compilation from steady state: the warmed updates reached 72,306 SPS and 70,333 SPS, for 71,319.5 SPS median steady-state.
Methodology and raw results: docs/BENCHMARKS.md and benchmarks/.
A CUDA API returning success is not enough to call something supported.
The test suite distinguishes:
PASS · UNSUPPORTED · INCORRECT · TIMEOUT · ERROR · process failure
The project follows a fail-closed rule: an explicit unsupported result is better than a plausible-looking but incorrect tensor.
That policy already caught fused SDPA fallback paths that could return numerically wrong output instead of failing clearly.
For the evidence model and contribution rules, see CONTRIBUTING.md.
| Area | Purpose |
|---|---|
scripts/ |
Installation, launch, diagnostics, tests, staging and maintainer helpers |
manifests/ |
Pinned releases, hashes and GPU architecture metadata |
patches/ |
Reproducible source patches against pinned upstream projects |
native/ |
Small source-built native compatibility components |
docs/ |
Architecture, validation, integrations, benchmarks and troubleshooting |
examples/ |
Small integration/reference snippets |
benchmarks/ |
Raw benchmark data checked into the repository |
.github/ |
CI and structured GPU compatibility reports |
Generated runtime files stay under .runtime/ and are ignored by Git.
Start with docs/README.md instead of searching through the repository.
Historical reconstruction material is still preserved, but it is no longer part of the recommended path.
Both successful and failed reports are useful.
.\scripts\gpu-scan.ps1 -OutputPath .\gpu-report.json
.\scripts\test-runtime.ps1
.\scripts\test-functional.ps1 -PythonExe C:\path\to\venv\Scripts\python.exe
Then open a GPU compatibility report.
Please include the GPU model, gfxXXXX target, driver, HIP version, ZLUDA channel/build, exact workload, and proof that the AMD/ZLUDA device actually executed the work rather than falling back to CPU.
cuda_check or device detection alone does not establish numerical correctness.ZLUDA_CC=8.6 is a CUDA-facing compatibility value, not the native AMD GPU architecture.More detail: docs/COMPATIBILITY.md.
The project is evidence-driven. New compatibility claims should include a focused reproducer, numerical validation where applicable, exact versions/hashes, and a real workload when possible.
Read CONTRIBUTING.md before changing support claims or promoting experimental patches.
Project-owned scripts and documentation are MIT licensed.
ZLUDA, AMD ROCm/HIP, NVIDIA CUDA components, PyTorch/LibTorch and other third-party projects retain their own licenses. See THIRD_PARTY_NOTICES.md.