La spécification d'OpenCL 3.0 est disponible
pour une dernière étape de relecture.


OpenCL est une spécification de bibliothèque créée par le consortium Khronos afin de proposer une API multiplateforme permettant de programmer des systèmes parallèles pouvant s'exécuter sur CPU, GPU, DSP et FPGA. La version 3.0 est maintenant disponible (version publique visant à obtenir les derniers retours, à faire sur GitHub), soit trois ans après la version précédente : 2.2.
Cette version majeure apporte une nouvelle spécification du langage OpenCL C, utilise un nouveau format de spécification unifié, introduit de nouvelles extensions pour les copies asynchrones de données (et des barrières correspondantes). Aussi, pour mieux gérer le parc grandissant de processeurs supportant la norme, toutes les fonctionnalités introduites après OpenCL 1.2 deviennent optionnelles dans cette nouvelle spécification. Ainsi, toutes applications OpenCL 1.2 pourront être exécutées telles quelles sur les machines supportant OpenCL 3.0. Pour cela, la nouvelle norme du langage OpenCL C 3.0 offre des macros pour accéder aux fonctionnalités optionnelles.

De plus, le noyau C++ d'OpenCL définit avec la version 2.2 a été remplacé par le projet open source « C++ pour OpenCL » supporté par clang et qui permet aux développeurs d'utiliser les fonctionnalités du C++17. Ce projet est compatible OpenCL 2.0, OpenCL 3.0 supportant l'ingestion SPIR-V et peut s'interfacer avec OpenCL C.

Les constructeurs ont déjà assuré vouloir supporter cette nouvelle spécification, lorsque finalisée : NVIDIA, Imagination Technologies, Qualcomm, Intel....


Source

Annonce officielle
Documentation d'OpenCL 3.0
Page officielle de ressources