Les contenus liés au tag GDC

Afficher sous forme de : Titre | Flux Filtrer avec un second tag : AMD; DirectX; DirectX 12; GDC 2015; GDC 2016; GDC 2017; Microsoft; Nvidia; PowerVR; Radeon;

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 Damien Triolet

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 Damien Triolet

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 :

 
 

GDC en approche, AMD et Nvidia sur les rangs

Tags : AMD; GDC; GDC 2017; Nvidia;
Publié le 21/02/2017 à 06:55 par Marc Prieur

La GDC 2017 ouvrira ses portes du 27 février au 3 mars, et nous aurons la chance d'y participer une nouvelle fois. En plus des sessions techniques, AMD comme Nvidia affûtent leurs armes pour des conférences marketing toutes deux prévues pour le 28 février là-bas, mais en France le 28 février à 19h30 et le 1er mars à 3h30 avec le décalage horaire.

A quelques jours de son lancement officiel, Ryzen sera probablement au centre de la conférence AMD même si on attend aussi des précisions concernant Vega. Côté Nvidia les regards se tournent vers la GTX 1080 Ti, qui pourrait être lancée à cette occasion.

Vulkan en novembre pour le CryEngine

Publié le 14/09/2016 à 17:36 par Guillaume Louel

Nos confrères d'Overclock3D  ont noté que Crytek a mis à jour sa roadmap  concernant son moteur graphique CryEngine. Pour rappel, Crytek propose désormais son moteur sous licence .

La version 5.2 lancée en août avait déjà apporté le support de DirectX 12, la version 5.3, prévue pour le mois de novembre apportera cette fois ci le support de Vulkan, l'API bas niveau du Khronos Group.

La roadmap indique également que la version 5.4, prévue pour la GDC, apportera un support du multi GPU sous DirectX 12. Si précédemment le multi GPU était géré par le pilote (avec plus ou moins de mal), les API de bas niveau redonnent désormais la main aux développeurs de jeux et de moteurs pour qu'ils implémentent eux même correctement la gestion de plusieurs GPU, ouvrant pour le coup des possibilités d'asymétrie y compris dans des marques différentes.

Du côté des autres gros moteurs proposés sous licence, on notera qu'Unity a ajouté le support de DirectX 12 cet été, et que le support de Vulkan a été annoncé comme en développement. L'Unreal Engine propose déjà de son côté le support de DX12 et Vulkan.

GDC: Vulkan trop compliqué ? Imagination a une solution

Publié le 25/03/2016 à 08:59 par Damien Triolet

Maîtriser les API de plus bas niveau telles que Direct3D 12 et Vulkan représente un challenge pour les développeurs, celles-ci ajoutant à leur travail un niveau de complexité supplémentaire. Mais à travers son nouveau framework, Imagination va essayer de leur simplifier la tâche.

A l'occasion de la GDC 2016, Imagination a rendu disponible la version 4.1 de son SDK  et à l'intérieur de celui-ci un nouvel outil a fait son apparition : le PowerVR Framework. Il représente une couche intermédiaire entre un moteur graphique et une API moderne.

Le niveau de complexité des API de plus bas niveau, que ce soit Direct3D 12 ou Vulkan, va amplifier le besoin de middlewares et de moteurs de jeu prêts à l'emploi. Mais il y a malgré tout encore pas mal de développeurs qui préfèrent mettre en place leur propre solution et pourraient profiter d'un accès simplifié aux nouvelles API. C'est en partant de ce constat qu'Imagination a développé le PowerVR Framework.

Le but est simple : aider les développeurs. Pour cela, ce framework est basé sur un ensemble de bibliothèques statiques qui vont permettre de simplifier les tâches courantes telles que la création des objets, les transferts de données, la gestion du multi-threading etc. Il représente une réintroduction d'un certain niveau d'abstraction là où il n'impacte pas la flexibilité et les performances.

A titre d'exemple, Imagination nous explique que sa démonstration Gnome comprenait à l'origine plusieurs milliers de lignes de code qui ont pu être résumées en centaines de lignes en les réécrivant contre ce nouveau framework. De quoi rendre le code plus abordable et plus facile à maintenir, deux arguments qui ne devraient pas laisser les développeurs indifférents.

Ce framework permet également de supporter plus facilement différentes API et différents types de plateformes. Il peut ainsi viser autant OpenGL ES que Vulkan. Par ailleurs, en plus d'un back-end pour les GPU PowerVR, il en propose actuellement deux autres pour les GPU AMD et Nvidia. Suivant les retours des développeurs, Imagination n'est pas contre l'ajout de back-ends supplémentaires pour les GPU Qualcomm et ARM. L'objectif principal étant que les développeurs exploitent cet outil qui permet de tirer plus aisément le meilleur de ses GPU.

Il n'est par contre pas prévu de l'étendre pour supporter Direct3D 12, les GPU PowerVR n'ayant actuellement pas de présence sur la plateforme Windows. Mais compte tenu des difficultés rencontrées par les développeurs, Imagination s'attend à ce que quelqu'un d'autre propose un outil similaire, peut-être directement Microsoft.

Mise à jour de 19h30: Nvidia nous indique avoir sorti discrètement le mois passé un outil qui a des objectifs similaires : l'API open source Vulkan C++ . Il s'agit également d'une couche intermédiaire qui permet de passer l'API Vulkan C classique vers une approche de type C++ plus simple à manipuler.

Vous pourrez retrouver l'intégralité de la présentation d'Imagination ci-dessous :

 
 

Top articles