Les derniers contenus liés au tag Vulkan

Afficher sous forme de : Titre | Flux Filtrer avec un second tag : AMD; Apple; DirectX 12; GDC; GDC 2015; Imagination Technologies; Khronos; Mantle; Microsoft; Nvidia;

Radeon Software 18.3.3 beta avec Vulkan 1.1

Publié le 20/03/2018 à 13:27 par Guillaume Louel

AMD a mis en ligne ces dernières heures une nouvelle version beta de ses pilotes graphiques. On retrouve comme souvent un support "optimisé" pour de nouveaux titres, cette fois ci il s'agit de Sea of Thieves et A Way Out.

Côté bugs, un problème de stuttering intermittent sous Forza Motorsport 7 à été corrigé. Pour Final Fantasy XV, ce sont des clignotements et objets disparaissant qui ont été résolus pour les configurations Multi GPU. Enfin pour Battlefront 2, c'est un plantage au lancement du titre, là encore sur des configurations Multi GPU, qui a été corrigé.

L'autre nouveauté de ces pilotes est qu'ils apportent un support de la version 1.1 de Vulkan, l'API "bas niveau" de Khronos Group. Cette nouvelle version avait été annoncée il y a quinze jours de cela  apporte plusieurs nouveautés dont les "Subgroup Operations" pour partager des données entre plusieurs tâches sur un GPU et une nouvelle version du langage intermédiaire de shaders, SPIR-V 1.3 (et de ses outils). Nvidia avait de son côté proposé un pilote beta spécifique pour Vulkan 1.1 au moment de l'annonce .

L'autre objectif pour Khronos Group est un support multi plateforme universel. Quelques jours avant l'annonce de cette version 1.1, la "Khronos Vulkan Portability Initiative"  avait été annoncée avec pour but de créer des couches de compatibilités fines s'appuyant sur les API bas niveau natives des plateformes, comme DirectX 12 pour Windows ou Metal chez Apple.

Pour rappel, Apple gère le déploiement (et le co développement) des pilotes graphiques pour sa plateforme contrairement à ce que l'on voit sous Windows, et il n'y a pas de support natif dans l'OS pour Vulkan. Microsoft n'en propose pas non plus pour Windows, le support y étant assuré par les pilotes directement (cf cette actualité), comme cela était le cas pour OpenGL dans les dernières versions de Windows.


Avec LunarG et MoltenVK, Valve annonce 50% de performances en plus sous Dota 2 par rapport à l'implémentation OpenGL sur Mac

Proposer des couches intermédiaires est donc une solution assez pragmatique, car si en général ces couches sont assez coûteuses, toutes ces API bas niveau sont excessivement proches dans leurs caractéristiques (elles sont après tout de bas niveau et "très proches du métal" avec des similarités larges) ce qui limite grandement l'impact sur les performances. Valve et Brenwill Workshop ont rendu open source LunarG  (un SDK MacOS Vulkan spécifique développé par Valve) et MoltenVK  (une couche de traduction Vulkan vers Metal pour MacOS et iOS) en partenariat avec Khronos. Vous pouvez retrouver une présentation de cette initiative sur cette page  qui évalue également la portabilité pour DirectX 12. Une autre initiative est celle de Mozilla  dans le cadre du développement de son API cross plateforme bas niveau gfx-rs .

Le téléchargement de ces pilotes AMD s'effectue sur cette page du site du constructeur .

3DMark reçoit un support limité de Vulkan

Publié le 27/03/2017 à 10:42 par Damien Triolet

Futuremark vient de mettre à jour son benchmark phare pour apporter le support de l'API graphique Vulkan. Il ne s'agit cependant pas d'un support généralisé mais limité au test spécifique à l'API Overhead, tout du moins dans un premier temps.

Pour rappel, ce test introduit dans 3DMark il y a 2 ans permet de mesurer la capacité des systèmes à encaisser un grand nombre de commandes de rendu. Les API de plus bas niveau telles que Mantle, DirectX 12 ou Vulkan réduisent significativement le surcoût CPU de ces commandes et permettent d'exploiter efficacement tous les coeurs CPU pour pouvoir prendre en charge de nombreuses commandes de rendu.

L'ajout de Vulkan dans ce test permet donc de s'assurer que tout fonctionne bien à ce niveau sur votre système. Il ne s'agit cependant pas d'un test qui mesure directement les performances globales des cartes graphiques. Il teste les capacités des pilotes, du CPU et du processeur de commandes du GPU sur un point particulier.

Voici pour information ce que nous avons obtenu avec une GTX 1080, une GTX 1060 6 Go et une RX 480 sur un Core i7-5960X cadencé à 4 GHz et sans HyperThreading :

Nous pouvons observer que le pilote Nvidia semble un petit peu plus efficace avec Vulkan alors que celui d'AMD l'est un peu moins. A noter que dans le cas de la Radeon RX 480 en DX12 et Vulkan ainsi que de la GTX 1060 en DX12, les performances semblent ici limitées par le processeur de commandes puisqu'elles varient directement avec la fréquence GPU.

Dans tous les cas la capacité de prise en charge des commandes de rendu explose avec ces API, à un niveau largement supérieur à ce qui est actuellement exploité par les développeurs. Dans un premier temps, l'intérêt principal pour ces derniers est de réduire les spécifications minimales requises pour leurs jeux plutôt que d'augmenter la complexité à l'écran.

Si Futuremark n'exclut pas la possibilité de porter également le test plus complet Time Spy sous Vulkan, sa priorité est actuellement la finalisation d'un nouveau test DirectX 12 prévu cette fois pour la VR.

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 :

 
 

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.

Un patch Vulkan pour Doom

Publié le 11/07/2016 à 17:50 par Guillaume Louel

Bethesda vient d'annoncer  l'arrivée d'un patch pour Doom qui apporte le support de Vulkan. Pour rappel, Vulkan est la nouvelle API graphique proposée par Khronos Group, en charge de l'OpenGL. Nous avions eu l'occasion de vous présenter en détail Vulkan dans cette actualité lors de la sortie de la version 1.0 en février dernier. Il s'agit pour rappel d'une API graphique de bas niveau, dérivée de Mantle d'AMD, et qui permet de réduire la dépendance du GPU envers le CPU et d'améliorer les performances, notamment via le multi-threading.

Bethesda indique avoir travaillé avec à la fois AMD et Nvidia depuis mars pour optimiser le support chez les deux constructeurs. Même si l'importance du driver dans les nouvelles API que sont Vulkan et DirectX 12 est réduit, cela reste important étant donné que Doom est le premier gros titre à utiliser cet API.

Pour en profiter il faudra disposer au minimum des pilotes 368.69 chez Nvidia et 16.7.2 Hotfix chez AMD .

La FAQ de Bethesda donne quelques détails supplémentaires, il faudra s'attendre à quelques bugs, notamment avec l'overlay Steam ou lors des changements de résolution. Bethesda indique que seuls les pilotes AMD supportent actuellement l'async compute mais qu'ils travaillent avec Nvidia pour apporter une solution (nous vous renvoyons à notre couverture de la GDC pour plus de détails). Le patch est disponible via Steam.

Top articles