SI vous souhaitez effectuer un calcul rapidement sur une puce autre que votre CPU — cas dans lequel il est question de calcul dit déporté —, une des solutions (libre) les plus répandues est OpenCL. Au début très proche de l’API CUDA de NVIDIA permettant d’exécuter du code non graphique sur les cartes graphiques — le terme utilisé est alors GPGPU —, le projet a gagné en ampleur pour dorénavant couvrir n’importe quel accélérateur, des GPU aux FPGA en passant par les accélérateurs de machine learning ou encore des ASICs spécialisés, pour peu que le vendeur ait fourni les bibliothèques compatibles.

 

En effet, tout comme Vulkan, OpenCL est une API, c’est-à-dire une définition du format à respecter et des fonctionnalités à fournir, mais ne fournit pas une implémentation du bousin. Pour cela, les constructeurs et partenaires doivent travailler, en collaboration avec le groupe Khronos qui chapeaute tout, à la réalisation de bibliothèques ou de pilotes compatibles... mais cela dépasse la portée de l’annonce du jour !

 

Une API pour les gouverner tous... ou pas [cliquer pour agrandir]

Si vous souhaitez croiser les API, Khronos et ses partenaires y ont pensé : ce devrait être possible

 

La dernière version de cette API bas niveau était, hier encore, la 2.2, mais la maison-mère a depuis dévoilée le premier jet préliminaire pour la mouture 3.0. Au menu : une rétrocompatibilité partielle avec les fonctionnalités précédentes, toutes au-delà de la 1.2 (non incluse) devenant optionnelles... mais les programmes pourront s’assurer de leur prise en charge par une simple requête, laissant ainsi la majorité du code inchangée. L’idée réside sur le constat qu’OpenCL 1.2 est le minimum requis pour les industriels, mais que les fonctionnalités introduites dans les moutures suivantes, monolithiques, sont trop peu flexibles par rapport à la demande, d’où leur découpage en optionnelles. Pour une mise à jour simple à la fois du côté des programmeurs et des intégrateurs, le but devrait être réussi. Parmi les autres changements, citons les extensions DMA asynchrones permettant aux accélérateurs le supportant d’accéder directement à la RAM sans bloquer le flot d’exécution du programme ; ainsi que la scission d’OpenCL C++, qui se nomme désormais C++ for OpenCL.

 

Au niveau des applications, l’API ratisse large, mais le grand public devrait surtout en profiter via l’IoT ou la domotique, car l’IA est l’application ayant le vent en poupe actuellement la plus friande d’accélérateurs dédiés. Néanmoins, cela ne risque pas de transcender l’expérience utilisateur, au vu de la couche bas niveau concernée !

 

khronos group

 Le groupe Khronos met à jour son API de calcul déporté en version 3.0 pour toujours plus de flexibilité et de rétrocompatibilité. 

Sur le comptoir, au même sujet

 
 
 
 
 

afficher plus de prixAffichez donc moi tout, nom de nom

Plus d'infos avec le comptoir de l'info

Voir plus de news
Les 5 ragots
Les ragots sont actuellement
ouverts à tous, c'est open bar !