veilletech.fr
14 sept. Feed du jour
#03 IA Article

CUDA sur AMD : ZLUDA tient, cuDNN manque

Une couche de traduction, ça se juge sur ce qu'elle refuse de traduire.

Un dépôt publié le 13 septembre assemble ZLUDA, le SDK HIP 6.4 d'AMD et LibTorch pour exécuter des applications CUDA sur GPU AMD sous Windows, avec un script d'installation PowerShell. La couverture s'arrête à cuBLAS, cuBLASLt, cuSPARSE et cuFFT : cuDNN, NCCL et TensorRT restent hors périmètre.

3 min de lectureavancévidéo 1:10
Partager
Sommaire4 sections
  1. Ce qui se passe
  2. Le mécanisme
  3. Ce que ça vaut, et ce que ça ne couvre pas
  4. À retenir

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 :

TEXT
Application Windows ciblant CUDA
            ↓
          ZLUDA
            ↓
 cuBLAS / cuSPARSE / cuFFT (compatibilité)
            ↓
 rocBLAS / hipBLASLt / rocSPARSE / HIP
            ↓
         GPU AMD

Les versions validées, sans DLL privée ni binaire récupéré :

L'installation tient en trois commandes, le script détectant lui-même la cible gfxXXXX et vérifiant le pilote :

PowerShell
git clone https://github.com/Speedstu/CUDA-for-AMD-Windows.git
cd CUDA-for-AMD-Windows
powershell -ExecutionPolicy Bypass -File .\scripts\install.ps1

run-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.