AMD GPUOpen: Direkte Kontrolle der Radeon-Hardware für Spieleentwickler

Wolfgang Andermahr
76 Kommentare
AMD GPUOpen: Direkte Kontrolle der Radeon-Hardware für Spieleentwickler

Die Radeon Technologies Group unter Führung von Raja Koduri hat vor einigen Wochen im amerikanischem Sonoma nicht nur einige Details über HDR und 4K mit 120 Hertz auf der nächstjährigen Radeon-Generation bekanntgegeben, sondern hat gegenüber einigen Journalisten auch über eine neue Software-Initiative gesprochen.

AMD-Initiative GPUOpen

Denn auf dem „Radeon Technologies Group Summit“ genannten Event wurde sofort klar, dass AMD den Fokus nicht mehr nur auf die reine Hardware-Entwicklung legt, sondern nun auch die Software eine größere Rolle spielt. Der erste Schritt in diese Richtung ist der überarbeitete Crimson-Treiber und nun gibt man den nächsten Schritt bekannt. So gründet AMD eine neue Software-Initiative namens „GPUOpen“, die Verbesserungen im Spiele- und im professionellen High-Performance-Computing-Bereich (HPC) mit sich bringen soll.

GPUOpen richtet sich an den Spiele- und auch den professionellen Bereich. Zunächst einmal ist der Name Programm: Sämtliche Features von GPUOpen sind Open Source. AMD weist darauf hin, dass dies im vollen Umfang gilt. So ist der Quellcode jeglicher Programmschnipsel, vom Grafik-Sample bis hin zu den Tools frei einsehbar und darf vom Entwickler auch modifiziert und anderen Nutzern in der modifizierten Variante zur Verfügung gestellt werden. Anfang 2016 nennt AMD als Startzeit für GPUOpen.

AMD GPUOpen
AMD GPUOpen

Ermöglicht beziehungsweise vereinfacht wird dies durch ein neues Online-Portal. Dabei handelt es sich um ein unter GitHub eingerichtetes Portal, auf das Jedermann Zugriff hat. Auf diesem soll es nicht nur regelmäßig neue Blog-Nachrichten von AMD-Entwicklern sowie Gast-Beiträge anderer Entwickler geben, die sich um Programmiertechniken drehen. Zudem ist das GPUOpen-Portal dazu gedacht, dass jeder Entwickler freien Zugriff auf sämtliche Effekt-Bibliotheken, Tools sowie SDKs (durchweg Open Source) erhält und diese auch in modifizierter Version dort mit anderen Entwicklern teilen kann.

Die Vorteile für den Spieleentwickler

GPUOpen soll für Spieleentwickler mehrere Vorteile bringen – das wird unter der offiziellen Bezeichnung „GPUOpen Gaming“ laufen. So möchte AMD diesen die Möglichkeit geben, Radeon-Grafikkarten eher wie eine aktuelle Konsole (Xbox One und PlayStation 4) programmieren zu können. AMD wird entsprechende Tools zum Download bereitstellen, die Low-Level-Zugriff auf die Graphics-Core-Next-Architektur geben – deutlich mehr als DirectX 12 und Vulkan ermöglichen. Der Hersteller spricht von „Direct Access“ zur GPU. Als Beispiel hat Nicolas Thibieroz, Senior Manager für ISV-Engineering bei AMD, Asynchronous Shaders genannt. Das Feature kann mit Hilfe von DirectX 12 und Vulkan zwar genutzt werden, erlaubt dem Entwickler aber nur einen geringen Einfluss auf die dafür bei AMD-Grafikkarten wichtigen ACE-Einheiten. Durch das entsprechende GPUOpen-Tool soll der Entwickler dagegen vollen Zugriff auf die Einheiten haben und dann die optimale Performance aus den Radeon-Grafikkarten herausholen können.

Darüber hinaus wird AMD weitere Samples zu speziellen Grafikeffekten bereitstellen. Darunter fallen das bekannte TressFX, das in die Version 3.0 geht. Darüber hinaus gilt das auch für „ShadowFX“ (Schatten), „GeometryFX“ (Geometrie) und „AOFX“ (Ambient Occlusion). Die Samples liegen zu Beginn für DirectX 11 vor, können von Entwicklern aber auf DirectX 12 portiert werden. Zu einem späteren Zeitpunkt will dann auch AMD die Samples auf die neue Microsoft-API umstellen.

Neben den Effekten wird GPUOpen auch Tools für die Entwicklung von Spielen beinhalten. AMD benennt CodeXL (inklusive DirectX-12-Plug-In) sowie Tootle (Triangle Order Optimization Tool). Und auch diverse SDKs wird es geben. AMD spricht speziell von folgenden Entwicklungsumgebungen: LiquidVR, FireRender sowie RapidFire. zudem werden AMD-eigene Entwicklertools für Compute bereitgestellt sowie zahlreiche weitere Samples für allgemeine DirectX-11- und DirectX-12-Effekte. Sämtliche Tools und Effekte will AMD von Zeit zu Zeit aktualisieren und auch ausbauen.

GPUOpen – Gaming
GPUOpen – Gaming

Die Vorteile im HPC-Segment

GPUOpen will aber nicht nur Spieleentwickler, sondern auch den High-Performance-Computing-Markt, kurz HPC, ansprechen. Das hört dann auf den Namen „GPUOpen Compute“, wobei es sich um die „Boltzmann-Initiative“ handelt, die auf der diesjährigen Super-Computing-Konferenz angekündigt wurde. In der Kurzfassung setzt sich diese aus dem HCC-Compiler (Heterogeneous Compute Compiler), HIP und einem angepassten 64-Bit-Treiber für Linux zusammen – alles ist optimiert für HSA und ebenfalls Open Source.

HCC ermöglicht dem HPC-Entwickler, den eigenen Code nicht unbedingt in OpenCL zu schreiben. Stattdessen kann auch ganz gewöhnlicher, nicht für GPUs optimierter Code in C oder C++ geschrieben werden, der durch den HCC-Compiler dann in GPU-optimierten Code für GCN-GPUs umgewandelt werden und dann auf professionellen FirePro-Karten berechnet werden kann.

Wer möchte, kann den Code in Richtung der GCN-Architektur optimieren, um so die Performance zu verbessern. Dazu will AMD auch Dokumente über GCN zur Verfügung stellen, die dem Entwickler hilfreich sein sollen. HCC beherrscht zudem „Direct to ISA“ und kann so den Treiber umgehen – also eine direkte Kommunikation mit der Hardware. HIP dagegen stemmt sich gegen Nvidias CUDA-Sprache. So kann HIP CUDA-Code in C++ umwandeln, was dann wiederum durch den HCC-Compiler automatisch auf AMD-GPUs berechnet werden kann. Laut AMD soll der Code dann in den meisten Fällen zu mehr als 90 Prozent in funktionierenden C++-Code umgewandelt werden und nur weniger als zehn Prozent müssen manuell angepasst werden. Zudem soll das Programm dann (zumindest fast) genauso schnell laufen wie, wenn der Code direkt für AMD-GPUs optimiert worden wäre.

AMD GPUOpen – Compute

Zu guter Letzt gehört zu GPUOpen Compute noch ein Headless-Treiber für Linux in der 64-Bit-Version, der speziell für die Anforderungen von HPC-Programmen optimiert wird. So ist der Treiber auf Low-Latency-Anwendungen optimiert und unterstützt auch HSA mit diskreten FirePro-Karten. Wie sämtliche Tools wird auch der Treiber Open Source sein. Der neue AMDGPU-Treiber für Linux auf Open-Source-Basis ist dann das letzte Kernelement für GPUOpen, der sich auf die FirePro-Nutzung konzentriert und dem bisherigen Closed-Treiber in diverser Hinsicht überlegen sein soll.

AMD plant derzeit, im Laufe des ersten Quartals 2016 eine Early-Access-Phase für die Boltzmann-Tools zu starten.