AMD illustre les gains apportés par Work Graphs avec une RX 7900 XTX |
————— 20 Mars 2024 à 14h03 —— 15402 vues
AMD illustre les gains apportés par Work Graphs avec une RX 7900 XTX |
————— 20 Mars 2024 à 14h03 —— 15402 vues
Il y a une dizaine de jours, Microsoft a publié son Agility SDK 1.613.0. Cette version inclut une nouvelle fonctionnalité DirectX 12 intitulée Work Graphs. Nous avions pu constater son incidence avec une GeForce RTX 4090 dans une scène grâce à une vidéo publiée par la chaîne Compusemble. Dans le cadre de la GDC 2024 (Game Developer's Conference), AMD a livré une première démo avec une Radeon RX 7900 XTX.
Avant tout, rappelons que Work Graphs consiste à déplacer certaines charges de travail du CPU au GPU ; ce, dans le but d’améliorer les performances dans les jeux vidéo. Certaines parties du pipeline de rendu 3D sont ainsi directement contrôlées et rendues par le GPU, indépendamment du CPU, afin de réduire de potentiels goulets d'étranglement. C’est donc une composante du GPGPU (general-purpose computing on graphics processing units) qui consiste à décharger de plus en plus le CPU au profit du GPU.
« Depuis de nombreuses années, les développeurs de jeux rêvent d'un moteur de rendu entièrement piloté par le GPU, où l'ensemble du traitement de la scène s'effectue sur le GPU. Aujourd'hui, certains moteurs de jeu ont fait des progrès impressionnants en déplaçant le traitement des scènes vers le GPU, mais ils sont toujours entravés par le modèle de programmation qui les empêche d'atteindre le nirvana du rendu GPU », expose l’auteur de l’article d’AMD.
En l’état, Work Graphs ne conduit pas encore au « nirvana du rendu GPU » via une émancipation totale du processeur graphique. AMD vient toutefois d’annoncer la gestion prochaine (dans le courant de l’année) des mesh nodes par Work Graphs ; cet ajout permettra une gestion intégrale des draw calls par la fonctionnalité.
C’est une étape très importante à en croire l’entreprise. Elle explique :
« Les mesh nodes bouclent vraiment la boucle en matière de remplacement de bout en bout de l'exécution indirecte et de progression du modèle de programmation GPU. Tout peut se dérouler dans un seul graphe et être exécuté en une seule fois, ce qui facilite la composition de grandes applications à partir de petits morceaux. De plus, les problèmes tels que la commutation PSO, les distributions vides et la gestion de la mémoire tampon disparaissent, rendant les pipelines GPU complets accessibles à beaucoup plus d'applications et de cas d'utilisation qu'auparavant ».
Afin d’illustrer ses propos, AMD propose une démo de contenu procédural réalisée en partenariat avec l'Université de Cobourg. La société précise que dans cette séquence, tout est rendu à l'aide d'une seule instance de graphe de travail, à l'exception du ciel et de l'interface utilisateur.
Concernant l’augmentation des performances, AMD a mesuré qu’ExecuteIndirect était, en moyenne, 1,64x plus lent que Work Graphs avec le support des mesh nodes. La nouvelle API est ainsi 39 % plus efficace.
L’article d'AMD renseigne aussi quelques statistiques intéressantes sur la scène. Par exemple, qu’il y a 6600 draw calls et 13 millions de triangles par image. À propos du test, il a été réalisé le 15 mars dernier sur une machine sous Windows 11 Pro munie d’une Radeon RX 7900 XTX, d’un Ryzen 7 5800X, de 32 Go de DDR4 ; le tout installé sur une carte mère Gigabyte X570 AORUS ELITE WIFI.
Ajoutons tout de même deux nuances. Premièrement, si le planificateur GPU peut gérer nettement plus de draw calls simultanément que le CPU, il faut aussi tenir compte que très peu de jeux exploitent tout le contingent de threads des processeurs modernes. Deuxièmement, la très faible adoption des mesh shaders - exploités par un seul titre : Alan Wake 2 -, une autre fonctionnalité de DX12, invite à une certaine retenue. Peut-être que Work Graphs rencontrera un plus grand succès, mais il faudra dans tous les cas un peu de temps avant que les développeurs ne se l’approprient.
 | |
 | |
 | |
 | |
 | |
 | |
 | |
 | |
 | |
 | |
 | |
 |