Das Wissen, wie und wann GPGPUs in HPEC-Computern eingesetzt werden, wird Embedded-Designern ein besseres Verständnis für die Verwaltung des Stromverbrauchs und den Lastenausgleich mit dieser leistungsstarken Verarbeitungstechnologie vermitteln.

Mythen GPGPU-Computing

Zwei der größten Schwierigkeiten moderner eingebetteter Systeme lassen sich in wenigen Worten zusammenfassen: Verlust der Rechenleistung und erhöhter Stromverbrauch. Zu den Hauptverantwortlichen gehören der Zustrom von Datenquellen, kontinuierliche Technologie-Upgrades, die Verringerung der Systemgröße und die zunehmende Dichte innerhalb eines Systems selbst.

Hochleistungs-HPEC-Systeme (Embedded Computer) begonnen, die spezielle parallele Rechengeschwindigkeit und -leistung auf universellen Grafikprozessoren (GPGPUs) zu nutzen, so dass Systementwickler außergewöhnliche Leistung in robuste, langlebige Small Form Factors (SFFs) bringen können.

GPU-beschleunigtes Computing kombiniert eine Grafikverarbeitungseinheit (GPU) mit einer zentralen Verarbeitungseinheit (CPU), um Anwendungen zu beschleunigen und einige der rechenintensiven Teile von der CPU auf die GPU zu übertragen.

Es ist wichtig zu wissen, dass bei weiter steigenden Verarbeitungsanforderungen die Hauptrechenmaschine (CPU) irgendwann ablösen wird. Der Grafikprozessor hat sich jedoch zu einem äußerst flexiblen und leistungsstarken Prozessor entwickelt und kann dank verbesserter Programmierbarkeit, Präzision und Parallelverarbeitung bestimmte Rechenaufgaben besser und schneller als die CPU bewältigen.

Ein tieferes Verständnis des GPGPU-Computing, seiner Grenzen und Fähigkeiten kann Ihnen helfen, die besten Produkte auszuwählen, die die beste Leistung für Ihre Anwendung liefern.

GPGPUs sind wirklich nur in der Unterhaltungsindustrie nützlich, wie z.B. beim Rendern von Grafiken in Spielen.

Das ist nicht wahr. Wie sich in den letzten Jahren gezeigt hat, definieren GPGPUs neu, was in Bezug auf Datenverarbeitung und Deep-Learning-Netzwerke möglich ist, und prägen die Erwartungen im Bereich der künstlischen Intelligenz. Eine wachsende Zahl von Militär- und Verteidigungsprojekten auf Basis der GPGPU-Technologie wurde bereits eingesetzt, darunter Systeme, die die fortschrittlichen Verarbeitungsfunktionen für Radars, Bilderkennung, Klassifizierung Bewegungserkennung, Codierung etc. nutzen.

Weil es sich um „Allzweck“-Grafikprozessoren handelt, sind sie nicht für komplexe, hochdichte Computeraufgaben ausgelegt.

Auch nicht wahr. Eine typische leistungsstarke RISC- oder CISC-CPU hat Dutzende von „anspruchsvollen“ Kernen. Ein Grafikprozessor verfügt über Tausende von „spezialisierten“ Kernen, die für die Adressierung und Manipulation großer Datenmatrizen wie Displays oder Eingabevorrichtungen und optische Kameras optimiert sind. Diese GPU-Kerne ermöglichen es Anwendungen, Algorithmen auf viele Kerne zu verteilen und die Parallelverarbeitung einfacher zu gestalten und durchzuführen. Die Fähigkeit, viele gleichzeitige „Kernel“ auf einer GPU zu erstellen – wobei jeder „Kernel“ für eine Teilmenge spezifischer Berechnungen verantwortlich ist – gibt und die Möglichkeit, komplexe, hochdichte Berechnungen durchzuführen.

Während Multicore-CPUs eine verbesserte Verarbeitung ermöglichen, bieten CUDA-basierte GPUs Tausende von Kernen, die parallel arbeiten und große Datenmengen gleichzeitig verarbeiten.

Die GPGPU-Pipeline verwendet die Parallelverarbeitung auf GPUs, um Daten so zu analysieren, als wären es Bilder oder andere Grafikdaten. Während GPUs mit niedrigeren Frequenzen arbeiten, haben sie typischerweise ein Vielfaches der Anzahl der Kerne. So können GPUs weitaus mehr Bilder und grafische Daten pro Sekunde verarbeiten als eine herkömmliche CPU. Die Verwendung der parallelen GPU-Pipeline zum Scannen und Analysieren von Grafikdaten führt zu einer großen Beschleunigung.

GPGPUs sind nicht robust genug, um rauen Umgebungen wie Bohrlochüberwahung, mobile oder militärische Anwendungen standzuhalten.

Falsch. Die Verantwortung für die Robustheit liegt eigentlich beim Board- oder Systemhersteller. Viele Teile und Komponenten, die in einer rauen Elektronikumgebung verwendet werden, sind bei der Herstellung nicht robust und das Gleiche gilt für GPGPUs. Hier kommt das Wissen um die Entwicklung zulässiger Systeme ins Spiel, einschließlich der Techniken, die die Auswirkungen von Dingen wie Umweltgefahren am besten mildern und sicherstellen, dass die Systeme den spezifischen Anwendungsanforderungen entsprechen.

Aitech verfügt beispielsweise über GPGPU-basierte Boards und SFF-Systeme, die für eine Reihe von Avionik-, Marine-, Boden- und mobilen Anwendungen qualifiziert sind und dort überleben, dank jahrzehntelanger Erfahrung, die in der Systementwicklung eingesetzt werden kann. Der Weltraum ist jetzt der Maßstab als Grenze, die das Unternehmen für GPGPU-Technologie erkundet.

Wenn die Verarbeitungsanforderungen die Systemanforderungen übertreffen, erfordern die Alternativen einen erhöhten Stromverbrauch (z.B. Kauf leistungsfähigerer Hardware, Übertaktung vorhandener Geräte).

Stimmt. Wenn der Benutzer versucht, die Verwendung der GPGPU-Technologie zu vermeiden, kommt es in der Regel zu einem Mangel an CPU-Leistung. Um dieses Dilemma zu lösen, werden in der Regel zusätzliche CPU-Boards hinzugefügt oder bestehende Boards übertaktet, was zu einem erhöhten Stromverbrauch führt. In den meisten Fällen führt dies zu einer Verringerung der CPU-Frequenzleistung sowie der Notwendigkeit des Downclocking, um steigende Werkzeugtemperaturen auszugleichen.

Würde nicht das Hinzufügen einer weiteren Processing Engine die Komplexität und Integrationsprobleme in meinem System erhöhen?

Kurzfristig vielleicht, da Sie die Lernkurve des Umgangs mit einer neuen, hochmodernen Technologie berücksichtigen müssen. Aber auf lange Sicht, nein. CUDA hat sich zu einer De-facto-Computersprache für Bildverarbeitung und Algorithmen entwickelt.

Sobald Sie einen CUDA-Algorithmus erstellt haben, können Sie ihn auf jeder anderen Plattform, die eine Nvidia GPGPU-Karte unterstützt, „wiederverwenden“. Die Portierung von einer Plattform auf eine andere ist einfach, so dass der Ansatz weniger hardware-spezifisch und damit „generischer“ wird.

Da diese GPGPU-basierten Systeme extrem große Datenmengen verarbeiten, steigt der Stromverbrauch.

Nicht wirklich. GPGPU-Karten sind heute sehr energieeffizient. Der Stromverbrauch auf einigen GPGPU-Karten ist heute derselbe wie auf CPU-Karten. GPGPU-Karten können jedoch viel mehr parallele Daten mit Tausenden von CUDA-Kernen verarbeiten. Das Leistungsverhältnis ist also das, was sich sehr positiv auswirkt. Mehr Verarbeitung bei gleicher und manchmal etwas weniger Leistung.

Es gibt noch Kompromisse zwischen Leistung und Stromverbrauch.

Das ist richtig und diese Kompromisse wird es auch immer geben. Höhere Leistung und schnellere Durchsätze erfordern einen höheren Stromverbrauch. Das ist eine Tatsache. Aber das sind die gleichen Kompromisse, die Sie bei der Verwendung einer CPU oder einer anderen Verarbeitungseinheit finden.

Als Beispiel sei die „Nvidia Optimus Technology“ genannt, die von Aitech eingsetzt wird. Es handelt sich um eine Compute-GPU-Switching-Technologie, bei der die diskrete GPU alle Rendering-Aufgaben übernimmt und die endgültige Bildausgabe an die Anzeige weiterhin vom RISC-Prozessor mit integriertem Grafikprozessor (IGP) erfolgt. In der Tat wird das IGP der RISC-CP nur als einfacher Display-Controller verwendet, was zu einem nahtlosen, flimmerfreien Erlebnis in Echtzeit führt, ohne dass die GPGPU die volle Last der Bildwiedergabe und -generierung auf sich nehmen muss oder CPU-Ressourcen für die Bilderkennung über die gesamte RISC-CPU verteilt werden müssen. Diese Lastverteilung oder Balancierung macht diese Systeme noch leistungsfähiger.

Wenn weniger kritische oder weniger anspruchsvolle Anwendungen ausgeführt werden, kann der diskrete Grafikprozessor ausgeschaltet werden. Der Intel IGP verarbeitet sowohl Rendering- als auch Display-Aufrufe, um Energie zu sparen und das höchstmögliche Performance-/Powerverhältnis zu bieten.

Die Auslastung meiner CPU kann mit einem einfachen Boardupgrade erreicht werden und reicht aus, um die von meinem System benötigte Datenverarbeitung verwalten.

Das ist nicht wahr. Die Branche bewegt sich definitiv in Richtung Parallel Processing und übernimmt GPU-Verarbeitungsfunktionen, und das aus gutem Grund. Das Parallel Processing eines Bildes ist die optimale Aufgabe für einen Grafikprozessor – dafür wurde es entwickelt. Da die Anzahl der Dateneingaben und Kameraauflösungen weiter steigt, wird die Notwendigkeit einer parallelen Verarbeitungsarchitektur zur Norm und nicht zum Luxus. Dies gilt insbesondere für unternehmens- und sicherheitskritische Branchen, die mehrere hundert Bilder gleichzeitig erfassen, vergleichen, analysieren und Entscheidungen treffen müssen.

Das Moore`sche Gesetz gilt auch für GPGPUs.

Ja, aber es gibt eine Lösung. Nvidia entwickelt derzeit eine Multichip-Modul-GPU (MCM-GPU)-Architektur, die eine kontinuierliche Skalierung der GPU-Leistung ermöglicht, trotz der Verlangsamung der Transistorskalierung und der Einschränkungen der Fotostrecke.

Bei der GTC 2019 zeigten die Diskussionen von Nvidia über den MCM-GPU-Chip viele Technologien, die auf übergeordnete Computersysteme angewendet werden könnten. Dazu gehören Mesh-Netzwerke, Low-Latency-Signalisierung und eine skalierbare Deep-Learning-Architektur sowie ein sehr effizientes Die-to-Die auf einer organischen Substratübertragungstechnologie.

Das Erlernen einer völlig neuen neuen Programmiersprachen (z.B. CUDA) erfordert zu viel Zeit und Geld.

Eigentlich nicht. Derzeit ist CUDA die de facto parallele Computersprache und viele CUDA-basierte Lösungen sind bereits im Einsatz, so dass viele Algorithmen bereits nach CUDA portiert wurden. Nvidia verfügt über ein großes Online-Forum mit vielen Beispielen, Web-Trainingskursen, User Communities usw. Darüber hinaus sind Softwareunternehmen bereit, Ihnen bei Ihren ersten Schritten in CUDA zu helfen. Zudem ist in vielen Universitäten die CUDA-Sprache heute Teil des Lehrplans für Programmiersprachen.

Das Erlernen einer neuen Computertechnologie kann entmutigend erscheinen. Mit den verfügbaren Ressourcen und den exponentiellen Aussichten der GPGPU-Technologie ist dies jedoch eine Programmiersprache, in der sich die Investition äußerst lohnen wird.

Es gibt keine „Industrial grade“ GPGPUs für den Embedded-Markt, insbesondere SFF, SwaP-optimierte Systeme.

Das ist nicht wahr. Nvidia verfügt über eine komplette „Jetson“-Produktlinie, die auf den Embedded-Markt ausgerichtet ist. Es beinhaltet derzeit die folgenden System on Moduls (SoMs), die jeweils kleine Formfaktoren und Größen, Gewicht und Leistungsoptimierung aufweisen:

  • TX1
  • TX2
  • TX2i-Spezialausführung „Industrial“ für sehr „raue“ Umgebungen.
  • Xavier

GPGPUs wurden sowohl für Industrielle als auch für militärische Anwendungen entwickelt und definieren die SwaP-Optimierung und die erwartete Leistung von SFF-Systemen neu.

Nvidia hat sohat einen längeren Lebenszyklus für das TX2i-Modul angekündigt, was bedeutet, dass die Veralterung von Komponenten ein geringeres Risiko für längerfristige Programme wie Luft- und Raumfahrt, Verteidigung und Raumfahrt sowie für mehrere robuste industrielle Anwendungen darstellt. Aitech hat viele militärische und industrielle Projekte und Kundenprogramme auf der Grundlage der oben genannten Embedded-Familie implementiert, wobei jeden Tag neue Anwendungen auf den Markt kommen.

Vielen Dank für Ihren Besuch.