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-applicatieZLUDAcuBLAS / cuSPARSE / cuFFT compatibiliteitrocBLAS / hipBLASLt / rocSPARSE / HIPAMD 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

GPUTargetProjectstatus
Radeon RX 9060 XTgfx1200
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-componentResultaat
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.