Infrastructure : UnifabriX lance la première baie de RAM

Le boîtier Smart Memory Node de la startup permet le partage jusqu’à 30 To de RAM entre les serveurs capables de communiquer en CXL.

La première extension mémoire en réseau CXL est née ! La startup israélienne UnifabriX fait actuellement le tour des salons informatiques avec un prototype de 30 To, simplement baptisé Smart Memory Node. Elle compte se faire connaître en vendant ses premiers exemplaires sur le marché des supercalculateurs, un secteur friand de nouveautés. Puis, elle prédit qu’elle fera fortune quand les hébergeurs de cloud lui en achèteront des cargaisons entières.

« Jusqu’ici, le problème de la RAM est qu’elle est dédiée au serveur qui la contient. Contrairement au stockage, vous ne pouvez pas partager sa capacité entre plusieurs serveurs pour couvrir leurs besoins ponctuels à tour de rôle », explique Ronen Hyatt, le PDG d’UnifabriX (à droite sur la photo, ci-dessus). LeMagIT l’a récemment rencontré à l’occasion d’un événement IT Press Tour consacré aux startups israéliennes qui innovent en matière d’infrastructure.

« En l’état, si vous voulez couvrir ces besoins ponctuels, vous êtes obligés d’investir dans une extension sur chacun des serveurs. Cela coûte excessivement cher pour des utilisations occasionnelles, puisque la RAM représente en moyenne 50 % du prix d’un serveur de série. La technologie CXL rend la RAM partageable entre serveurs. Et nous sommes les premiers à l’implémenter », ajoute-t-il.

Un pool de RAM pour payer moins cher la mémoire

Le scénario d’usage classique est celui d’un datacenter dans lequel les serveurs sont achetés au meilleur prix, avec juste ce qu’il faut pour exécuter les applications basiques. Au milieu du cluster, le Smart Memory Node d’UnifabriX fait office de pool de ressources dans lequel les serveurs viennent puiser quand ils sont à court de mémoire.

« La technologie CXL rend la RAM partageable entre serveurs. »
Ronen HyattPDG d’UnifabriX

Selon les présentations d’UnifabriX, on pourrait classiquement remplacer 32 serveurs dotés de 8 To de RAM (soit 256 To de RAM) par autant de machines dotées de 4 To de RAM et reliées à un boîtier Smart Memory Node qui leur partage 30 To de RAM (soit un total de 158 To de RAM).

Outre le prix d’achat global qui est inférieur, utiliser des ressources partagées dans un cluster présente le triple intérêt de consommer globalement moins d’énergie, d’occuper moins d’espace et de gagner en flexibilité, puisque les caractéristiques d’un serveur s’étendent automatiquement dès que c’est nécessaire.

Ainsi, même à quantité de mémoire égale, il serait 25 % plus intéressant en termes de coût d’exploitation de déployer un cluster avec 12 serveurs dotés de 8 To et trois Smart Memory Node de 30 To (soit 186 To de RAM), qu’un cluster de 24 serveurs dotés de 8 To de RAM (192 To de RAM).

Les inventeurs du CXL aux commandes

Ronen Hyatt et son directeur technique Danny Volkind (à gauche sur la photo ci-dessus) connaissent d’autant mieux le CXL qu’ils ont participé à son développement lorsqu’ils travaillaient chez Intel. « À l’époque, en 2015, nous parlions de FlexBus et d’IAL (Intel Accelerator Link). Le projet était de mettre les extensions PCIe en réseau, de sorte qu’elles ne soient plus dédiées à un serveur mais partageables entre plusieurs », raconte l’équipe qui mettait alors au point les actuelles puces d’accélération réseau IPU, les équivalents chez Intel des DPUs.

D’abord imaginée pour être propre aux processeurs d’Intel, la technologie CXL a finalement été standardisée dans le but de favoriser un écosystème de partenaires ; on imagine qu’Intel a entretemps été refroidi par l’échec commercial de ses mémoires Optane propriétaires. C’est ainsi que le support de CXL est arrivé sur les toutes dernières versions des processeurs Intel Xeon et AMD Epyc lancées en début d’année. Grace, le processeur ARM que Nvidia met au point pour les serveurs, supportera aussi CXL.

Du point de vue du protocole, CXL est simplement une surcouche du bus PCIe. Il reconnaît trois catégories de communication : CXL.io, CXL.mem et CXL.cache. CXL.io est simplement le nouveau nom de la gestion PCIe de base.

CXL.mem place la mémoire du périphérique dans l’adressage mémoire du processeur. Plutôt que d’envoyer un message au périphérique pour qu’il lise ou écrive une donnée dans sa mémoire, le processeur lit/écrit directement sur le périphérique comme s’il était l’une de ses barrettes de DRAM.

CXL.cache considère le périphérique comme faisant partie de sa flotte de cœurs de CPUs. Le système prend donc garde à empêcher l’accès à une adresse mémoire tant qu’elle n’a pas été mise à jour avec les données contenues dans le cache de l’un des cœurs d’un serveur.

CXL, un réseau d’extensions PCIe

À cela s’ajoutent trois catégories de périphériques. Le Type 1 correspond aux extensions PCIe directement attachées à un serveur, que ce soit en interne ou dans un boîtier externe, avec des liens dédiés entre les deux qui véhiculent les mêmes signaux que les slots PCIe habituels. Le Type 1 est géré par l’actuel protocole CXL 1.1 implémenté dans les processeurs.

Le Type 2 correspond aux extensions PCIe installées derrière un switch PCIe. C’est-à-dire qu’un périphérique doit nécessairement être de Type 2 pour être partageable entre plusieurs serveurs. Cette catégorie est gérée par CXL 2.0, encore en cours de développement.

Une caractéristique intéressante de CXL 2.0 est que le protocole permettra de partager la même zone de mémoire entre plusieurs serveurs. Un scénario d’usage serait de charger une base de données « In-Memory » depuis un serveur et que cette base apparaisse automatiquement dans la mémoire de plusieurs serveurs, de sorte qu’ils puissent tous se répartir les traitements sur un même jeu de données sans que celui-ci soit répliqué.

Le Type 3 correspond aux extensions PCIe installées derrière une cascade de switches, avec la possibilité de créer des sous-réseaux d’extensions, chacun avec des règles d’accès propres. Cette catégorie sera gérée par la future version 3.0 du protocole CXL. L’une des particularités est qu’il ne sera pas possible de communiquer en CXL.cache entre des sous-réseaux différents.

30 To de RAM, dont 10 extractibles en façade

« Par expérience, personne n’ouvre jamais une machine pour changer ses caractéristiques. Tout le monde ne se sert que des modules frontaux extractibles à chaud. »
Danny VolkindDirecteur technique, UnifabriX

Le Smart Memory Module d’UnifabriX se présente à ce jour sous la forme d’un boîtier rack 2 U. Il comprend 20 To sous la forme de barrettes DIMMs installées sur sa carte mère, plus 10 To en façade, sous la forme de 20 modules EDSFF extractibles, contenant chacun 512 Go de RAM. Le format EDSFF est aussi celui des SSD NVMe 2,5 pouces que l’on insère en façade des baies de stockage. Ici, les modules EDSSF de RAM sont fabriqués par Samsung et SK Hynix.

« Le fait est que les barrettes DIMMs sont plus denses que les modules en façade. D’autant plus que nous sommes obligés de laisser des slots libres en façade pour laisser passer l’aération, sans quoi nous aurions pu grimper à 24 modules EDSFF », indique le directeur technique Danny Volkind.

« Dans ce cas, pourquoi ne pas utiliser seulement des barrettes DIMMs ? Tout simplement pour laisser à l’utilisateur la possibilité d’investir dans plus ou moins de modules EDSFF. Par expérience, personne n’ouvre jamais une machine pour changer ses caractéristiques. Tout le monde ne se sert que des modules frontaux extractibles à chaud », précise-t-il.

Partager de la mémoire non volatile avec les SSD CXL

Par ailleurs, le prototype de la startup ne partage aujourd’hui que de la RAM. Mais la connectique CXL supporte en pratique n’importe quelle extension PCIe. De futures versions pourraient ainsi partager des GPUs ou, surtout, des SSD CXL.

Moins chers et plus capacitifs que les modules de RAM, les SSD CXL seront des SSD NVMe remplis de mémoire cache – Samsung a présenté un prototype avec 2 To de capacité Flash, plus 16 Go de RAM qui servent à maintenir une rapidité d’accès bien meilleure que sur des SSD NVMe normaux.

« En pratique, nos Smart Memory Node sont même conçus pour supporter des modes hybrides, qui comprendront à la fois des modules de DRAM et des SSD CXL. »
Danny VolkindDirecteur technique, UnifabriX

Les SSD CXL sont plus adaptés aux applications qui ont besoin d’énormément d’espace en mémoire, sans pour autant nécessiter une vitesse maximale. Ils pourront aussi être considérés comme de la mémoire non volatile, qui résiste à un redémarrage. Les SSD CXL correspondent à l’heure actuelle à l’alternative la plus tangible aux défuntes mémoires Optane.

« En pratique, nos Smart Memory Node sont même conçus pour supporter des modes hybrides, qui comprendront à la fois des modules de DRAM et des SSD CXL », commente le directeur technique.

128 Go/s de bande passante

La carte mère fait office de switch CXL, lequel est contrôlé par un FPGA qui implémente une préversion de CXL 2.0 et même, nous dit-on, de CXL 3.0. En pratique, le CXL 3.0 sert pour le moment à mettre plusieurs boîtiers Smart Memory Node en cluster. À l’arrière de la machine, 16 connecteurs « CXL/PCIe 5.0 » véhiculent chacun 32 Gbit/s en entrée comme en sortie, soit une bande passante totale de 1 Tbit/s (128 Go/s) pour relier un maximum de 16 serveurs (et même 32 serveurs en PCIe 4.0). Selon les applications, il est probable qu’une entreprise préfère relier 4 serveurs au Smart Memory Node, via 4 liens CXL/PCie 5.0 chacun.

Pour l’heure, UnifabriX n’a pu mesurer les performances de sa machine qu’avec des benchmarks SSDc-oM qui la considèrent comme une baie NVMe. Les résultats depuis un serveur (a priori relié via quatre liens PCIe) sont de 33,76 Go/s en bande passante, 8,12 millions d’IOPS en quantité d’accès, et une latence de 2,35 microsecondes. Comparativement, un SSD NVMe offre un débit d’environ 7 Go/s et 1,5 million d’IOPS.

Il est à noter que les câbles qui supportent un tel débit sont limités par la longueur. Ne pouvant actuellement pas dépasser 1 mètre, ils limitent les déploiements à une seule étagère rack, avec les serveurs situés en haut et en bas de l’étagère, et le Smart Memory Node au milieu.

Une future version doit proposer des connecteurs CXL/PCIe 6.0 de 64 Gbit/s (soit 2 Tbit/s de bande passante au total) et des câbles pouvant mesurer deux mètres.

Pour approfondir sur Disques durs, SSD et Unités de stockage