APU13: AMD baut Software-Ökosystem für Opteron-Zukunft mit APUs auf
Im Umfeld seiner Entwicklerkonferenz APU13 ist AMD auch auf die eigenen Pläne für das im Augenblick dahinsiechende Opteron-Geschäft eingegangen. Nachdem bereits vor geraumer Zeit im Wettrennen mit Intel um die schnellste CPU die weiße Fahne gehisst wurde, ist der Konzern aktuell mitten in einer Übergangsphase hin zu einer Opteron-Zukunft mit APUs und ARM-CPU-Kernen. Elementarer Bestandteil auf dem Weg dorthin ist der Aufbau eines passenden Software-Ökosystems. Hierdurch will das Unternehmen für spezielle Anwendungsfälle in erster Linie hinsichtlich der Energieeffizienz konkurrenzfähige, kostengünstige Lösungen anbieten können. Ein erster konkreter Einsatzfall für die Opteron-APUs sind die Moonshoot-Prozessorkarten, die von HP für Remote-Desktop-Lösung angeboten werden. Über AMDs Aktivitäten beim Aufbau des Ökosystems für 64-Bit-ARM-Server hatten wir erst kürzlich berichtet.
Genau dies spiegelt auch die im Juni 2013 vorgestellte und weiterhin gültige Opteron-Roadmap für 2014 wider. Zwar gibt es noch den bereits bekannten “Piledriver”-Abkömmling “Warsaw” für den Sockel G34, aber ob die 32nm-CPU im Jahr 2014 noch konkurrenzfähig sein wird, darf man bezweifeln. Laut AMD geht es bei “Warsaw” auch in erster Linie um die Unterstützung des Projekts AMD Open 3.0 Server. Einige Großrechnerbesitzer könnten sich eventuell über die Upgrademöglichkeit freuen. Mit den HSA-APUs “Berlin” soll dagegen in Zukunft nahezu der gesamte Anwendungsbereich abgedeckt werden:
Neue Informationen zur Hardware der APUs bleibt AMD allerdings schuldig. Die erwähnten Features HSA, hUMA-Speichercontroller und hQ sind den Planet-3DNow!-Lesern schließlich längst bekannt. Selbiges gilt auch für die Kooperation mit Oracle beim Projekt Sumatra, die zum Ziel hat, die aktuelle Entwicklung zur Befähigung der Java Virtual Machine (JVM), Mehrkern-CPUs und GPUs zur Beschleunigung verwenden zu können, für Java9 (voraussichtlich 2015) um eine Unterstützung von HSA zu erweitern. Als Zwischenschritt und zur Überbrückung soll HSA in Java bereits 2014 mit Java8 durch einen Umweg über Aparapi genutzt werden können. Das besonders gut parallelisierbare NBody-Beispiel muss mal wieder zur Demonstration als Benchmark herhalten:
Neben Aparapi und dem Sumatra-Projekt für das OpenJDK unternimmt AMD auch in anderen Softwarebereichen Anstrengungen. Dazu gehört die den P3D-Lesern bereits bekannte Zusammenarbeit mit The Portland Group (PGI), in deren Rahmen der OpenACC-Compiler von PGI befähigt werden soll, neben Intel Xeon Phi und NVIDIA Tesla auch APUs und dGPUs von AMD ansprechen zu können. OpenACC ist eine im HPC-Umfeld sehr beliebte API, die ähnlich wie OpenMP auf Direktiven basiert und speziell für den Einsatz von Beschleunigerkarten von CAPS, Cray, NVIDIA und PGI erschaffen wurde. Im Falle der AMD-Hardware setzt der Compiler die Direktiven dann nicht durch Nutzung von CUDA, sondern OpenCL um. Problematisch hierbei ist jedoch, dass während des laufenden Projekts PGI, die seit den Tagen des ersten Opterons 2002 ein enger Partner AMDs war, von NVIDIA aufgekauft wurde. Laut Margaret Lewis haben sich daraufhin die beteiligten Teams von PGI und AMD zusammengesetzt und gemeinsam beschlossen, das laufende Projekt bis zum Ende durchzuziehen. Wie es danach weitergeht, ist allerdings unklar. Die Hoffnung ist hier, dass PGI möglichst die Beschleuniger von allen Herstellern (AMD, Intel und NVIDIA) unterstützen will, was den Compiler für Kunden attraktiver macht. Derzeit steht eine Testversion des OpenACC-Compilers mit Unterstützung für APUs und dGPUs von AMD zur Verfügung und die finale Version soll 2014 folgen.
Weniger bekannt, aber auch nicht neu sind die Bemühungen von AMD in Kooperation mit SUSE, die Open-Source-Gemeinde bei der Implementierung eines HSA-Back-Ends in die GNU Compiler Collection (GCC) zu unterstützen. Der gewählte Weg führt hier über die OpenMP-Direktiven in der Version 4.0, die bereits seit vielen Jahren zur Parallelisierung auf Mehrkern- und Multi-Prozessorsystemen zum Einsatz kommen. AMD und SUSE orientieren sich hierbei an den von OpenACC genutzten Direktiven.
Zu guter Letzt weist AMD noch auf seine Softwarebibliothek APPML hin, die inzwischen als Open-Source-Projekt unter dem neuen Namen clMath veröffentlicht wurde. Darin sind in OpenCL implementierte, hoch optimierte Funktionen enthalten, mit denen sich beispielsweise die Fast-Fourier-Transformation (FFT) und die Basic Linear Algebra Subprograms der Level 1 bis 3 berechnen lassen. Von jenen Rechenoperationen wird in wissenschaftlichen Anwendungen häufig Gebrauch gemacht. Dank solcher Bibliotheken muss sich der Nutzer selber weniger Gedanken über die zugrundeliegende Hardware und die OpenCL-Programmierplattform machen. AccelerEyes nutzt wiederum die clMath-Bibliothek, um über das eigene Softwarepaket ArrayFire 2.0 eine noch einfacher benutzbare Schnittstelle zur Verwendung der GPU sowohl unter Windows als auch Linux anzubieten. ArrayFire kann zusätzlich auch NVIDIA GPUs über CUDA oder Intels Xeon Phi über OpenCL nutzen.
Das Entwickler-Tool CodeXL hatten wir bereits zu seinem ersten Release vorgestellt und auch von den Neuerungen der aktuellen Version 1.3 mehrfach berichtet. Die aus Server-Sicht wichtigste Neuerung ist die Möglichkeit, das Tool nicht länger nur auf der Enwickler-Workstation, sondern jetzt auch per Remote-Zugriff auf dem eigentlichen Server-Node verwenden zu können.
Neben den typischen Marketingphrasen (“gaining momentum”) gibt es zum Abschluss noch eine gute Übersichtsfolie über HSA, APUs und deren Softwareeinsatzgebiete zu sehen. Dort sieht man schön, dass sich das OS um den HSA-Verbund aus CPU+GPU+Speicher kümmert, alte (Legacy-) Software nur auf der CPU-Seite (links) läuft, während HSA dann den Gesamtraum einnimmt. Zudem wird hier nochmals deutlich gemacht, dass HSA zwar ursprünglich in erster Linie entwickelt wurde, um das Zusammenspiel zwischen CPU und GPU zu optimieren, dies aber längst auch auf andere Beschleuniger erweitert wurde.
Mit Hilfe der auf “Kaveri” vorhandenen Kombination aus UVD, VCE und TrueAudio-DSPs ließe sich beispielsweise sehr energieeffizient die Trans-/Enkodierung von Bild und Ton eines Videostreams nahezu ohne jegliche Belastung der x86-CPU-Kerne realisieren. Potentielle Anwendungen hierfür wären die Transkodierung von Videos, Filterung von Audiosignalen oder das aufstrebende Cloud Gaming. Um Entwicklern die Nutzung der festverdrahteten Einheiten zu erleichtern, entwickelt AMD das Media SDK, zu dem es auf der APU13 auch einen eigenen Vortrag gab. Leider stehen hiervon die Folien noch immer nicht zur Verfügung.
Im Rahmen unserer ausführlichen Berichterstattung zur APU13 hatten wir uns auch schon mit anderen Softwareprojekten von AMD befasst. Stellvertretend seien der Linux-Open-Source-Compiler für C++ AMP, Textanalyse mittels Hadoop und Big-Data sowie B+-Bäume in Datenbanken genannt.
Abzuwarten bleibt allerdings weiterhin, was die APUs tatsächlich im Server-Einsatz zu leisten im Stande sind. Dank der HSA-Features und den dadurch kürzer ausfallenden Latenzen haben die APUs zudem das Potential, für das GPGPU-Computing neue Anwendungsfelder zu erschließen. Hier könnte allerdings insbesondere die vom Speicherinterface bereitgestellte Bandbreite schnell zu einem neuen Flaschenhals werden. Interessant wird aber auch der Vergleich zu Kombinationen aus CPUs und ausgewachsenen Beschleunigerkarten vom Schlage einer NVDIA Tesla K40 oder Intel Xeon Phi 7100, die in zunehmendem Maße in Supercomputern zum Einsatz kommen. Ein solcher Vergleich würde natürlich erst im größeren Maßstab Sinn machen. AMD sieht hier die Möglichkeit, mit APUs Systeme zu bauen, die mehr real nutzbare Rechenleistung auf engerem Raum (leichter zu kühlen) bei geringerer Leistungsaufnahme bieten.
Knackpunkt für “Berlin” dürfte aber sein, wann der notwendige HSA-Software-Stack zur Verfügung steht. Auf Seiten des Betriebssystems muss für HSA offenbar lediglich die Unterstützung für AMDs I/O‑Virtualisierungslösung IOMMU v2.5 vorhanden sein. Für Linux wurden bereits entsprechende Patches in den Kernel integriert. Wie es bei den Betriebssystemen von Microsoft aussieht, ist nicht klar.
Laut diesem offiziellen Fahrplan wird der HSA-Software-Stack voraussichtlich erst im zweiten Quartal 2014 verfügbar. Ein zweiter Release ist dann für das erste Quartal 2015 geplant, mit dem dann auch der neue Standard OpenCL 2.0 vollständig unterstützt werden soll.
Auf den nachfolgenden Seiten haben wir die Folien von einigen interessanten Präsentationen von der APU13 eingestellt.
Quellen:
Links zum Thema:
- APU13: Oracle tritt HSA-Konsortium bei ()
- APU13: HSA-Entwicklerplattformen erst Anfang 2014 verfügbar ()
- APU13: APUs für die Datenwolke, Videocodierung, JAVA, C++ AMP für Linux und mehr ()
- APU13: Hewlett-Packard bringt Moonshot-Prozessorkarte mit Kabini-Opterons ()
- AMD veröffentlicht Preview-Versionen kommender Entwicklertools ()
- Details zu AMDs heterogener Verarbeitungsschlange ()
- Verizon nutzt SeaMicro SM15000 Server von AMD für seine Enterprise Cloud [Update] ()
- AMD aktualisiert Opteron-Roadmap bis 2014 — Berlin, Warsaw und Seattle sollen es richten [Update] ()