L’inévitabilité de la pénétration des FPGA dans les centres de données

L’inévitabilité de la pénétration des FPGA dans les centres de données
Vous n'avez pas besoin d'être un concepteur de puces pour programmer des FPGA, tout comme vous n'avez pas besoin d'être un programmeur C++ pour écrire du code en Java. Cependant, dans les deux cas, cela sera probablement utile.

L’objectif de la commercialisation des technologies Java et FPGA est de réfuter cette dernière affirmation. Bonne nouvelle pour les FPGA : en utilisant les bonnes couches d'abstraction et le bon ensemble d'outils, au cours des 35 dernières années depuis l'invention du dispositif logique programmable, la création d'algorithmes et de flux de données pour les FPGA au lieu des CPU, DSP, GPU ou toute autre forme d'ASIC personnalisés est devenue de plus en plus courant.

L'incroyable opportunité de leur création est évidente dans le fait que juste au moment où les CPU ne pouvaient plus rester le seul module informatique des centres de données à effectuer de nombreuses tâches - pour diverses raisons - les FPGA ont atteint leur efficacité, offrant vitesse, faible latence et capacités de mise en réseau. et mémoire - capacités informatiques hétérogènes des SoC FPGA modernes, qui sont des systèmes informatiques presque à part entière. Cependant, les FPGA sont également combinés avec succès avec d'autres dispositifs dans les systèmes hybrides et, à notre avis, ils commencent tout juste à trouver la place qui leur revient dans la hiérarchie informatique.

C'est pourquoi nous avons organisé la conférence The Next FPGA Platform à San Jose le 22 janvier. Naturellement, l'un des principaux fournisseurs de FPGA au monde et un pionnier dans ce domaine est Xilinx. Ivo Bolsens, vice-président senior et directeur de la technologie chez Xilinx, a pris la parole lors de la conférence et nous a fait part aujourd'hui de ses réflexions sur la manière dont Xilinx contribue à créer des systèmes informatiques modifiables pour les centres de données.

Il a fallu beaucoup de temps aux architectes système et aux programmeurs pour créer un centre de données hétérogène, doté de différents types de puissance informatique permettant de résoudre les problèmes de calcul, de stockage et de réseau. Cela semble nécessaire car il devient de plus en plus difficile de suivre la loi de Moore à l'aide de divers appareils CMOS. Pour l’instant, notre langage est toujours centré sur le processeur, et nous parlons toujours d’« accélération des applications », ce qui signifie rendre les programmes plus performants que ce qui peut être fait uniquement sur les processeurs. Au fil du temps, les centres de données deviendront des ensembles de puissance de calcul, de stockage de données et de protocoles qui relient tout, et nous reviendrons à des termes comme « informatique » et « applications ». L'informatique hybride deviendra aussi courante que les services cloud actuels fonctionnant sur des ordinateurs de bureau ou des machines virtuelles, et à un moment donné, nous utiliserons simplement le mot « informatique » pour décrire leur fonctionnement. À un moment donné – et il est probable que les FPGA contribueront à ouvrir la voie à cette ère – nous appellerons à nouveau cela le traitement des données.

L’adoption des FPGA dans les centres de données nécessitera un changement de mentalité. « Lorsque l'on réfléchit aux moyens d'accélérer les applications d'aujourd'hui, il faut aller à l'essentiel : comment elles fonctionnent, quelles ressources sont utilisées, où le temps est passé », explique Bolsens. – Vous devez étudier le problème général que vous essayez de résoudre. De nombreuses applications exécutées dans les centres de données évoluent aujourd'hui pour consommer de grandes quantités de ressources. Prenons par exemple l’apprentissage automatique, qui utilise un grand nombre de nœuds informatiques. Mais lorsque nous parlons d’accélération, nous devons non seulement penser à accélérer le calcul, mais également à accélérer les infrastructures.

Par exemple, dans le type d’opérations d’apprentissage automatique étudiées par Bolsens, environ 50 % du temps est consacré au transfert de données entre des puissances de calcul dispersées, et seule la moitié du temps restant est consacrée aux calculs eux-mêmes.

« C'est là que je pense que le FPGA peut aider, car nous pouvons garantir que les aspects informatiques et de communication de l'application sont optimisés. Et nous pouvons le faire au niveau global de l’infrastructure et au niveau des puces. C'est l'un des grands avantages des FPGA, car ils permettent de créer des réseaux de communication pour des besoins applicatifs spécifiques. Sur la base des modèles typiques de mouvement des données dans les charges de travail d'IA, je ne vois pas la nécessité d'une architecture complexe basée sur des commutateurs. Vous pouvez créer un réseau avec un flux de données important. Il en va de même pour les tâches de formation des réseaux neuronaux : vous pouvez créer un réseau maillé avec des tailles de paquets qui s'adaptent à une tâche spécifique. À l'aide d'un FPGA, les protocoles de transfert de données et les topologies de circuits peuvent être mis à l'échelle et adaptés très précisément à une application spécifique. Et dans le cas de l’apprentissage automatique, il est également clair que nous n’avons pas besoin de nombres à virgule flottante double précision, et nous pouvons également les ajuster.

La différence entre un FPGA et un CPU ou un ASIC personnalisé est que ces derniers sont programmés en usine, et après cela vous ne pouvez plus changer d'avis sur les types de données ou d'éléments calculés, ni sur la nature des données. circuler à travers l’appareil. Les FPGA vous permettent de changer d'avis si les conditions de fonctionnement changent.

Dans le passé, cet avantage avait un coût, lorsque la programmation FPGA n'était pas pour les âmes sensibles. Il est nécessaire d'ouvrir les compilateurs FPGA pour mieux s'intégrer aux outils utilisés par les programmeurs pour écrire des applications CPU parallèles en C, C++ ou Python, et de sous-traiter une partie du travail à des bibliothèques qui accélèrent les procédures sur les FPGA. C'est ce que fait la pile d'apprentissage automatique de Vitis, alimentant les plates-formes de ML telles que Caffe et TensorFlow, avec des bibliothèques permettant d'exécuter des modèles d'IA conventionnels ou d'ajouter des fonctionnalités FPGA à des tâches telles que le transcodage vidéo, la reconnaissance d'objets vidéo et l'analyse de données, la gestion des risques financiers et tout tiers. -bibliothèques de fête.

Ce concept n'est pas très différent du projet CUDA de Nvidia, lancé il y a dix ans, qui confie le calcul parallèle aux accélérateurs GPU, ou de la boîte à outils ROCm d'AMD, ou de la promesse du projet OneAPI d'Intel, qui devrait fonctionner sur différents CPU, GPU et FPGA.

La seule question est de savoir comment tous ces outils seront connectés entre eux pour que chacun puisse programmer à sa guise un ensemble de puissances de calcul. Ceci est important car les FPGA sont devenus plus complexes, bien plus complexes que n’importe lequel des processeurs disponibles. Ils sont fabriqués à l'aide des procédés de fabrication les plus avancés et des technologies d'emballage de puces les plus modernes. Et ils trouveront leur place, car nous ne pouvons plus perdre de temps, d’argent, d’énergie et d’intelligence – ce sont toutes des ressources trop coûteuses.

« Les FPGA offrent des avantages technologiques », explique Bolsens. – Et il ne s’agit pas là d’une simple publicité sur l’adaptabilité et la reconfigurabilité. Dans toutes les applications importantes : apprentissage automatique, analyse de graphiques, trading à grande vitesse, etc. - ils ont la capacité d'adapter à une tâche spécifique non seulement le chemin de distribution des données, mais également l'architecture de la mémoire - la manière dont les données se déplacent au sein de la puce. Les FPGA intègrent également beaucoup plus de mémoire que les autres appareils. Il convient également de garder à l’esprit que si une tâche ne rentre pas dans un seul FPGA, vous pouvez la faire évoluer sur plusieurs puces sans rencontrer les inconvénients qui vous attendent lors de la mise à l’échelle de tâches sur plusieurs CPU ou GPU.

Source: habr.com

Ajouter un commentaire