Actualités informatiques du 28-02-2017

Flux XML des news Flux XML avec la liste des 20 dernières actualités.

GDC: AMD Vega : démo du FP16 et du HBCC

Tags : AMD; GDC; GDC 2017; HBM2; Vega;
Publié le 28/02/2017 à 20:31 par
Imprimer

AMD a profité de sa conférence Capsaicin organisée pendant la GDC pour effectuer de nouvelles démonstrations autour de son futur GPU Vega 10 et mettre en avant ses spécificités.

Ne vous attendez pas à un lancement d'une carte graphique à base de GPU Vega, ni a plus d'informations sur ses performances en jeu. Il est encore trop tôt pour cela, la GDC n'est pas une plateforme qui y est adaptée au vu d'un lancement plutôt attendu pour mai ou juin. Le but d'AMD est de continuer le teasing et de montrer aux développeurs ce dont est capable sa nouvelle architecture.

La première démonstration a mis en avant l'intérêt du FP16. Une précision réduite qui est pour rappel supportée pour un ensemble d'instructions exécutées avec un débit doublé par rapport au FP32 classique (grossièrement via un vecteur dans le vecteur) suivant les opportunités offertes par le code au compilateur.

AMD a développé une nouvelle version de TressFX (4.0), sa librairie de rendu et de simulation des cheveux, capable de profiter du FP16. Tout l'aspect simulation est ainsi accéléré, ce qui permet au gain global de 50% dans la démonstration de TressFX. Un gain serait également possible sur GCN 3 et GCN 4 qui ne sont pas capables d'exécuter le FP16 plus rapidement mais peuvent en profiter pour compacter les registres.

La seconde démonstration essaye de mettre en avant ce que va permettre le High Bandwidth Cache Controller de Vega. Pour rappel il s'agit d'un contrôleur mémoire plus évolué qui va pouvoir traiter la HBM ou tout autre type de mémoire comme cache local en association avec l'utilisation de mémoire système quand cela est nécessaire.

Cela nous rappelle bien entendu les promesses de l'AGP, d'HyperMemory ou encore du TurboCache. Voire même des pilotes plus intelligents censés être capables d'aider le GPU Fiji et les Radeon Fury à se contenter de 4 Go. Rien de tout cela ne nous a convaincus jusqu'ici. Mais AMD promet que cette fois avec Vega, sa solution tient la route et est réellement capable de gérer les déplacements de mémoire de manière efficace.

La première carte graphique basée sur Vega est attendue avec 8 Go de HBM2 et n'aura donc pas réellement besoin de faire appel à cette possibilité avant quelques temps. Pour démontrer cette capacité, AMD a donc limité artificiellement à 2 Go de mémoire deux cartes graphiques équipées d'un GPU Vega 10. La première utilise une gestion classique de la mémoire alors que le HBCC est actif sur la seconde. Deus Ex en mode DirectX 11 est exécuté avec un niveau de qualité adapté pour viser +/- 30 fps. Sur la première carte graphique, des saccades importantes apparaissent alors que tout est parfaitement fluide avec le HBCC. Les FPS minimaux sont presque doublés sur ce second système.

AMD ne veut pas, tout du moins pour l'instant, présenter le HBCC comme une approche qui permet de réduire les coûts en limitant la quantité de mémoire embarquée. Au contraire pour AMD, le HBCC représente une valeur ajoutées pour les joueurs, qui va permettre d'augmenter la pérennité de ses cartes graphiques qui ne verraient plus leurs performances être massacrées dès que les jeux commencent à utiliser plus de mémoire vidéo. Evidemment c'est également un point important pour positionner les cartes graphiques Vega par rapport à une éventuelle nouvelle GeForce GTX 1080 Ti qui proposerait plus de 8 Go.

GDC: Wave programming pour booster les perfs

Publié le 28/02/2017 à 19:40 par
Imprimer

Comme chaque année, la journée d'ouverture de la GDC est l'occasion pour AMD et Nvidia de s'associer pour parler des nouvelles API et aider les développeurs à mieux les exploiter. Premier sujet du jour : le wave programming qui sera introduit prochainement sous DirectX 12 et Vulkan pour permettre de nouvelles optimisations des performances.

Les nouvelles API telles que Direct3D 12 ou DirectX 12 et Vulkan permettent d'optimiser les performances à différents niveaux. Elles ont été introduites avec des promesses au niveau d'une baisse drastique du surcoût CPU lié au rendu 3D mais également avec des opportunités de gains de performances côté GPU via l'exécution concomitante de certaines tâches ("async compute"). Une nouvelle possibilité d'optimisation au niveau du GPU va bientôt être standardisée : le wave programming.

Qu'est-ce que c'est ? Fondamentalement il s'agit d'exposer le comportement vectoriel des GPU de manière à permettre aux développeurs de mettre en place des optimisations spécifiques. Jusqu'ici, pour ce qui concerne le rendu 3D, les API font une abstraction totale du modèle d'exécution vectoriel des GPU. Un vertex représente un thread, un pixel représente un autre thread et les GPU exécutent cette masse de threads comme ils l'entendent.

Comme vous le savez probablement, les unités de calcul des GPU sont en réalité de larges unités vectorielles ou SIMD qui travaillent par ailleurs sur plusieurs cycles. Du côté des GeForce ce sont des vecteurs de 32 threads (warp) qui sont pris en charge par les unités d'exécution. Du côté des Radeon les GPU GCN travaillent avec des vecteurs de 64 threads (wavefront). Idéalement tous les threads d'un warp/wavefront vont suivre un même chemin prédéfini. Mais ce n'est pas toujours le cas, il peut y avoir des divergences dans les accès mémoires et les shaders.

Exposer ce fonctionnement aux développeurs apporte de nouvelles possibilités d'optimisations au niveau du contrôle des branches, des accès mémoire ou du partage de données entre threads. Cela fait partie des optimisations qui sont accessibles pour le GPU computing et qui sont exploitées par les développeurs sur console. C'est également ce qu'AMD a commencé à mettre en place via des extensions propriétaires et autres backdoors propriétaires pour DirectX 12. AMD y faisait référence jusqu'ici en tant que fonctions intrinsèques.

Pour donner un exemple du wave programming, c'est en grande partie ce qui permet aux Radeon d'obtenir leurs très bonnes performances dans Doom. Sur le GPU GCN de la PS4, le gain est de 43% au niveau de la passe de rendu principale et une technique similaire a pu être portée sur PC. C'est également ce à quoi Nvidia fait appel pour booster les performances de certaines de ses librairies dont Optix.

Un support standardisé au niveau des shaders est en préparation pour Vulkan mais également pour DirectX 12. Microsoft travaille depuis l'an passé sur une mise à jour de son API qui va apporter les Shader Model 6. Ces SM6 seront spécifiques à Direct3D 12 mais seront compatibles avec les GPU déjà existants. Nvidia parle d'un support pour tous ses GPU depuis Kepler et AMD depuis GCN 3.

Le wave programming ne sera cependant pas simple à exploiter de manière optimale, notamment parce que les développeurs devront prévoir directement dans les fonctions de leurs shaders au moins deux cas de figure vu les différences majeures d'architectures entre AMD et Nvidia.

Pas mal d'expérimentations et de tests seront ainsi nécessaires pour s'assurer que ces optimisations apportent réellement un bénéfice sur tous les GPU. Une optimisation de ce type pour GPU AMD sera contreproductive sur GPU Nvidia ou encore pourra poser problème sur un GPU qui serait équipé de moins de registres physiques. Par contre les meilleurs développeurs pourront pousser très loin l'optimisation des shaders et c'est évidemment une bonne nouvelle pour le jeu PC.

Vous pourrez retrouver l'intégralité de la présentation commune d'AMD et Nvidia ci-dessous :

 
 

Top articles