Section courante

A propos

Section administrative du site

Fiche technique
Type de produit : Langage de programmation/Cadre d'application
Écrit en langage : C/C++
Auteur : Apple/Khronos Group
Date de publication : 2009 à maintenant
Licence : Khronos Group
Site Web : https://www.khronos.org/opencl/

Introduction

OpenCL (Open Computing Language) est une extension du langage C99 et un cadre d'application ouvert conçu pour l'exécution de programmes sur des plateformes hétérogènes combinant des processeurs (CPU), des cartes graphiques (GPU), des FPGA, et d'autres types de processeurs. Créé initialement par Apple Inc. en 2008, puis géré par le consortium Khronos Group, OpenCL permet d'exploiter la puissance de calcul parallèle de ces composants en offrant un langage commun, indépendant du matériel. Il s'agit d'un standard libre visant à unifier le développement sur des architectures variées, contrairement à CUDA, étant limité aux GPU NVIDIA. OpenCL repose sur une version dérivée du langage C et permet un contrôle bas niveau sur les unités de calcul.

L'architecture d'OpenCL est organisée autour de noyaux, des fonctions s'exécutant sur les unités de calcul (souvent des GPU), tandis que le reste du programme reste sur le processeur hôte. Le cadre d'application est composé de plusieurs éléments&nbps;: une API pour gérer le contexte d'exécution, les files de commandes, les tampons mémoire, et une interface avec les périphériques de calcul. Il permet aussi une gestion explicite de la mémoire, ce qui donne plus de flexibilité au développeur mais requiert plus d'attention à la performance et à la synchronisation. OpenCL est utilisé dans des domaines aussi variés que le traitement d'image, la physique en temps réel, la bio-informatique, et l'apprentissage automatique.

En tant que standard ouvert, OpenCL bénéficie d'un large soutien multi-constructeurs, incluant AMD, Intel, NVIDIA (dans une certaine mesure), ARM, et d'autres. Il permet de développer des applications portables, capables de s'exécuter sur différentes plateformes sans modification majeure. Toutefois, son adoption dans l'industrie a été limitée par rapport à des alternatives plus spécialisées et optimisées comme CUDA ou DirectCompute, principalement à cause de sa complexité et de la variabilité des performances selon les plateformes. Malgré cela, OpenCL reste un outil puissant pour ceux cherchant à maximiser la compatibilité matérielle et à tirer parti du calcul parallèle sur des systèmes hétérogènes.




Dernière mise à jour : Mardi, le 8 juillet 2025