PCI Express 6.0 attendu pour 2021

Le comité de normalisation de PCI Express (PCIe) enchaîne les annonces : la version 4.0 de la norme d’interconnexion de cartes a été annoncée en 2017 et commence son déploiement ce mois-ci (AMD lance des processeurs compatibles à destination du grand public, certaines de ses cartes graphiques gérant déjà la version 4.0) ; la 5.0 a été finalisée ce mois-ci. La 6.0 devrait doubler la bande passante disponible à l’horizon 2021 (c’est-à-dire soixante-quatre gigatransferts par seconde, soit cent deux cent cinquante-six gigaoctets par seconde sur un port PCIe x16).

Les besoins en bande passante ne cessent d’évoluer dans les applications les plus intensives en calcul, la norme PCI Express se doit de rester à l’avant-plan et de proposer bien assez de bande passante pour ces utilisations. Cela devient de plus en plus important, vu le nombre de technologies construites par-dessus PCIe : NVMe est un protocole implémenté par les SSD par-dessus PCIe ; les protocoles CCIX (cache coherent interconnect for accelerators) et Intel CXL fournissent des interfaces d’interconnexion par-dessus PCIe. Ainsi, toute amélioration de PCIe profite aussi à ces utilisations.

PCIe 6.0 apportera d’énormes nouveautés techniques par rapport aux versions précédentes, tout en gardant la rétrocompatibilité. PCIe 4.0 et 5.0 introduisent déjà des contraintes très fortes au niveau de la synchronisation : pour aller plus vite, PCIe 6.0 changera de modulation, en passant de NRZ à PAM4. La modulation concerne la manière d’encoder des zéros et des uns sur un canal analogique (une tension) : NRZ utilise seulement deux niveaux de tension, PAM4 quatre. Cela permet d’augmenter la quantité de données transférées sans augmenter la fréquence du signal.

PAM4 n’a rien de nouveau. Des variations sont utilisées pour Ethernet (dès la première version à cent mégabits par seconde) ou les signaux de télévision (ATSC, aux États-Unis). Le seul frein à son utilisation pour un bus interne est liée à la complexité accrue pour décoder le signal et au plus faible niveau de bruit tolérable sans faire d’erreur de lecture.

Par conséquent, PCIe 6.0 sera la première version du protocole à utiliser un code correcteur d’erreurs — ce qui est très courant en télécommunications ou même pour le protocole HDMI. En effet, en cas d’erreur de transmission, réémettre les données prendrait trop de temps. L’impact sur la conception de composants PCIe 6.0 est assez direct, vu qu’il faut alors inclure beaucoup plus d’électronique pour décoder le signal (et corriger les erreurs éventuelles).

Source : PCI Express Bandwidth to Be Doubled Again: PCIe 6.0 Announced, Spec to Land in 2021.

Advertisements

Qualcomm s’oriente vers l’architecture RISC-V

De plus en plus de sociétés croient en une nouvelle architecture de processeur, RISC-V, à comparer à x86 (architecture dominante sur nos ordinateurs) et ARM (téléphones portables). Par exemple, Western Digital remplace une bonne partie de ses microcontrôleurs spécifiques par des processeurs RISC-V de conception libre.

Qualcomm est une société bien connue pour ses processeurs ARM, ses modems, moins pour les investissements risqués. Pourtant, la société (par le biais de sa filiale Qualcomm Ventures) a participé à la dernière levée de fonds de SiFive (d’un montant de soixante-cinq millions de dollars), pour la première fois. Cette jeune pousse est en cours de développement de processeurs basés sur l’architecture RISC-V — sur dix-huit mois, la société californienne est passée de quarante employés à plus de quatre cents.

L’objectif de SiFive est de faciliter la conception de processeurs adaptés à diverses tâches, sans avoir besoin de capacités de conception trop avancées — notamment, sans fardeau administratif ou légal pour la gestion de la propriété intellectuelle. À terme, la plateforme développée par SiFive permettra d’entrer une conception RTL (register transfer language), en utilisant des blocs de haut niveau, que des outils SiFive analyseront en détail (disposition des transistors, vérification formelle de la correction, etc.), de la même manière qu’un compilateur transforme un langage de haut niveau (C, C++, etc.) en assembleur — que le programmeur n’a vraiment pas envie de voir, même pas en peinture. Par exemple, pour intégrer un module LPDDR (mémoire) ou USB (bus de communication), inutile de devenir expert dans ces domaines ou d’acheter une licence (et devenir expert en intégration) : on indique juste que l’on souhaite un module LPDDR.

Source : Qualcomm Takes Stake in SiFiveSource.

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.

Un coprocesseur pour accélérer les ramasse-miettes

Un reproche régulièrement fait aux langages comme Java ou C# est que la gestion de la mémoire n’est pas effectuée par le programmeur, contrairement au C ou au C++. Le développement est beaucoup plus simple, au prix de l’ajout d’une pièce très lourde à l’exécution : un ramasse-miettes. Celui-ci cherche régulièrement les bouts de mémoire qui peuvent être libérés car plus utilisés, sans quoi le programme utilise de plus en plus de mémoire et finit par bloquer l’ordinateur. Selon certaines estimations, un programme peut passer jusqu’à une dizaine de pour cent de son temps d’exécution sur le ramasse-miettes ! Certes, cette estimation ne tient pas compte du temps à l’exécution que prendrait une gestion manuelle de la mémoire, mais le chiffre reste intéressant.

Que peut-on faire pour améliorer la situation ? Les processeurs actuels ne sont pas vraiment prévus pour les opération de nettoyage de la mémoire. Une idée est d’ajouter un petit coprocesseur qui exécuterait uniquement le ramasse-miettes. Ce dernier pourrait n’utiliser que peu de transistors et d’énergie, mais aussi s’exécuter en parallèle. Il pourrait aussi être intégré au plus proche de la mémoire, ce qui diminuerait la consommation d’énergie en transfert de données.

Selon les tests effectués (un tel accélérateur intégré à un processeur RocketChip RISC-V), un telle puce pourrait être utilisée pour des ramasse-miettes bloquants ou non. En l’utilisant dans une machine virtuelle Java (JikesRVM), il serait possible d’accélérer les opérations de gestion de la mémoire d’un facteur quatre ! La réduction de consommation d’énergie, avec ce prototype, est de quinze pour cent, en utilisant moins de vingt pour cent de la surface d’un cœur de calcul.

Voir aussi : A Hardware Accelerator for Tracing Garbage Collection.

Source : For Better Computing, Liberate CPUs From Garbage Collection.

Intel confirme l’arrivée de son processus 10 en 2019, le 7 nm en 2021

Intel n’est plus le fleuron de l’industrie des semi-conducteurs : après avoir été dépassé par Samsung en volume produit, après de multiples retards sur ses processus avancés, voici qu’Intel revient sur le devant de la scène. Les annonces effectuées lors de la réunion des investisseurs sont bien plus encourageantes que les dernières fuites : les premiers produits fabriqués sur son processus en 10 nm doivent arriver cette année (des processeurs à basse consommation), les processeurs pour serveur dans la première moitié de 2020.

La production commerciale de processeurs en 7 nm devrait débuter en… 2021, ce qui laisse à peine deux ans entre les deux processus de fabrication. Cette information confirme les dires précédents d’Intel, qui affirmait que les processus en 10 nm et 7 nm étaient développés de manière indépendante (le 10 nm est une évolution des processus existants, le 7 nm apporte la révolution des ultraviolets extrêmes — une technologie que la concurrence utilise aussi). En 2021, Intel aura donc presque rattrapé son retard par rapport à TSMC (la compagnie ayant lancé sa production “risquée” en 5 nm, en volume dès 2020 — le 5 nm de TSMC devant être équivalent au 7 nm d’Intel).

Plus surprenant encore, le premier produit en 7 nm sera… la carte graphique Intel Xe (sa deuxième itération, puisque la première doit sortir en 2020, sur un processus en 10 nm). Ces processeurs graphiques feront donc appel à un processus de fabrication de pointe, ainsi qu’à un interposeur EMIB (pour relier des puces situées à une même hauteur) et Foveros (pour empiler des puces et permettre une communication verticale). Ceci conforte l’hypothèse que ces processeurs ne sont pas conçus de manière monolithique, mais plutôt comme un ensemble de briques à assembler selon le niveau de performance attendu.

Intel a aussi déclaré avoir beaucoup appris de ses déboires en 10 nm : les objectifs n’étaient pas assez clairs, mais à la fois très ambitieux. Le résultat a été des années de retard, mais aussi une nouvelle manière de prévoir des lignes de produits : au lieu d’avoir un processus de fabrication qui évolue assez peu, Intel a eu trois dérivés de son 14 nm — outre la version de base, le 14+ et le 14++. Le même système sera suivi par les prochains processus, tout en étant intégré dans la feuille de route des produits (plutôt que de devoir l’adapter en flux tendu).

D’un point de vue client, on s’attend à avoir un bon nombre de nouveaux processeurs dans les années à venir. Dans la deuxième moitié de l’année, on verra les premiers processeurs Ice Lake (d’abord à basse consommation, donc). Ils apporteront une nouvelle architecture interne et un processeur graphique intégré bien plus puissant. La version SoC (système sur une puce), avec une très basse consommation, fera d’ailleurs appel à Foveros pour une architecture hybride : des cœurs plus puissants, des cœurs à très faible consommation. En 2020, Intel promet de “redéfinir” la mobilité (sans arrière pensée pour le projet Athena, probablement…), avec sa génération Tiger Lake. La carte graphique intégrée sera alors une Intel Xe

Sources et images : Intel Process Technology Update: 10nm Server Products in 1H 2020, Accelerated 7nm in 2021, Intel Details Manufacturing through 2023: 7nm, 7+, 7++, with Next Gen Packaging, Intel Unveils Process Roadmap, 10nm Shipping in June 2019, 7nm in 2021 – Intel 7nm Xe GPUs For Datacenter in 2021, 10nm Xe Consumer GPUs in 2020.

Intel Xe : du lancer de rayons en matériel

Lorsque NVIDIA avait lancé ses Quadro RTX, l’une des révolutions annoncées était l’inclusion de cœurs de calculs spécifiquement prévus pour le lancer de rayons. L’objectif est d’améliorer le rendu des jeux, en simulant précisément le comportement de rayons de lumière dans la scène, une opération très coûteuse en temps.

Pendant ce temps, Intel concrétise ses plans de processeurs graphiques, qui devraient être commercialisés sous l’appellation Xe. La nouveauté la plus récemment annoncée est l’inclusion d’une implémentation matérielle (et pas simplement une implémentation logicielle par-dessus des cœurs de calcul génériques) du lancer de rayons, “dans la feuille de route Xe”. On ne sait pas encore si ces capacités de calcul seront disponibles dès la première génération ou s’il faudra attendre, ni d’ailleurs si toutes les cartes de la gamme Xe en bénéficieront, puisque l’annonce parle assez spécifiquement des cartes pour les centres informatiques…

En parallèle, Intel affiche sa stratégie pour contrer l’autre grande “innovation” de NVIDIA dans ses cartes RTX : des cœurs spécifiquement prévus pour l’inférence dans les réseaux neuronaux. Ceux-ci sont utilisés conjointement avec les cœurs de lancer de rayons pour diminuer le nombre de rayons à simuler (plus précisément, pour éliminer le bruit dû au faible nombre de rayons lancés par rapport aux besoins pour le rendu complet d’une scène). Intel a lancé, dans ses derniers Xeon (techniquement, la “deuxième génération des processeurs Intel Xeon Scalable”), un jeu d’instructions qui affiche le même objectif.

Quand NVIDIA intègre tout dans une même puce (leur gamme étant limitée à des cartes graphiques), Intel souhaite un plus grand monopole, en vendant des cartes graphiques et des processeurs principaux qui se complémentent. Quand NVIDIA est grand amateur de solutions propriétaires (l’élimination du bruit se fait avec GameWorks Ray Tracing, propriétaire — même si certaines briques de GameWorks ont été libérées ; le moteur de lancer de rayons OptiX est toujours propriétaire), Intel propose du logiciel libre (Open Image Denoise est disponible sous licence Apache, tout comme le moteur de lancer de rayons OSPRay).

Source : Intel® Rendering Framework and Intel® XE architecture poised to advance studio workflows.

NVIDIA se relance dans les cartes graphiques avec plusieurs processeurs

Pour l’avancée des processeurs en général, les fabricants de semi-conducteurs semblent converger vers une piste : plus de petites puces, mais fortement intégrées (AMD et Intel, par exemple) — même si l’option inverse, de bien plus grosses puces, pourrait aussi être bénéfique. NVIDIA avait déjà tenté, par le passer, d’intégrer plusieurs processeurs graphiques sur une même carte (comme les GeForce 9800 GX2), vues par l’ordinateur comme deux cartes graphiques distinctes. En cela, leur programmation est relativement ardue, afin d’exploiter leurs propriétés au maximum pour obtenir un gain de performance sérieux (ce qui impose notamment de limiter les communications entre les deux processeurs).

À cause des difficultés que ce schéma imposait, NVIDIA a abandonné cette piste… mais seulement temporairement, selon les résultats d’une équipe de chercheurs de NVIDIA Research. Leur dernier prototype intègre trente-six modules dans un même boîtier, avec un interconnecteur de haute performance. Chacun de ces modules implémente un cœur RISC-V, seize éléments de calcul (PE, processing element), de la mémoire tampon, ainsi que huit liens GRS (ground-referenced signalling) pour une bande passante de cent gigabits par seconde. Ce processeur est prévu pour des tâches de type inférence dans les réseaux neuronaux.

Cette puce n’est pas prévue pour une commercialisation à court terme, mais plutôt pour que NVIDIA se fasse la main avec des technologies qui pourraient se révéler importantes dans les prochaines cartes graphiques, comme des possibilités de mise à l’échelle et la communication entre puces. Ce prototype utilise un réseau en grille pour relier les trente-six modules. Ils communiquent par leurs ports GRS avec une très faible latence. Au niveau de la description des modules, NVIDIA a plongé dans le domaine du OOHLS (object-oriented high-level synthesis), qui propose d’apporter les mêmes avantages en termes d’organisation du code que la programmation orientée objet à la description de puces (en SystemC).

À voir quand des cartes graphiques utiliseront ces techniques pour monter en puissance de calcul.

Source : Nvidia’s 36-module research chip is paving the way to multi-GPU graphics cards.