Express • DX12, quelles performances GPU ? |
————— 29 Mars 2016
Express • DX12, quelles performances GPU ? |
————— 29 Mars 2016
Comme nous l'évoquions en débutant ce dossier, DX12 introduit de nombreuses nouveautés par rapport à son devancier, en particulier une qui peut changer la donne en termes de performance GPU : le multi engine. Derrière ce terme, se cache la faculté de traiter différentes files d'attente de commandes de rendu. Pour être DX12 "compliant", les GPU doivent prendre en charge cette fonctionnalité, il s'agit d'une exigence. Toutefois, le traitement concomitant de ces files d'attentes ne l'est pas et c'est ici que se différencient AMD et NVIDIA. Si aucun GPU des 2 protagonistes n'est capable de traiter simultanément 2 files de type graphics, les RADEON actuelles disposent toutefois de processeurs de commandes permettant d'alimenter les unités de calcul du GPU à partir de plusieurs files (graphics et compute) en parallèle afin d'optimiser leur utilisation. C'est ce qu'AMD appelle l'Async Compute, illustré par le schéma ci-dessous.
L'Async Compute selon AMD
Et les puces NVIDIA dans tout cela ? La version officielle est la suivante : Maxwell 2 dispose d'un processeur de commande capable de traiter simultanément les files compute et graphics, mais le support au niveau des pilotes n'est pas actif. Compte tenu de la puissance de frappe de l'équipe drivers du caméléon, cet argument semble de moins en moins crédible vu le temps écoulé depuis l'annonce de DX12. On ne peut donc que supputer, mais il n'est pas impossible que le processeur de commande entraine une latence rédhibitoire lorsqu'il doit passer d'une file graphics à compute (ou vice-versa). A priori, le caméléon n'a pas anticipé l'arrivée d'un tel usage dans les jeux vidéo lors de la conception de ses puces et a conçu son processeur de commande dans l'optique du GPU Computing uniquement, même si cette assertion reste pure hypothèse de notre part.
Il n'est pas impossible qu'AMD ne l'ait pas non plus anticipé, par contre la plus grande flexibilité de son architecture (qui se paie en termes d'efficacité énergétique avec de nombreux transistors inutilisés pour le jeu jusqu'alors) crée un effet collatéral favorable. Notons que DX12 entraine également beaucoup plus de responsabilités pour les développeurs qui doivent s'assurer de nombreux points sans l'aide du pilote. Le multi engine n'est pas une mince affaire à mettre en oeuvre et il est au contraire très facile d'arriver à un résultat contre-productif si utilisé à mauvais escient. Le talent des développeurs sera donc mis à l'épreuve afin de dépasser les résultats GPU obtenus par des années d'expérience des team drivers des leaders historiques du domaine (et peut-être profiter aussi aux outsiders n'ayant jamais pu s'imposer du fait de ce déficit d'expérience côté pilotes ?).
Enfin, d'un point de vue GPU, de nouvelles features sont également prises en charge au travers du niveau de fonctionnalités 12_1 (11.3 pour les développeurs ne souhaitant pas utiliser une API de bas niveau). Seules les GeFORCE récentes (Maxwell 2) prennent en charge ces dernières en hardware, de quoi proposer des effets exploitables uniquement par celles-ci. Pour expérimenter les performances en situation GPU limited, nous avons opté pour la définition QHD (les GPU actuels étant "justes" pour l'UHD) avec tous les détails au maximum. Les mesures étant réalisées via les bench intégrés (répétés 5 fois, la moyenne étant reportée) ne permettant pas forcément de "faire chauffer" les GPU, nous avons choisi des modèles personnalisés capables de conserver leur température en-deçà des seuils entrainant une baisse de fréquence. Notez bien que ces derniers sont par contre sensiblement plus rapides que des modèles de référence. Côté pilotes, nous employons les derniers disponibles de part et d'autre (364.51 et 16.3.1) au moment des tests, il en est de même pour les jeux.
Ce jeu encore en beta (0.94.18443, la version finale est attendue le 31/03) dispose probablement du moteur DX12, aka Nitrous Engine, le plus abouti à l'heure actuelle. Oxyde, son concepteur, faisant parti du cercle restreint des studios ayant suivi AMD dans sa démarche Mantle (qui est l'inspirateur des API de bas niveau actuelles), on peut présupposer que ce moteur est conçu pour s'adapter parfaitement au hardware des rouges, cela n'en reste pas moins un test très instructif à réaliser.
Le fight des néons !
Dans la situation retenue très dépendante du GPU, on constate tout d'abord que seules les cartes d'AMD sont capables de tirer un réel bénéfice du passage à DX12. L'édition du fichier .ini permet en outre de désactiver le multi engine pour isoler les gains qui peuvent lui être associés : 10% pour la Fury X et pratiquement autant pour les Fury et 390X. On notera également que sous DX11, la limitation CPU est belle est bien présente malgré un très forte charge GPU, puisque le mode DX12 sans multi engine actif (ligne Async Off), entraine des gains notables.
Du côté vert cette fois, le passage à DX12 n'entraine que marginalement des gains pour la Titan X, preuve de l'efficacité des pilotes NVIDIA DX11 en termes d'empreinte CPU. Malgré tout, une Fury X ne rend que 5% de performance à une 980 Ti personnalisée (15% plus rapide qu'une 980 Ti de référence d'après le test que nous avions réalisé), preuve que les RADEON apprécient fortement ce moteur. Enfin et comme prévu, le multi engine n'apporte rien si ce n'est des pertes dues au coût des commandes de synchronisation qui ne peuvent être compensées par un traitement concomitant de tâches.
Diantre, qu'ai-je fais de mon baygon jaune ?
Second jeu testé, il s'agit en fait d'une version largement améliorée visuellement du jeu sorti en 2007 sur PC et s'appuyant sur une des dernières itérations de l'Unreal Engine 3 supportant DX12. A son lancement le jeu a défrayé la chronique du fait d'un nombre conséquent de problèmes en partie résolus par la version actuelle (1.7.0.0). Le jeu n'est disponible qu'au travers du Windows Store, limitant au maximum les possibilités de tweaking et ne supportant que DX12. Si les débuts ont été catastrophiques pour les cartes GCN 1.2, les derniers pilotes et patch ont rétablis la situation, on retrouve donc une hiérarchie classique mais plutôt favorable aux RADEON (la Fury X n'est qu'à 10% de la 980 Ti alternative) comme souvent avec l'UE3 (et contrairement à l'UE4 appréciant davantage les GeFORCE pour le moment).
|
Un poil avant ?Clevo a vendu moins de portables, mais a gagné plus de brouzoufs | Un peu plus tard ...Akasa met à jour ses boîtiers Newton et Plato pour Skylake |