Introduction et système de test
Nous avons déjà eu l’occasion de parler en détail des améliorations impressionnantes de DirectX 12 pour l’exploitation de toute la puissance des GPU actuels et futurs. La nouvelle API de Microsoft permet aux développeurs de se rapprocher au maximum du GPU pour profiter de tout leur potentiel. La première API du genre était Mantle, signée AMD, et le concurrent principal de DirectX, OpenGL, vient aussi de finaliser sa nouvelle API similaire : Vulkan. Sans oublier l’API Metal d’Apple, conçue pour assurer les mêmes bénéfices.
Nous avions aussi pu essayer la première version de Ashes of the Singularity lors de notre test de la Radeon R9 Nano, en constatant d’énormes bénéfices en termes de performances. La beta 2 nous permet d’aller plus loin dans nos tests, notamment grâce à de meilleurs pilotes graphiques, en comparant quatre des meilleurs GPU d’AMD, face à quatre mastodontes de NVIDIA.
Le jeu de stratégie en temps réel Ashes of the Singularity est intéressant car il est très poussé graphiquement, et demande aussi beaucoup de ressources pour assurer l’intelligence artificielle des unités en jeu. Il a de quoi vraiment exploiter la parallélisation des calculs et les optimisations CPU et GPU qu’apportent DirectX 12. Pour rappel, DirectX 12 permet d’exécuter simultanément plusieurs tâches qui étaient auparavant alignées l’une derrière l’autre dans une file d’attente commune. Le gain potentiel de performances est immense… En théorie. En pratique, il faudra voir comment les développeurs soignent leurs optimisations.
Côté GPU, il semble qu’AMD ait pris de l’avance dans la mise en place de ces calculs asynchrones depuis plusieurs génération de GPU (Tonga, Fidji et Haiwai). Les puces graphiques d’AMD semblent mieux préparées que celles de Nvidia (Kepler, Maxwell). Les tests qui suivent vont tirer ça au clair, sous DirectX 12.
Configuration de test :
Caractéristiques | |
---|---|
Configuration | Intel Core i7-5930K @4,2 GHz Watercooling Alphacool (Bloc Nexxxos, Pompe VPP655, Radiateur 240 mm) RAM Crucial Ballistix Sport, 4 x 4 Go DDR4-2400 MSI X99S XPower AC 1x Crucial MX200, 500-Go-SSD (Système) 1x Corsair Force LS 960-Go-SSD (Applis, données) Alimentation Be Quiet Dark Power Pro, 850W Windows 10 Pro (à jour) |
Pilotes | AMD: Radeon Software 15.301 B35 (beta presse, février 2016) Nvidia: 361.91 WHQL |
Jeu de test | Ashes of the Singularity Beta 2 |
Nous avons recueilli nos résultats avec un logiciel de journalisation stockant toutes les données utiles afin de mieux comparer les performances de chaque carte et comprendre le comportement de toute la machine, sans se limiter au simple nombre d’images par seconde.
Images par seconde, temps de rendu et fluidité
Images par seconde
Le test classique consistant à calculer le nombre d’images par seconde moyen et minimum n’est pas inintéressant. Nous l’avons effectué dans trois définitions différentes (Full HD, WDHD et UHD).
Les cartes sont au coude à coude, mais ces chiffres moyens sont parfois trompeurs face à l’impression subjective de fluidité que l’on peut avoir devant l’écran. Nous le verrons par la suite. Le graphique suivant permet de détailler les comportements de chaque carte graphique dans le temps au cours du test, en fonction des différentes charges qui leur sont appliquées (toujours en images par seconde).
Temps de rendu d’image
Ce test colle beaucoup plus à l’impression de fluidité subjective que l’œil humain perçoit face à l’écran. Il consiste à mesurer le temps de rendu de chaque image affichée à l’écran. Ce graphique permet de mieux comprendre l’origine des micro-saccades que l’on ressent visuellement par rapport au nombre brut d’images par seconde des premiers tests.
Les graphiques étant assez chargés, cette image permet de bien se rendre compte du temps de rendu d’image entre une GTX 980 Ti 6G et une R9 Fury X en définition WQHD. La carte d’AMD offre un rendu plus constant et donc subjectivement plus fluide.
Fluidité réelle
Cet autre graphique permet de mettre en évidence les variations du temps de rendu de chaque image, pour encore mieux se rendre compte de la fluidité réelle qu’apporte chaque carte graphique dans la même situation de test.
Là encore, ce graphique isolant deux cartes dans la même définition montre que le rendu de la R9 Fury X est beaucoup plus constant, et donc nettement plus fluide à l’œil nu.
Conclusion provisoire
Dans les scènes les plus lourdes, notamment lorsque l’intelligence artificielle nécessite beaucoup de ressources, les cartes AMD semblent globalement plus à l’aise dans le rendu des scènes de jeu. Il est toutefois important de rappeler que cet unique test ne nous permet pas de tirer des conclusions plus générales quant au comportement des différentes cartes graphiques en présence dans d’autres jeux et d’autres configurations PC.
Limitations du temps de rendu
Limitations et pertes de temps
Ces deux illustrations montrent la répartition très inégales des différentes étapes de la chaîne de rendu d’image sous DirectX 11 au niveau du processeur central. La parallélisation est largement plus efficace avec DirectX 12, qui répartit beaucoup mieux les étapes de rendu sur les différents cœurs disponibles. Le temps d’affichage total de chaque image diminue alors considérablement.
Nombre d’appels GPU par image
Premier constat : tous les GPU comparés sont sollicités de manière presque identique par le processeur et les pilotes.
Taux d’occupation CPU
Voici maintenant le taux de charge du processeur pour chaque carte graphique. Plus la carte est puissante et débite d’images par seconde, plus le processeur est sollicité.
Bridage par le CPU
C’est ici que les choses se compliquent : lorsque le processeur est engorgé et qu’il ne parvient pas à paralléliser suffisamment ses calculs pour fournir à temps les informations nécessaires à la carte graphique. Lorsque la limite de la capacité de traitement du processeur est atteinte (ici par un manque de parallélisation puisque le taux d’occupation total du CPU ne dépasse jamais les 100 % dans le précédent test), le GPU doit attendre le CPU pour afficher les images suivantes.
C’est ici que les quatre cartes Nvidia de notre comparatif semblent en difficultés face aux quatre cartes AMD. Ces dernières n’attendent presque jamais le CPU et tirent donc mieux partie de toute leur puissance.
Temps consommé par le pilote graphique
Le pilote graphique est à l’origine d’une partie non négligeable du temps de rendu des images. Encore une fois, plus la carte est rapide et délivre d’images par seconde, plus le temps monopolisé par le pilote est conséquent. Ici, pas de différence significative entre cartes graphiques de même puissance.
Temps d’affichage
A la fin de la chaîne de traitement de d’image, le temps d’affichage de l’image dépend fortement de la charge du processeur précédent cette étape, mais aussi de la puissance brute du GPU. C’est pourquoi les résultats sont très différents en fonction des cartes et des définitions de test.
Conclusion provisoire
Encore une fois, il est trop tôt pour généraliser, mais AMD semble, dans ce test, largement en avance dans le domaine de parallélisation et des processus asynchrones afin que le processeur graphique n’ait pas à attendre le processeur central. La question de l’impact de cet avantage en pratique dans les futurs jeux DirectX 12 reste toutefois à déterminer.
Multi-GPU
SFR : la nouvelle méthode de rendu multi-GPU de DirectX 12
Le rendu d’image multi-GPU sous DirectX 11 consistait à faire calculer une image par une carte et la suivante par la seconde carte, l’une après l’autre. Cette méthode AFR (Alternating Frame Rendering) laisse désormais sa place au SFR (Split Frame Rendering) sous DirectX 12. Le SFR consiste à partager le calcul de la même image par les deux cartes graphiques en même temps.
Premier avantage : il n’y a plus besoin de distribuer les mêmes données en double, sur la mémoire de chaque carte graphique. D’autre part, les cartes n’ont plus à s’attendre entre elles pour calculer l’image suivante, ce qui va grandement améliorer la fluidité visuelle du rendu. Le SFR divise chaque image en plusieurs carrés attribués à chaque carte graphique, de manière similaire au rendu parallélisé du raytracing. Du coup, les deux cartes utilisent uniquement les ressources dont elles ont besoin en mémoire. Par ailleurs, ce système permet de mieux faire fonctionner ensemble des GPU de puissance différente.
Performances
La puissance de cartes en multi-GPU étant très élevée, elle entraîne une surcharge du CPU dans les conditions précédentes de test. Nous avons donc monté les détails du jeu au maximum, et effectué les tests en définition Ultra-HD pour ne pas être limité par le processeur.
Avec le graphique suivant, on peut constater que les différences sont grandes, notamment dans le nombre d’image minimum délivré par les différents couples de cartes graphiques en présence. Les valeurs moyennes d’images par seconde sont donc parfois assez trompeuses.
Les temps d’affichage des images sont cette fois assez similaires entre les cartes AMD et Nvidia en SLI et CrossFire.
Cette fois, les variations entre les temps d’affichage successifs des images sont très faibles, ce qui montre que tous les couples de cartes offrent une très bonne impression de fluidité. DirectX 12 devrait donc fait très plaisir aux possesseurs de cartes graphiques en SLI et CrossFire !
Le nombre d’instructions envoyées au GPU est toujours très similaire entre les différentes configurations.
En revanche, tous les couples de GPU sont bridés par le processeur central. Ce qui montre une certaine limite dans la parallélisation des tâches CPU avec un SLI ou un CrossFire très demandeur en ressources.
Le temps occupé par le pilote graphique adopte un comportement similaire en fonction des couples de cartes.
Le temps de présentation finale de l’image tourne encore une fois à l’avantage des carte R9 Fury X d’AMD, leur apportant un léger avantage en termes de perception visuelle de la fluidité des scènes affichées.
Conclusion
Beaucoup de problèmes à gérer
Nous tenons tout d’abord à préciser que ces tests ont fait suer nos testeurs, surtout pour la partie multi-GPU, à cause de nombreux problèmes, notamment dus au fait que le jeu Ashes of the Singularity ne s’exécute pas en mode plein écran exclusif, mais dans une fenêtre sans cadre en premier plan. Ce détail rend le benchmark très sensible à de nombreux paramètres, notamment en mode Ultra-HD. Plusieurs mises à jour de Windows 10 furent nécessaires pour régler de nombreux problèmes causés par la jeunesse du système d’exploitation.
Conclusion
Si AMD semble avoir une bonne avance avec ses puces actuelles pour exploiter les avantages de DirectX 12, il reste une question d’importance : où sont les jeux pour en profiter ? Il ne faut pas non plus être trop en avance sur son temps. La révolution DirectX 12 ne profitera sûrement qu’aux nouvelles générations de carte graphiques, lorsque des architectures comme Fidji ou Maxwell appartiendront déjà à l’histoire récente des cartes graphiques.
On pense donc évidemment aux futures cartes graphiques basées sur les architectures Pascal de Nvidia et Polaris d’AMD. Elles devront, pour le coup, être prêtes à profiter au maximum de tous les avantages apportés par DirectX 12. L’année 2016 sera très certainement l’une des plus intéressantes de l’histoire de la course entre AMD et NVIDIA.