GTC: VKCPP et NVK pour simplifier Vulkan

Tags : GTC; GTC16; Nvidia; Vulkan;
Publié le 05/04/2016 à 06:56 par
Imprimer

Lors de la GDC, nous vous indiquions qu'Imagination proposait un framework destiné à faciliter l'utilisation de l'API Vulkan. Avec VKCPP et surtout NVK dévoilé à l'occasion de la GPU Technology Conference (GTC), Nvidia suit la même voie.

Comme vous l'aurez sans aucun doute compris, maîtriser les nouvelles API de bas niveau est loin d'être aisé. Si elles ouvrent de nouvelles possibilités et permettent aux meilleurs développeurs de produire un code plus efficace sur le plan des performances, elles sont moins abordables et les opportunités explosent pour les bugs en tout genre. Proposer des outils qui en simplifient la bonne exploitation est donc assez logique pour Nvidia et particulièrement en ce qui concerne Vulkan qui va intéresser les développeurs au-delà du jeu vidéo, domaine qui peut se satisfaire plus facilement d'API complexes mais bien exploitées par une poignée de gros moteurs de jeu. Le potentiel de cette API est en effet très varié du côté professionnel mais encore faut-il convaincre les développeurs de sauter le pas.

Lors de l'annonce du framework d'Imagination, Nvidia nous avait indiqué également proposer un outil similaire avec Vulkan C++, ou VKCPP. Ce n'était en fait pas tout à fait correct, mais Nvidia travaille également sur NVK qui s'en rapproche beaucoup.

 
 

VKCPP est un portage de Vulkan, une API de type C, vers C++. Certains aspects du code gagnent en clarté, d'autres peuvent être condensés et le compilateur s'assure de la validité de certaines commandes, là où Vulkan classique va autoriser des opérations qui les pilotes n'acceptent pas. Nvidia précise cependant que VKCPP reste une solution destinée aux experts, qui ne rend pas réellement plus abordable l'API Vulkan.

Une solution différente destinée à s'attaquer à ce problème est cependant en développement, NVK, son nom de code actuel (il pourrait changer).

 
 

Le but de NVK est de permettre aux développeurs d'obtenir un premier résultat très rapidement. Pour cela, ce framework va proposer des fonctions simples pour les tâches de routine telles que le suivi des ressources, l'allocation de la mémoire, la préparation du framebuffer etc. NVK empêche également les développeurs de faire par erreur des opérations qui n'ont aucun sens mais qui peuvent entraîner toute une série de bugs plus ou moins difficiles à corriger.

Au final, la démo HelloVulkan de Nvidia, qui consiste simplement à dessiner un triangle, demande 750 lignes de code avec l'API Vulkan classique. En passant par le prototype actuel du framework NVK, 200 lignes de code suffisent. Et même si une bonne partie de ces lignes de code supprimées représentent des aspects triviaux pour la plupart des développeurs, ils sont surtout des sources de bugs potentiels éliminées.

Par ailleurs, ce n'est pas seulement le développement initial qui se trouve simplifié, mais également l'évolution et la maintenance du code. Des aspects cruciaux pour bon nombre de développeurs. Reste cependant à voir si Nvidia compte proposer des back-ends pour des solutions autres que ses propres GPU. Ce ne sera peut-être pas directement le cas, mais VKCPP est un projet open source disponible sur GitHub  et de toute évidence il devrait en être de même pour NVK.

Vous pourrez retrouver la présentation complète de Nvidia ci-dessous :

 
 

Vos réactions

Top articles