DLSS sur GPU Radeon via ZLUDA

DLSS sur Radeon : un moddeur fait tourner la technologie de NVIDIA sur Navi 32 via ZLUDA

Le DLSS a longtemps été considéré comme un avantage propre aux cartes GeForce RTX. Un projet communautaire vient pourtant de brouiller les cartes : un développeur indépendant, countervolts, a annoncé d4r (DLSS 4 Radeon), qui fait tourner la bibliothèque officielle DLSS Super Resolution de NVIDIA sur des GPU AMD RDNA 3, sous Linux et Proton. Voici ce que cela change, comment cela fonctionne, et pourquoi il faut nuancer l’enthousiasme.

DLSS fonctionne désormais sur certains GPU Radeon RX 7000 grâce à ZLUDA

Le mot « certains » compte. La version actuelle est optimisée pour Navi 32 (gfx1101), utilisée par les Radeon RX 7700 XT, RX 7800 XT, RX 7700 et la Radeon PRO W7700. Le projet ne concerne donc pas toute la gamme RX 7000.

Comment le moddeur parvient-il à faire fonctionner le DLSS sur Radeon ?

Le principe est de ne pas toucher au DLSS lui-même. La bibliothèque de NVIDIA reste inchangée, et ce sont ses appels CUDA qui sont redirigés, via un pont Wine, vers ZLUDA. La chaîne se résume ainsi :

  1. Le jeu appelle la bibliothèque DLSS officielle de NVIDIA (nvngx_dlss.dll).
  2. Ses appels CUDA passent par un pont Wine (nvcuda.dll).
  3. ZLUDA convertit les instructions PTX en commandes AMDGPU et WMMA.
  4. Pour les réseaux les plus sollicités, des noyaux natifs RDNA 3 prennent le relais.

DLSS et ZLUDA : quel rôle pour la compatibilité avec les GPU Radeon ?

ZLUDA est une couche de remplacement de CUDA pour les GPU non NVIDIA, qui vise à exécuter des applications CUDA sans modification et prend en charge les Radeon RX 5000 et plus récentes. C’est la brique qui permet à un code écrit pour NVIDIA de tourner sur du matériel AMD.

Elle ne suffit toutefois pas. Le transformer de DLSS 4 produisait un résultat invalide avec ZLUDA seul, et DLSS écartait alors la sortie du réseau. C’est pourquoi le développeur a remplacé les noyaux DLSS 4 et DLSS 4.5 les plus utilisés par des versions natives optimisées pour RDNA 3. Côté modèles, le projet gère le modèle CNN de DLSS 3 ainsi que les transformers de DLSS 4 et DLSS 4.5.

Quelles sont les limites actuelles du DLSS sur Radeon RX 7000 ?

  • Seule Navi 32 est vraiment ciblée. Les cartes Navi 31 et Navi 33 exécutent DLSS 3 à pleine vitesse, mais DLSS 4 tourne sans son transformer et DLSS 4.5 à environ la moitié de la vitesse, faute de noyaux natifs pour ces puces.
  • Pas de DLSS 5. Le Neural Rendering de DLSS 5 n’est pas pris en charge : il s’agit d’upscaling DLSS standard.
  • Le FSR 4 reste devant. Il est plus rapide dans tous les modes testés, alors que DLSS 4 dépasse DLSS 3 en Ultra Performance (94,5 contre 88,9 i/s).
  • Un environnement précis. Le projet cible Linux et Proton, pas Windows.
Performances DLSS sur GPU Radeon via ZLUDA

Conclusion

Le projet d4r montre ce que ZLUDA permet quand un développeur pousse l’optimisation jusqu’au niveau des noyaux. Pour un possesseur de RX 7700 XT ou 7800 XT, c’est une curiosité prometteuse, mais pas encore une raison de délaisser le FSR 4. À suivre : l’ajout de noyaux pour Navi 31 et 33, qui déterminera si le projet devient une solution pour toute la gamme RX 7000.

 

Publications similaires