11.10.1.5 : Calcul sur FPGA



L'installation et la mise en exploitation d'un nœud de calcul avec accélérateur FPGA nécessite un certain accompagnement technique, en même temps est assez bien documentée sur les sites du fabricant par de nombreuse fiches techniques et guides d'utilisation. La programmation OpenCL a l'avantage que le noyau peut être exécuté et vérifié d'abord sur le CPU de la machine hôte. La compilation pour le FPGA dispose aussi du mode émulation, qui offre un autre niveau de diagnose avant la compilation finale, qui est assez longue et très gourmande en ressource de mémoire et CPU (elle est par défaut multi-thread).

Le choix du FPGA détermine la liste des options de programmation OpenCL, ce qui nécessite un temps d'exploration des différentes options du standard OpenCL pour chaque situation concrète. Cela fait que l'évolution du matériel utilisé ne profite pas d'une relative standardisation comme pour les CPU ou même les GPU, mais cela pourrait changer à l'avenir. L'implication forte du personnel technique est aujourd'hui évidente comme, par exemple, dans les développements sur le superordinateur MareNostrum du Centre National de Supercalcul de Barcelone, qui a récemment lancé un appel d'embauche sur un poste d'ingénieur spécialiste avec des compétences fortes dans le domaine des FPGA.

L'utilisation des accélérateurs de calcul basé sur les FPGA s'inscrit dans le même paradigme de l'optimisation du code là où elle est absolument nécessaire, sans perdre la lisibilité du code ni affecter le cycle d'évolution du code sur la durée de vie du projet (de recherche, en général) auquel il est attaché. Les parties du code susceptibles d'être transférées sur un accélérateur doivent être bien identifiées par rapport au reste du code, qui reste à exécuter sur la machine hôte, et c'est au nouveau programmeur de s'approprier ces nouvelles méthodes.

Le prix actuel des accélérateurs avec FPGA (Intel et Xilinx) peut paraître élevé aujourd'hui, par rapport à un CPU ou même un GPU. Il est probable que cette différence reflète l'ampleur de leur utilisation dans le domaine du calcul. Les applications de calcul avec FPGA sont moins visibles, car elles sont très spécialisées et ont parfois une composante R\&D assez importante. Des mesures de la significative réduction de la consommation électrique par rapport aux CPU et GPU ont été plusieurs fois présentées dans des publications de spécialité, ce qui ouvre la possibilité de construire des centres de calcul plus éco-responsables. Avant de passer à l'échelle nécessaire pour profiter de ces avantages, il faudra faire le travail d'insertion des FPGA dans les schémas de calcul traditionnel et les utiliser dans des applications concrètes qui existent déjà dans les laboratoires de l'IN2P3, afin de rassembler le plus d'expériences utilisateur.

Enfin, le choix entre les deux acteurs majeurs sur le marché des FPGA pour le calcul, Intel et Xilinx, représente un autre volet de la stratégie à suivre. Pendant que Xilinx semble offrir des FPGA plus performants (et onéreux) qui reflètent l'ancienneté et la primauté de l'entreprise dans leur fabrication, Intel (qui a acquis l'autre fabricant de FPGA, Altera) marche dans une direction plus orientée vers les solutions de calcul intégré CPU+FPGA dans un nouveau standard de processeur performant. Après une certaine expérience accumulée avec un FPGA Intel au LPC, la mise en opération du nœud FPGA Xilinx sur la plate-forme ACP au LLR permettra de compléter l'étude des FPGA par l'exploration d'un nouvel environnement.