Inévitabilité de la pénétration du FPGA dans les centres de données

image

Vous n'avez pas besoin d'être développeur de puces pour programmer FPGA, vous n'avez pas besoin d'être programmeur C ++ pour écrire du code Java. Cependant, dans les deux cas, ce ne sera probablement pas superflu.

L'objectif de la commercialisation des deux technologies, Java et FPGA, est de réfuter la dernière déclaration. La bonne nouvelle pour les FPGA est qu'avec l'utilisation de niveaux d'abstraction et d'outils adaptés 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 spécial Plus facile.

L'incroyable rapidité de leur création se manifeste dans le fait que juste au moment où le processeur ne pouvait 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é en offrant vitesse, faible latence, capacités réseau et mémoire - hétérogènes Capacités informatiques des SoC FPGA modernes, qui sont des systèmes informatiques presque complets. Cependant, les FPGA se combinent avec succès avec d'autres appareils dans des systèmes hybrides et, à notre avis, commencent tout juste à trouver leur juste place dans la hiérarchie de l'informatique.

Nous avons donc organisé la prochaine plate-forme FPGA à San Jose le 22 janvier. Naturellement, Xilinx est l'un des principaux fournisseurs de FPGA dans le monde et un pionnier dans ce domaine. Ivo Bolsens, vice-président principal et directeur technique de Xilinx, a fait une présentation lors de la conférence et nous a fait part de ses réflexions aujourd'hui sur la façon dont Xilinx aide à créer des systèmes informatiques modifiables pour les centres de données.

Les architectes système et les programmeurs ont mis suffisamment de temps pour arriver à un centre de données hétérogène, qui présentera différents types de capacités informatiques pour résoudre les problèmes informatiques, de stockage et de mise en réseau. Cela semble nécessaire du fait que suivre la loi de Moore en utilisant divers CMOS devient de plus en plus difficile. Alors que notre langage est toujours lié au CPU, et nous parlons toujours d '"accélération d'application", se référant à l'amélioration des programmes par rapport à ce qui peut être fait sur le CPU seul. Après un certain temps, les centres de données se transformeront en ensembles de puissance de calcul, d'entreposage de données et de protocoles reliant tout ensemble, et nous reviendrons à des termes tels que «informatique» et «applications». L'informatique hybride sera la même que les services cloud d'aujourd'hui,travaillant sur la base de machines conventionnelles ou virtuelles, et à un moment donné, nous utiliserons simplement le mot «informatique» pour décrire leur travail. À un moment donné - et probablement l'avènement de cette ère sera activement facilité par le FPGA - nous l'appellerons à nouveau le traitement de données.

Pour implémenter FPGA dans les centres de données, vous devez changer votre état d'esprit. «Lorsque vous réfléchissez aux moyens d'accélérer les applications d'aujourd'hui, vous devez aller au fond de leur fonctionnement, quelles ressources sont utilisées, ce qui prend du temps», 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 sont aujourd'hui évolutives, capturant un grand nombre de ressources. Prenez l'apprentissage automatique, par exemple, en utilisant un grand nombre de nœuds de calcul. Mais en parlant d'accélération, nous devons penser non seulement à accélérer l'informatique, mais aussi à accélérer l'infrastructure. »

Par exemple, dans les opérations d'apprentissage automatique que Bolsens a étudiées dans la pratique, environ 50% du temps est consacré au transfert de données entre la puissance de calcul dispersée, et seule la moitié restante du temps est gaspillée pour les calculs eux-mêmes.

«C'est ici, me semble-t-il, que FPGA pourra aider, puisque nous pouvons fournir l'optimisation à la fois des aspects informatiques et des aspects de transfert de données pour l'application. Et nous pouvons le faire au niveau de l'infrastructure générale et au niveau de la puce. C'est l'un des grands avantages des FPGA qui vous permettent de créer des réseaux de communication pour les besoins spécifiques de l'application. En observant les schémas typiques de mouvement des données dans les tâches liées au travail de l'intelligence artificielle, 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 grand flux de données. La même chose s'applique aux tâches de formation des réseaux de neurones - vous pouvez créer un réseau maillé avec des tailles de paquets qui s'adaptent à une tâche spécifique. Grâce au FPGA, vous pouvez adapter et affiner les protocoles de transfert de données et la topologie des circuits pour 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 l'ajuster. »

La différence entre FPGA et CPU ou ASIC spécialisé est que ces derniers sont programmés pendant la production, et après cela, vous ne pouvez pas changer d'avis sur les types de données calculées ou les éléments calculés, ou sur la nature du flux de données traversant l'appareil. Les FPGA vous permettent de changer d'avis si les conditions de travail changent.

Dans le passé, cet avantage était coûteux lorsque la programmation pour FPGA n'était pas destinée aux faibles de cœur. Vous devez ouvrir des compilateurs pour les FPGA afin qu'ils s'intègrent mieux avec les outils utilisés par les programmeurs pour créer des applications informatiques parallèles pour les CPU en C, C ++ ou Python, et confier une partie du travail aux bibliothèques qui accélèrent les procédures sur les FPGA. C'est ce que la pile d'apprentissage automatique Vitis, qui est à la base de plates-formes pour MO comme Caffe et TensorFlow, et qui possède des bibliothèques pour lancer des modèles d'IA ordinaires ou ajouter des capacités FPGA à des tâches telles que le transcodage vidéo, la reconnaissance d'objets sur vidéo, l'analyse de données, est engagée dans ce , la gestion des risques financiers et les bibliothèques tierces.

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

La seule question est de savoir comment tous ces outils seront connectés ensemble afin que n'importe qui puisse programmer un ensemble de puissance de calcul à sa discrétion. Ceci est important car les FPGA sont devenus plus complexes, beaucoup plus complexes que n'importe lequel des CPU disponibles. Ils sont fabriqués avec les processus technologiques les plus avancés et à l'aide des technologies d'emballage de puces les plus modernes. Et ils trouveront leur créneau, car nous ne pouvons plus perdre de temps, d'argent, d'énergie et d'intelligence - toutes ces ressources sont trop chères.

«Le FPGA offre des avantages technologiques», explique Bolsens. - Et ce n'est pas seulement de la publicité ordinaire sur l'adaptabilité et la réadaptation. Dans toutes les applications importantes - apprentissage automatique, analyse graphique, trading à grande vitesse, etc. - ils ont la possibilité de s'adapter à une tâche spécifique non seulement le chemin de distribution des données, mais aussi l'architecture de la mémoire - la façon dont les données se déplacent dans la puce. Et FPGA a beaucoup plus de mémoire intégrée que les autres appareils. Il convient également de noter que si la tâche ne tient pas dans un FPGA, vous pouvez la mettre à l'échelle sur plusieurs puces sans avoir à faire face aux inconvénients qui vous attendent lors de la mise à l'échelle des tâches sur plusieurs CPU ou GPU. »

Source: https://habr.com/ru/post/undefined/


All Articles