Les Intel Xeon Phi tirent leur révérence

Ils sentaient déjà le sapin depuis août : après avoir arrêté la production de cartes d’extension Xeon Phi, Intel annule la génération Knights Hill, pourtant déjà annoncée en grande pompe. Cela fait suite à une nouvelle stratégie pour atteindre l’échelle de l’exaflops pour les superordinateurs. Les Xeon Phi Knights Hill seront remplacés par “une nouvelle plateforme, une nouvelle microarchitecture spécifiquement prévues pour l’exaflops”.

Cette annonce suit de peu le retard du projet Aurora, un superordinateur du Département de l’Énergie américain qui devait montrer la voie vers l’exaflops à la fin 2018, à grands renforts de Xeon Phi. En octobre, le projet a été retardé à 2021 sans détail autre que la puissance cible passe de cent quatre-vingts pétaflops à mille pétaflops (c’est-à-dire un exaflops). Les explications vont bon train. Peut-être Intel aurait du mal à développer la troisième génération des Xeon Phi, surtout dans l’optique d’atteindre l’exaflops. Peut-être serait-ce la concurrence d’AMD et de ses EPYC. Peut-être le processus de fabrication 10 nm (pour lequel devait être prévus les Knights Hill) a-t-il encore du retard, avec peut-être une intervention du gouvernement américain face à cette annonce de retard. Officiellement, il s’agit de “changements dans la dynamique du marché”, afin d’atteindre dès que possible l’exaflops.

Ceux qui envisageaient de passer aux Xeon Phi sont invités à plutôt regarder du côté des Xeon plus traditionnels. Ils ne correspondent pas du tout au même besoin, toutefois : les Xeon Phi avaient cette particularité d’offrir un très haut niveau de parallélisme (même si les opérations sur chaque cœur sont plutôt lentes). Certains pourraient toutefois lorgner du côté des puces Xeon hybrides Nervana,

La nouvelle plateforme arrivera pour 2021, exactement pour Aurora. Elle inclura probablement des éléments de Nervana pour l’apprentissage profond, puisqu’elle sera prévue pour les applications des mégadonnées et de l’intelligence artificielle.

Source : Intel Dumps Knights Hill, Future of Xeon Phi Product Line Uncertain.

Advertisements

Intel détaille ses possibilités en tant que fondeur, avec des processeurs pour smartphone en 10 nm pour 2018

Samsung et TSMC ne sont plus les seuls gros acteurs sur le marché : comme annoncé, Intel se lance dans la fonderie pour d’autres sociétés, en particulier pour des processeurs ARM. En d’autres termes, Intel recevra des commandes sous la forme de plans de puce à fabriquer. À l’horizon 2018, c’est ainsi le processus 10 nm qui sera disponible, notamment pour des smartphones. Pour diminuer les coûts, le processus 22 nm sera également disponible (il date de 2011), avec d’autres caractéristiques.

Un des objectifs de cette division est de regagner des parts de marché dans le segment mobile, après l’échec des puces x86 dans les téléphones (de nouvelles puces Atom ne sont plus développées). Les clients d’Intel pourront néanmoins faire fabriquer d’autres types de puces, comme des FPGA (au risque d’entrer en concurrence avec sa filiale Altera), des modems ou encore des puces spécialisées pour le HPC.

Deux variantes du 10 nm seront disponibles dans un premier temps : GP, pour la haute performance (comme les processeurs traditionnels) ; HPM, pour le mobile et la faible consommation d’énergie. La production “risquée” devrait débuter au printemps 2018. Deux autres générations sont prévues : en 2019, les GP+ et HPM+ devraient améliorer les fréquences, la consommation et la densité par des modifications incrémentales ; en 2020, les GP++ et HPM++ bénéficieront de couches métalliques repensées, ce qui devrait améliorer la fréquence et l’efficacité énergétique.

Pour d’autres marchés, notamment quand le prix est sous pression, Intel proposera un processus 22FFL, qui baisse la consommation avec une puissance de calcul limitée (par rapport au 10 nm). Deux autres générations sont également prévues.

Du côté ARM, grâce au partenariat avec le concepteur des processeurs, Intel peut proposer des cœurs Cortex-A55 à 2,35 GHz (ce qui ne devrait pas dénoter par rapport à la concurrence). Sur le processus 10HPM, les premières puces de test (des Cortex-A75) peuvent monter à 3,5 GHz, une fréquence très élevée pour des smartphones. Ces cœurs sont disponibles comme des blocs que les clients d’Intel pourront utiliser directement pour concevoir leurs puces.

Source et images : Intel will 10-nm-Smartphone-SoCs ab 2018 produzieren.

Sortie du Movidius Myriad X, la nouvelle génération de processeur pour la vision par ordinateur

Movidius est une compagnie spécialisée dans la conception de processeurs de basse consommation prévus pour la vision par ordinateur et l’apprentissage profond. Elle a été rachetée fin 2016 par Intel. Leur nouveau produit, le Myriad X, annonce une performance dix fois supérieure à la génération précédente (Myriad 2) pour les réseaux neuronaux profonds, à consommation électrique égale (1 W).

Ce qui lui permet d’afficher de tels gains en performance, c’est une unité de calcul spécifique aux réseaux neuronaux, le NCE (neural compute engine), qui peut effectuer jusqu’à mille milliards d’opérations par seconde pour de l’inférence (comme Google, contrairement à Microsoft).

Ensuite, le Myriad X reprend des idées du Myriad 2, comme des processeurs vectoriels programmables : comme dans un FPGA, on peut implémenter ses propres instructions ; ici, les seize cœurs SHAVE (quatre de plus que le Myriad 2) sont forcément vectoriels, c’est-à-dire que la même opération est effectuée sur une série de nombres à la fois.

Également, quelques unités de calcul spécifiques à la vision sont disponibles (conversion de couleurs, convolutions, etc.) ; par rapport au Myriad 2, le X ajoute principalement du matériel pour l’encodage de vidéos en 4K (H.264, H.265 et M/JPEG à 60 Hz) et le calcul du flux optique. En plus, deux cœurs de calcul traditionnels (avec une architecture UltraSPARC) sont disponibles.

Au niveau connectique, un seul processeur peut recevoir jusque huit flux d’images en haute définition (700 Mpx/s) par ses seize lignes MIPI. Il peut aussi se connecter à d’autres Myriad X par PCIe 3.0. On compte aussi une interface USB 3.1 et une Ethernet 10 Gbps. Le contrôleur mémoire gère les puces LPDDR4 ; deux cartes SD peuvent être connectées. Au niveau bas niveau, on compte aussi un bus I²S et quatre bus SPI.

Movidius a été rachetée par Intel après le début de la conception du Myriad X, ce qui explique qu’il est fabriqué par TSMC (sur son processus 16 nm FFC). Le Myriad X ne remplacera pas le 2 dans un avenir proche : ce dernier est actuellement disponible pour moins de dix dollars pièce (alors que le modèle X n’est pas encore disponible en grands volumes).

Source et images : Intel Announces Movidius Myriad X VPU, Featuring ‘Neural Compute Engine’.

Voir aussi : Myriad™ X: Evolving low power VPUs for Deep Neural Networks.

Microsoft dévoile le projet Brainwave pour l’inférence dans les réseaux neuronaux

On ne peut pas dire que les réseaux neuronaux (de préférence profonds) ne soient pas à la mode en intelligence artificielle. Google en a même lancé des processeurs spécifiques pour leur utilisation. Microsoft suit une toute autre voie : utiliser des composants programmables pour gérer la partie inférence, plutôt que des processeurs très spécifiques. Il faut dire que, au vu des utilisations de ces réseaux neuronaux dans les technologies du groupe, il est nécessaire d’investir dans le domaine : Bing les exploite pour comprendre les images, Skype pour la traduction en temps réel, par exemple. Comme les autres grands groupes, Microsoft a aussi lancé son propre outil pour les réseaux neuronaux : Cognitive Toolkit (ex-CNTK).

Depuis 2011, Microsoft déploie, dans son infrastructure infonuagique Azure, des FPGA, c’est-à-dire des circuits logiques programmables (contrairement aux TPU de Google, programmés à l’usine). Contrairement aux processeurs habituels, on peut donc changer le jeu d’instructions de ces circuits à volonté et l’optimiser pour les tâches à effectuer — la contrepartie étant une fréquence plus faible, de l’ordre de 500 MHz pour des FPGA récents et de 700 MHz pour les TPU. Là où Google doit changer ses TPU pour gérer de nouvelles fonctionnalités, Microsoft se contente de reprogrammer ses FPGA.

Les derniers déploiements côté Azure se concentrent sur la dernière itération des FPGA d’Intel (développée avant l’absorption d’Altera) : les Stratix 10, utilisant les processus de fabrication les plus récents d’Intel (14 nm). Le gain de performance par rapport à la génération précédente devrait atteindre un facteur deux.

La configuration de Microsoft sur ces nouveaux FPGA donne effectivement de bien meilleurs résultats que sur les précédents, avec un facteur d’accélération jusque vingt, selon la précision des nombres utilisés. Pour des nombres entiers sur seize bits, par carte, on passe ainsi de 1,4 à 12 Tflops ; sur huit bits, de 2 à 31 Tflops ; sur des nombres à virgule flottante (un encodage spécifique à Microsoft et non standardisé pour le moment, ms-fp8), de 4,5 à 90 Tflops. À titre de comparaison, les derniers processeurs graphiques de NVIDIA (génération Volta) peuvent atteindre 120 Tflops pour des nombres à virgule flottante de seize ou trente-deux bits ; les TPU de Google, 180 Tflops, mais avec une précision inconnue.

Microsoft prétend que sa solution dépasse toute forme de concurrence : leur matériel n’est pas spécifique à un type de réseau neuronal (la plupart des coprocesseurs spécifiques s’orientent vers les réseaux convolutionnels), mais a une performance qui se généralise à tout type de réseau (LSTM, GRU aussi bien que CNN). Il peut être utilisé tant avec leur propre outil (Cognitive Toolkit) que par celui de Google (TensorFlow). La flexibilité matérielle permettra cependant de s’ouvrir à n’importe quel outil (contrairement aux processeurs spécialisés).

L’objectif, “dans un futur proche”, est d’ouvrir cette puissance de calcul à tous les utilisateurs d’Azure pour leurs applications de l’apprentissage profond, même si aucune date précise n’a été donnée : Microsoft prend le temps d’encore améliorer sa solution.

Source et image : Microsoft Takes FPGA-Powered Deep Learning to the Next Level.

Voir aussi : Drilling Into Microsoft’s BrainWave Soft Deep Learning Chip.

Google revient sur les forces et faiblesses de ses TPU

Google investit énormément dans la recherche et le développement de produits basés sur des réseaux neuronaux artificiels profonds (souvent sous une appellation plus générique d'”intelligence artificielle” ou d'”apprentissage automatique”). Ces derniers existent depuis belle lurette (les premières traces d’un réseau neuronal comme modèle de calcul datent de 1959), mais ne sont réellement utilisés à grande échelle que depuis les années 2010, notamment avec l’introduction de la convolution dans la structure des réseaux.

Pour utiliser ces réseaux à très grande échelle, la performance de l’inférence (c’est-à-dire l’utilisation d’un réseau en pratique, par exemple pour déterminer les objets présents dans une image) devient extrêmement importante. C’est pourquoi, dès 2013, Google se lance dans le développement des TPU (tensor processing unit), tout d’abord pour accélérer l’inférence dans ces réseaux — un investissement dans l’avenir, le besoin n’étant pas encore pressant à l’époque.

Plus en détail, cette première génération est spécifiquement prévue pour un produit entre deux matrices de taille 256×256, avec des entiers de huit bits : il s’agit plus de coprocesseurs pour certaines opérations arithmétiques très précises (mais très utiles pour le contexte d’utilisation) que d’un vrai processeur à part entière. Le TPU fonctionne à une fréquence d’à peine 700 MHz, mais elle est largement suffisante pour écraser toute concurrence, avec un pic à 92 téraopérations par seconde. Ces processeurs disposent de deux canaux DDR3 pour l’accès à la mémoire, qui limitent bien souvent la performance du système.

Cependant, un TPU est extrêmement limité dans les opérations qu’il peut effectuer : il ne dispose que de onze instructions (à comparer aux centaines d’instructions disponibles en x86). Ainsi, il est incapable d’effectuer un branchement conditionnel (if), donc des boucles. L’exécution n’est jamais réordonnée (ce qui permet d’utiliser au mieux les circuits d’un processeur plus traditionnel). Beaucoup d’éléments du processeur sont gérés par un logiciel extérieur, celui qui contrôle le TPU.

Les premiers TPU sont arrivés dans les centres informatiques de Google vers 2015, selon les résultats de comparaisons effectuées en laboratoire dès 2013. Ils ont été évalués face aux CPU (Intel, de génération Haswell) et GPU (NVIDIA K80) de l’époque, du matériel de 2014. Les gains étaient nombreux : chaque puce était plus petite et consommait moins (trente fois moins qu’un GPU, quatre-vingts fois moins qu’un CPU : 40 W par TPU), on pouvait donc en mettre nettement plus par serveur. Par contre, les CPU et GPU sont nettement mieux équilibrés : un TPU pêche par manque de bande passante pour l’accès à la mémoire, qui interdit dans bon nombre d’applications d’utiliser l’entièreté de son potentiel de calcul. Cependant, même ainsi, ils dépassent la performance de processeurs plus classiques — mais uniquement pour l’inférence, ces processeurs étant trop rudimentaires pour l’entraînement de tels réseaux neuronaux.

Cette expérience acquise a permis d’améliorer le principe des TPU, afin d’en déployer la deuxième génération cette année. Notamment, pour la mémoire, les deux canaux de mémoire DDR3 ont été remplacés par de la mémoire HBM, comme bon nombre d’accélérateurs actuels. Également, cette nouvelle édition s’oriente vers les nombres à virgule flottante plutôt qu’uniquement des entiers, ce qui permet de l’utiliser pour l’entraînement plutôt qu’uniquement l’inférence. Google n’a pas donné énormément de détails au sujet de la nouvelle itération, notamment pour la comparer au matériel sorti cette année (on pense surtout aux nouveaux GPU NVIDIA, qui incluent un module de calcul spécifiquement prévu pour l’apprentissage profond), ni sur ses pistes pour la troisième génération.

Source et images : Hot Chips: Google TPU Performance Analysis.

Voir aussi : une introduction détaillée au TPU, une analyse poussée des serveurs à base de TPU2.

IBM détaille les améliorations de son z14

Les ordinateurs centraux (mainframes) sont loin d’être morts. Notamment, ils sont souvent utilisés par certaines grandes entreprises pour des transactions à l’échelle mondiale, comme les systèmes des cartes de crédit ou de réservation dans l’aviation. S’ils représentaient la majorité des ordinateurs dans les années 1960, ils sont maintenant relégués à quelques applications de niche et sont de plus en plus optimisés pour ces traitements spécifiques.

C’est dans ce contexte qu’IBM a annoncé, en juillet, sa nouvelle génération de processeurs et machines prévus pour cette utilisation, les z14. Ces derniers ne sont utilisables que dans ce contexte, dans des machines entièrement fabriquées et vendues par IBM. De manière générale, cette nouvelle génération s’oriente sur l’amélioration de la performance, de manière générale, mais aussi pour les applications COBOL (très présentes dans ce type d’environnement), la cryptographie et la compression.

Plus en détail, un tiroir utilise deux types de processeurs différents : les CP (central processor), qui contiennent les cœurs de calcul et les caches jusqu’au troisième niveau, puis le SC, qui contient le quatrième niveau de cache (six cent septante deux mégaoctets !) et l’interconnexion avec les autres tiroirs. Chaque CP contient un total de dix cœurs de calcul (avec SMT), fonctionnant à une fréquence de plus de cinq gigahertz. Chaque tiroir peut contenir jusque huit téraoctets de mémoire. Ces deux types de puces sont complexes à fabriquer. Elles utilisent un processus à 14 nm, mais sur dix-sept couches. Un CP compte sept milliards de transistors, contre dix pour un SC.

Au niveau des améliorations matérielle, IBM a agrandi les caches de chaque CP : chaque cœur aura ainsi un cache L2 pour les instructions de deux mégaoctets, le double pour les données ; le cache L3 est partagé à l’échelle du CP et a une capacité de cent vingt-huit mégaoctets. L’implémentation de ces caches a aussi été profondément retravaillée, principalement pour réduire la latence d’accès et l’espace occupé sur la puce : pour accéder au cache L2, il ne faut plus que huit cycles, c’est-à-dire une nanoseconde et demi.

L’architecture du processeur a également été retravaillée en profondeur, notamment pour offrir un ramasse-miette sans pause à la machine virtuelle Java. Le pipeline a été approfondi, avec une prédiction de branchement asynchrone. COBOL a tendance à effectuer un grand nombre d’opérations arithmétiques en BCD (des nombres décimaux écrits en binaire, chaque chiffre décimal correspondant à quatre bits), ces opérations disposent maintenant d’un jeu d’instructions spécifique.

Côté cryptographique, un accélérateur pour le chiffrement (AES) et le hachage (SHA-3) est intégré, sous le nom de CPCAF. Par rapport au z13, le chiffrement va quatre fois plus vite ; ce rapport monte à six pour SHA-3. Plus précisément, en AES, chaque cœur peut chiffrer des données à un débit de 13,2 Go/s. Un mécanisme spécifique est prévu pour protéger les clés de chiffrement, qui ne seront pas vues par le processeur principal, mais uniquement par le coprocesseur cryptographique : un attaquant ne peut donc pas y accéder facilement.

De même, un accélérateur de compression est intégré, il se focalise sur les algorithmes à base de dictionnaire, plus particulièrement sur des données en quantité réduite (comme des enregistrements dans une base de données). DB2 sera prochainement mis à jour pour en profiter.

Source et images : Hot Chips: IBM’s Next Generation z14 CPU Mainframe.

Voir aussi : IBM z14 Technical Introduction.

PCI Express 5.0 déjà annoncé pour 2019

À peine quelques mois après l’annonce de la fin des travaux sur PCI Express 4.0, voici donc les premières communications sur la version 5.0 du protocole et du bus… dont la version finale est attendue pour 2019 (alors qu’on attend l’arrivée sur le marché de PCIe 4.0 pour la fin 2017) ! Ainsi, la version 4.0 aura eu énormément de retard (deux ans) et ne vivra pas très longtemps. Elle se montrera cependant très utile à de nombreuses applications industrielles (PCI SIG, le groupe de normalisation derrière PCIe, compte pas moins de sept cent cinquante membres), pour lesquelles PCIe 3.0 est une limite — et PCIe 4.0 le sera déjà dans certains cas.

Le retard de PCIe 3.0 peut s’expliquer par une certaine stagnation des besoins : cette version était très adaptée aux besoins de 2010 et des années qui ont suivi. Ce n’est que depuis 2015 que l’on commence à vraiment en sentir les limites : la bande passante disponible n’est plus suffisante. En effet, l’apprentissage profond nécessite de faire transiter de grandes quantités de données vers le processeur graphique ; les SSD sont de plus en plus connectés au processeur par le bus PCIe (grâce au protocole NVMe) au lieu de SATA, ils consomment donc des lignes supplémentaires ; aussi, le réseau est de plus en plus sollicité avec des applications. De nouvelles applications se développent, comme les cartes graphiques externes, qui seront également connectées en PCIe.

PCIe 4.0 est très proche de l’utilisation réelle. Des contrôleurs existent déjà, des cartes d’extension sont d’ores et déjà prévues pour la nouvelle norme : une mise à jour logicielle devrait suffire (à moins d’un changement important de la couche physique qui interviendrait d’ici à la publication définitive de la norme PCIe 4.0).

La nouvelle version doublera à nouveau les débits, pour atteindre les quatre gigaoctets par seconde et par ligne. Ainsi, pour une carte réseau Ethernet à quatre cents gigabits par seconde, les seize lignes pourront fournir un débit maximum suffisant qui ne bridera pas la carte réseau.

Les produits compatibles ne tarderont pas à venir sur le marché : PCIe 4.0 devrait utiliser une fréquence de bus de trente-deux gigahertz, bon nombre de fabricants peuvent déjà fonctionner à vingt-huit gigahertz. La révision 0.3 de la norme est maintenant disponible, la 0.5 devrait faire ses premiers pas à la fin de l’année.

Source : Hot Chips 2017: We’ll See PCIe 4.0 This Year, PCIe 5.0 In 2019.