COMPTOIR
register

Ray Tracing : AMD versus NVIDIA, sous Linux, ça donne quoi ?

Si vous êtes un aficionado des améliorations apportées par le rendu hybridé au Ray Tracing, alors vous avez probablement sous le capot une RTX 3000 et un PC tournant sous Windows (ou en projet d’en avoir un), car ce combo est celui offrant clairement le meilleur ratio performances (RT)/prix. En effet, les rouges débutent tout juste leur aventure dans le lancer de bâtons et n’accélèrent pas tout l’algorithme (en particulier, pas le parcours du BVH), là où les verts tirent clairement avantage des résultats fournis par leur premier essai, Turing.

 

Cependant, le jeu sous Linux est un marché de niche un peu spécial. D’une part, il ne représente actuellement qu’un pourcent des joueurs selon les statistiques mensuelles de Steam, ce qui n’encourage pas forcément les firmes à optimiser leurs pilotes pour cet usage ; et, d’autre part, sa récente progression est imputable à Valve, qui a lancé de nombreux efforts d’optimisations, désormais concentrés dans le Steam  Deck, une console Linux propulsée par... un APU AMD. De quoi y lire en filigrane une optimisation plus poussée ? C’est ce que nous allons voir avec le confrère Phoronix, aux manettes d’un test 100 % Ray Tracing et 100 % Linux !

 

linux rgb

 

D’un côté, AMD trône avec sa solution propriétaire la version RADV/Valve étant encore trop lente pour en tirer quoi que ce soit — Radeon Vulkan, mise à jour cette semaine en version 21.30, qui se dit être moins bugguée que la précédente. De l’autre, NVIDIA, qui, en dépit de son retrait de l’open source, était (de loin !) le premier à sortir un pilote compatible. Et dans la pratique, alors ?

 

Hé bien, les résultats sont extrêmement variables. Si Quake II RTX a clairement la faveur des verts — il faut dire que le caméléon est à l’origine de cette implémentation — les autres benchmarks (principalement des démonstrations de rendu) se sont montrés plus instables et favorisent l’une ou l’autre des deux implémentations, dépendant de la scène utilisée. Avec le nombre croissant de titres compatibles et de mises à jour des pilotes, la situation devrait néanmoins rapidement évoluer vers des résultats plus tranchés. Affaire à suivre !

 

Un poil avant ?

Les entrailles de la XBox série S montrent beaucoup de... vide !

Un peu plus tard ...

Gamotron • Un jour sans fin...

Les 13 ragots
Les ragots sont actuellement
ouverts à tous, c'est open bar !
par Eric B., le Mercredi 18 Août 2021 à 08h09  
par LidtZig, le Mardi 17 Août 2021 à 19h46
--> Pourquoi AMD et nVidia ont respectivement fait ce choix ? Quelles raisons "techniques" cela peut il avoir ? Et si la solution nVidia est plus efficace, AMD n'a-t-il pas tout intérêt à suivre la voie ?
Je ne peux naturellement pas m'exprimer pour AMD ou Nvidia, eux seuls connaissent les raisons de ces choix. On peut supputer qu'AMD a été surpris par Nvidia concernant le Ray Tracing, il a donc réagi dans l'urgence sans avoir suffisamment de recul sur tous les impacts liés aux choix architecturaux de son accélérateur. Cela peut aussi être du à d'autres contraintes d'intégration de ces derniers dans le flux du GPU. Quoi qu'il en soit, AMD profite à présent d'un retour d'expérience réel sur l'usage fait du RT par les développeurs, et l'impact sur son hardware. Nul doute que cela lui servira pour améliorer sa proposition lors des prochaines générations.
par LidtZig, le Mardi 17 Août 2021 à 19h46
Enfin, plus générique, AMD n'a pas encore de solution basée sur l'IA pour améliorer l'image en jeu. Mais dispose-t-il d'autres solutions, peut-être professionnelles, qui pourrait laisser présager d'un FSR 2.0 dopé à l'IA, à l'image du DLSS2 ? nVidia fait de l'IA depuis tellement de temps que ce n'est pas vraiment une surprise de le voir utiliser en jeu. Quid d'AMD du coup ?
A ma connaissance, AMD fait de gros efforts pour se développer dans l'IA, mais accuse un retard substantiel sur son concurrent à ce niveau. C'est probablement pour cela qu'il ne s'est pas lancé dans un équivalent du DLSS s'appuyant sur l'IA, mais sur des algorithmes plus traditionnels. Cela a des inconvénients mais aussi des avantages. Maintenant vont-ils développer un FSR v2 mâtiné d'IA, je n'en sais ma foi rien du tout, désolé.
par LidtZig, le Mardi 17 Août 2021 à 19h46  
par Eric B., le Dimanche 15 Août 2021 à 17h18
La différence ne se fait donc pas à ce niveau, mais dans les capacités intrinsèques des unités accélératrices suivant leur prise en charge du BVH (...)
--> Pourquoi AMD et nVidia ont respectivement fait ce choix ? Quelles raisons "techniques" cela peut il avoir ?

Et si la solution nVidia est plus efficace, AMD n'a-t-il pas tout intérêt à suivre la voie ?

Enfin, plus générique, AMD n'a pas encore de solution basée sur l'IA pour améliorer l'image en jeu. Mais dispose-t-il d'autres solutions, peut-être professionnelles, qui pourrait laisser présager d'un FSR 2.0 dopé à l'IA, à l'image du DLSS2 ? nVidia fait de l'IA depuis tellement de temps que ce n'est pas vraiment une surprise de le voir utiliser en jeu. Quid d'AMD du coup ?

Merci pour le pâté btw. Instructif !

EDIT : correction d'une coquille
par Jemporte, le Lundi 16 Août 2021 à 16h01  
Très intéressant. Du coup, sur AMD, la diminution de nombre de rebonds sous RT doit améliorer bien plus notablement la vitesse que sur Nvidia, puisqu'on a moins de CU mobilisés, utilisés par ailleurs, en plus d'avoir moins de calculs, alors que Nvidia ne relâche que la pression sur ses cores RT. Par contre un boulot plus complexe en découle sur le pilote.
par Un #ragoteur connecté embusqué, le Dimanche 15 Août 2021 à 17h31  
Le gourou a parlé, merci pour ces précisions bienvenues
par Eric B., le Dimanche 15 Août 2021 à 17h18  
Désolé mais non, il n'y a pas 2 approches différentes pour accélérer le RT actuellement, je résume rapidement ce que j'ai déjà écrit dans les différents dossiers :

* Nvidia puis AMD ont basé leur approche sur une accélération matérielle du BVH (j'y reviens plus bas).

* Cette accélération est réalisée de part et d'autre par des unités spécifiques appelées RT Core côté vert et Ray Accelerator coté rouge.

Donc on ne peut pas écrire que les fonctions RT ont été ajoutées au niveau des unités pour l'un et à côté pour l'autre. On peut éventuellement dire que les Ray Accelerators sont inclus au sein des CU, certes, mais les RT Core sont eux aussi présents au sein d'une structure équivalente aux CU, cad les SM chez les verts.

La différence ne se fait donc pas à ce niveau, mais dans les capacités intrinsèques des unités accélératrices suivant leur prise en charge du BVH :

Le BVH se subdivise en 3 opérations distinctes : le calcul des intersections entre les boites et rayons, la traversée de l'arbre du BVH (passage d'une boite touchée à des boites plus petites en son sein) et enfin le calcul de l'intersection entre triangle et rayon. Là où ces 3 opérations sont gérées par les RT Cores sur Turing/Ampere, les Ray Accelerators de RDNA 2 ne réalisent que la première et la dernière. La traversée du BVH est effectuée par un shader (programme) s'exécutant sur les unités de calculs traditionnelles, ce qui n'est pas sans conséquence. En effet, ces dernières sont organisées en unités SIMD (Single Instruction on Multiple Data), appréciant très modérément les sauts d'une zone mémoire à une autre sans ordre logique dans un programme (Pointer chasing). Or, ces opérations sont très fréquentes lors de la traversée du BVH, d'où l'organisation MIMD (Multiple Instructions on Multiple Data) des RT Cores concurrents. C'est ce qui explique pour moi la différence de performance entre les unités respectives.

Enfin pour Anteraks 21, le RT est exploitable sans upscaling selon la carte, le jeu (cf Doom Eternal) et la définition, même si je t'accorde que c'est un allié souvent précieux. La citation reprise d'un de mes dossiers parle bien de la différence d'approche pour l'upscaling et n'a donc rien à voir avec le RT qui sont 2 technologies bien différentes faisant appel à des ressources différentes et ce même si elles peuvent être couplées ou non, pour des raisons de performances. C'est donc plutôt surprenant de reprendre Thibaut qui parle spécifiquement de RT en s'appuyant sur une citation qui ne parle pas de RT... J'ajoute que lorsque je l'ai écrite, le FSR n'était qu'un machin flou, et d'après ma compréhension à l'époque, AMD n'avait pas prévu d'équivalent aux Tensor Cores, donc une inférence (si la solution d'AMD s'était basée sur l'IA) n'auraient pu utiliser que les fonctionnalités de précisions réduites ajoutées aux unités de calcul génériques. Au final rien de tout cela avec FSR, puisqu'il n'y a pas d'IA mise en œuvre.
par Un pilote de Fuego embusqué, le Dimanche 15 Août 2021 à 11h52  
AMD est moins performances, et cela semble s'expliquer par moins de surface dépensé pour les fonctions RT.

L'avantage qu'ils ont, c'est qu'avec du RDNA2 dans les consoles, les développeurs proposeront des modes RT légers (ce qui rendra aussi service aux utilisateurs de Turing).

Actuellement on ne peut pas prédire si le choix d'ajouter les fonctions RT au niveau des unités comme AMD ou à côté comme Nvidia est le plus pertinent pour l'avenir. Ca me fait penser à l'unité dédiée à la Tesselation d'AMD qui s'est retrouvé débordée quand Nvidia a implanté la fonction avec plus de puissance.
par anteraks21, le Dimanche 15 Août 2021 à 11h38  
par Thibaut G., le Dimanche 15 Août 2021 à 11h27
bin mince alors, tu as zappé qu'AMD avait créé des unités dédiées au RT, sauf qu'elles sont moins efficaces compte tenu de la puissance développée en rastérisation par rapport à Turing. un peu de lecture
AMD a fait évoluer ses unités de calculs pour accélérer cette inférence, mais si notre analyse préliminaire est juste, il ne s'agit pas d'unités spécifiques dédiées. En conséquence, l'inférence utiliserait les unités "traditionnelles" (certes boostées pour cela), là où l'implémentation Nvidia permet de solliciter les Tensor Cores pour cette tâche, libérant les unités "traditionnelles" pour d'autres tâches en parallèle.
C'est la gestion du DLSS mais l'un va pas sans l'autre. Aujourd'hui pas une carte ne peut afficher avec des fps corrects du RT en mode natif sans la prise en charge d'un algo qui va dégrader un peu l'image pour que les fps apportent de la fluidités au ressenti de l'utilisateur.
par Thibaut G., le Dimanche 15 Août 2021 à 11h27  
par anteraks21, le Dimanche 15 Août 2021 à 10h46
Les pilotes n'y feront rien. Nvidia à les cœurs RT pour la gestion du RT, AMD n'a pas fait ce choix. C'est hardware. CQFD
bin mince alors, tu as zappé qu'AMD avait créé des unités dédiées au RT, sauf qu'elles sont moins efficaces compte tenu de la puissance développée en rastérisation par rapport à Turing. un peu de lecture
par HaVoC, le Dimanche 15 Août 2021 à 11h10  
par Jemporte, le Dimanche 15 Août 2021 à 10h57
Ce n'est pas la raison. Les éléments de calcul sont intégrés aux unités de calcul chez AMD. Il suffirait qu'ils en mettent plus dans chaque coeur sans même changer le nombre d'unités.
Le problème qui apparait dans ces tests c'est que dans certains cas les GPU AMD se comportent nettement mieux.
Ca n'a rien d'absurde que les pilotes AMD ne soient pas optimisés dans la première année de lancement. Il en était de même chez Nvidia. AMD trouve un terrain déjà labouré, donc devrait s'en sortir néanmoins mieux, plus vite.
Non c'est pas une question de pilotes, c'est juste qu'AMD a dédié moins de transistors au RayTracing, que Nvidia, moins de puissance de calcul à ce niveau. Dans les jeux avec ou RT ou les cartes AMD se comportent correctement, c'est juste que la charge de RT est plutôt légère comme dans RE VIII ou Dirt V, quand ça devient plus chargé il est normal que les radéons soient plus à la peine ...

Et les performances de Turing niveau RT on pas spécialement progressé depuis le lancement ...
par Jemporte, le Dimanche 15 Août 2021 à 10h57  
par anteraks21, le Dimanche 15 Août 2021 à 10h46
Les pilotes n'y feront rien. Nvidia à les cœurs RT pour la gestion du RT, AMD n'a pas fait ce choix. C'est hardware. CQFD
Ce n'est pas la raison. Les éléments de calcul sont intégrés aux unités de calcul chez AMD. Il suffirait qu'ils en mettent plus dans chaque coeur sans même changer le nombre d'unités.
Le problème qui apparait dans ces tests c'est que dans certains cas les GPU AMD se comportent nettement mieux.
Ca n'a rien d'absurde que les pilotes AMD ne soient pas optimisés dans la première année de lancement. Il en était de même chez Nvidia. AMD trouve un terrain déjà labouré, donc devrait s'en sortir néanmoins mieux, plus vite.
par anteraks21, le Dimanche 15 Août 2021 à 10h46  
par Jemporte, le Samedi 14 Août 2021 à 18h41
Quand même bizarre. Soit les pilotes AMD ne sont pas optimisés et perdent dans une situation réelle, soit les GPU Radeon ont des faiblesses dans certaines fonctions uniquement, du calcul RT.
En tout cas ces pilotes devraient à la longue s'améliorer, et probablement tout autant sous Windows. Mais il est évident que Nvidia est devant. Actuellement si on veut absolument du RT dans un jeu et bien le mettre en évidence, le choix d'une AMD RX 6800XT équivaut chez Nvidia à une RTX 3060, voire une 3060 Ti. Sans RT, aucune discussion, la RX 6800XT est le meilleur choix.
Les pilotes n'y feront rien. Nvidia à les cœurs RT pour la gestion du RT, AMD n'a pas fait ce choix. C'est hardware. CQFD
par Jemporte, le Samedi 14 Août 2021 à 18h41  
Quand même bizarre. Soit les pilotes AMD ne sont pas optimisés et perdent dans une situation réelle, soit les GPU Radeon ont des faiblesses dans certaines fonctions uniquement, du calcul RT.
En tout cas ces pilotes devraient à la longue s'améliorer, et probablement tout autant sous Windows. Mais il est évident que Nvidia est devant. Actuellement si on veut absolument du RT dans un jeu et bien le mettre en évidence, le choix d'une AMD RX 6800XT équivaut chez Nvidia à une RTX 3060, voire une 3060 Ti. Sans RT, aucune discussion, la RX 6800XT est le meilleur choix.