NVIDIA détaille la version PCIe du Tesla V100

Quelques mois après la première annonce de ses processeurs graphiques pour le calcul intensif Tesla V100, NVIDIA dévoile les derniers détails sur la version PCIe de ces cartes. L’annonce précédente portait uniquement sur les modules SXM2, un format propriétaire nécessaire notamment pour le bus NVLink. Les grandes lignes de Volta sont déjà connues : ces puces de 815 mm² sont fabriquées avec un procédé spécifique de TSCM, le 12FFN, une variante du 12 nm ; l’architecture des cœurs fait place à des unités spécifiques aux traitements tensoriels, les caches L1 sont unifiés au sein d’un multiprocesseur de flux.

La version PCIe de ces cartes, certes plus standard, est quelque peu limitée par rapport au format SXM2 : la puissance délivrable est moindre (250 W au lieu de 300 W), ce qui limite de facto la fréquence des processeurs graphiques (qui passe de 1455 à 1370 MHz, soit une perte d’approximativement six pour cent). La puissance de calcul est donc aussi en baisse : au plus vingt-huit téraflops en demi-précision (au lieu de trente), par exemple. Le processeur en lui-même est identique, avec le même nombre de cœurs CUDA par exemple (5376). Cependant, la diminution de puissance de calcul n’est pas directement proportionnelle à la diminution d’énergie consommée : l’efficacité énergétique augmente donc (de cent gigaflops par watt à cent douze).

Contrairement à la génération Pascal (P100), ces processeurs spécifiquement prévus pour le calcul intensif ne seront pas déclinés en une gamme : le P100 existait en versions seize et douze gigaoctets de mémoire, le V100 n’existera qu’en version seize gigaoctets. Cela est probablement dû au fait que NVIDIA maîtrise mieux les processus de fabrication de puces avec interposeur (requis pour une mémoire de type HBM2) — ce qui diminue le taux de puces partiellement mal formées — et que la production de mémoire HBM2 a augmenté en volume.

On attend les premières cartes PCIe pour la fin de l’année, notamment intégrées dans des systèmes de HP Entreprise.

Source : NVIDIA Formally Announces PCIe Tesla V100: Available Later This Year.

Un processeur Intel Kaby Lake remarqué avec une carte graphique AMD embarquée

La rumeur courait, elle semble se confirmer. SiSoft Sandra est un logiciel qui donne bon nombre d’informations sur les composants d’un ordinateur. Pour ce faire, il se base en grande partie sur une base de données, qui est une source privilégiée d’informations pour les prochains composants à venir sur le marché. Cette fois, l’analyse a montré qu’Intel a en stock un processeur de génération Kaby Lake avec une carte graphique signée AMD intégrée, bien plus puissante que ce qu’Intel est actuellement capable de produire.

En effet, une entrée montre un processeur avec une puce graphique de neuvième génération — jusque-là, rien de neuf —, mais composée de 1720 SP, la nomenclature d’AMD pour désigner les cœurs de ses cartes graphiques (Intel utilise plutôt EU). Ils seraient cadencés à un gigahertz, ce qui correspondrait à un GPU de gamme moyenne (le nombre de cœurs aurait pu faire espérer mieux). Élément supplémentaire, la référence du processeur Intel correspond partiellement à une référence de carte AMD (694C). On s’attendrait donc à une performance de l’ordre de trois téraflops pour cette partie graphique (ce qui n’est pas rien, sachant qu’elle est intégrée au processeur).

Une question reste en suspens : pour quel marché ce processeur serait-il destiné ? Les utilisateurs les plus exigeants préfèrent déjà utiliser une carte graphique externe plutôt que celle intégrée à leur processeur, malgré leur augmentation de performance. La situation est cependant différente dans le monde des ordinateurs portables, où la consommation énergétique est nettement plus importante. Apple pourrait être un client, pour proposer des ordinateurs portables avec une très faible consommation (la carte graphique étant intégrée au processeur), mais avec une puissance plus que décente. Apple est souvent cité, puisque cette firme a un goût particulier pour les processeurs spécifiquement conçus pour elle — mais rien n’empêcherait Intel de vendre ces puces à d’autres, a priori.

Source : Intel Kaby Lake Processor With AMD Graphics Core Spotted On SiSoft Sandra – 1720 Stream Processors Clocked At 1 GHz For Peak Performance of 3.4 TFLOPs.

Les États-Unis n’ont plus de superordinateur dans le top 3 mondial

La situation est inédite depuis 1996 : les États-Unis ne classent plus le moindre superordinateur dans le top 3 mondial. En effet, la liste des superordinateurs les plus puissants de juin 2017 montre que la Suisse a, grâce à la mise à jour de son Piz Daint, détrôné Titan à la troisième place. Les deux premières restent occupées par la Chine, avec TaihuLight (nonante-trois pétaflops — nonante-trois millions de milliards d’opérations en virgule flottante par seconde —, premier depuis juin 2016) et Tianhe-2 (trente-quatre pétaflops, passé de la première place en juin 2013 à la deuxième avec l’arrivée de TaihuLight).

Le superordinateur hébergé à ETH Zürich a plus que doublé sa puissance pour maintenant atteindre 19,6 pétaflops, grâce à de nouveaux cabinets Cray XC50. Le financement de quarante millions de francs suisses (trente-sept millions d’euros) a servi au remplacement des machines avec des GPU NVIDIA plus anciens (des cartes Tesla K20X) avec la toute dernière génération Pascal (P100).

Le gain ne se mesure pas qu’en puissance de calcul, mais également en consommation énergétique : Piz Daint consomme quatre fois moins que Titan (2,3 MW contre 8,2 pour Titan), avec une différence de puissance de calcul d’à peine deux pétaflops (Titan fournit dix-sept pétaflops de puissance de calcul). Selon la manière d’utiliser le superordinateur, il peut monter jusqu’à 10,4 gigaflops par watt consommé — pas la plus haute efficacité énergétique, mais sûrement à cette échelle.

Ainsi, Piz Daint est composé de deux types de nœuds de calcul. 5320 nœuds XC50 sont équipés avec des processeurs Intel de génération Haswell (Xeon E5-2690 v3, deux par nœud) et un accélérateur NVIDIA Tesla P100 par nœud. 1430 nœuds XC40 ont été conservés et ne possèdent pas d’accélérateur — ils possèdent par contre deux processeurs d’une génération plus récente, Broadwell (Xeon E5-2695 v4).

Outre la partie calcul pure, les travaux sur Piz Daint ont servi à déployer une nouvelle technologie de Cray, DataWarp, pour quadrupler la bande passante envers la zone de stockage à long terme. En pratique, il devient donc plus facile pour les utilisateurs du système d’effectuer des simulations (matériaux, physique, géophysique, chimie, climat, météo, etc.) en parallèle plutôt que les unes après les autres.

Au contraire de la plupart des organismes utilisant des superordinateurs, le CSCS (en charge de Piz Daint) a très vite commencé à utiliser des GPU pour les calculs (dès 2010), de telle sorte que la majorité des calculs effectués le sont sur les accélérateurs disponibles (alors que, au début, peu de machines en étaient équipées).

Plus bas dans la liste, après le top 10 (peu altéré, si ce n’est les investissements du CSCS dans Piz Daint), on constate une augmentation de la puissance moyenne des machines — mais aussi de leur efficacité énergétique. Ils utilisent de plus en plus d’accélérateurs pour y arriver : généralement, soit des NVIDIA Tesla, soit des Intel Xeon Phi, très rarement les deux. Néanmoins, pour mettre les choses en perspective, la machine la plus puissante du top 500, la Chinoise TaihuLight, fournit 12,5 % de la puissance totale.

Sources : Swiss Deploy World’s Fastest GPU-Powered Supercomputer, U.S. Slips in New Top500 Supercomputer Ranking.

Qt 5.10 pourra créer des documents PDF/A

Le format PDF est utilisé de manière assez universelle pour échanger des documents, au point qu’une version spécifique à l’archivage a été créée : PDF/A. Son succès est tel que certaines institutions requièrent des PDF à ce format pour tout archivage électronique. Cette version correspond à la norme PDF épurée d’une série de fonctionnalités plus complexes, afin de garantir que le rendu soit constant à travers les implémentations : pas de contenu dynamique (JavaScript, audio, vidéo), pas de contenu externe (comme des polices non embarquées).

Qt, de son côté, peut générer des fichiers PDF depuis sa version 4.1, grâce à la classe QPrinter, en définissant son format de sortie à QPrinter::PdfFormat, qui correspond à la norme PDF 1.4. On peut ainsi ajouter du texte dans le fichier PDF de sortie, qui est stocké sous la forme de caractères (ce qui permet une recherche à travers le document et un rendu décent peu importe le facteur de zoom), mais aussi des images (qui correspondront à des images aussi dans le fichier PDF, avec les inconvénients associés : lors d’un zoom, la qualité se dégrade).

La version de PDF/A la plus souvent requise est PDF/A-1b et Qt 5.10 pourra générer des fichiers à ce format. Comme PDF/A-1b est basé sur PDF 1.4, les modifications à apporter étaient assez minimes. Cependant, certaines contraintes ont dû être ajoutées : les images ne peuvent pas inclure de transparence. Deux autres contraintes ne sont pas encore implémentées : les métadonnées doivent être écrites au format XMP et tout profil colorimétrique ICC doit être embarqué dans le fichier PDF.

Pour choisir le niveau de compatibilité PDF, une propriété de QPainter a été ajoutée : pdfVersion, qui peut prendre les valeurs PdfVersion_1_4 (pour obtenir le même résultat que précédemment) ou PdfVersion_A1b (pour exploiter le nouveau code).

Source : Creating PDF/A documents with Qt.

Qt 3D se dotera d’un moteur de rendu Vulkan

Qt 5.10 arrivera, fin d’année, avec une première gestion de Vulkan, c’est-à-dire quelques classes et fonctions pour aider à intégrer une interface codée en Vulkan dans une application Qt. Les développements côté Vulkan ne s’arrêtent cependant pas là en ce qui concerne Qt 3D : en effet, des développeurs de KDAB (à l’origine du Qt 3D actuel) travaillent sur un moteur de rendu basé sur Vulkan pour Qt 3D. Ces efforts sont pour le moment assez limités et toujours en cours, mais ont le mérite d’exister.

Aucune date n’est avancée jusqu’à présent, mais on peut être raisonnablement sûr que le projet aboutira. En effet, l’architecture de Qt 3D est spécifiquement prévue pour permettre des optimisations par rapport à l’API utilisée pour le rendu, grâce à son graphe de trame. De plus, un moteur de rendu Vulkan permettrait, par rapport à son équivalent OpenGL, de libérer quelque peu le processeur de certaines tâches à effectuer, de là limiter la consommation énergétique et augmenter fortement la performance dans des scénarios comme les applications embarquées, actuel cheval de bataille de Qt.

Voir le code actuellement proposé.

Sortie de GammaRay 2.8

La version 2.8 de GammaRay, l’outil d’introspection pour Qt, vient de sortir. Son objectif est de montrer, dans une application, en direct, le comportement du code Qt et de ses structures de données spécifiques. Cette nouvelle version s’est focalisée sur Qt Quick, avec des outils pour gérer les dispositions et Qt Quick Controls 2 (voir l’image ci-dessous) ; plus expérimental, GammaRay offre des possibilités d’analyse du comportement du moteur de rendu logiciel. Par ailleurs, le mode de débogage à distance a été fortement optimisé : dans les versions précédentes, il pouvait sans problème saturer un lien réseau à cent mégabits par seconde — ce qui est dommageable dans l’embarqué. Cette nouvelle version ajoute aussi un navigateur de fuseaux horaires.

Le code C++ créant les QObject est maintenant directement lié à GammaRay, ce qui permet d’ouvrir le fichier source à l’endroit où l’objet inspecté a été instancié. Cette fonctionnalité était autrefois réservée aux projets Qt Quick ; actuellement, elle n’est disponible que sous Linux et requiert (tout comme un débogueur traditionnel) l’accès aux informations de débogage.

Avec diverses améliorations dans la manière de gérer le cycle de vies objets, le navigateur de métaobjet peut montrer des statistiques précises pour les types définis dynamiquement (ce qui est très courant avec Qt Quick et Qt SCXML). Cela facilite la recherche de problèmes dans la création d’objets potentiellement très lourds mais à la durée de vie courte dans les applications Qt Quick.

Source : GammaRay 2.8.0 Release.

La nouvelle structure d’interconnexion des cœurs d’Intel est maillée

Les derniers processeurs d’Intel, tant pour le grand public (gamme i9) que pour les entreprises (Xeon), proposent un très grand nombre de cœurs : les i9 montent jusque dix-huit cœurs sur une même puce, les Xeon vingt-huit. Cependant, à l’intérieur de chaque puce, les cœurs étaient jusqu’il y a peu connectés de la même manière qu’en 2008, avec une architecture circulaire prévue pour huit cœurs au plus. Cette dernière faisait sentir ses limites, tant en termes de latence que de bande passante ou de consommation énergétique. C’est pourquoi la génération qui arrive très bientôt sur le marché profitera d’un changement très profond : cet anneau est remplacé par des mailles. Ce changement est annoncé plus tardivement qu’AMD, dont l’Infinity Fabric avait été annoncé début 2016, bien avant la confirmation des plans de processeurs de trente-deux cœurs et plus.

En 2008, Intel lance une nouvelle gamme de processeurs grand public sous la marque Core i, avec une révolution : la présence de plusieurs cœurs. Désormais, il faut donc partager le contrôleur mémoire, les accès au matériel (lignes PCIe et autres), etc. entre plusieurs unités de calcul. Une solution simple et relativement efficace est de relier tous ces éléments dans un anneau (inspiré des premiers réseaux informatiques). Pour limiter les délais, celui-ci est doublé : un anneau dans chaque sens. Chacun des éléments y est connecté, ce qui permet à tous les cœurs d’accéder à tous les éléments importants.

Cependant, au vu de la fréquence des processeurs, on ne peut pas considérer que l’information se propage infiniment vite. Par conséquent, pour assurer une certaine synchronisation du signal, les données ne peuvent se propager qu’un élément de l’anneau plus loin par coup d’horloge. Chaque cœur y est connecté indépendamment, mais tous les éléments ne sont pas logés à la même enseigne : par exemple, les accès au matériel externe doivent se partager un point d’accès à l’anneau.

S’il faut connecter plus de cœurs, les transmissions deviennent bien trop lentes, vu le nombre d’éléments connectés à l’anneau : si l’envoi d’un paquet d’information au cœur voisin peut se faire en un coup d’horloge, le plus éloigné peut prendre une dizaine coups, pour huit cœurs ; avec une vingtaine de cœurs, cette solution n’est pas adaptée. Dans ce cas, l’anneau peut être doublé, avec une architecture d’interconnexion des deux anneaux. Chaque anneau peut avoir son propre contrôleur mémoire, pour éviter de ralentir ces accès — nettement plus fréquents que les échanges entre cœurs. Néanmoins, la communication entre deux cœurs peut prendre nettement plus de temps, si chacun des deux cœurs est dans son propre anneau et loin des interconnexions.

Cette architecture ne peut plus s’adapter aux processeurs avec un grand nombre de cœurs sans limiter leur performance. Pour cette génération à venir, l’anneau a complètement disparu : maintenant, tous les éléments sont reliés dans une grille, la communication peut se faire selon un bien plus grand nombre de chemins (si certains sont déjà très chargés). De telle sorte, la latence peut être fortement réduite ; vu le nombre de liens supplémentaires, la bande passante augmente également.

Les mêmes inégalités que précédemment sont répétées, mais amoindries : un cœur proche du contrôleur mémoire aura accès nettement plus rapidement à la mémoire qu’un cœur en plein milieu de la grille. Ainsi, un cœur situé au centre aura intérêt à collaborer avec les cœurs voisins, tandis que ceux proches des contrôleurs auront intérêt à préparer l’information pour les autres cœurs. Il n’y a néanmoins plus d’intérêt à communiquer avec les cœurs dans le même anneau.

Par rapport à la génération précédente, cependant, on peut positionner nettement plus de contrôleurs mémoire sur les côtés (la structure en anneaux était limitée à un contrôleur par anneau) : par exemple, les Xeon à vingt-huit cœurs en auront trois de chaque côté. En effet, ajouter des points d’arrêt dans la grille n’augmente pas les délais pour toutes les communications. Même chose pour les accès au matériel extérieur : ces Xeon auront droit à deux points d’accès pour les lignes PCIe, ce qui augmentera les débits potentiels depuis et vers les cartes graphiques, les SSD ou le réseau (surtout en fibre optique, avec des pointes à cent gigabits par seconde).

Globalement, Intel indique avoir pu diminuer la fréquence et la tension sur les bus de communication de cette grille par rapport aux anneaux tout en augmentant la bande passante totale et en diminuant la latence (sans avancer de chiffre, toutefois) : c’est donc une bonne nouvelle, puisque la consommation “inutile” des processeurs diminuera — cette puissance pourra donc être consommée par les cœurs de calcul directement.

Cette nouvelle architecture s’imposera dans tous les processeurs à venir du fondeur s’ils disposent d’un grand nombre de cœurs — l’architecture en anneau étant largement suffisante pour les processeurs les plus courants, jusque huit cœurs. Elle n’a probablement pas été dictée par AMD, mais est plutôt en développement depuis deux à trois ans — ce qui n’empêche qu’elle tombe très bien, d’un point de vue commercial. Il restera à voir comment elle s’adaptera dans les années à venir avec encore plus de cœurs par puce… mais déjà comment elle fonctionne maintenant, par rapport aux anneaux.

Sources et images : Intel Introduces New Mesh Architecture For Xeon And Skylake-X Processors, Intel Skylake-X and Skylake-SP Mesh Architecture For XCC “Extreme Core Count” CPUs Detailed – Features Higher Efficiency, Higher Bandwidth and Lower Latency.