Vous êtes nouveau sur Developpez.com ? Créez votre compte ou connectez-vous afin de pouvoir participer !

Vous devez avoir un compte Developpez.com et être connecté pour pouvoir participer aux discussions.

Vous n'avez pas encore de compte Developpez.com ? Créez-en un en quelques instants, c'est entièrement gratuit !

Si vous disposez déjà d'un compte et qu'il est bien activé, connectez-vous à l'aide du formulaire ci-dessous.

Identifiez-vous
Identifiant
Mot de passe
Mot de passe oublié ?
Créer un compte

L'inscription est gratuite et ne vous prendra que quelques instants !

Je m'inscris !

Khronos publie la spécification d'OpenCL 2.2 et propose un noyau C++
Une sortie accompagnée de la spécification SPIR-V 1.2

Le , par LittleWhite

82PARTAGES

9  0 
Une sortie accompagnée de la spécification SPIR-V 1.2


OpenCL est une spécification réalisée par le consortium Khronos visant à offrir des outils pour créer des applications hautement parallèles capables de s'exécuter aussi bien sur des CPU multicœurs que des GPU. À l'instar d'OpenGL (et des autres interfaces de programmation décrites par Khronos), Khronos ne fournit pas d'implémentation, mais une spécification complète sur comment utiliser la bibliothèque et comment elle doit être implémentée.
Pour suivre la récente volonté d'ouverture de Khronos, le code source de la spécification, ainsi que des tests de conformité (pour les versions 1.2, 2.0, 2.1 et 2.2) sont en ligne.
Initialement, OpenCL propose un dérivé du langage C afin de réaliser des applications parallèles. Depuis OpenCL 2.2, un nouveau noyau C++ a été mis en place et permet donc d'utiliser des fonctionnalités de C++ pour réaliser vos programmes parallèles. Pour suivre ce changement, la spécification de SPIR-V passe à la version 1.2 et permet donc de transcrire le code C++ en une représentation intermédiaire définie par Khronos.
La version 2.2 d'OpenCL ajoute un nouveau type pour le périphérique « pipe storage » utile pour les FPGA. Celui-ci permet que le type et la taille de la connexion soient connus à la compilation et ainsi d'améliorer la communication entre les noyaux. Avec OpenCL 2.2, les applications peuvent fournir la valeur de spécialisation constante à la compilation en représentation intermédiaire. Aussi, une nouvelle requête peut détecter les constructeurs et destructeurs non triviaux d'objets globaux à la portée du programme et un callback peut être défini à la fin du programme.
Finalement, arrive SYCL 2.2, une interface permettant d'adopter l'approche « code source unique » (comparable à CUDA, OpenMP ou encore la bibliothèque de parallélisme du C++17).

Pour le futur, Khronos souhaite faire converger OpenCL vers Vulkan dans le but de ne faire plus qu'une bibliothèque capable de graphismes et de calculs. En effet, les GPU sont de plus en plus capables de calculs génériques et l'interface bas niveau Vulkan expose les fonctionnalités de la carte graphique.

Votre opinion

Utilisez-vous OpenCL ? Comment avez-vous fait votre choix parmi les solutions actuelles ?
Est-ce que le support du C++ est un bon point pour vous ? Aviez-vous été handicapé par le C ?

Source

Site officiel

Une erreur dans cette actualité ? Signalez-le nous !