Vidéo: EB_#263 Introduction au FPGA (Novembre 2024)
L'une des tendances les plus intéressantes que j'ai observées dans l'informatique serveur est l'abandon des processeurs standard au profit de davantage de traitements sur des puces graphiques (GPU) et de processeurs reconfigurables connus sous le nom de FPGA (Field Programmable Gate Arrays). Ce phénomène est souvent appelé informatique hétérogène.
Le concept ici n'est pas nouveau: les GPU et autres accélérateurs sont de plus en plus répandus dans l'informatique haute performance (HPC) ou les superordinateurs depuis des années. Mais ces derniers temps, nous avons davantage entendu parler de la manière dont Intel a personnalisé certains packages de puces de serveur pour inclure des FPGA en plus du processeur traditionnel, principalement destinés aux grands fournisseurs d’informatique en nuage à très grande échelle qui peuvent exécuter des algorithmes spécifiques en tant qu’instructions matérielles sur les FPGA. Cela devrait être beaucoup plus rapide que de les exécuter en tant que logiciel sur les instructions plus générales de la CPU.
C’est l’un des principaux moteurs du plan récemment adopté par Intel pour acquérir le fabricant de FPGA Altera. Le PDG d’Intel, Brian Krzanich, s’attend à ce que jusqu’à 30% des charges de travail dans le cloud bénéficient d’une accélération du FPGA d’ici la fin de la décennie. Microsoft utilise déjà les FPGA Altera pour alimenter bon nombre de ses services cloud, tels que Bing Search.
La plupart des entreprises utilisant des FPGA - ou des GPU - ont rencontré un obstacle majeur dans des cas informatiques classiques: il est très difficile de faire fonctionner le logiciel simultanément sur ces puces et sur le processeur. (Pour les charges de travail d'entreprise et même HPC, vous aurez toujours besoin de processeurs. Dans d'autres types d'applications, telles que la mise en réseau, les entreprises de matériel peuvent n'utiliser qu'un FPGA.) Pour l'informatique GPU, nous avons vu des choses comme CUDA de Nvidia et Khronos. La norme OpenCL du groupe facilite les choses et nous avons certainement constaté que de nombreux algorithmes HPC et d’apprentissage par la machine utilisent des GPU. Maintenant, les fabricants de FPGA tels qu'Altera prennent également en charge OpenCL, mais dans le cas plus général de l'informatique d'entreprise, c'est trop difficile.
Dernièrement, j'ai parlé à quelques entreprises qui espèrent faciliter cela.
Bitfusion est une startup que j'ai vue pour la première fois chez TechCrunch Disrupt; sa technologie vise à vous permettre de déplacer une application du processeur vers un GPU ou un FPGA sans la réécrire pour chaque plate-forme. Comme l'explique le chef de la direction, Subbu Rama, le paquet fonctionne maintenant en recherchant les bibliothèques open-source communes utilisées par les développeurs de logiciels et en remplaçant leurs fonctions par des fonctions pouvant tirer parti du GPU ou du FPGA. Comme il l'a expliqué, les grandes entreprises pourraient peut-être réécrire leur code, mais pas les entreprises du marché intermédiaire. Les applications incluent l'informatique scientifique, les applications financières telles que l'analyse de risque et le trading haute fréquence, et l'analyse de données telle que le travail avec des données de capteurs de pétrole et de gaz.
Finalement, il a dit que cela pourrait fonctionner avec n'importe quel langage qui appelle de telles bibliothèques. Il a noté que le remplacement des bibliothèques peut ne pas être aussi efficace que l'écriture de code personnalisé pour les FPGA ou les GPU, mais c'est beaucoup plus facile.
Bitfusion envisage de proposer ses produits dans trois modèles différents: en tant que logiciel pur pour les entreprises disposant déjà de leurs propres accélérateurs. pré-installé sur les appareils; ou pour les applications déployées dans le cloud, via un partenariat avec Rackspace. À l’origine, cette solution utilisera les FPGA d’Altera, bien que la société affirme pouvoir également fonctionner avec d’autres processeurs. Selon Rama, les premiers clients l'utilisent maintenant, la disponibilité publique étant prévue dans les prochains mois.
SRC adopte une approche quelque peu différente. Il crée des "serveurs reconfigurables" pour les agences gouvernementales depuis 1999 et propose actuellement une solution destinée aux centres de données à très grande échelle et aux opérations Web. Appelé le serveur Saturn 1, il s’agit d’une cartouche qui se connecte au châssis Moonshot de HP. SRC affirme qu’elle peut offrir des performances informatiques 100 fois plus rapides que celles des microprocesseurs traditionnels. (La société vend également des systèmes de grande taille et montés sur rack, généralement destinés à ses grands clients.)
Selon le PDG Jon Huppenthal, un compilateur spécial appelé Carte, convertit le code en une conception de silicium pouvant fonctionner sur une architecture FPGA. Il m'a dit que SRC avait passé des années à créer le compilateur, initialement destiné aux clients professionnels, depuis que la firme a été fondée par le pionnier des superordinateurs Seymour Cray et Jim Guzy dans les années 90. Une différence dans l'approche de SRC, a-t-il déclaré, est que Carte n'est pas destiné à des systèmes génériques, mais est spécifiquement lié à l'architecture de SRC, ce qui lui confère davantage de performances et de cohérence. Saturn 1 utilise deux FPGA Altera: l’un qui exécute le code utilisateur; l’autre qui maintient le système en marche rapidement, avec un processeur Intel. Actuellement, at-il ajouté, la société en est à sa 12e génération de processeurs reconfigurables.
Il s’agit d’une solution plus coûteuse, principalement destinée aux grands centres d’informatique, mais elle reste plus accessible que les approches précédentes.
L'idée d'utiliser des FPGA ou des processeurs reconfigurables pour des tâches plus courantes n'est pas nouvelle. Cependant, il a fallu beaucoup de temps pour que cela devienne même une possibilité pour des clients plus traditionnels en dehors des concepteurs de matériel ou des applications militaires. Ces nouvelles approches peuvent laisser présager une utilisation plus répandue de cette technologie, mais uniquement si les améliorations en termes de prix / performances correspondent vraiment aux revendications du fournisseur et que la technologie devient plus facile à utiliser. Les nouvelles approches vont dans cette direction.