Mobile-Menu

Speichervereinigung Was ist Memory-Coalescing?

Von Dipl.-Ing. (FH) Stefan Luber 2 min Lesedauer

Anbieter zum Thema

Memory-Coalescing ist eine Optimierungstechnik für parallele Arbeitsspeicherzugriffe, die zur Leistungsoptimierung bei GPU-Berechnungen zum Einsatz kommt. Mit ihr lassen sich mehrere Zugriffe auf aufeinanderfolgende Daten zu einer größeren Speicheroperation zusammenfassen. Das ermöglicht eine bessere Ausnutzung der Speicherbandbreite und verbessert die Systemleistung.

Mit Memory-Coalescing lässt sich eine verbesserte Auslastung der Speicherbandbreite erzielen.(Bild:  Midjourney / KI-generiert)
Mit Memory-Coalescing lässt sich eine verbesserte Auslastung der Speicherbandbreite erzielen.
(Bild: Midjourney / KI-generiert)

Der englische Begriff Memory-Coalescing lässt sich mit „Speichervereinigung“ oder „Speicherverschmelzung“ ins Deutsche übersetzen. Die Technik wird zur Leistungsoptimierung bei GPU-Berechnungen genutzt. Sie kommt beim Zugriff auf den globalen Arbeitsspeicher und bei der Ausführung von Speicheroperationen zum Einsatz. Um die Speicherbandbreite effizienter auszunutzen und die Performance des Gesamtsystems zu verbessern, werden mehrere parallele Zugriffe auf aufeinanderfolgende Daten im Arbeitsspeicher zu einer größeren Speicheroperation zusammengefasst.

Memory-Coalescing für GPUs und CUDA-Anwendungen

GPUs können Billionen von Gleitkommaoperationen pro Sekunde ausführen und erreichen Rechenleistungen im Teraflop-Bereich. Um diese Leistung abzurufen und die GPUs voll auszulasten, sind auf Befehlsebene datenparallele Algorithmen erforderlich. Dabei ist der Zugriff auf die Daten im globalen Arbeitsspeicher (DRAM) entscheidend für die Leistung.

Um rechenintensive Aufgaben auf Grafikkarten durchzuführen, lässt sich die sogenannte CUDA-Architektur nutzen. CUDA ist das Akronym für „Compute Unified Device Architecture“. Es handelt sich um ein von Nvidia entwickeltes Programmiermodell und eine Plattform für paralleles Rechnen, mit der sich die enorme Rechenleistung von Nvidia-GPUs für allgemeine Berechnungen nutzen lässt. Anstatt sich nur auf die CPU zu verlassen, werden mit CUDA parallele Berechnungen auf der GPU möglich.

Memory-Coalescing ist ein grundlegendes Konzept, um hohe Leistungen bei parallelen Rechenlasten beispielsweise für Anwendungen wie maschinelles Lernen, wissenschaftliche Simulationen oder für das High-Performance-Computing zu erzielen. Es sorgt für eine verbesserte Auslastung der Speicherbandbreite, indem es die Speicherzugriffe mehrerer Threads zu einer einzigen, effizienten Transaktion gruppiert. Das ermöglicht es den CUDA-Anwendungen, Daten von aufeinanderfolgenden Speicherorten zu verwenden, bevor zu anderen Speicherorten gewechselt werden muss. Das DRAM des globalen Arbeitsspeichers kann dadurch nahe der angegebenen maximalen Bandbreite arbeiten.

Beim Memory-Coalescing erkennt die Hardware, ob parallele Threads im selben Arbeitsschritt (Warp) auf aufeinanderfolgende Speicherbereiche zugreifen. Ist dies der Fall, fasst die Hardware diese Speicherzugriffe zu einem konsolidierten, großen und zusammenhängenden Zugriff auf die aufeinanderfolgenden DRAM-Speicherbereiche zusammen. Anstatt separate Speicheranfragen zu senden, die viel Zeit beanspruchen, kann die GPU die angeforderten Daten als einen einzigen, größeren Datenblock abrufen.

Vorteile durch den Einsatz von Memory-Coalescing

Der Einsatz der Optimierungstechnik Memory-Coalescing für parallele Arbeitsspeicherzugriffe bietet unter anderem diese Vorteile:

  • die Bündelung von Zugriffen auf aufeinanderfolgende Speicherbereiche reduziert die Anzahl der einzelnen Transaktionen zum DRAM und maximiert die Übertragungsrate,
  • die Speicherbandbreite des DRAM wird effizienter genutzt, und GPUs erreichen mit Memory-Coalescing nahezu ihre maximal mögliche Speicherbandbreite,
  • der Gesamtdatendurchsatz zum Arbeitsspeicher wird gesteigert, und die GPU erzielt eine höhere Leistung.

(ID:50548068)

Jetzt Newsletter abonnieren

Täglich die wichtigsten Infos zu Data-Storage und -Management

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. Die Einwilligungserklärung bezieht sich u. a. auf die Zusendung von redaktionellen Newslettern per E-Mail und auf den Datenabgleich zu Marketingzwecken mit ausgewählten Werbepartnern (z. B. LinkedIn, Google, Meta).

Aufklappen für Details zu Ihrer Einwilligung