CXL, c’est quoi ? Une mémoire plus efficace et l’avenir des HCI

CXL illustratie

Le Compute Express Link, CXL pour faire simple, pourrait bouleverser définitivement la façon dont les serveurs et les centres de données sont assemblés. Les derniers processeurs d’AMD et d’Intel supportent déjà la toute nouvelle norme. Que permet exactement le CXL ?

Les derniers processeurs pour centres de données Epyc d’AMD supportent la norme CXL 1.1. Tout comme les puces Xeon Sapphire Rapids d’Intel, une fois que le fabricant a enfin réussi à les faire sortir. Lors du lancement de l’Epyc Genoa, CXL était le centre de l’attention. Presque tous les acteurs majeurs ont parié sur la toute nouvelle norme. CXL, abréviation de Compute Express Link, a le potentiel de devenir la norme pour l’infrastructure hyperconvergée, changeant à jamais la composition des centres de données modernes.

Un grand enthousiasme pour le CXL

CXL est avant tout une norme ouverte. Au départ, la technologie a été proposée principalement par Intel, mais la norme est gérée par le CXL Consortium depuis 2019. Cela inclut à peu près tous ceux qui ont quelque chose à voir avec les micropuces. Il s’agit de concepteurs de puces comme AMD, Ampere, Intel et Arm, de spécialistes de la mémoire comme Samsung et Micron, de fabricants de serveurs comme Dell et HPE et de géants du cloud computing comme Microsoft, Google et Alibaba. Les autres gros joueurs tels qu’IBM, Supermicro et Cisco sont aussi à noter. Autrement dit, CXL est soutenu par l’industrie au sens large.

La norme n’est pas complètement autonome mais est liée à PCI Express. La spécification CXL 1.0 a fait son apparition en 2019 et est liée à PCIe 5.0. CXL 3.0 a été dévoilé cet été et est fusionné avec PCIe 6.0. Cette association avec PCIe suggère déjà l’objectif de la norme : CXL devrait faciliter l’interconnectivité entre les composants matériels d’une manière sans précédent.

Mémoire partagée

Les premières itérations du protocole CXL se concentrent sur la mémoire. La norme permet aux CPU d’accéder à la mémoire partagée, à laquelle peuvent également accéder les accélérateurs, par exemple. La norme CXL garantit la cohérence de la mémoire cache, il n’y a donc aucun problème avec les instructions dans la mémoire cache L1 non partagée.

CXL 1.1, déjà supporté par Intel et bientôt par AMD, permet ainsi d’ajouter de la mémoire supplémentaire à un système via une carte d’extension PCIe. Cette mémoire PCIe doit bien sûr être un peu inférieure à la vraie mémoire DDR5 en termes de performance et de latence, mais d’un autre côté, on peut tout à coup fournir aux serveurs beaucoup plus de mémoire d’une manière beaucoup plus flexible.

Économies substantielles

CXL 2.0 offre quelques fonctionnalités supplémentaires. Cette version de la norme permet d’ajouter un composant à un pool de CPUs. Ainsi, la mémoire peut être partagée par plusieurs CPU dans plusieurs systèmes. Des recherches menées par des universités américaines et Microsoft suggèrent qu’environ la moitié de toutes les machines virtuelles provisionnées n’utilisent pas la moitié de la mémoire qui leur est allouée. Maintenant cette mémoire est bloquée, allouée à un VM qui n’a aucun intérêt pour elle.

Une moitié de toutes les VM n’utilise que la moitié de la mémoire allouée.

Avec CXL, il est possible de mettre de la mémoire dans un pool et de l’allouer dynamiquement. La mémoire inutilisée est ainsi libérée pour d’autres applications. L’étude montre en outre qu’un pool de mémoire peut réduire la quantité de mémoire requise de dix pour cent. Puis, sachant que la DRAM est responsable de jusqu’à la moitié du coût total d’un serveur, la raison d’être de CXL se révèle peu à peu.

HCI 2.0

CXL 3.0 rend les choses vraiment intéressantes. L’implémentation de cette norme n’est pas encore pour demain, mais sa spécification plus avancée lui permet de passer d’une efficacité accrue de la mémoire à la future norme pour les HCI.

En effet, le Compute Express Link est censé évoluer vers une norme globale qui relie les CPU, la mémoire et les accélérateurs tels que les GPU et les FPGA dans un serveur ou même dans un rack. Cela permettrait aux GPU de communiquer entre eux sans que le CPU (ou un DPU) n’intervienne. L’idée est identique à celle de l’HCI : au niveau du rack, le protocole CXL sur PCIe 6.0 devrait garantir que tous les principaux composants d’un serveur sont disponibles au sein d’un pool et peuvent communiquer entre eux rapidement et en toute cohérence.

Cela se fait au niveau du système lui-même. Pour bénéficier au maximum du CXL, il faut un logiciel. En principe, l’hyperviseur y joue un rôle. Grâce à la norme CXL, il peut compiler les ressources nécessaires à une machine virtuelle depuis les composants disponibles dans un rack. Ainsi, toute la mémoire est utilisée d’une manière optimale par un ou plusieurs CPU, combinée avec exactement la quantité d’accélérateurs nécessaire pour la charge de travail exécutée.

Patience

On a encore du pain sur la planche. Pour l’instant, CXL 1.1 est la norme. Cette norme ne causera pas encore un glissement de terrain, mais elle permet déjà aux fabricants, aux producteurs de logiciels et aux fournisseurs de cloud d’essayer. Avec CXL 2.0, des applications plus avancées centrées sur la mémoire suivront ensuite, tandis que CXL 3.0 élargit vraiment les possibilités.

Le principe de la norme reste la mémoire partagée. En rendant ce partage accessible aux CPU et aux accélérateurs via une norme ouverte, les composants peuvent travailler ensemble. Cette évolution contraste avec l’architecture actuelle, où les CPU, GPU et FPGA s’appuient généralement sur leur propre mémoire et où les charges de traitement sont contrôlées par le CPU.

Types et protocoles

Pour ceux qui veulent approfondir le sujet, nous notons également que la norme CXL se compose de plusieurs sous-protocoles, ciblant différents types de composants.

  • Appareils de type 1 : il s’agit d’accélérateurs et de Smart NICs qui n’ont généralement pas de mémoire locale disponible, et peuvent soudainement communiquer avec la mémoire DDR du CPU via CXL.
  • Appareils de type 2 : il s’agit de GPU, FPGA et ASIC qui disposent de leur propre mémoire DDR ou HBM. Ici, CXL contribue à nouveau à rendre la mémoire du CPU accessible localement aux accélérateurs. Par contre, l’unité centrale peut aussi travailler avec la mémoire des composants. CXL garantit la cohérence du cache.
  • Appareils de type 3 : ce sont des appareils de mémoire qui fournissent une capacité supplémentaire distincte de la mémoire du CPU ou de l’accélérateur, par exemple la mémoire extensible via PCIe mentionnée plus haut, qui complète le pool de DDR-RAM.

Compute Express Link lui-même supporte la combinaison de différents types d’appareils grâce à trois protocoles principaux.

  • CXL.io est l’équivalent CXL de la norme PCIe sur laquelle CXL est construit. CXL.io est la fondation de CXL.
  • CXL.cache est une application spécifique qui donne aux accélérateurs l’accès à la mémoire de l’hôte (CPU), y compris le cache et la cohérence du cache associée.
  • CXL.memory permet aux hôtes de communiquer avec la mémoire supplémentaire des appareils de type 3.

CXL se fonde sur la norme PCIe parce qu’elle offre une excellente base avec un écosystème déjà existant. PCIe 5 permet à des protocoles alternatifs de fonctionner sur la couche PCIe, en quelque sorte de manière analogue à la façon dont l’interface physique USB-C supporte aussi Thunderbolt ou DisplayPort.

Comme mentionné, CXL est en plein développement. Les parties concernées ont intérêt à voir réussir la norme. Ensuite, nous nous intéressons certainement aux hyperscalers, où des économies de plusieurs dizaines de pour cent ont un impact énorme sur l’efficacité des centres de données. On a besoin de logiciels pour que CXL arrive sur le marché plus large, et ils seront sans doute aussi disponibles de manière organique.

newsletter

Abonnez-vous gratuitement à ITdaily !

Category(Required)
This field is for validation purposes and should be left unchanged.
retour à la maison