Solution de mémoire CXL : qu'est-ce que c'est ?

Vous est-il déjà arrivé d'être agacé de manquer de mémoire sur votre ordinateur sans pouvoir en ajouter aussi facilement qu'en branchant une clé USB? La technologie CXL a été conçue pour résoudre ce problème. Elle fonctionne comme un “ système d’extension externe ” pour la mémoire, permettant aux serveurs ou aux stations de travail d’ajouter de manière flexible de grandes quantités de mémoire externe via des câbles dédiés et des cartes d’extension, et même de faire partager un pool de mémoire commun à plusieurs machines. Grâce à la technologie CXL, une mémoire système de 1 To – autrefois accessible uniquement sur des mainframes coûteux – devient de plus en plus courante dans le calcul haute performance et l'intelligence artificielle.

Qu'est-ce que l'image d'en-tête de l'article CXL ? Solution de mémoire CXL : qu'est-ce que c'est ?

Pourquoi le CXL a-t-il vu le jour ?

On peut comparer la mémoire d'un serveur traditionnel à un grand immeuble d'appartements doté de casiers de rangement individuels : chaque pièce (chaque serveur) dispose de son propre espace de stockage, mais la taille de cet espace est fixée dès votre emménagement, et même si le casier de votre voisin est vide, vous ne pouvez pas l'emprunter. Avec l'essor de l'intelligence artificielle, du cloud computing et du big data, ce modèle a commencé à révéler trois problèmes majeurs.

Lorsque tous les emplacements physiques sont occupés, il n'est plus possible d'ajouter de la mémoire. Le nombre d'emplacements mémoire sur chaque carte mère de serveur est limité, généralement à huit, douze ou seize. Même si vous équipez chaque emplacement avec les modules de mémoire offrant la plus grande capacité disponible sur le marché, la capacité totale atteint tout de même un plafond. Lorsque votre application nécessite plus de mémoire que ce plafond, la seule solution consiste à acheter un serveur haut de gamme plus coûteux plutôt que de simplement ajouter de la mémoire à la machine existante.

Les ressources mémoire ne peuvent pas être partagées, ce qui entraîne un énorme gaspillage. Dans les grands centres de données, les pics d'activité des différents serveurs ne coïncident souvent pas. Or, dans le cadre d'une architecture traditionnelle, ces ressources mémoire inutilisées ne peuvent pas être “ empruntées ” par les serveurs qui en ont besoin. Les statistiques du secteur montrent que le taux d'utilisation de la mémoire dans les centres de données est souvent inférieur à 50 %, ce qui signifie que près de la moitié des investissements matériels reste inutilisée.

Pour faire face à une demande soudaine, les entreprises sont contraintes de surinvestir. Lorsqu'un projet nécessite ponctuellement le double de sa capacité mémoire habituelle, la solution classique consiste à acheter du matériel capable de répondre à ce pic de demande. Cet argent est ainsi dépensé pour une capacité qui reste inutilisée la plupart du temps. De plus, une fois ces modules matériels installés, ils ne peuvent pas être réaffectés de manière flexible à différents projets ni facilement étendus à mesure que l'entreprise se développe.

C'était pour résoudre ces trois problèmes d'un seul coup – capacités matérielles limitées, incapacité à partager les ressources et faible rentabilité des investissements – que ce sont des ingénieurs qui ont mis au point la technologie CXL. Celle-ci révolutionne la manière dont la mémoire est reliée aux unités de calcul, faisant de la mémoire une ressource pouvant être connectée à la demande et allouée de manière dynamique.

Qu'est-ce que le CXL et comment fonctionne-t-il ?

CXL est un protocole de communication ouvert basé sur l'interface physique standard PCIe. Son nom complet est Compute Express Link, et on peut le considérer comme un ensemble de “ règles de langage ” qui permettent une communication rapide, cohérente et à faible latence entre le processeur et les dispositifs de mémoire externes. Ce qui rend le CXL unique, c'est qu'il permet au processeur de traiter la mémoire externe comme si elle faisait partie intégrante de lui-même, plutôt que comme un périphérique nécessitant un détour pour y accéder.

Cohérence du cache

Imaginez le scénario suivant : vous et un collègue modifiez le même document en ligne. Si chacun d’entre vous enregistre une copie locale puis apporte des modifications, vous rencontrerez des conflits lors de la fusion : quelles modifications prévaudront ? La mémoire d’un ordinateur est confrontée au même problème. À l'intérieur du processeur se trouve une petite zone de stockage très rapide appelée “ cache ”, qui contient des copies des données récemment utilisées provenant de la mémoire principale. Lorsque le processeur accède à la mémoire, il lit d'abord dans le cache, ce qui est beaucoup plus rapide. Mais si la mémoire DDR locale et la mémoire CXL externe contiennent toutes deux des copies des mêmes données, et qu’une copie est modifiée, l’autre copie doit être mise à jour en conséquence. Sinon, le CPU pourrait lire des données incorrectes. Ce problème est appelé “ cohérence du cache ”. Le CXL inclut un sous-protocole dédié pour gérer cela, “ communiquant ” en permanence entre le CPU et la mémoire externe afin de garantir que toutes les copies restent cohérentes.

Pool de mémoire et allocation flexible

Dans le cadre de l'approche traditionnelle, chaque serveur ne peut utiliser que la mémoire de ses propres emplacements. CXL présente le concept de “ mise en commun ”: il est possible de connecter plusieurs dispositifs de mémoire CXL à un commutateur CXL, formant ainsi un seul pool de mémoire de grande capacité, puis de laisser plusieurs serveurs “ puiser ” de la mémoire dans ce pool selon leurs besoins. C'est un peu comme si, dans un immeuble de bureaux, on remplaçait les fontaines à eau individuelles de chaque bureau par une station d'eau centrale située dans le couloir, où chacun se sert à volonté. La capacité totale de la station d'eau peut être inférieure à la somme des dix fontaines individuelles, mais elle répond néanmoins aux besoins de chacun, car les pics d'utilisation ne coïncident pas. De la même manière, un pool de mémoire CXL permet aux gestionnaires de centres de données d'allouer la mémoire de manière dynamique en fonction de la charge en temps réel de chaque serveur – en lui en attribuant davantage lorsqu'il est occupé et en la récupérant lorsqu'il est inactif – prenant ainsi en charge davantage de tâches informatiques avec moins de matériel au total.

Pool de mémoire CXL et commutateurs CXL Solution de mémoire CXL : qu'est-ce que c'est ?

En quoi consiste la technologie CXL ?

CXL est une solution mémoire complète qui couvre tous les aspects, du matériel physique à la configuration logicielle. Vous pouvez considérer ce système comme une autoroute : la route elle-même (la connexion physique) n'est que la base ; vous avez également besoin de règles de circulation (le protocole de communication) pour que les véhicules circulent de manière ordonnée, et vous avez besoin d'un système de gestion du trafic (la configuration logicielle) pour indiquer aux véhicules où aller et quelle voie emprunter. Si l'une de ces couches venait à manquer, l'autoroute ne pourrait pas fonctionner correctement.

Couche matérielle : les composants visibles

La composante matérielle de la technologie CXL comprend différents types de périphériques qui, ensemble, constituent l'infrastructure nécessaire à l'extension de mémoire. Le matériel le plus courant est la carte d'extension de mémoire CXL, qui ressemble à une carte graphique et peut être branchée directement dans un emplacement PCIe existant sur la carte mère d'un serveur. Cette carte comporte soit des puces mémoire soudées, soit des emplacements pour des modules de mémoire. Une fois insérée, le système reconnaît la capacité de mémoire supplémentaire. Le module de mémoire CXL constitue un autre format matériel : plus petit – à l'image d'un disque SSD compact – il peut être installé dans des baies de disques dédiées sur les serveurs, ce qui le rend adapté aux déploiements à haute densité.

Types de matériel CXL Solution de mémoire CXL : qu'est-ce que c'est ?

Lorsqu'il est nécessaire de connecter plusieurs serveurs ou plusieurs périphériques de mémoire, un commutateur CXL entre en jeu. Il s'apparente à un commutateur réseau, mais au lieu de commuter des paquets réseau, il commute les requêtes d'accès à la mémoire. Grâce à un commutateur CXL, les administrateurs peuvent connecter plusieurs cartes mémoire CXL entre elles pour former un pool de mémoire unifié de grande capacité, puis permettre à plusieurs serveurs de partager simultanément les ressources de ce pool. Pour les distances plus longues, des câbles CXL dédiés permettent de maintenir une transmission à haut débit sur des distances de plusieurs mètres, voire de dizaines de mètres, ce qui permet de placer les périphériques de mémoire dans des baies différentes de celles des serveurs.

Couche de protocole : les règles linguistiques de la communication

Couche de protocole CXL et solution de mémoire CXL : de quoi s'agit-il ?

Si le matériel constitue le squelette, le protocole est l'âme qui permet à l'ensemble de fonctionner. Le protocole CXL comprend trois sous-protocoles parallèles, chacun étant chargé d'une tâche différente. Ils peuvent fonctionner simultanément sans interférer les uns avec les autres.

  • Le premier sous-protocole s'appelle CXL.io, et son rôle consiste à détecter et à initialiser les périphériques. Lorsque vous insérez une carte mémoire CXL dans un serveur, CXL.io permet au processeur de reconnaître le périphérique, de lire ses informations de base (telles que sa capacité et les modes pris en charge) et de lui attribuer un espace d'adressage. Ce processus s'apparente beaucoup à l'installation d'une carte graphique ou d'une carte réseau.
  • Le deuxième sous-protocole s'appelle CXL.cache, qui est l'une des fonctionnalités clés de CXL. CXL.cache assure la cohérence des données entre le cache du processeur et la mémoire externe. Comme indiqué précédemment, lorsqu'un processeur modifie une donnée, CXL.cache veille à ce que la copie correspondante dans la mémoire externe soit également mise à jour, et inversement.
  • Le troisième sous-protocole s'appelle CXL.mem, qui se charge des opérations de lecture et d'écriture des données. Lorsque le processeur doit lire des données dans la mémoire CXL, CXL.mem transmet la requête et renvoie les données ; lorsque le processeur doit écrire des données dans la mémoire CXL, CXL.mem effectue le transfert de la même manière.

Couche logicielle : configuration et gestion pour que tout fonctionne

La configuration logicielle permet au système d'exploitation et aux applications d'utiliser effectivement cette nouvelle mémoire. Dans le BIOS, l'administrateur doit activer la fonctionnalité CXL et allouer des ressources. Au niveau du système d'exploitation, en prenant Linux comme exemple, la mémoire CXL est reconnue comme un nœud NUMA distinct, et l'administrateur peut utiliser des commandes pour spécifier si un programme doit privilégier la mémoire locale ou la mémoire CXL. Les systèmes d'exploitation modernes prennent également en charge la hiérarchisation de la mémoire, qui conserve automatiquement les données les plus actives dans la mémoire DDR locale rapide et migre les données moins actives vers la mémoire CXL. La grande majorité des applications ne nécessitent aucune modification du code pour utiliser la mémoire CXL, car le système d'exploitation la gère exactement comme de la mémoire classique.

Bannière Oscoo 2B 1400 x 475 1 Solution de mémoire CXL : qu'est-ce que c'est ?

CXL face aux solutions de mémoire traditionnelles

AspectSolution DDR classiqueSolution CXL
Plafond de capacitéLimité par le nombre d'emplacements mémoire de la carte mère et la capacité maximale des modules ; aucune extension n'est possible une fois cette limite atteinteIl est possible de continuer à ajouter de la mémoire à l'aide de cartes d'extension CXL ou de commutateurs sans remplacer la carte mère
Flexibilité des ressourcesLa mémoire de chaque serveur est fixe ; elle ne peut pas être réaffectée entre les serveursPrend en charge la mise en commun de la mémoire ; plusieurs serveurs peuvent partager un pool de mémoire commun à la demande
RentabilitéAcheter de grandes quantités de mémoire pour répondre aux pics de demande ; l'utilisation quotidienne est souvent inférieure à 50%Prend en charge la même charge de travail avec moins de mémoire totale ; le taux d'utilisation peut dépasser 80%
Opération d'extensionNécessite un arrêt du système et l'insertion ou le retrait physique des modules de mémoire ; peut impliquer le remplacement de matérielPrend en charge le branchement à chaud et l'allocation dynamique ; permet d'ajouter ou de retirer des ressources mémoire à chaud
Cas d'applicationDéploiements à petite échelle avec des exigences de performances extrêmes et des charges de travail stablesLes centres de données à grande échelle, l'entraînement des modèles d'IA, le cloud computing et d'autres scénarios nécessitant des ressources évolutives

Comme le montre le tableau, la solution DDR traditionnelle présente toujours des avantages en termes de performances extrêmes et de simplicité de déploiement, mais au prix d’un coût élevé et d’une gestion rigide des ressources. En revanche, la solution CXL sacrifie un peu de vitesse d’accès en échange d’avantages considérables : une capacité évolutive, des ressources partageables et un meilleur rapport coût-efficacité. Dans les opérations réelles des centres de données, ce compromis est souvent très avantageux, car le gaspillage de mémoire inutilisée est bien plus préjudiciable qu’une légère différence de vitesse.

Cas d'utilisation du CXL

La technologie CXL n'est pas destinée à remplacer la mémoire traditionnelle ; elle vise à répondre à des cas d'utilisation spécifiques pour lesquels la mémoire traditionnelle présente des limites. C'est dans les trois domaines ci-dessous que la technologie CXL est la plus mûre et qu'elle apporte la plus grande valeur ajoutée.

L'intelligence artificielle et l'entraînement des grands modèles

L'entraînement d'un grand modèle linguistique comportant des centaines de milliards de paramètres nécessite de charger simultanément en mémoire l'ensemble des paramètres du modèle, les données d'entraînement et les résultats de calcul intermédiaires. Lorsque la taille du modèle dépasse la capacité mémoire d'un seul serveur, CXL permet à un serveur de connecter directement plusieurs téraoctets de mémoire CXL, conservant ainsi toutes les données au sein d'un seul nœud, ce qui simplifie considérablement le modèle de programmation et améliore l'efficacité de l'entraînement. Pour les équipes de taille moyenne travaillant sur des modèles volumineux, CXL offre une solution plus économique que l'achat de mainframes coûteux.

Mise en commun de la mémoire dans les centres de données

Dans les grands centres de données cloud, les pics de charge des différents locataires et applications surviennent souvent à des moments différents. En déployant des commutateurs CXL et un pool de mémoire CXL, le centre de données peut regrouper toute la mémoire inutilisée dans un pool partagé et l'allouer de manière dynamique en fonction des besoins en temps réel de chaque serveur. Selon les estimations du secteur, cette approche permettrait de faire passer le taux d'utilisation de la mémoire de 40 à 50 % (valeur habituelle) à plus de 80 %, ce qui signifie qu'un même investissement matériel pourrait prendre en charge près du double de la charge de travail informatique.

Le cloud computing et la densité des machines virtuelles

Les fournisseurs de services cloud souhaitent faire tourner autant de machines virtuelles (VM) que possible sur un seul serveur physique afin d'augmenter leurs revenus. Mais chaque VM doit se voir allouer une quantité fixe de mémoire, et même si cette mémoire n'est pas réellement beaucoup utilisée, elle ne peut pas être occupée par d'autres VM. Par conséquent, les serveurs sont souvent à court de mémoire bien avant que leurs ressources CPU ne soient épuisées, ce qui limite le nombre de VM pouvant être créées. Un pool de mémoire CXL permet à la plateforme cloud de traiter la mémoire comme une ressource élastique pour la sursouscription ou l'ajustement dynamique : lorsqu'une VM utilise moins de mémoire que celle qui lui est allouée, le surplus peut être récupéré et attribué à d'autres VM. Cette technologie permet aux fournisseurs de cloud d'héberger davantage de clients sur les mêmes serveurs physiques, ce qui réduit les coûts d'exploitation.

Au-delà de ces trois principaux cas d'utilisation, le CXL est également utilisé dans les simulations à grande échelle en calcul haute performance, pour l'extension de capacité des bases de données en mémoire (telles que SAP HANA) et pour l'accélération des moteurs d'analyse de mégadonnées en temps réel (tels qu'Apache Spark). Ces applications ont en commun une très forte demande en capacité mémoire, associée à une certaine tolérance à la latence – exactement le domaine dans lequel CXL excelle.

Situation actuelle et perspectives d'avenir pour le CXL

La technologie CXL est passée du stade expérimental à celui du déploiement concret. Côté matériel, les processeurs Xeon Scalable de 4e génération d'Intel et EPYC de 4e génération d'AMD prennent en charge nativement les normes CXL 1.1 ou 2.0. Les principaux fournisseurs de serveurs, tels que Dell, HPE, Inspur et Supermicro, proposent des options de mémoire CXL dans leurs gammes haut de gamme. Samsung et Micron produisent désormais en série des modules de mémoire CXL d'une capacité allant de 128 Go à 512 Go, dont certains prennent en charge le branchement à chaud. Côté logiciel, le noyau Linux prend en charge CXL de manière native depuis la version 5.18, et les principaux systèmes d'exploitation cloud améliorent progressivement la mise en commun de la mémoire CXL.

À l'avenir, le CXL évoluera selon deux axes principaux. Le premier concerne les mises à niveau du protocole. CXL 2.0 a introduit le pooling de mémoire et la prise en charge des commutateurs, déjà en phase d'essai. CXL 3.0 augmente la bande passante à 64 Go/s et ajoute la commutation multi-niveaux, dont la généralisation est attendue après 2026. CXL 4.0, basé sur PCIe 7.0, devrait à nouveau doubler la bande passante. La deuxième voie concerne l'évolution du déploiement. À court terme, CXL fait office de mémoire de “ deuxième niveau ” complétant la DDR locale. À moyen terme, le pooling de mémoire deviendra la norme dans les grands centres de données, rendant la mémoire allouable de manière dynamique, à l'instar du calcul et du stockage. À long terme, le CXL et la DDR coexisteront probablement : la DDR pour les charges de travail principales sensibles à la latence, le CXL pour la mémoire d'extension partageable à grande capacité.

La technologie CXL est apparue comme une réponse à une question qui préoccupe depuis longtemps le secteur informatique : pourquoi la mémoire ne peut-elle pas être étendue et partagée de manière aussi flexible que le stockage ? Grâce à une conception élégante de son protocole, la technologie CXL intègre des fonctionnalités clés telles que la cohérence du cache et la mise en commun de la mémoire au-dessus de l'infrastructure PCIe existante. Du matériel au logiciel, de l'extension d'une seule machine au partage des ressources à l'échelle du centre de données, la technologie CXL est en train de transformer progressivement notre conception de la mémoire. Bien sûr, cette technologie n'en est encore qu'à ses débuts ; la maturité du protocole, la complétude de l'écosystème et la réduction des coûts prendront du temps. Mais ce qui est certain, c'est qu'à mesure que les modèles d'IA continuent de se développer et que la taille des données ne cesse de repousser les limites physiques, CXL – qui libère la mémoire des emplacements fixes – deviendra un élément d'infrastructure de plus en plus essentiel dans le monde du calcul haute performance.

Défiler vers le haut

Nous contacter

Remplissez le formulaire ci-dessous et nous vous contacterons dans les plus brefs délais.

Formulaire de contact