Memory: SDM, PIM, CXL Neue Memory-Klassen im Anmarsch

Noch immer klafft eine Latenz- und Bandbreitenlücke zwischen Storage und Memory. Neue Speicherschichten, Verbindungsprotokolle und die Integration von Intelligenz ins Memory sollen hier helfen. Auch die OCP (Open Compute Project Foundation) arbeitet daran.

Anbieter zum Thema

Eine Arbeitsgruppe der OCP will im Frühjahr 2022 erste Anwendungsszenarien zu Software-Defined Memory vorstellen.
Eine Arbeitsgruppe der OCP will im Frühjahr 2022 erste Anwendungsszenarien zu Software-Defined Memory vorstellen.
(Bild: gemeinfrei / Pixabay )

Zwischen DRAM und NAND-SSD ist noch viel Platz, was die Latenz- und Bandbreitencharakteristiken angeht. Derzeit steuert das Memory auf Engpässe zu. Denn die Zugriffsbandbreite aufs konventionelle Memory lässt sich nicht beliebig erweitern. Gleichzeitig gibt es viele Anwendungen, die permanent auf Daten zugreifen müssen und gleichzeitig latenzsensibel reagieren. Hier dauern auch relativ schnelle Zugriffe auf NVMe-SSDs noch zu lange oder verschlingen begrenzt vorhandene Ressourcen.

Mit CXL (Compute Express Link) gibt es inzwischen ein direktes Verbindungsprotokoll für Zugriffe von der CPU aufs Memory, das neue Zugriffsmöglichkeiten auf solche Speicherschichten ermöglicht. Dabei arbeitet es mit PCIe als darunterliegender physischer Basis und kann auf den höheren Ebenen parallel dazu eingesetzt werden. Deshalb sind jetzt alle Voraussetzungen gegeben, tatsächlich zwei bis drei weitere Memory-Schichten zwischen DRAM und NAND-SSDs, letztere mit oder ohne Computational Storage, zu schieben.

CXL liegt inzwischen in Version 2.0 vor, die im November 2020 verabschiedet wurde. CXL hat eigene Spezifikationen für Memory, Cache-Kohärenz und Ein-/Ausgabe. Es werden 32 GT/s (Gigatransfers pro Sekunde) unterstützt. Bis zu 16 parallele Übertragungsspuren sind möglich. Drei Device-Typen lassen sich in CXL definieren: Cache, Beschleuniger mit Memory und reiner Memory-Puffer.

Die zweite, durch CXL nachdrücklich unterstützte Technologie, um die Memory-Engpässe zu beseitigen, ist SDM (Software-Defined Memory). Was verbirgt sich dahinter? Der neue Memory-Typ kann entweder direkt über den Betriebssystemkern gesteuert oder dynamisch denjenigen Applikationen zugewiesen werden, die zusätzliches Memory gerade am dringendsten brauchen. Die Anbindung erfolgt jeweils über CXL.

OCP-Arbeitsgruppe zu SDM

Innerhalb der Open Compute Project Foundation hat sich bereits eine SDM-Arbeitsgruppe gebildet. Sie will schon im Frühjahr 2022 erste Anwendungsszenarien vorstellen. Im Herbst soll es Demonstratoren geben. Am Ende soll ein SDM-Projekt innerhalb der OCP stehen. Auf dem diesjährigen OCP Summit, der Anfang November hybrid stattfand, waren Software-Defined Memory und CXL (Compute Express Link) wichtige Themen.

Bildergalerie

Inzwischen hat die Arbeitsgruppe Begriffe definiert und durch Umfragen festgestellt, welche Anwendungen hauptsächlich von SDM profitieren würden. Danach werden SDM-Technologien vor allem in AI/ML-Umgebungen, für Datenbanken und Caching und für virtuelle Serverfarmen benötigt. Denn diese Anwendungen brauchen schnellen und umfangreichen Memory-Zugriff.

Dabei sind die Anforderungen im Einzelnen unterschiedlich: Mal geht es eher um Volumen, mal um Latenz, mal um Bandbreite – je nach App. In Systemen sollen daher unterschiedliche Formen Software-definierten Memorys stecken dürfen, die dann von einer übergeordneten Software angesteuert und verwaltet werden.

Steckt im Memory-Modul auch Rechenpower, spricht man von PIM (Processing in Memory). Dabei ist allerdings nicht geplant, ganze Anwendungen in die Rechenleistung im Memory auszulagern, sondern jeweils nur rechenintensive Anteile wie etwa die Verarbeitung umfangreicher Gleitkomma-Operationen.

Implementierungsbeispiele

Auf der OCP-Tagung gab es mehrere Beispiele dafür, wie die Industrie die oben genannten Konzepte umsetzt. So hat Samsung mit Aquabolt XL bereits ein HBM-PIM (High Bandwidth Memory) auf den Markt gebracht. Auf die rechnenden Ressourcen im Memory werden hier vor allem Floating-Point-Operationen von AI/ML-Software ausgelagert. Die Komponente steckt in Xilinx’ Beschleunigerkarte Alvco U-280. Außerdem hat Samsung ein CXL-Type-3-Memory (Memory Buffer) entwickelt.

Auch VMware steigt in den Zug zu neuen Memory-Schichten ein. Dafür wurde eigens das Projekt Capitola ausgerufen. vSphere soll im Ergebnis um Software für das Tiering zusätzlicher Memory-Schichten angereichert werden.

Anfangs ist dabei geplant, lediglich lokales Tiering mit Cluster-Support zu unterstützen. Dabei versucht VMware, die Umgangsweise mit verschiedenen Workload-Typen zu optimieren. Auf der VMworld, die erst kürzlich stattfand, präsentierte der Hersteller zudem Cluster-weites Pooling von neuen Memory-Schichten. Die Leistung soll dieses Verfahren möglichst nicht beeinflussen. Es funktioniert auch erst mit CXL 2.0, das Switching-Funktionen implementiert. Bisher musste der Speicher direkt über CXL an die CPU angebunden sein.

Newsletter

Ihre täglichen News aus dem ITK-Markt

Mit Klick auf „Newsletter abonnieren“ erkläre ich mich mit der Verarbeitung und Nutzung meiner Daten gemäß Einwilligungserklärung (bitte aufklappen für Details) einverstanden und akzeptiere die Nutzungsbedingungen. Weitere Informationen finde ich in unserer Datenschutzerklärung.

Aufklappen für Details zu Ihrer Einwilligung

Zunächst plant VMware nur das Tiering von zwei zusätzlichen Memory-Schichten, später sollen es drei werden. Kostengünstige Tiers genießen bei der Umsetzung Vorrang.

Die neuen Speicherschichten und Tiering-Algorithmen wurden bereits mit CXL 2.0 als Verbindungsprotokoll getestet. Dabei lief Hammer DB auf einem SQL-Server. Mit internem Tiering erhöhte sich die Leistung etwa um 30 Prozent. Der Bandbreitenbedarf sank auf die Hälfte.

Neue Memory-Schichten für Hyperscaler

Mit neuen Speicherschichten experimentieren auch Microsoft und Azure. Dabei geht es beim Einsatz von High Bandwidth Memory (HBM) vor allem um dediziertes, also durch Applikationen direkt nutzbares Memory. Es ist über eine spezielle API zugänglich, beteiligt sich nicht am System-Commit und leistet je nach Bedarf mehr oder weniger als konventionelles General-Purpose-Memory.

Damit das Betriebssystem diese neuen Speicherschichten findet, muss es angepasst werden. Das erfolgt über spezielle Tabellen im ACPI (Advanced Computing Power Interface) respektive UEFI.

Im ACPI, einer Entwicklung aus den Nuller-Jahren, die inzwischen weit verbreitet ist, geben drei Tabellen über neue Memory-Schichten und ihre jeweilige Zuordnung Auskunft: CEDT (CXL Early Discovery Table), SRAT (Static Ressource Affinity Table, eine Topologietabelle für alle Prozessoren und das angelagerte Memory) und HMAT (Heterogeneous Memory Attribution Table). Ist das Betriebssystem entsprechend vorbereitet, findet die Firmware die entsprechenden Spezial-Memory-Bereiche. Applikationen können dann darauf zugreifen.

Dabei hat jede Memory-Schicht spezielle Eigenschaften, von denen die Applikationen profitieren können. Anfangs wird Microsoft nur Schreiblatenz und die dazugehörige Bandbreite sowie Leselatenz nebst Bandbreite abfragen und verwenden, später sollen neue hinzukommen.

Nutzt das Betriebssystem selbst Teile der neuen Speicherschichten, erweitern sie das allgemein verfügbare Memory etwa um schnelle Pagefiles oder um Sekundär-Storage für komprimierte Files.

Azure experimentiert derzeit mit zwei Anwendungen, die neue Memory-Schichten nutzen: Zero Infinity soll AI/ML-Modellen und ihrem Training mehr Ressourcen ohne Reprogrammierung verfügbar machen. Denn das Memory der dafür oft verwendeten Nvidia-GPUs skaliert nicht mit den Modellen. Die Microsoft-interne Studie „Far Memory OS Pagefile“ befasst sich damit, beim Abarbeiten von ML-Workflows Workload-Cache-Seiten in einen entfernten Memory-Pagefile auszulagern.

Software-Integration in Linux

Ein Vortrag von Anejaneya Chagran, Cloud-Architect bei Intel, befasste sich auf der OSF-Tagung damit, wie sich CXL und neue Speicherschichten Software-technisch in die Systemlandschaft integrieren lassen. Als Beispiel diente Linux.

Dies hier im Detail darzustellen, würde zu weit führen. Nur so viel: Mit Libraries wie Memkind-Lib, CacheLib oder mit dem PMDT (Personal Memory Defelopment Kit) gibt es bereits taugliche Werkzeuge. Sie sind auf die neue Memory-Welt eingestellt und erleichtern Entwicklern den Umgang damit.

Bildergalerie

Das Multi-Thread-fähige Werkzeug Memkind besitzt eigene APIs und erfasst DRAM genau wie HBM oder PMEM (Programmierbares Memory). CacheLib greift auf DRAM und Block-Memory zu und entkoppelt die Medien regelgesteuert von den Anwendungen. PMDT ist eine komplette Entwicklungsumgebung, die auf Direct-Access-Memory aufgesetzt wird, also Memory, auf das Applikationen direkt zugreifen dürfen.

Wer wissen will, wie viel ein über CXL angebundener Memory-Cache wirklich leistet, kann CacheBench verwenden. Die ersten praktischen Versuche laufen bei Intel schon. So wurde ein CXL-FPGA-Memory-Buffer aus der Vorproduktion mit einer Intel Sapphire Rapids gekoppelt. Doch erfahrungsgemäß dauert es von diesem Stadium bis zum breiten Einsatz noch eine Weile.

(ID:47930325)