NVIDIA apporte tout son écosystème CUDA aux plateformes ARM

La course pour le premier superordinateur d’un exaflops (un milliard de milliards d’opérations en virgule flottante par seconde) est loin d’avoir vu un vainqueur. Bon nombre de pistes sont explorées pour y arriver, même du côté des architectures : x86 (comme bon nombre de superordinateurs actuels), POWER (architecture d’IBM), ARM, RISC-V… ou autre encore.

Une bonne partie de la puissance de ces supercalculateurs devrait venir d’accélérateurs, comme des cartes graphiques, déjà fort exploitées. NVIDIA possède presque un monopole dans le domaine (22 des 25 superordinateurs les plus économes en énergie sont équipés de matériel NVIDIA) et ses cartes sont entièrement compatibles avec les architectures x86 (la première à être considérée, dès 2008), POWER (le partenariat avec IBM a permis la création du bus NVLink) et ARM (dès 2013 avec CUDA 5.5, notamment pour ses puces Tegra). Cependant, toutes les bibliothèques optimisées ne sont disponibles que pour x86 et POWER, pas pour ARM.

C’est ce que NVIDIA vient d’annocer : toutes les bibliothèques CUDA, y compris CUDA-X AI (le nom-parapluie pour les technologies orientées réseaux neuronaux), ainsi que les compilateurs PGI seront disponibles pour la plateforme ARM, d’ici à la fin de l’année 2019. NVIDIA vise principalement la prochaine génération de superordinateurs, qui auront besoin d’une efficacité énergétique largement supérieure aux normes actuelles : NVIDIA croit que la solution pourrait être ARM.

Source : NVIDIA Brings CUDA to Arm, Enabling New Path to Exascale Supercomputing.

Advertisements

Un coprocesseur orienté optimisation

Bon nombre de sociétés développent des coprocesseurs spécifiquement prévus pour les tâches d’apprentissage dans des réseaux neuronaux profonds. En réalité, il s’agit d’accélérer des opérations du calcul matriciel et des convolutions, qui représentent une part non négligeable du travail à effectuer pour entraîner un réseau neuronal.

Une équipe de chercheurs de Georgia Tech s’est lancée dans une autre direction : accélérer matériellement un algorithme d’optimisation, ADMM (alternating direction method of multipliers). Un problème d’optimisation consiste à trouver le minimum d’une fonction, en respectant certaines contraintes : par exemple, produire une quantité d’énergie donnée en minimisant le coût global. Cette puce serait de plus grande utilité qu’une accélération purement orientée réseaux neuronaux : ADMM est utilisé aussi bien pour l’entraînement de réseaux neuronaux que le routage dans les réseaux ou la reconstructions d’images IRM.

Cet algorithme a une particularité : il cherche à diviser un gros problème d’optimisation en une multitude problèmes bien plus petits. Pour ce faire, il considère les variables les unes après les autres, pas toutes ensemble, pour construire une direction d’amélioration. Ces sous-problèmes, bien plus petits, peuvent être résolus en parallèle pour gagner en temps de calcul, en exploitant par exemple plusieurs machines . L’algorithme est bien connu depuis les années 1980 et n’a cessé d’être utilisé et amélioré.

OPTIMA, la puce développée à Georgia Tech, exploite ces propriétés pour une implémentation très efficace d’ADMM. Par rapport à une implémentation sur GPU, les chercheurs annoncent avoir pu gagner un facteur 4,77 en consommation d’énergie et 4,18 en temps de calcul. La puce est constituée d’un total de quarante-neuf cœurs de calcul, des OPU (optimisation processing unit). Chacun dispose de sa propre mémoire HBM et résout un ou plusieurs sous-problèmes générés par ADMM. La disposition de ces cœurs de calcul est prévue pour faciliter les opérations de communication entre les sous-problèmes.

Source : New Optimization Chip Tackles Machine Learning, 5G Routing.

Les cartes graphiques Intel Xe seront à l’œuvre dans Aurora

Aurora est un futur superordinateur américain qui devrait arriver en production en 2021. Son coût est d’approximativement un demi-milliard de dollars américains. Il est prévu qu’il ouvre à la voie à des superordinateurs d’une puissance totale d’un exaflops (un milliard de milliards d’opérations en virgule flottante par seconde). Dès l’origine, cette machine, commandée auprès de Cray, devait intégrer du matériel Intel : il devait s’agir de coprocesseurs Intel Xeon Phi, mais ces produits ne sont plus développés.

Entre temps, Intel a annoncé son retour en grande pompe sur le marché des cartes graphiques haut de gamme (d’un point de vue des joueurs). Les processeurs correspondants sont prévus pour être utilisés tant comme processeurs graphiques intégrés à faible consommation que comme cartes hauts de gamme (peu importe la consommation tant qu’on a la puissance de calcul)… ou que comme coprocesseurs de calcul intensif.

C’est cette dernière déclinaison qui viendra dans Aurora, avec oneAPI pour en faciliter la programmation. On n’a, pour le moment, aucun détail sur les processeurs qui seront intégrés : il pourrait très bien s’agir de processeurs graphiques intégrés aux Xeon ou de cartes additionnelles ; incidemment, cela veut dire qu’on n’a aucune idée du nombre de ces processeurs graphiques. Par ailleurs, aucun chiffre de performance estimé n’est disponible (sauf pour la machine au complet). Tout ce qu’on en sait vient d’autres annonces d’Intel : processeurs fabriqués en 10 nm, disponibles dès 2020.

Source : Intel’s Xe Graphics Architecture to Power World’s First Exascale Supercomputer.

Sortie de CUDA 10.1

Moins de six mois après la sortie de CUDA 10.0, voici la première version mineure qui apporte une série de nouveautés. Notamment, cuBLASLt est une variante allégée de cuBLAS pour l’algèbre linéaire, spécialement focalisée sur le produit entre matrices (GEMM). Cette bibliothèque propose une API plus flexible que BLAS (une interface qui existe depuis 1990), notamment au niveau de la représentation en mémoire des matrices, peu importe le type des données (notamment en précision réduite, sur huit ou seize bits).

Les solveurs pour les valeurs propres ont également été revisités, avec des améliorations de performance leur permettant d’aller une fois et demi plus vite qu’avant. cuSOLVER propose aussi de nouveaux solveurs pour récupérer un sous-ensemble de valeurs propres (SYEVDX et SYGVDX).

Côté génération de nombres aléatoires, six algorithmes ont été retravaillés (MTGP32, MRG32k3a, Sobol32 et Sobol64), avec une amélioration de performance qui peut monter jusqu’à un facteur quatre ! nvJPEG, une bibliothèque d’encodage et de décodage de fichiers JPEG, accélère fortement les opérations en lots.

Télécharger CUDA 10.1. Voir aussi les notes de version.

Quels réseaux pour les centres informatiques de demain ?

Les besoins en transferts de données explosent au niveau des centres informatiques pour plusieurs raisons : d’un côté, l’augmentation du nombre de requêtes à traiter, de l’autre, de nouvelles tâches à effectuer qui nécessitent de déplacer de grandes quantités de données. Dans cette catégorie, on retrouve notamment toutes les applications de l’apprentissage automatique. Pour faire face à ces évolutions, bon nombre de gestionnaires de centres informatiques font appel à des solutions de stockage logiciel : au lieu d’acheter des solutions de type SAN (storage area network), c’est-à-dire des serveurs et plateformes logicielles spécifiquement prévues pour du stockage à grande échelle (chez HP ou Dell, par exemple), on préfère acheter du matériel plus généraliste et du logiciel spécifique (comme chez Red Hat ou Microsoft). Ainsi, il est plus facile de faire évoluer son stockage, en achetant plus ou moins n’importe quel serveur et en le configurant.

Reste après à gérer le transfert des données à l’intérieur du réseau du centre informatique. Trois solutions existent pour le moment : la plus utilisée pour le stockage, Fibre Channel ; la plus répandue dans les réseaux en général, Ethernet ; la solution de référence pour les superordinateurs, InfiniBand.

Fibre Channel tombe en désuétude, ses évolutions ne semblant plus qu’anecdotiques en comparaison de la concurrence offerte par InfiniBand et Ethernet. L’un de ses avantages clés est l’orientation exclusive vers le stockage : les protocoles déployés sur ce genre de réseau à base de fibre optique permettent d’accéder directement à un bloc donné dans l’espace de stockage. Cependant, ce n’est que cette année que l’on devrait voir un débit à deux cent cinquante-six gigaoctets par seconde, un débit qui devrait quadrupler d’ici à 2029.

En comparaison, Mellanox a développé une série de protocoles qui peuvent transiter dans un réseau Ethernet, sous le nom de ESF (Ethernet storage fabric). Implémentés au niveau des commutateurs Ethernet ainsi que des clients et serveurs, ces derniers rabotent les avantages des réseaux Fibre Channel : accès direct à la mémoire distance (RDMA), échange direct de messages NVMe à destination des disques électroniques (NVMe-oF), codes d’effacement (erasure coding). Ces avancées permettent notamment de décharger les processeurs de certaines tâches liées à la gestion des données, puisqu’elles sont implémentées au niveau du contrôleur réseau (avec RDMA, les paquets ne doivent pas transiter par la pile réseau TCP-IP, par exemple). De plus, avec ESF, on peut transférer directement des fichiers ou des objets, pas seulement des blocs. Par construction, les commutateurs peuvent garantir un très faible niveau de perte de paquets : aucune perte évitable de paquet, notamment en cas de rafale de courte durée.

Pendant ce temps, les débits visés par la norme Ethernet ne cessent d’augmenter. On en est actuellement à cent gigabits par seconde (100GbE), alors que les extensions pour deux cents et quatre cents gigabits par seconde ont été approuvées en 2017 et que le matériel arrive sur le marché : le térabit par seconde (précisément, un térabit et six cents gigabits par seconde) devrait arriver dès 2023. Ces débits pourront s’appliquer à tout réseau Ethernet, qu’il soit généraliste ou utilise des extensions comme Mellanox ESF.

Côté InfiniBand, le débit monte jusque six cents gigabits par seconde en utilisant des liens 12x, normalement le double d’ici à trois ans. Au vu de ses utilisations assez spécifiques dès sa conception, la norme dispose de toutes les extensions nécessaires pour le trafic de type SAN (ne fût-ce que RDMA), mais aussi plus encore. Ainsi, InfiniBand est largement en avance sur les commutateurs intelligents, qui permettent d’effectuer des opérations non triviales sur les flux de données : SHARP (scalable hierarchical agregation and reduction protocol) accélère certaines opérations collectives de MPI, afin d’éviter de transférer trop de données quand l’utilisateur n’en souhaite qu’un résumé.

La technologie existe — qu’est-ce que les gens préfèrent utiliser ? La vente de matériel InfiniBand (surtout fabriqué par Mellanox) n’a pas foncièrement augmenté entre 2015 et 2018. Par contre, la croissance semble venir du côté d’Ethernet.

Source : Ethernet And The Future Of Data Networking.

Huawei présente le Kunpeng 920, le processeur le plus complexe au monde

Huawei a annoncé, lors du salon CES 2019, son prochain processeur pour serveur, le Kunpeng 920. Celui-ci utilise le jeu d’instructions ARMv8, mais est complètement développé par Huawei, sans inspiration d’autres conceptions de processeurs (comme les A76 ou Ares d’ARM).

Outre son origine chinoise, le Kunpeng 920 étonne par ses spécifications et ses chiffres de performance : soixante-quatre cœurs, vingt milliards de transistors, un score SPECint 2006 de 930 sur tous les cœurs. Sur un seul cœur, à 2,6 GHz, sur le même test, il peut monter à dix points par gigahertz (par exemple, le EPYC 7601 d’AMD monte à quatorze points). En nombres à virgule flottante (SPECfp), il obtient un score de huit cents points sur soixante-quatre cœurs (deux EPYC 7601, mille neuf cent quatre-vingt sur deux fois trente-deux cœurs). Ces chiffres sont assez élevés pour la concurrence ARM.

Cependant, le Kunpeng 920 ne sera disponible que sur des produits Huawei : il ne sera pas vendu à l’unité, uniquement intégré à des serveurs Huawei et d’autres équipements. Cela représente un grand changement pour le Chinois, étant donné que, jusqu’à présent, la majorité de leurs produits utilisaient des processeurs x86.

Source : Huawei’s new chip is the most complex CPU ever built.

Non, les accélérateurs ne peuvent pas tout

La mode actuelle, en informatique de haute performance, est de viser des processeurs plus spécifiques pour réaliser des tâches particulières très vite et sans consommer trop d’énergie. Par exemple, les cartes graphiques ne sont “que” des processeurs spécialisés dans certains traitements en parallèle. Plus récemment, les cryptomonnaies ont pu bénéficier de puces qui implémentent spécifiquement les instructions requises et rien d’autre — ou encore l’apprentissage profond, notamment avec les TPU de Google. On y pense moins, mais le décodage du son est toujours effectué par des circuits dédiés (DSP pour le traitement du signal, si ce ne sont pas les codecs eux-mêmes qui sont réalisés en dur). À chaque fois, ces accélérateurs ont permis des gains énormes par rapport à des processeurs généralistes.

Cependant, on ne doit pas trop espérer de gains infinis avec cette technique de déplacer du logiciel vers du matériel : in fine, les accélérateurs aussi sont des processeurs. Ainsi, si la densité de transistors n’augmente pas, ils finiront aussi par atteindre leurs limites. L’amélioration de performance est donc toujours limitée par la technologie, la loi de Moore.

Pour quantifier ce fait, des chercheurs ont analysé les données de milliers de puces accélératrices, pour analyser leur amélioration de performance génération après génération. Ils ont notamment cherché à distinguer la partie due uniquement aux algorithmes implémentés en matériel de celle qui vient de l’amélioration des processus de fabrication. Ils en sont arrivés à définir une quantité adimensionnelle, le “rendement de spécialisation” : ce nombre indique à quel point les capacités des puces s’améliorent indépendamment des transistors disponibles.

Ils ont alors détaillé des puces utilisées pour le décodage de vidéos, le minage de cryptomonnaies, le rendu de jeux vidéos ou l’application de réseaux neuronaux convolutifs. Leur conclusion est sans appel : les améliorations de performance dépendent énormément du nombre de transistors disponibles, les progrès architecturaux sont largement inférieurs.

Source : The Accelerator Wall: Limits of Chip Specialization.