Articles

Qu’est-ce qu’OpenCL ?

La norme OpenCL pour la programmation parallèle a été développée par le consortium industriel Khronos Group pour relever les défis de la programmation des plateformes de calcul multicœurs et hétérogènes. La spécification OpenCL définit un modèle de programmation unique et un ensemble d’abstractions de niveau système qui sont pris en charge par toutes les plateformes matérielles conformes à la norme. Cela signifie qu’un ingénieur logiciel peut apprendre un modèle de programmation unique et l’utiliser directement sur des dispositifs de plusieurs fournisseurs.

OpenCL fournit un langage de programmation et une API d’exécution pour soutenir le développement de logiciels proches du métal qui sont à la fois efficaces et portables. En outre, OpenCL fournit des abstractions matérielles de bas niveau qui permettent aux implémentations OpenCL d’exposer de nombreux détails du matériel sous-jacent. Ces abstractions de bas niveau sont les modèles de plate-forme, de mémoire et d’exécution décrits dans la spécification OpenCL. Comprendre comment ces concepts se traduisent en implémentations physiques sur un FPGA est nécessaire pour l’optimisation des applications.

Ce chapitre fournit une revue du modèle de plateforme OpenCL et de ses extensions aux dispositifs FPGA. Il explique le mappage de la plateforme OpenCL et du modèle de mémoire dans une implémentation générée par SDAccel. Ce chapitre mentionne également comment les FPGA contemporains peuvent être exploités pour atteindre des niveaux de performance élevés en utilisant l’outil SDAccel de Xilinx®.