Heterogeneous System Architecture

Die Heterogenous System Architecture (kurz HSA, ehemals Fusion System Architecture)[1] ist ein von AMD entwickeltes Prozessorkonzept, um Haupt- und Grafikprozessor möglichst effizient auf einem Computerchip (Die) zu vereinen und dadurch das Ausführen von spezialisierten Programmen zu beschleunigen. Dies soll unter anderem die Gesamtleistung von APUs (Accelerated Processing Unit) deutlich steigern. Hauptmerkmal von HSA ist, dass die Prozessorkerne und der Grafikprozessor auf einen gemeinsamen Adressraum und Speicher (RAM) zugreifen.

Geschichte

AMD kündigte das HSA-Programm auf dem AFDS (AMD Fusion Developer Summit) 2011 an, mit dem Ziel die Verarbeitungsgeschwindigkeit diverser Aufgaben immens zu beschleunigen. Wegen Markenrechtsschwierigkeiten mit Arctic (unter anderem bekannt für CPU- und GPU-Kühler) musste AMD das damals noch FSA (Fusion System Architecture) genannte Programm in HSA umbenennen.

Auf dem AFDS 2012 kündigte AMD die Gründung der sogenannten HSA Foundation an, bei der AMD mit anderen Chipentwicklern an einem gemeinsamen Konzept der HSA arbeiten wollte. Mitglieder der HSA Foundation sind unter anderen ARM und Texas Instruments.[2]

Zukünftig plant AMD in Zusammenarbeit mit ARM, die Softwareindustrie stärker dazu zu bewegen, ihre Produkte auf HSA zu optimieren und evtl. zusätzlich noch mehrere Hardwarehersteller zu gewinnen.

Gründer der HSA Foundation

Technisches

AMD-Graphikstack unter Linux mit HSA (durch den Treiber amdkfd)

Das Konzept der HSA beruht darauf, dass der Grafikteil von APUs allgemeine Aufgaben (GPGPU) übernehmen und dadurch spezielle Rechenoperationen beschleunigen kann. Die Grafikeinheit ist mit C++ und OpenCL programmierbar. Das Entwicklungspaket "HSA SDK" soll zusätzlich als Abstraktionsebene die "HSA intermediate language" (HSAIL) anbieten, um C++-Code für die APU zu Prozessorkernoptimieren. Ebenso erhält diese Zwischenschicht die Kompatibilität zwischen unterschiedlichen APUs.

Die aktuell höchste Ausbaustufe von HSA im Desktop- und Notebookmarkt ist die Kaveri APU, die Kohärenz im Speicher gewährleisten kann und auch AMDs "Heterogeneous Uniform Memory Access" (hUMA) beherrscht.

Die GPU (Graphics Processing Unit, Grafikprozessor) wird verwendet, da diese mit ihren parallelen Ausführungseinheiten sehr gut Gleitkommarechenoperationen schnell und effizient ausführen können. Im Gegensatz zur normalen CPU (Central Processing Unit, Prozessor) bieten diese nämlich viel mehr Gleitkommaeinheiten. Aktuelle CPUs bieten bei AMD nur eine Gleitkommaeinheit pro Modul (AMD Bulldozer Architektur) und bei Intel nur eine Gleitkommaeinheit pro Kern (Intel-Sandybridge-Architektur').

Merkmale

Die Merkmale eines Prozessors mit HSA-Unterstützung sind, dass der Grafikprozessor und Hauptprozessor auf demselben Computerchip vereint sind. Dies erleichtert den schnelleren Datenaustausch zwischen den beiden Einheiten, und somit kann man softwareseitig Aufgaben stark beschleunigen. Unter anderem verringert dies die Komplexität von Rechner-Hauptplatinen, da dort kein Extra-Grafikchip mehr aufgelötet zu werden braucht. Ein weiteres wichtiges Merkmal ist, dass im Endausbaustadium der Grafikteil einen kohärenten Speicher und gemeinsamen Adressraum aufweist und mit C++ bzw. OpenCL programmierbar ist. Dies hat AMD bereits in seinen Kaveri-APUs mit Graphics-Core-Next-Grafikarchitektur integriert. Auch können Chipfertiger über die HSA 3rd-Party-IP-Bestandteile in ihre Mikrochips integrieren. Dies ist bei der Nachfolgergeneration der stromsparenden ("low power") Chips auf Basis der Jaguar-Architektur der Fall. Dort ist beispielsweise die ARM TrustedZone direkt in den x86-Chip integriert.

Weiterentwicklung

AMD plant, diverse Logik-Einheiten von Dritten wie z. Bsp. ARM-Kerne ihren APUs[3] hinzuzufügen und diese somit dem Verwendungszweck gezielt anzupassen. Die dritte Ausbaustufe von HSA vertreten die Kaveri- und Godavari-Modelle, die kohärenten Speicher und einen gemeinsamen Adressraum von CPU und GPU bieten. Sie sind mit 2–4 Steamroller-Kernen (Nachfolger von Piledriver) und Graphics-Core-Next-Grafikteil (momentan neueste Grafikchipgeneration von AMD) ausgestattet.[4]

Sony kündigte im Februar 2013 an, in ihrer PlayStation 4 x86-APUs mit AMDs Jaguar als CPU- und "Graphics Core Next" als GPU-Architektur zu verwenden. Diese besitzen wie Kaveri und Godavari die dritte HSA-Ausbaustufe und haben als Kabini bzw. Temash im Low-End Desktop- und Notebookmarkt bzw. im Tabletmarkt die vorherigen Modelle, basierend auf der Bobcat-Architektur, abgelöst.

Die vorerst letzte HSA-Ausbaustufe stellen die Carrizo-APUs mit Excavator-Kernen dar, welche 2016 um Bristol-Ridge-Versionen für den Desktop ergänzt werden sollen.[5]

Software

Softwaremäßig wird HSA jetzt schon durch einige große Softwarehäuser unterstützt. Zu den unterstützten Programmen zählen die bekannten Bildbearbeitungsprogramme Gimp, Adobe Photoshop[6] und Darktable, wo diverse Funktionen via OpenCL auf dem Grafikteil laufen. Des Weiteren das Office-Paket LibreOffice (in der Tabellenkalkulation)[7], diverse Software zur Konvertierung und Anzeige von Videos wie z. B. Handbrake[8], x264, Sony Vegas, Adobe Premiere, Final Cut Pro, Avisynth sowie Web-Browser und Software für 3D-Rendering (z. B. Blender, Maya, 3dsMax[9]).

Software, die mit OpenCL programmiert wurde, wird auf Grafikprozessoren aller Hersteller beschleunigt. Ins Hintertreffen gerät dem gegenübergestellt aber NVIDIAs Eigenentwicklung CUDA.

PGI (The Portland Group) plant, einen entsprechenden HSA-Compiler in Partnerschaft von AMD zu entwickeln, mit dem man ohne viel eigenes Zutun Programme kompilieren kann, die durch die HSA-Erweiterungen beschleunigt werden.[10][11]

Prozessoren mit HSA-Unterstützung

Übersicht der Prozessoren mit HSA-Unterstützung
EntwicklerCPU-ArchitekturGPU-ArchitekturBefehlssatzCodenameVeröffentlichungsdatumFertigung
AMDAMD JaguarGraphics Core Nextx86-64PlayStation 4 SoC201328 nm
AMDAMD SteamrollerKaveri2014
AMDAMD Puma+Mullins & Beema
AMDARM Cortex A57ARMv8 (64-bit)Seattle
AMDAMD Steamrollerx86-64Godavari2015
AMDAMD ExcavatorCarrizo
AMDAMD Puma+Carrizo-L
AMDAMD ExcavatorBristol Ridge201628 nm
AMDAMD ZenSummit Ridge201614 nm
AMDAMD K12ARMv8 (64-bit)n/a
AMDAMD Zen 2x86-64/20197 nm

Weblinks

Einzelnachweise

  1. AMDs „Fusion“-basierte Architektur wird umbenannt – Artikel bei ComputerBase, vom 20. Januar 2012. Abgerufen am 26. Juli 2012.
  2. Martin Fischer: AFDS 2012: AMD und ARM gehen Hand in Hand. In: heise online. 13. Juni 2012.
  3. Martin Fischer: AFDS 2012: AMD kündigt APU-Kombiprozessoren mit ARM-Kernen an. In: heise online. 14. Juni 2012.
  4. AMD 2012–2013 Mobile Roadmap. In: CPU-World.com (englisch).
  5. http://www.kitguru.net/components/cpu/anton-shilov/amd-preps-bristol-ridge-apus-carrizo-for-desktops/
  6. Häufig gestellte Fragen zu Photoshop und GPUs. Abgerufen am 31. Juli 2016.
  7. LibreOffice Wiki: OpenCL-Einstellungen. 7. Mai 2015, abgerufen am 31. Juli 2016.
  8. GPU Acceleration. (Nicht mehr online verfügbar.) Archiviert vom Original am 8. August 2016; abgerufen am 31. Juli 2016 (englisch).  Info: Der Archivlink wurde automatisch eingesetzt und noch nicht geprüft. Bitte prüfe Original- und Archivlink gemäß Anleitung und entferne dann diesen Hinweis.@1@2Vorlage:Webachiv/IABot/trac.handbrake.fr
  9. AMD Radeon ProRender. (Nicht mehr online verfügbar.) Archiviert vom Original am 31. Juli 2016; abgerufen am 31. Juli 2016 (englisch).  Info: Der Archivlink wurde automatisch eingesetzt und noch nicht geprüft. Bitte prüfe Original- und Archivlink gemäß Anleitung und entferne dann diesen Hinweis.@1@2Vorlage:Webachiv/IABot/radeon-prorender.github.io
  10. http://www.planet3dnow.de/cgi-bin/newspub/viewnews.cgi?category=1&id=1351715019
  11. http://www.planet3dnow.de/vbulletin/showthread.php?t=408921

Auf dieser Seite verwendete Medien

AMD Logo.svg
AMD corporate logo in use since 2013.
Linux AMD graphics stack.svg
Autor/Urheber: ScotXW, Lizenz: CC BY-SA 4.0
Illustrates the current (as of August 2016) Linux device drivers for AMD hardware (cf. Radeon, PowerTune HSA, UVD, VCE, TrueAudio, Eyefinity, etc.).

AMDKFD was mainlined into Linux kernel 3.19
AMDGPU was mainlined into Linux kernel 4.2
2015-09-17 at the XDC2015 Alex Deucher announced, that AMD's only Vulkan and OpenCL drivers will work on top of amdgpu and will eventually be open-sourced and mainlined into Mesa. Their current proprietary OpenGL 4.5 driver will remain proprietary, will be ported to work in top of amdgpu and will be the only proprietary UMD. It will serve as an alternative to radeonsi.
2016-02-16 the Vulkan 1.0 specification was officially released.
2016-03-18 AMD released a beta version of their proprietary UMD, that works on top of amdgpu instead of fgrlx.ko: AMDGPU-PRO-Beta-Driver-for-Vulkan-Release; it supports OpenGL 4.5, GLX 1.4, OpenCL 1.2, Vulkan 1.0 and VDPAU
As of Linux kernel 4.5 amdgpu supports ​​KMS (Kernel Mode Setting) and ADF (Atomic Display Framework)! DAL (Display Abstraction Layer) was published back in 2015-09-21 (https://cgit.freedesktop.org/~agd5f/linux/log/?h=DAL-wip) but has not been accepted into the Linux kernel mainline due to various issues.
2016-03-21 AMD relased a fully Vulkan 1.0 comliant driver, but only for Windows 7, Windows 8,1 and Windows 10, not for Linux: http://support.amd.com/en-us/kb-articles/Pages/radeon-vulkan-beta.aspx
2016-04-12 Mesa and radeonsi driver received support for GL_ARB_robust_buffer_access_behavior and is now fully OpenGL 4.2 compliant. Cf. https://mesamatrix.net/
2016-08-01 AMD released AMD FirePro Software Suite, based on fglrx.ko but only for AMD FirePro hardware.

2017-12-23 amdvlk is found at https://github.com/GPUOpen-Drivers/AMDVLK