Altera s’engage sur la technologie de programmation OpenCL

Le 18/11/2011 à 14:56 par François Gauthier

Le fabricant de FPGA Altera annonce la mise en place d’un programme de développement centré sur le standard OpenCL, langage de programmation basé sur le C et destiné à la programmation parallèle. Le programme OpenCL annoncé par Altera vise à associer les capacités de performances des FPGA liées à la parallélisation des données avec le standard OpenCL (Open Computing Language), langage basé sur le C qui prend en charge les problématiques de programmations hétérogènes et parallèles. L’idée consiste à tirer parti des potentialités des systèmes hétérogènes actuels (association de CPU et de FPGA sur un SoC) en mettant en œuvre le standard OpenCL, plus adapté aux contraintes de la parallélisation que des langages de description matériel traditionnels, comme le Verilog ou le VHDL.

Via ce programme OpenCL, Altera s’est engagé avec plusieurs clients et a développé des partenariats universitaires pour prendre en charge ce langage dans le développement de FPGA. Selon Altera, les premiers retours d’information montrent des performances multipliées par 35 par rapport aux solutions CPU multi-coeurs et une diminution de 50 % du temps de développement par rapport aux solutions FPGA développées avec un langage de type HDL (Hardware Description Language).

Développé par un consortium industriel, le Khronos Group, le standard OpenCL est un standard ouvert, libre de droits, qui prend en charge les systèmes hétérogènes de programmation parallèle multi plates-formes. OpenCL permet aux programmeurs d’utiliser un langage C familier pour développer du code sur des plates-formes CPU ou GPU et de l’étendre désormais aux FPGA. Il offre une séparation naturelle entre le code hôte, logiciel pur, écrit en C/C++ qui peut être exécuté sur n’importe quel type de microprocesseur, et le code noyau, écrit en OpenCL C, que l’on peut faire tourner sur accélérateur matériel. En profilant leurs algorithmes, les architectes systèmes peuvent donc choisir les fonctions à accélérer en tant que noyaux dans le FPGA afin d’améliorer les performances systèmes. Les différents noyaux peuvent fonctionner en parallèle pour accélérer encore plus le traitement. L’hôte communique avec le circuit accélérateur par un jeu de routines de bibliothèques avec un jeu d’extensions minimal qui permet aux programmeurs de spécifier le parallélisme et la hiérarchie mémoire pour les parties du code les plus intenses au niveau du calcul.

Le standard OpenCL permet aux concepteurs d’accélérer leur design et d’améliorer la productivité en tirant parti des architectures parallèles dans l’environnement de programmation C“, explique Udi Landen, vice-président du logiciel et du développement IP chez Altera, dans un communiqué. “Nous participons activement au développement d’OpenCL depuis des années et nous collaborons actuellement avec le consortium, les architectes systèmes de nos clients et les universités pour que les FPGA soient intégrés dans le standard OpenCL“.

Les applications ciblées par ce type d’approche sont le HPC (high performance computing) avec la modélisation du climat et des finances, les systèmes de radars perfectionnés, l’imagerie médicale, l’encodage et le traitement vidéo, etc. Bref, n’importe quel système nécessitant des calculs rapides qui peuvent être parallélisés.

Copy link
Powered by Social Snap