Le consortium Compute eXpress Link (CXL) a dévoilé aujourd’hui la spécification CXL 3.0, apportant de nouvelles fonctionnalités telles que la prise en charge de l’interface PCIe 6.0, la mise en commun de la mémoire et des capacités de commutation et de structure plus complexes à supporter. Dans l’ensemble, la nouvelle spécification prendra en charge jusqu’à deux fois la bande passante des révisions récentes sans ajouter de latence, tout en maintenant la rétrocompatibilité avec les versions précédentes de la spécification. La nouvelle spécification intervient alors qu’OpenCAPI, le dernier concours ouvert significatif dans les guerres d’interconnexion CPU, a annoncé hier qu’il apporterait sa spécification au consortium CXL, laissant CXL comme la voie à suivre pour l’industrie.
Pour rappel, la spécification CXL est une norme industrielle ouverte qui fournit une interconnexion cohérente du cache entre les CPU et les accélérateurs, comme les GPU, les périphériques d’E/S intelligents, comme les DPU, et diverses variantes de DDR4/DDR5 et de mémoires persistantes. L’interconnexion permet au processeur de fonctionner sur les mêmes régions de mémoire que les appareils connectés, améliorant ainsi les performances et l’efficacité énergétique tout en réduisant la complexité du logiciel et le déplacement des données.
Tous les principaux fabricants de puces ont adopté la spécification, avec les prochains processeurs Genoa d’AMD et les Sapphire Rapids d’Intel prenant en charge la révision 1.1 (mises en garde pour ce dernier). Nvidia, Arm et un grand nombre de fabricants de mémoire, d’hyperscalers et d’OEM se sont également joints.
La nouvelle spécification CXL 3.0 apparaît alors que l’industrie s’est enfin et complètement unifiée derrière la norme. Hier, le consortium OpenCAPI a annoncé qu’il transférerait sa spécification concurrente OpenCAPI cohérente avec le cache pour les accélérateurs et sa spécification d’interface mémoire ouverte (OMI) proche de la mémoire attachée en série au consortium CXL. Cela met fin à la dernière compétition significative pour la norme CXL après que le consortium Gen-Z a également été absorbé par CXL plus tôt cette année. De plus, la norme CCIX semble être caduque après que plusieurs de ses partenaires ont hésité et ont choisi de déployer CXL à la place.
CXL 2.0 utilise actuellement le bus PCIe 5.0, mais CXL 3.0 l’amène à PCIe 6.0 pour doubler le débit à 64 GT/s (jusqu’à 256 Go/s de débit pour une connexion x16), mais avec une latence supplémentaire déclarée nulle. CXL 3.0 utilise un nouveau format flit de 256 octets à latence optimisée pour réduire la latence de 2 à 5 ns, conservant ainsi la même latence qu’auparavant.
D’autres améliorations notables incluent la prise en charge de la commutation à plusieurs niveaux pour permettre des topologies de mise en réseau entre les appareils connectés, le partage de mémoire et l’accès direct à la mémoire (DMA) pour la communication peer-to-peer entre les accélérateurs connectés, éliminant ainsi la surcharge du processeur dans certains cas d’utilisation. .
La spécification CXL 2.0 prenait en charge le pool de mémoire pour allouer et désallouer dynamiquement des régions de mémoire à différents hôtes, permettant ainsi à un seul périphérique de stockage d’être subdivisé en plusieurs segments, mais chaque région ne pouvait être attribuée qu’à un seul hôte. CXL 3.0 ajoute le partage de mémoire, qui permet de partager des régions de données entre plusieurs hôtes via la cohérence matérielle. Cela fonctionne en plaçant les données dans le cache de l’hôte avec la cohérence du cache matériel supplémentaire pour garantir que chaque hôte voit les informations les plus à jour.
La spécification CXL divise les appareils en différentes classes : les appareils de type 1 sont des accélérateurs qui manquent de mémoire locale, les appareils de type 2 sont des accélérateurs avec leur propre mémoire (comme les GPU, les FPGA et les ASIC avec DDR ou HBM), et les appareils de type 3 sont constitués de dispositifs de mémoire. . De plus, CXL prend désormais en charge le mélange et l’appariement de ces types de périphériques sur un seul port racine hôte, augmentant considérablement le nombre d’options pour les topologies complexes comme celles que nous abordons ci-dessous.
La spécification mise à jour prend également en charge la messagerie directe peer-to-peer (P2P) entre les périphériques connectés pour supprimer le processeur hôte du chemin de communication, réduisant ainsi la surcharge et la latence. Ce type de connexion permet un nouveau niveau de flexibilité pour la communication accélérateur-mémoire et accélérateur-accélérateur.
La spécification CXL permet désormais de mettre en cascade plusieurs commutateurs dans une seule topologie, augmentant ainsi le nombre d’appareils connectés et la complexité de la structure pour inclure des topologies non arborescentes, comme les architectures Spine/Leaf, maillées et en anneau.
Une nouvelle fonctionnalité de routage basé sur les ports (PBR) fournit un mécanisme d’adressage évolutif qui prend en charge jusqu’à 4 096 nœuds. Chaque nœud peut être l’un des trois types de périphériques existants ou le nouveau périphérique GFAM (Global Fabric Attached Memory). Le périphérique GFAM est un périphérique de mémoire qui peut utiliser le mécanisme PBR pour permettre le partage de mémoire entre les hôtes. Cet appareil prend en charge l’utilisation de différents types de mémoire, comme la mémoire persistante et la DRAM, ensemble dans un seul appareil.
La nouvelle spécification CXL étend considérablement les cas d’utilisation de l’interconnexion pour englober de grands systèmes désagrégés à l’échelle du rack (et peut-être au-delà). Naturellement, ces types de fonctionnalités soulèvent la question de savoir si cela serait faisable à des fins plus centrées sur le stockage, comme la connexion à un appareil de stockage entièrement flash, par exemple, et on nous dit que la spécification a commencé à susciter un certain intérêt pour ceux types d’utilisations également.
Le consortium nous dit également qu’il constate un vif intérêt de la part de ses membres pour l’utilisation de pools de mémoire DDR4 afin d’éviter le coût de la DDR5 dans les serveurs de nouvelle génération. De cette manière, les hyperscalers peuvent utiliser la mémoire DDR4 qu’ils possèdent déjà (et qu’ils auraient autrement rejetée) pour créer de grands pools de mémoire flexibles associés à des puces de serveur DDR5 qui ne peuvent pas accueillir la mémoire DDR4 moins chère. Ce type de flexibilité ne met en évidence qu’un des nombreux avantages de la spécification CXL 3.0, qui sera rendue publique aujourd’hui.