Menü

AMDs Unified Memory: Mehr Performance und Energieeffizienz für Kaveri und Co

Von
vorlesen Drucken Kommentare lesen 150 Beiträge

AMD Corporate Fellow Phil Rogers erklärte während einer Telefonkonferenz das hUMA-Konzept.

(Bild: Martin Fischer)

Noch 2013 will AMD mit Kaveri den ersten Kombiprozessor (APU) herausbringen, dessen CPU und GPU auf einen gemeinsamen Speicherbereich zugreifen können. AMD nennt diese Technik heterogeneous Uniform Memory Access, kurz hUMA. Was im britischen Englisch wie Humor klingt, ist für AMD der Schlüssel für einen gewaltigen Anstieg der Leistungsfähigkeit zukünftiger Kombiprozessoren. Und genau auf diese setzt die wirtschaftlich angeschlagene Firma ihre Existenz. Bereits 2012 erklärte Senior Vice President Lisa Su: "Wir verwetten das Unternehmen auf APUs."

hUMA ist der erste – und ein wesentlicher – Schritt zu AMDs Heterogeneous Systems Architecture (HSA). Diese zielt darauf, CPU- und Grafikkerne von Kombiprozessoren effizienter parallel auszulasten und Algorithmen während der Laufzeit automatisch und dynamisch auf die jeweiligen Einheiten zu übertragen. Der gemeinsame Speicherbereich vereinfacht den Datenaustausch und verbessert die Rechen- und Energieeffizienz der auf einem Stück Silizium integrierten CPU- und GPU-Kerne.

AMD ist sich sogar sicher, dass das heterogene Computing das bisherige GPGPU-Konzept ablösen wird. Bei GPGPU laufen bestimmte, programmiertechnisch vorab festgelegte Aufgaben ausschließlich auf dem Grafikchip. GPGPU ist mittlerweile aus dem Supercomputing und der Wissenschaft nicht mehr wegzudenken, fand aber auf Desktop- und Mobilrechnern bis dato nur vergleichsweise wenige Anwendungsgebiete, beispielsweise HD-Encoding oder bestimmte Bildbearbeitungsalgorithmen.

Das Ziel von HSA: Anwendungen sollen serielle und parallele Aufgaben dynamisch während der Laufzeit an CPU oder GPU verteilen.

(Bild: AMD/c't)

Der Grund für die mangelnde Durchdringung ist für AMD unter anderem die Tatsache, dass GPGPU-Programmierung nur wenige, erfahrene Experten beherrschen. Die enorme Leistung der GPU liegt daher in vielen Programmen brach. Genau das sollen HSA und das hUMA-Konzept ändern.

hUMA bringt drei wichtige Neuerungen für Kombiprozessoren. Erstens: kohärenter Speicher. Dadurch werden alle CPU- und GPU-Funktionseinheiten kontinuierlich über alle Instruktionen und Änderungen auf dem neuesten Stand gehalten. Falls die GPU beispielsweise einen Wert in ihren Cache – und noch nicht in den Speicher – schreibt, kann die CPU diesen auslesen und bei Bedarf aktualisieren. Zweitens: Pageable Memory. Damit die GPU auf den gesamten Systemspeicher zugreifen darf, muss sie Page Faults genau so handhaben können wie eine CPU. Derzeit dürfen GPUs lediglich auf Page-Locked-Speicherbereiche zugreifen. Das ist problematisch, da das Betriebssystem bestimmte Speicherbereiche für die GPU reservieren muss, was die Systemleistung verringern kann. Außerdem beschränken Betriebssysteme normalerweise die Anzahl der für die GPU reservierten Speicherbereiche auf höchstens die Hälfte des physischen Speichers, was wiederum die Größe des GPU-Speichers begrenzt. Die dritte Neuerung ist die Möglichkeit der GPU, auf den gesamten Speicherbereich zuzugreifen – sowohl den physischen als auch virtuellen.

Die Rechenleistung moderner GPUs übersteigt jene der CPUs drastisch. Bei normalen Anwendungen liegen GPUs aber häufig brach. Das soll sich mit hUMA ändern.

(Bild: AMD/c't)

hUMA-Kombiprozessoren unterscheiden nicht mehr zwischen CPU- und GPU-Speicherbereichen.

Volle Hardware-Kohärenz seitens der GPU beziehungsweise APU birgt mehrere Vorteile. Es vereinfacht die Programmierung stark und benötigt keine separaten Software-Schnittstellen, um Kohärenz herzustellen. Auch die Portierung von CPU-Code auf GPUs und der Datenaustausch werden deutlich einfacher. Hardware-Kohärenz funktioniert außerdem plattform-unabhängig und erfordert laut AMD keine Software-Anpassungen für Betriebssysteme – besonders relevant für APUs und SoCs, die unter verschiedenen Betriebssystemen laufen müssen. Der Nachteil ist der höhere Protokollaufwand zum Erhalt der Datenkonsistenz, der Zugriffe verlangsamen kann. Spezielle Snoop-Filter, die AMD Probe Filter nennt, sollen den Protokoll-Overhead in Grenzen halten.

Laut AMD soll HSA als offener Standard die Entwicklungskosten von Software reduzieren. hUMA ist außerdem kompatibel zu den bestehenden Programmiersprachen Python, C++11, Java und Dot-Net.

Für die Nutzer heißt das laut AMD: mehr Anwendungsleistung und längere Batterielaufzeiten, schließlich arbeiten GPUs wesentlich energieeffizienter als Prozessoren. Mehr Informationen, speziell über den GPU-Zugriff auf gemeinsame Speicherbereiche und zukünftige Produkte, will AMD auf einer Entwicklerkonferenz geben, die vom 11. bis 14. November im kalifornischen San Jose stattfindet.

Im November will AMD während der Entwicklerkonferenz in San Jose mehr GPU-spezifische Details zum gemeinsamen Speicherzugriff herauslassen.

(Bild: Martin Fischer)

Das hUMA-Konzept unterstützt unterschiedliche Speichertypen. So erklärte Phil Rogers, dass AMD in der Lage sein werde, APUs mit DDR3- oder GDDR5-Speicher zu bauen. Wie bereits Anfang Januar bekannt wurde, wird der für Ende 2013 erwartete Kaveri-Prozessor beide Speichertypen unterstützen. Außerdem sei hUMA kompatibel zu embedded DRAM, wie er etwa in Spielekonsolen genutzt wird: er lässt sich in den gemeinsamen Speicherbereich einblenden oder als Cache einbinden.

Speziell die 3D-Rendering-Performance soll hUMA beschleunigen, wie Phil Rogers auf c't-Anfrage erklärte: "Spieleentwickler wollten seit einigen Jahren extrem große Texturen nutzen, mussten sich bis dato aber einer ganze Reihe von Tricks bedienen, Teile großer Texturen in kleinere Texturen zu verpacken. Denn heute muss eine Textur zunächst in einem separaten Bereich des physischen Speichers liegen, bevor die GPU sie verarbeiten darf. Mit hUMA werden Anwendungen viel effizienter mit Texturen umgehen können."

Phil Rogers erklärte während der Telefonkonferenz außerdem, dass auch diskrete GPUs von hUMA profitieren sollen. Denn GPUs dürfen dann auf den gesamten Systemspeicher (Virtual Address Space inklusive Pageable System Memory) zugreifen statt nur auf Teile davon, und zwar mit den gleichen Pointern, wie sie auch CPUs nutzen. (mfi)

Anzeige
Anzeige