Viele Embedded-Applikationen müssen immer mehr Daten immer schneller verarbeiten. Angefangen bei der medizinischen und industriellen Bildverarbeitung, wo Bildqualität und Auflösung immer besser werden sollen; die Bearbeitungszeiten hingegen sinken. Auch die IoT-Vernetzung erfordert höchste Rechenleistungen für neue, dezentrale Edge-Node-Server. Sie werden häufig für zwei Schwerpunkte eingesetzt: Zum einen sollen sie Big-Data der angebundenen IoT-Devices nah an ihrem Entstehungs- beziehungsweise Anforderungsort in Echtzeit verarbeiten, was auch den Netzwerktraffic zur Cloud im Zaum zu halten hilft. Zum zweiten müssen sie die IoT-Applikationen gegen äußere Bedrohungen schützen. So kann man beispielsweise den gesamten IoT-Netzwerktraffic per Deep-Packet-Inspection auf konfliktionäre Inhalte wie Viren oder Malware in Echtzeit hin überprüfen. Auch das perzeptive Computing, das intuitivere Mensch-Maschine-Schnittstellen nicht nur über Gesten-, Gesichts- und Emotionserkennung sondern auch natürliche Sprachkommunikation ermöglichen soll, fordert höchste Rechenleistung.
In all diesen Fällen müssen die Datenströme immens viele, oftmals hoch komplexe Berechnungen durchlaufen. OEMs solcher Applikationen suchen daher nach immer leistungsfähigerer Hardware, um durch schnellere und bessere Verfahren im Wettbewerb Schritt zu halten. Seit einiger Zeit stehen ihnen hierzu programmierbare Grafikeinheiten zur Verfügung – sogenannte General Purpose Graphics Processing Units oder kurz GPGPUs, die auf Computer-on-Modulen bereits als applikationsfertige und flexibel integrierbare Computing Cores angeboten werden.
Arbeitsteilung
Die Stärke der GPGPU-basierten Berechnungen ist ihre parallele Verarbeitungskapazität. Hierfür integrieren GPGPUs mehrere hunderte bis tausende Recheneinheiten. Diese SIMD-Engines (Single Instruction Multiple Data) können – wie der Name sagt – mit einer einzigen Instruktion eine Vielzahl von Daten parallel verarbeiten. Bei bildgebenden Verfahren beispielsweise alle Berechnungen, die für eine Zeile oder einen kompletten Frame einer Bild- oder Videoaufnahme erforderlich sind. Bei Big-Data-Applikationen wären dies Berechnungen für große Datensätze und in der Netzwerksicherheit die Verarbeitung von Ethernet-Datenpaketen. Besteht ein Datensatz beispielsweise aus 4.096 einzelnen 16-Bit-Werten, wie zum Beispiel ein Datenpaket oder eine Bild- oder Videozeile mit 4k-Auflösung, braucht man bei 500 Recheneinheiten in der GPU rund 8,2 Taktzyklen für den Datensatz und rund 17.700 Taktzyklen für ein komplettes Bild. Bei einer Taktrate von 800 MHz für die GPU und damit 400 GFLOPs Rechenleistung kann eine Operation damit auf ein komplettes 4k-Bild innerhalb von 22 Mikrosekunden angewandt werden. Für eine Datenverarbeitung in Echtzeit mit komplexen Algorithmen reicht das allerdings immer noch nicht aus. Ein Algorithmus nutzt nämlich oft Tausende solcher Operationen. Die leistungsfähigsten Grafikkarten haben heute aber bereits eine Rechenleistung von mehreren Tera-FLOPS und könnten damit selbst Datenströme mit mehreren Gigabit pro Sekunde in Echtzeit verarbeiten. GPGPUs sind damit für viele Entwickler also auch eine willkommene Alternative zu DSPs oder FPGAs.
Substituiert DSPs und FPGAs
Es gibt mehrere Gründe, die für GPGPUs anstelle von DSPs oder FPGAs sprechen. Zum einen sind sie vergleichsweise standardisierter und damit auch einfacher zur programmieren. Zum anderen sind sie bereits Bestandteil der Prozessorarchitektur. Ein nicht unerhebliches Argument ist aber die Leistung: Bei GPGPUs wächst sie vergleichsweise schneller, als bei DSPs oder FPGAs, da im Consumer-Markt eine enorme Nachfrage nach immer höheren Auflösungen und immer besserer Grafik herrscht. Deshalb arbeitet auch eine enorm große Entwicklungsmannschaft an immer leistungsfähigeren Lösungen, die somit auch schneller marktreif werden. Die Nachfrage trägt ihr Übriges dazu bei, dass GPGPUs auch zu attraktiven Preisen angeboten werden können. Für die Programmierung von GPGPUs hat sich das OpenCL-Framework als offener Standard etabliert. Es wird von allen großen Prozessor- und GPU-Herstellern wie Intel und AMD sowie ARM und NVIDIA unterstützt. Dieser umfassende Support der Chiphersteller bildet eine solide Basis für die langfristige Entwicklung und Kompatibilität.
Hardwareunabhängigkeit
OpenCL abstrahiert zudem die zugrundeliegende Hardware, so dass der generierte Code auch von einer Plattform auf eine andere portiert werden kann. Erst auf dem jeweils definierten – bei Bedarf auch virtuellen – System werden die einzelnen Workloads automatisch optimal auf die dort zur Verfügung stehenden Recheneinheit verteilt, was zu bestmöglicher Performance bei minimiertem Energieverbrauch führt. OEMs werden durch diesen hohen Abstraktionsgrad unabhängig von der eingesetzten Hardware und können die Hard- und Softwareentwicklung getrennt voneinander betreiben. Unternehmen können dadurch von einer kürzeren Time-to-Market und reduzierten F&E-Aufwendungen profitieren. Dies gilt umso mehr im Vergleich zum Einsatz von FPGAs und DSPs, bei denen jede neue Generation oft auch neue Programmieranforderungen stellt. Trotz der Unabhängigkeit von einer spezifischen Hardware benötigen Entwickler natürlich attraktive Plattformen, deren Roadmaps in punkto GPUs beziehungsweise GPGPUs erfolgversprechend sind. Neben den High-End-Systemen, die mit mehreren parallel betriebenen Grafikkarten aufgebaut werden, empfehlen sich für kompakte Embedded-Systemdesigns insbesondere SOC-basierte Lösungen. SOCs integrieren CPU und GPU zusammen mit dem I/O-Controller-Hub auf nur einen einzigen Chip und stellen so eine hoch integrierte, kompakte und doch leistungsfähige Lösung dar. Zwei Performanceklassen kann man dabei identifizieren: Die für stationäre, häufig aktiv gekühlte Systeme sowie solche für mobile und/oder passiv gekühlte und damit besonders robuste Devices. Prozessorseitig bieten sich dabei im Bereich x86 sowohl Lösungen von Intel als auch AMD an.
AMD-Embedded-R-Series-SOC-Prozessoren
Die Embedded-R-Series-SOC-Prozessoren von AMD sind die neuesten GPGPU-SOCs. Sie zeichnen sich durch ihre leistungsfähige Radeon-HD-Grafik aus. Sie bieten eine maximale, theoretische Rechenleistung von 819 GFLOPs. Neben dieser reinen Performanceangabe ist zudem interessant zu erwähnen, dass die neue AMD-Embedded-R-Series-SoCs eine breit skalierbare TDP (Thermal Design Power) von 12 bis 35 Watt bieten, sodass sie sogar lüfterlose, komplett geschlossene und damit besonders robuste Designs bedienen können.
Heterogene System-Architektur 1.0
Mit der neuen AMD-R-Series ist zudem erstmals der Support der Heterogeneous-System-Architecture(HSA)-Spezifikation 1.0 auf x86-ern verfügbar. HSA 1.0 wurde von der HSA Foundation im März 2015 vorgestellt. Die Spezifikation dient dazu, den Einsatz von OpenCL zu optimieren. Hierzu definiert HSA ein standardisiertes Plattformdesign, um die Programmierung aller Recheneinheiten eines SOCs zu vereinheitlichen. Dafür müssen die Prozessoren zum Beispiel einen für alle Recheneinheiten gemeinsam nutzbaren Speicher aufweisen. Hier unterstützt die neue AMD-Embedded-R-Series den gegenüber DDR3 deutlich bandbreitenstärkeren DDR4-RAM mit ECC. Damit können Entwickler die GPGPU-Leistung also nun noch effektiver nutzen, als beim alleinigen Einsatz von OpenCL.
Die neuen Intel-Core-Prozessoren
Auch Intel hat jüngst neue Prozessoren mit leistungsstarken, integrierten GPGPUs vorgestellt: die fünfte und die sechste Generation der Intel-Core-Architektur. Das Angebot skaliert von 15-Watt-Core-Prozessoren für lüfterlose Devices bis zu Server-on-Modulen mit Xeon-Prozessoren in der 45-Watt-Klasse und Iris-Pro-Graphics-6300 für aktiv gekühlte Systeme. In der leistungsstärksten Ausbaustufe stellen sie High-Performance-Embedded-Applikationen eine GPGPU-Leistung von bis zu 883,2 GFLOPs bei 1.150 MHz bereit.
Pentium- und Celeron-SoCs
Die jüngsten Pentium- und Celeron-SoC-Prozessoren (ehemaliger Codename: Braswell) sind mit einer TDP von 4 bis 6 Watt verfügbar. Sie nutzen die Intel-Gen-8-Grafik, die auch in der fünften Generation der Core-Prozessoren eingesetzt wird. Allerdings sind sie in diesen Low-Power-Prozessoren auf maximal 16 Execution-Units begrenzt. Damit erreichen sie eine Peak-Performance von 358,4 GFLOPS pro Sekunde.
AMD-Embedded-G-Series-SoCs
Die Embedded-G-Series-SoCs von AMD sind in der zweiten Generation mit einer TDP von 6 bis 25 Watt verfügbar. Sie integrieren den Radeon-R5E/-R3E Next-Generation-Graphics-Core. In der leistungsstärksten Version mit Radeon-HD-8500E-Grafik liefern sie eine GPGPU-Leistung von bis zu 153,6 GFLOPs.