Dit artikel beschrijft een methode om CUDA-applicaties op AMD-GPU's onder Windows te draaien via de combinatie van ZLUDA en AMD ROCm/HIP.
Kernpunten:
- Werking: De gegevensstroom verloopt van de CUDA-applicatie via ZLUDA naar de AMD HIP-runtime en uiteindelijk naar de GPU.
- Hardware: De opstelling is momenteel specifiek gevalideerd voor de AMD Radeon RX 9060 XT (gfx1200).
- Installatie: Het proces is geautomatiseerd via PowerShell-scripts die de AMD HIP SDK, ZLUDA-builds en LibTorch installeren en configureren.
- Compatibiliteit: Componenten zoals
cuBLAS, cuSPARSE en cuFFT zijn functioneel. Echter, cuDNN is momenteel niet beschikbaar in de stabiele Windows HIP SDK, wat een beperking vormt voor sommige AI-modellen.
- Prestaties: A/B-testen met PPO-netwerken tonen aan dat het publieke upstream-pad goede resultaten behaalt voor inference en trainingstaken.
Het project biedt tevens diagnostische tools zoals een GPU-scanner en runtime-tests om compatibiliteit op andere AMD-kaarten te verifiëren.
CUDA voor AMD op Windows
Dit is een reproduceerbare Windows CUDA-compatibiliteitsopstelling gebouwd rond ZLUDA + AMD HIP/ROCm. Het is bedoeld voor compute-applicaties die CUDA gebruiken, inclusief workloads die gebruikmaken van CUDA-ondersteunde LibTorch.
Belangrijk
Momenteel is alleen de AMD Radeon RX 9060 XT (gfx1200) gevalideerd. Andere AMD-GPU's zijn kandidaten, maar het is niet gegarandeerd dat deze werken. Als u een andere kaart test, wordt u verzocht een GPU-compatibiliteitsrapport in te dienen, ongeacht of het werkt of faalt.
Verificatie
Het publieke, upstream-only pad is getest zonder private of herstelde DLL's:
- ZLUDA: v6-preview.69 (officiële ZLUDA-release)
- AMD HIP SDK: 6.4
- LibTorch: 2.3.0 + cu118
- Hardware: RX 9060 XT / gfx1200
De volgende componenten zijn geslaagd voor de cuda_check:
- nvcuda
- cuBLAS
- cuBLASLt
- cuSPARSE
- cuFFT
Daarnaast is een echt PPO-netwerk met 2.216.347 parameters succesvol uitgevoerd voor forward/inference, PPO-learning en optimizer-taken op het CUDA-apparaat. Er is één schone validatie-iteratie voltooid van 65.536 timesteps met de runtime die door deze repository wordt geproduceerd.
Deze integratietest maakte gebruik van dezelfde CUDA-georiënteerde LibTorch-trainingsworkload die oorspronkelijk aanleiding gaf voor dit project (zie docs/VALIDATION.md). Dit betekent echter niet dat elk CUDA-programma of elk AI-model werkt; de dekking van de CUDA API/bibliotheek is afhankelijk van de specifieke workload.
Hoe het werkt
De gegevensstroom verloopt als volgt: CUDA-gerichte Windows-applicatie → ZLUDA → cuBLAS / cuSPARSE / cuFFT compatibiliteit → rocBLAS / hipBLASLt / rocSPARSE / HIP → AMD GPU
Installatie
1. Installeer de AMD-voorwaarden
Installeer een actuele AMD GPU-driver en de AMD HIP SDK voor Windows, inclusief de HIP-bibliotheken. De gevalideerde referentie maakt gebruik van HIP SDK 6.4. Nieuwere versies kunnen werken, maar moeten als ongeverifieerd worden beschouwd totdat het tegendeel is gerapporteerd.
AMD Windows HIP SDK gids: https://rocm.docs.amd.com/projects/install-on-windows/en/docs-6.4.2/index.html
2. Clone en run de installer
Voer de volgende commando's uit in PowerShell:
git clone https://github.com/Speedstu/CUDA-for-AMD-Windows.git
cd CUDA-for-AMD-Windows
powershell -ExecutionPolicy Bypass -File .\scripts\install.ps1
Het bestand install.ps1 voert de volgende acties uit:
- Detecteert de AMD GPU en het native
gfxXXXX target.
- Verifieert de AMD-driver, de HIP SDK en de vereiste wiskundige bibliotheken.
- Downloadt de vastgelegde (pinned) officiële ZLUDA Windows-build.
- Downloadt LibTorch 2.3.0+cu118 (ongeveer 2,66 GB).
- Verifieert de gedownloade SHA-256 hashes.
- Genereert
.runtime\runtime-config.json en .runtime\gpu-report.json.
- Voert ZLUDA's
cuda_check.exe uit tegen de geïnstalleerde AMD-stack.
Indien LibTorch niet nodig is, gebruik dan: .\scripts\install.ps1 -SkipLibTorch
Een CUDA-applicatie uitvoeren
Om een applicatie te starten: .\scripts\run-zluda.ps1 -Program C:\pad\naar\app.exe
De launcher plaatst de vereiste ZLUDA-compatibiliteits-DLL's naast de doelapplicatie en stelt de HIP/ROCm-runtimepaden in voor die sessie.
U kunt de runtime ook voorbereiden zonder de applicatie direct te starten: .\scripts\stage-runtime.ps1 -TargetDir C:\pad\naar\uw-app
Diagnostiek
Gebruik de volgende scripts om een machine te diagnosticeren:
.\scripts\doctor.ps1
.\scripts\gpu-scan.ps1
.\scripts\test-runtime.ps1
De GPU-scanner registreert het model, de gfx-architectuur, de driver en HIP-informatie. Er worden geen gebruikersnamen, tokens of gebruikersbestanden verzameld.
Voorbeeld op de gevalideerde machine: AMD Radeon RX 9060 XT -> gfx1200 -> RDNA4 -> validated-reference
Huidige GPU-status
| GPU | Target | Projectstatus |
| Radeon RX 9060 XT | gfx1200 | � |
| Gevalideerde referentie |
De scanner herkent andere Windows HIP-architectuurfamilies en markeert deze als ongeverifieerde kandidaten. Detectie is geen bewijs dat een workload daadwerkelijk draait.
Actuele Windows hardware-tabel van AMD: https://rocm.docs.amd.com/projects/install-on-windows/en/latest/reference/system-requirements.html
Runtime-dekking op de gevalideerde setup
| CUDA-component | Resultaat |
| CUDA driver / nvcuda | � |
|
| cuBLAS | � |
| via rocBLAS |
| cuBLASLt | � |
| via hipBLASLt |
| cuSPARSE | � |
| via rocSPARSE |
| cuFFT | � |
|
| cuDNN | ⚠️ Niet beschikbaar met de gevalideerde stabiele Windows HIP SDK |
De stabiele Windows HIP SDK bevat niet de volledige ROCm AI-bibliotheekstack (zoals MIOpen). Software die zwaar leunt op convoluties en cuDNN vereist mogelijk een nieuwere/nightly HIP-stack of aanvullend werk. Dense/GEMM-gebaseerde LibTorch-training vereist niet noodzakelijkerwijs cuDNN; de gevalideerde PPO-workload werd zonder cuDNN voltooid.
Prestaties
Tijdens een gecontroleerde A/B-test op 13 september 2026 werden 10 iteraties per runtime uitgevoerd op dezelfde RX 9060 XT PPO-workload. Na het verwijderen van de eerste iteratie (warm-up), behaalde het publieke upstream-pad een mediane waarde van 13.278 overall SPS, tegenover 12.876 voor de herstelde custom overlay. In deze workload was de custom overlay ongeveer 3,03% trager, waardoor upstream de standaard blijft.
Historische tuned runs met een andere trainingsconfiguratie behaalden ongeveer 70k–109k overall steps/s. Zie docs/BENCHMARKS.md voor de methodologie en ruwe data.
Optionele historische custom overlay
In de oorspronkelijke ontwikkelomgeving is geëxperimenteerd met een custom cuBLAS/cuBLASLt/HIP overlay. Deze is niet vereist voor het gevalideerde publieke pad en biedt op basis van de bovenstaande A/B-test momenteel geen prestatievoordeel voor de referentie PPO-workload.
De herstelde DLL's zijn gefingerprint in manifests/recovered-artifacts.sha256. Ze worden niet als binaire blobs gepubliceerd omdat de oorspronkelijke bron van de custom wrapper onvolledig is en de herstelde HIP-runtime third-party AMD-binaries bevat. Zie docs/CUSTOM_OVERLAY.md.
Bugs melden of andere GPU's testen
Indien u een bug vindt of een andere GPU test, open dan een "issue". Ook mislukte tests zijn nuttig.
Voer eerst uit: .\scripts\gpu-scan.ps1 -OutputPath .\gpu-report.json .\scripts\test-runtime.ps1
Open vervolgens een GPU-compatibiliteitsrapport en vermeld de applicatie, het resultaat en de eerste relevante foutmelding of output.
Structuur van de repository
scripts/: Installatie, diagnostiek, scanner, staging en launcher.
manifests/: Vastgelegde versies, hashes en GPU-architectuur metadata.
docs/: Validatie, architectuur, benchmarks en probleemoplossing.
examples/: Integratie- en referentievoorbeelden.
.runtime/: Gegenereerde afhankelijkheden en rapporten (wordt genegeerd door Git).
local-artifacts/: Lokale archiefbestanden (wordt genegeerd door Git).
Beperkingen
- Alleen de RX 9060 XT / gfx1200 is momenteel gevalideerd door dit project.
- ZLUDA is geen volledige CUDA-implementatie.
- Windows biedt slechts een subset van het volledige ROCm-ecosysteem.
- cuDNN/MIOpen is niet beschikbaar in het gevalideerde stabiele HIP SDK-pad.
- NCCL, TensorRT, niet-ondersteund PTX-gedrag en sommige custom CUDA-extensies kunnen falen.
ZLUDA_CC=8.6 is een compatibiliteitswaarde voor CUDA, niet de AMD GPU-architectuur.
Licentie en software van derden
De scripts en documentatie van dit project vallen onder de MIT-licentie. ZLUDA, AMD ROCm/HIP, NVIDIA CUDA-componenten en PyTorch/LibTorch behouden hun eigen upstream-licenties. Zie THIRDPARTYNOTICES.md.
CUDA voor AMD op Windows
Dit is een reproduceerbare Windows CUDA-compatibiliteitsopstelling gebouwd rond ZLUDA + AMD HIP/ROCm. Het is bedoeld voor compute-applicaties die CUDA gebruiken, inclusief workloads die gebruikmaken van CUDA-ondersteunde LibTorch.
Belangrijk
Momenteel is alleen de AMD Radeon RX 9060 XT (gfx1200) gevalideerd. Andere AMD-GPU's zijn kandidaten, maar het is niet gegarandeerd dat deze werken. Als u een andere kaart test, wordt u verzocht een GPU-compatibiliteitsrapport in te dienen, ongeacht of het werkt of faalt.
Verificatie
Het publieke, upstream-only pad is getest zonder private of herstelde DLL's:
- ZLUDA: v6-preview.69 (officiële ZLUDA-release)
- AMD HIP SDK: 6.4
- LibTorch: 2.3.0 + cu118
- Hardware: RX 9060 XT / gfx1200
De volgende componenten zijn geslaagd voor de cuda_check:
- nvcuda
- cuBLAS
- cuBLASLt
- cuSPARSE
- cuFFT
Daarnaast is een echt PPO-netwerk met 2.216.347 parameters succesvol uitgevoerd voor forward/inference, PPO-learning en optimizer-taken op het CUDA-apparaat. Er is één schone validatie-iteratie voltooid van 65.536 timesteps met de runtime die door deze repository wordt geproduceerd.
Deze integratietest maakte gebruik van dezelfde CUDA-georiënteerde LibTorch-trainingsworkload die oorspronkelijk aanleiding gaf voor dit project (zie docs/VALIDATION.md). Dit betekent echter niet dat elk CUDA-programma of elk AI-model werkt; de dekking van de CUDA API/bibliotheek is afhankelijk van de specifieke workload.
Hoe het werkt
De gegevensstroom verloopt als volgt: CUDA-gerichte Windows-applicatie → ZLUDA → cuBLAS / cuSPARSE / cuFFT compatibiliteit → rocBLAS / hipBLASLt / rocSPARSE / HIP → AMD GPU
Installatie
1. Installeer de AMD-voorwaarden
Installeer een actuele AMD GPU-driver en de AMD HIP SDK voor Windows, inclusief de HIP-bibliotheken. De gevalideerde referentie maakt gebruik van HIP SDK 6.4. Nieuwere versies kunnen werken, maar moeten als ongeverifieerd worden beschouwd totdat het tegendeel is gerapporteerd.
AMD Windows HIP SDK gids: https://rocm.docs.amd.com/projects/install-on-windows/en/docs-6.4.2/index.html
2. Clone en run de installer
Voer de volgende commando's uit in PowerShell:
git clone https://github.com/Speedstu/CUDA-for-AMD-Windows.git
cd CUDA-for-AMD-Windows
powershell -ExecutionPolicy Bypass -File .\scripts\install.ps1
Het bestand install.ps1 voert de volgende acties uit:
- Detecteert de AMD GPU en het native
gfxXXXX target.
- Verifieert de AMD-driver, de HIP SDK en de vereiste wiskundige bibliotheken.
- Downloadt de vastgelegde (pinned) officiële ZLUDA Windows-build.
- Downloadt LibTorch 2.3.0+cu118 (ongeveer 2,66 GB).
- Verifieert de gedownloade SHA-256 hashes.
- Genereert
.runtime\runtime-config.json en .runtime\gpu-report.json.
- Voert ZLUDA's
cuda_check.exe uit tegen de geïnstalleerde AMD-stack.
Indien LibTorch niet nodig is, gebruik dan: .\scripts\install.ps1 -SkipLibTorch
Een CUDA-applicatie uitvoeren
Om een applicatie te starten: .\scripts\run-zluda.ps1 -Program C:\pad\naar\app.exe
De launcher plaatst de vereiste ZLUDA-compatibiliteits-DLL's naast de doelapplicatie en stelt de HIP/ROCm-runtimepaden in voor die sessie.
U kunt de runtime ook voorbereiden zonder de applicatie direct te starten: .\scripts\stage-runtime.ps1 -TargetDir C:\pad\naar\uw-app
Diagnostiek
Gebruik de volgende scripts om een machine te diagnosticeren:
.\scripts\doctor.ps1
.\scripts\gpu-scan.ps1
.\scripts\test-runtime.ps1
De GPU-scanner registreert het model, de gfx-architectuur, de driver en HIP-informatie. Er worden geen gebruikersnamen, tokens of gebruikersbestanden verzameld.
Voorbeeld op de gevalideerde machine: AMD Radeon RX 9060 XT -> gfx1200 -> RDNA4 -> validated-reference
Huidige GPU-status
| GPU | Target | Projectstatus |
| Radeon RX 9060 XT | gfx1200 | � |
| Gevalideerde referentie |
De scanner herkent andere Windows HIP-architectuurfamilies en markeert deze als ongeverifieerde kandidaten. Detectie is geen bewijs dat een workload daadwerkelijk draait.
Actuele Windows hardware-tabel van AMD: https://rocm.docs.amd.com/projects/install-on-windows/en/latest/reference/system-requirements.html
Runtime-dekking op de gevalideerde setup
| CUDA-component | Resultaat |
| CUDA driver / nvcuda | � |
|
| cuBLAS | � |
| via rocBLAS |
| cuBLASLt | � |
| via hipBLASLt |
| cuSPARSE | � |
| via rocSPARSE |
| cuFFT | � |
|
| cuDNN | ⚠️ Niet beschikbaar met de gevalideerde stabiele Windows HIP SDK |
De stabiele Windows HIP SDK bevat niet de volledige ROCm AI-bibliotheekstack (zoals MIOpen). Software die zwaar leunt op convoluties en cuDNN vereist mogelijk een nieuwere/nightly HIP-stack of aanvullend werk. Dense/GEMM-gebaseerde LibTorch-training vereist niet noodzakelijkerwijs cuDNN; de gevalideerde PPO-workload werd zonder cuDNN voltooid.
Prestaties
Tijdens een gecontroleerde A/B-test op 13 september 2026 werden 10 iteraties per runtime uitgevoerd op dezelfde RX 9060 XT PPO-workload. Na het verwijderen van de eerste iteratie (warm-up), behaalde het publieke upstream-pad een mediane waarde van 13.278 overall SPS, tegenover 12.876 voor de herstelde custom overlay. In deze workload was de custom overlay ongeveer 3,03% trager, waardoor upstream de standaard blijft.
Historische tuned runs met een andere trainingsconfiguratie behaalden ongeveer 70k–109k overall steps/s. Zie docs/BENCHMARKS.md voor de methodologie en ruwe data.
Optionele historische custom overlay
In de oorspronkelijke ontwikkelomgeving is geëxperimenteerd met een custom cuBLAS/cuBLASLt/HIP overlay. Deze is niet vereist voor het gevalideerde publieke pad en biedt op basis van de bovenstaande A/B-test momenteel geen prestatievoordeel voor de referentie PPO-workload.
De herstelde DLL's zijn gefingerprint in manifests/recovered-artifacts.sha256. Ze worden niet als binaire blobs gepubliceerd omdat de oorspronkelijke bron van de custom wrapper onvolledig is en de herstelde HIP-runtime third-party AMD-binaries bevat. Zie docs/CUSTOM_OVERLAY.md.
Bugs melden of andere GPU's testen
Indien u een bug vindt of een andere GPU test, open dan een "issue". Ook mislukte tests zijn nuttig.
Voer eerst uit: .\scripts\gpu-scan.ps1 -OutputPath .\gpu-report.json .\scripts\test-runtime.ps1
Open vervolgens een GPU-compatibiliteitsrapport en vermeld de applicatie, het resultaat en de eerste relevante foutmelding of output.
Structuur van de repository
scripts/: Installatie, diagnostiek, scanner, staging en launcher.
manifests/: Vastgelegde versies, hashes en GPU-architectuur metadata.
docs/: Validatie, architectuur, benchmarks en probleemoplossing.
examples/: Integratie- en referentievoorbeelden.
.runtime/: Gegenereerde afhankelijkheden en rapporten (wordt genegeerd door Git).
local-artifacts/: Lokale archiefbestanden (wordt genegeerd door Git).
Beperkingen
- Alleen de RX 9060 XT / gfx1200 is momenteel gevalideerd door dit project.
- ZLUDA is geen volledige CUDA-implementatie.
- Windows biedt slechts een subset van het volledige ROCm-ecosysteem.
- cuDNN/MIOpen is niet beschikbaar in het gevalideerde stabiele HIP SDK-pad.
- NCCL, TensorRT, niet-ondersteund PTX-gedrag en sommige custom CUDA-extensies kunnen falen.
ZLUDA_CC=8.6 is een compatibiliteitswaarde voor CUDA, niet de AMD GPU-architectuur.
Licentie en software van derden
De scripts en documentatie van dit project vallen onder de MIT-licentie. ZLUDA, AMD ROCm/HIP, NVIDIA CUDA-componenten en PyTorch/LibTorch behouden hun eigen upstream-licenties. Zie THIRDPARTYNOTICES.md.