Du HPC au HPDA
⏱ 5 minDepuis quelques années, les problématiques du calcul haute-performance (HPC) infusent dans la communauté des data scientists, qui entre, à son tour dans l’ère du High Performance Data Analytics (HPDA). Au-delà de l’indispensable puissance de calcul, HPC et HPDA misent aujourd’hui, de pair, sur une optimisation matérielle guidée par les algorithmes. Et vice versa. Entretien avec Gallig Renaud, directeur technique de Hewlett Packard Europe.
Depuis quand le monde du HPC et celui de la science des données se sont-ils trouvé des intérêts communs ?
Gallig Renaud : Cela s’est fait progressivement mais il y a eu un tournant en 2012 avec le renouveau des réseaux neuronaux. Face à la puissance de calcul croissante pour faire tourner leurs algorithmes de deep learning, certains chercheurs ont alors commencé à détourner les processeurs graphiques (GPU) de leurs stations de travail. Comme cela a été le cas une dizaine d’années plus tôt dans le monde du HPC pour accélérer les calculs physiques (NVidia a conçu les premiers GPU en 1999, NDLR). De nouveaux langages de programmation comme Cuda ou OpenCL avaient alors permis de porter les codes sur ce type de composants. Ce qui avait ouvert la voie à la création de kernel, ces noyaux qui gèrent les ressources hétérogènes des serveurs, hautement parallèles. De la même façon, comme cela s’est produit dans le monde du HPC, depuis 3 ou 4 ans, les fabricants ont commencé à optimiser les GPU pour les algorithmes de machine learning, notamment avec des Tensor Core, ces unités de calcul capables de mener en parallèle les multiples opérations matricielles des intelligences artificielles (IA). Il y a des centaines de ces cœurs dans les dernières générations de GPU.
Combien faut-il de GPU pour faire tourner un réseau de neurones ?
Gallig Renaud : Un seul GPU suffit ! Les GPU les plus récents comportent plus de 5000 cœurs, ce qui permet déjà de faire du parallélisme à très grande échelle là où un processeur de calcul CPU de la famille des x86 d’Intel, la règle il y a encore 5 ans, comporte au maximum 64 cœurs. Bien sûr, l’entrainement d’un gros réseau de neurones pourra prendre 2 mois sur un seul GPU. Pour aller plus vite, il faut en utiliser 2 voire 4 ou 8 dans une station de travail ou un serveur dédié ; au-delà, on peut faire travailler plusieurs de ces « boites » en parallèle. Pour le HPC, certains de nos clusters comportent plus de 1000 serveurs, travaillant sur le même code.
Le GPUs est-il la seule technologie envisageable pour faire tourner un réseau de neurones ?
Gallig Renaud : Justement non à partir du moment où la filière découvre le parallélisme et le deep learning distribué, ce qui ouvre le marché à d’autres acteurs tels qu’Intel. L’inférence est une problématique assez particulière. Un GPU pourra certes faire le travail mais il n’est clairement pas la seule alternative. Les FPGA permettent bien souvent d’avoir une latence bien inferieure pour la détection d’objets ou de comportements suspects depuis un flux vidéo temps réel, par exemple. Intel, de son côté, travaille également à l’ajout de nouvelles instructions dans ces processeurs (VNNI) pour accélérer l’inférence et se passer d’accélérateurs, permettant de simplifier l’architecture et de réduire le cout de la solution.
Qu’apportera ce deep learning distribué ?
Gallig Renaud : En répartissant l’apprentissage en parallèle sur plusieurs GPU voire plusieurs serveurs, ou un grand nombre de processeurs, on gagne en rapidité et indirectement en qualité de prédiction de l’intelligence artificielle (travail sur de plus gros jeux de données, nombre de cycles d’apprentissage, …). Là encore, c’est l’utilisation des méthodes tirées du HPC, adaptées au machine learning, comme le programme de parallélisation Horovod 1, qui permet la parallélisation. Développé par Uber Engineering en 2017, il est désormais intégré à tous les frameworks majeurs, ces programmes qui entrainent des IA, TensorFlow, Pytorch, Keras et les autres. Horovod utilise le protocole de communication MPI (Message Passing Interface), une norme conçue en 1993-94 permettant de programmer plusieurs ordinateurs ou plusieurs composants pour les faire travailler en parallèle.
Quelle serait l’étape suivante du HPDA, si l’on se base sur les évolutions du HPC ?
Gallig Renaud : Ce serait de tirer parti d’architectures hétérogènes composées de CPU et d’accélérateurs comme on les appelle (notamment intégrés ou non aux processeurs Intel comme les GPU ou les FPGA) 2 et tout autre type de composants. Le CPU reste l’indispensable chef d’orchestre qui compose avec les accélérateurs, synchronise l’exécution des micro kernels, envoie des données qui vont tourner en parallèle sur les milliers de cœurs de tel ou tel composant puis être ensuite acheminées vers d’autres composants, etc. Pour le HPC, nous travaillons main dans la main d’un côté avec les scientifiques 3 pour comprendre leurs besoins et identifier quel traitement doit tourner sur quel composant, de l’autre avec nos fournisseurs (Intel, AMD, Xilinx…) pour qu’ils développent des architectures adaptées 4. Cela aboutira à de nouveaux designs de serveurs qui exploiteront au mieux les composants matériels que ce soit en termes d’accès à la mémoire, de stockage des données ou de calcul. On peut supposer qu’il en sera de même pour le HPDA.
L’analytics est-il prêt à bénéficier de ces progrès ?
Gallig Renaud : Pas encore… Pour l’instant, très peu d’algorithmes sont optimisés ne serait-ce que pour exploiter le parallélisme ; la plupart des data scientists travaillent toujours sur des stations de travail avec seulement un CPU. C’est important qu’ils aient conscience des évolutions de l’infrastructure informatique sur laquelle tournent leurs algos. Pour en tirer parti au maximum mais aussi pour mieux concevoir leurs algos avec les nouvelles méthodes de programmation. Pour évaluer l’impact de ces aspects matériels, nous lançons un POC fin octobre qui permettra de tester le parallélisme sur certains algorithmes de l’ENS Paris Saclay, optimisés du point de vue logiciel pour un cas d’usage bien précis : nous comparerons les résultats sur un cluster à base de CPU à Grenoble et un autre à base de CPU et GPU aux États-Unis. Cela devrait permettre d’apporter une optimisation matérielle.
Quelle sera l’étape suivante pour le HPDA ?
Gallig Renaud : Elle se profile déjà. Depuis quelques années, de nombreuses start-ups comme Cerebras Systems ou Graphcore créent des dizaines d’architectures matérielles spécifiques à base de puces électroniques (ASIC) conçues pour un calcul donné d’un algorithme spécifique et seulement celui-ci. Pour évoquer cette multiplication subite de composants, on parle même d’explosion cambrienne, en référence à l’apparition, il y a 525 millions d’années, de très nombreux organismes multicellulaires là où jusqu’alors régnaient seulement des organismes unicellulaires. Nous suivons de près le développement de ces composants que nous intégrons si besoin dans nos plateformes pour accélérer le processing.
D’une façon ou d’une autre, on semble donc s’orienter vers des architectures spécifiques optimisées pour entrainer des IA ?
Gallig Renaud : Effectivement. Mais pour éviter de limiter un algo à une machine, de nouvelles fabriques se profilent, génériques mais à base de multiples composants interconnectés avec lesquels chaque algorithme composera à la demande sa propre architecture. Nous y travaillons depuis 2008 dans le cadre d’un consortium de 70 participants baptisé Gen-Z 5. Cette plateforme pourra comporter jusqu’à 268 millions de composants, CPU, GPU, FPGA, Asics, mémoire persistante, etc. Quand un algo démarrera, il sera capable de s’attribuer lui-même tel ou tel composant, le plus adapté à telle étape de traitement : par exemple 1000 FPGA pour du preprocessing en parallèle puis du processing sur des puces Graphcore ou des GPU, etc. Le consortium oeuvre actuellement sur la version 1.1 de Gen-Z et nous travaillons actuellement sur le switch Gen-Z permettant d’interconnecter les différents composants, un point clé pour que ces nouvelles fabriques tiennent toutes leurs promesses. Tant pour le HPC que pour le HPDA. Voire à terme pour les télécommunications ou les smart cities.
[1]https://www.top500.org/features/content/the-intersection-of-ai-hpc-and-hpda-how-next-generation-workflows-will-drive-tomorrows-breakthroughs/
[2]https://www.enterpriseai.news/2019/04/10/intel-extends-fpga-ecosystem-edge-network-data-center/
[3]https://www.hpcwire.com/2019/04/29/intel-unified-clusters-bring-together-ai-analytic-and-traditional-hpc-workloads/
[4]https://insidebigdata.com/2019/07/22/converged-hpc-clusters/
[5]https://genzconsortium.org/
Propos recueillis par Elisa Villa