Werbung
Immer wieder ist seitens AMD von HSA die Rede, doch was ist die HSA? Die Heterogenous System Architecture wurde von AMD auf dem AFDS (AMD Fusion Developer Summit) 2011 offiziell mit dem Ziel angekündigt, künftige Software mit dem gleichzeitigen Nutzen der Grafikeinheit und der CPU zu beschleunigen. Es gibt nämlich Aufgaben, die die CPU effizienter übernehmen kann und wiederum andere Aufgaben, die die GPU besser löst. Seit dem hat sich viel getan, denn AMD ist vier Generationen APU (Accelerated Processing Unit) weiter. Zur ersten Generation der APUs, die im klassischen Sinne einfach eine CPU und GPU auf demselben Die sind, gehören die "Llano"- und "Bobcat"-Chips. Diese besitzen bzw. besaßen keinerlei HSA-Features. Trotz alledem waren sie ein wichtiger Schritt für AMD.
Die zweite Generation bildet sich aus den auf "Piledriver"-Kernen basierenden "Trinity"- und "Richland"-APUs. Diese bieten bereits einfache HSA-Features, sind aber dennoch immer noch nicht das Ende der Fahnenstange. Erst mit "Jaguar" und der hUMA-Technologie inkl. GCN-Grafikpart wurde die nächst höhere Ebene erklommen. Die GCN-Shader sind mittels C++ programmierbar und können somit zeiteffizienter programmiert werden, als wenn die Softwareingenieure noch auf komplizierte Shader-Sprachen zurückgreifen müssten. Mit "Kaveri" und dem "Jaguar"-Nachfolger "Puma" hat AMD die aktuelle Entwicklungsstufe im Bereich des HSA-Featureset erreicht.
[h3]HSA Foundation[/h3]
Die HSA Foundation ist ein Zusammenschluss aus Chip-Herstellern, Mikrochip-Entwicklern und Software-Entwicklern aus aller Welt. Zu den bekanntesten Namen gehören hierzu natürlich die Gründer Advanced Micro Devices (AMD) aus Kalifornien, ARM Limited aus England, das ARM-Schwergewicht Qualcomm, ebenfalls aus Kalifornien und weitere, vor allem auf ARM setzende, Unternehmen wie Samsung und MediaTek.
Mit dieser Foundation möchten AMD und die anderen Mitglieder die eigenen Chips weiter mit gemeinsamen Knowhow optimieren und auch als ein großes Schwergewicht die Software-Industrie dazu bewegen, auf HSA zu optimieren. Vor allem ist dies für AMD zum einen notwendig und auch eine Chance, da die CPUs von Intel in der reinen x86-Computing-Leistung klar überlegen sind. Auch arbeiten die Unternehmen mit einer ganzen Reihe von Universitäten zusammen, die diese mit Knowhow unterstützen.
Die HSA Foundation versucht mit gemeinsam entwickelten Developer-Tools die Programmierung für diesen Architektur-Ansatz für die Entwickler möglichst einfach und plattformübergreifend zu gestalten. So soll es, wenn die Tools ausgereift sind, keine Rolle spielen, ob das Programm später für Prozessoren mit ARM-Architektur oder für APUs mit x86-Architektur kompiliert wird. Die Architektur-spezifischen Optimierungen nimmt dann der Compiler vor. Außerdem könnte man, die entsprechenden Befehlssätze vorausgesetzt, direkt die RISC-Befehle an die Kerne senden, denn seit vielen Generationen wird selbst in x86-Prozessoren vom komplexen CISC-Befehlssatz über die mehr oder weniger schnellen Decoder in einen RISC-Befehlssatz übersetzt. Dieser Schritt kann wegfallen und somit erstens die gleichzeitige Programmierung für ARM- und x86-CPUs erneut vereinfachen und der Zeitaufwand für die Übersetzung über die Decoder würde wegfallen.
[h3]hUMA[/h3]
hUMA ist eine Technologie, die es erlaubt das CPU und GPU auf denselben Speicherberreich zugreifen können. Vorher war dies nicht möglich, da sich CPU und GPU jeweils einen Speicherbereich im RAM reservierten und dieser nichtmehr zugänglich war für die jeweils andere Einheit. Mit hUMA ist es also möglich, dass CPU und GPU ohne die Daten zeitaufwendig hin- und her zu kopieren auf die selben Dateien zugreifen können und im Zweifelsfall so etwas mehr Leistung herausgekitzelt wird. Dies kann aber nur geschehen, wenn die Software dies auch explizit unterstützt. Durch hUMA wurde es auch erst möglich, die Abstraktionsschichten wie DirectCompute oder OpenCL zu überwinden und direkt mit der Hochsprache C++ zu programmieren.
Besonders Programme wie Photoshop bzw. allgemein Programme die mit Renderprozessen oder Grafiken zu tun haben, könnten von dieser Technologie enorm profitieren, denn hier müssten die Aufgaben, die eigentlich ein Shader besser kann als ein CPU-Kern, nicht ausschließlich von der CPU bewältigt werden. Bereits heute gibt es in Adobes Photoshop Filter, die durch OpenCL oder CUDA auf der Grafikkarte beschleunigt werden. Jedoch nicht alle, da laut Adobe das Kopieren der Daten den (Zeit-)Gewinn, der durch das Berechnen auf der Grafikkarte erzielt wird, wieder zunichtemacht.
[h3]hQ (Heterogenous Queuing)[/h3]
hQ wurde von AMD erst vor kurzem angekündigt. Diese Technologie, die auch erst in den im Januar erscheinenden "Kaveri"-Prozessoren zum Einsatz kommt, ermöglicht es, dass die CPU und GPU gleichberechtigt Aufgaben abarbeiten können. Zuvor hat die CPU der GPU die Aufgaben immer zugewiesen. Sie war also der Master unter den beiden Einheiten. Auch hier muss die Software hQ unterstützen, denn diese verteilt die Aufgaben ohne direktes Einwirken des Betriebssystems. Die sogenannten Task-Queues werden vom Programm direkt im User-Mode ausgeführt, was vor allem die Zeit verkürzt, die es brauchen würde, wenn die Aufgaben erst über das Betriebssystem im Kernel-Modus ausgeführt werden würden. Microsoft hat selbst eine ähnliche Schnittstelle im Petto, nämlich C++AMP, jedoch läuft dies über DirectCompute und Microsoft hat die Weiterentwicklung nahezu eingestellt.
Die Strategie seitens AMD ist klar: Auch wenn die aktuellen APUs auf den ersten Blick weniger schnell wirken, als dies die Konkurrenz tut, so sind sie doch für bestimmte Aufgaben besser geeignet, als dies den Anschein macht. Erst entsprechend optimierte Software aber kann dieses Potenzial ausschöpfen und hier versucht AMD die verschiedenen Technologien durch ein Zusammenwirken mit anderen Größen des Geschäfts besser in den Markt zu bringen. Ob dies gelingt, wird die Zeit zeigen müssen.