AMD „hUMA“ verbessert Kommunikation zwischen CPU und GPU
AMD ist eines der Gründungsmitglieder der HSA Foundation und dort wegweisend bezüglich der Hard- und Softwareentwicklung, die sich das Ziel gesetzt hat, die „Heterogeneous System Architecture“ weiterzuentwickeln, sodass CPU und GPU in Zukunft immer mehr, schneller und effizienter Rechenaufgaben erledigen können.
hUMA steht für „Heterogeneous Uniform Memory Access“ und es ist auch der Name Programm. Die neue AMD-Technologie soll einen Speicher schaffen, auf den sowohl CPU als auch GPU mit denselben Fähigkeiten zugreifen und auch Daten direkt miteinander austauschen können.
Denn wer bis jetzt auf einer APU (das gilt auch für eine diskrete Grafikkarte) die GPU nutzen möchte, hatte immer mit dem Problem zu kämpfen, dass diese nur auf den so genannten (adressierten) „Page Locked Memory“ zugreifen konnte und nicht auf die Daten, die vorher von der CPU bearbeitet wurden (page faults). Sollte dies doch passieren, musste die CPU die Daten erst in einen anderen Adressraum schreiben, auf den die GPU Zugriff hat.
Das soll es bei hUMA nun nicht mehr geben, stattdessen kann sowohl die CPU als auch die GPU jeden Speicherinhalt eines gemeinsamen Speichers sehen und auch auf diesen zugreifen und ihn bearbeiten. Das hat zugleich zur Folge, dass beide Komponenten immer wissen, wann welche Daten (von der anderen Einheit) bearbeitet wurden und so die Prozessoren immer auf die neuste Version zugreifen können, ohne diese selber neu berechnen zu müssen beziehungsweise die Daten anfordern zu müssen.
Dieser Schritt soll es Entwicklern viel einfacher machen, die GPU zusätzlich zur CPU benutzen zu können, da ein andauerndes Kopieren, Synchronisieren und Anfordern von Daten wegfällt. Die „gemeinsame Sicht“ ist dabei nicht nur auf den Speicher beschränkt, sondern gilt auch für den in CPU und GPU integrierten Cache, wobei beide Hardwarekomponenten auf den jeweilig anderen Cache zugreifen können. Die Kohärenz (und die anderen hUMA-Features) ist dabei in Hardware gegossen und basiert nicht auf einer Softwarelösung.
Neu ist bei hUMA, dass die GPU von nun an auch auf einen virtuellen Speicher zugreifen kann, der bis dahin noch nicht im physischen Speicher hinterlegt ist – das war bis jetzt der CPU vorbehalten. CPU und GPU können auf den kompletten „Virtual Memory Space“ zugreifen und diesen reservieren.
AMD stellt darüber hinaus klar, dass bei „hUMA-Hardware“ die GPU mit so genannten „Pointern“ umgehen kann, die auf gewisse Speicherbereiche zeigen. Das hat den Vorteil, dass die CPU keine Daten mehr zu der GPU und zurück kopieren muss, wenn letztere eine Rechenaufgabe zu bewältigen hat. Stattdessen erhält die GPU einfach einen Pointer von der CPU, den diese dann bearbeitet und die CPU kann die Ergebnisse daraufhin direkt auslesen – ohne einen Kopiervorgang. Auf welchen Speicherbereich der Pointer zeigt, ist bei hUMA nicht von Bedeutung, da die GPU eben auf den kompletten Speicheradressraum zugreifen kann.
Lange Rede, kurzer Sinn: hUMA soll es dem Programmierer leichter machen, die GPU miteinzubeziehen. Es wird keine spezielle API wie Direct Compute oder OpenCL benötigt, stattdessen können auf gewöhnliche Hochsprachen wie C++ oder ähnliche zurückgegriffen werden. Und der Nutzer soll dadurch profitieren, dass die Performance im Allgemeinen steigt und es eben vermehrt GPU-beschleunigte Software geben soll.
hUMA ist, wie bereits erwähnt, eine Hardwarelösung und muss dementsprechend integriert sein. Die Kaveri-APU inklusive Steamroller- und GCN-Architektur ist dabei das erste AMD-Produkt, dass hUMA unterstützt. Neu ist die Information übrigens nicht, denn AMD spricht bereits seit längerem von den oben genannten Features in Bezug auf Kaveri. Die Präsentation gibt einzig weitere Details und eben einen Namen bekannt. Die Technologie wird sich dabei nicht nur auf AMD-Produkte beschränken, auch die anderen HSA-Mitgliedern können hUMA verwenden. Darüber hinaus hat AMD bekannt gegeben, dass genauso diskrete Radeon-Grafikkarten profitieren können. AMD arbeitet derzeit mit einigen Software-Entwicklern an den ersten, angepassten Programmen. Weitere Details gab es dazu aber noch nicht.