Ce qui se passe
Le dépôt Speedstu/CUDA-for-AMD-Windows publie une pile reproductible pour
faire tourner des applications compilées pour CUDA sur un GPU AMD, sous
Windows, sans recompiler l'application. Rien n'est inventé ici : c'est un
assemblage de ZLUDA et du HIP/ROCm d'AMD, figé à des versions qui
fonctionnent ensemble et vérifié par empreintes SHA-256.
L'intérêt du projet est moins la prouesse que l'honnêteté du périmètre, rare sur ce terrain.
Le mécanisme
L'application croit parler à une carte NVIDIA. ZLUDA intercepte ses appels CUDA et les traduit en HIP, qui les redirige vers les bibliothèques mathématiques d'AMD :
Application Windows ciblant CUDA
↓
ZLUDA
↓
cuBLAS / cuSPARSE / cuFFT (compatibilité)
↓
rocBLAS / hipBLASLt / rocSPARSE / HIP
↓
GPU AMDLes versions validées, sans DLL privée ni binaire récupéré :
- ZLUDA
v6-preview.69(build officiel) - AMD HIP SDK
6.4pour Windows, bibliothèques HIP comprises - LibTorch
2.3.0 + cu118(environ 2,66 Go, téléchargé par l'installeur) - AMD Radeon RX 9060 XT, cible
gfx1200(RDNA4)
L'installation tient en trois commandes, le script détectant lui-même la cible
gfxXXXX et vérifiant le pilote :
git clone https://github.com/Speedstu/CUDA-for-AMD-Windows.git
cd CUDA-for-AMD-Windows
powershell -ExecutionPolicy Bypass -File .\scripts\install.ps1run-zluda.ps1 -Program C:\chemin\app.exe lance ensuite l'application en
plaçant les DLL de compatibilité à côté d'elle. doctor.ps1, gpu-scan.ps1 et
test-runtime.ps1 diagnostiquent une machine.
Ce que ça vaut, et ce que ça ne couvre pas
La validation publiée est un entraînement PPO réel : un réseau de 2 216 347 paramètres, une itération propre de 65 536 pas, sur le GPU vu comme CUDA. Un A/B contrôlé du 13 septembre 2026 (10 itérations par runtime, la première écartée comme chauffe) donne 13 278 pas par seconde en médiane pour le chemin public, contre 12 876 pour un overlay maison — soit 3,03 % de moins pour ce dernier, qui n'est donc pas retenu par défaut.
| Composant | État |
|---|---|
nvcuda, cuBLAS, cuBLASLt, cuSPARSE, cuFFT |
fonctionnent |
| cuDNN | indisponible — le HIP SDK Windows stable ne livre pas MIOpen |
| NCCL, TensorRT, extensions CUDA maison | peuvent échouer |
C'est la limite décisive : sans cuDNN, tout ce qui est lourd en convolutions sort du périmètre. Le PPO validé passe parce qu'il est dense et dominé par les GEMM. Une seule carte est réellement testée ; les autres architectures sont reconnues par le scanner mais marquées « unverified candidates », le dépôt précisant que la détection n'est pas une preuve d'exécution.
À noter aussi : ZLUDA_CC=8.6 est une valeur de compatibilité côté CUDA, pas
l'architecture du GPU AMD. Les scripts du projet sont sous licence MIT ; ZLUDA,
ROCm/HIP et LibTorch gardent la leur.
À retenir
Si votre charge PyTorch ne dépend que de BLAS, le test coûte une soirée et le chemin est documenté pas à pas. Si elle touche cuDNN, NCCL ou TensorRT, la réponse est déjà non — et une pile de traduction épinglée à trois versions précises casse au premier changement de l'une d'elles.