FPGAs oder GPUs: Was ist besser für schnelle neuronale Netze?

| Autor / Redakteur: Stefano Zammattio * / Sebastian Gerstl

Die Geschwindigkeit und das Ausmaß, mit dem sogenannte Deep Neural Networks (DNNs) trainiert werden können, haben in den vergangenen Jahren rapide zugenommen. Möglich ist dies durch moderne, dediziert auf KIs ausgerichtete Hardware-Beschleuniger. Vor allem GPUs und FPGAs kommen hierbei verstärkt zum Einsatz. Doch welche der beiden Technologien eignet sich besser?
Die Geschwindigkeit und das Ausmaß, mit dem sogenannte Deep Neural Networks (DNNs) trainiert werden können, haben in den vergangenen Jahren rapide zugenommen. Möglich ist dies durch moderne, dediziert auf KIs ausgerichtete Hardware-Beschleuniger. Vor allem GPUs und FPGAs kommen hierbei verstärkt zum Einsatz. Doch welche der beiden Technologien eignet sich besser? (Bild: THANANIT / Intel)

So genannte Deep Neural Networks (DNNs) sind zur Datenanalyse inzwischen auch für die Industrie interessant. Doch welche Hardware wird den Ansprüchen dieser Technologie am Besten gerecht?

Im heutigen Zeitalter von „Big Data“ werden Unternehmen und Verbraucher täglich von großen Datenmengen aus verschiedenen Quellen überflutet, darunter geschäftliche Transaktionen, soziale Medien und Informationen aus Sensor- oder M2M-Daten (Maschine-zu-Maschine). Diese Daten sind verschiedenen Formaten erhältlich – von strukturierten numerischen Daten in herkömmlichen Datenbanken bis zu unstrukturierten Textdokumenten, E-Mail, Video, Audio und Finanztransaktionen.

Eine sorgfältige Analyse dieser Daten ist entscheidend, um Erkenntnisse zu erlangen und die Entscheidungsfindung sowie das Maschinelle Lernen (ML) zu verbessern. Algorithmen kommen in der modernen Datenanalyse umfassend zum Einsatz. Deep Neural Networks (DNNs), eine Variante eines Machine-Learning-Algorithmus, werden in zunehmendem Maße für die Bildverarbeitung eingesetzt, da sie sich zum Erkennen von Objekten hervorragend eignen und höchste Genauigkeit bieten.

Derzeitige DNNs, z.B. AlexNet und VGG, basieren auf einer dichten Fließkomma-Matrixmultiplikation (GEneral matrix multiply bzw. GEMM), die bisher in Grafikprozessoren (GPUs) mit deren Parallelität und hohen TFLOP/s-Werten durchgeführt wird. FPGAs (Field Programmable Gate Arrays) sind zwar energieeffizienter als GPUs (was im heutigen IoT-Markt wichtig ist ), ihre Leistungsfähigkeit in DNNs entspricht jedoch nicht der von GPUs.

Dieser Beitrag gibt einen kurzen Überblick über DNNs und erläutert, wie aktuelle Trends in der DNN-Entwicklung zusammen mit jüngsten Fortschritten bei FPGAs diesen Markt verändern können. Von Intel durchgeführte Tests werden beschrieben, in denen die Leistungsfähigkeit zweier aktueller FPGAs (Arria 10 und Stratix 10 von Intel) mit der zu dem Zeitpunkt leistungsfähigsten GPU (Titan X Pascal) für DNN-Berechnungen verglichen wird.

Eine kurze Erklärung zu Deep Neural Networks (DNNs)

ML-Algorithmen bestehen aus zwei Phasen. In der ersten Phase (oder Trainingsphase) wird ein Modell mit Vorhersagekraft erstellt, indem iterativ an einem bekannten Satz von Datenproben gearbeitet wird. In der zweiten Inferenzphase werden dann anhand des Modells aus Phase 1 Vorhersagen zu neuen Datenstichproben getroffen.

In Bild 1 bestehen die Datenmuster aus Bildern mit relevanten Kategorien für diese Bilder. In der Trainingsphase werden Bilder den jeweiligen Kategorien zugewiesen, während die Inferenzphase das Modell zur Kategorisierung neuer Bilder verwendet.

DNNs werden häufig als Graphen dargestellt, die auf Schichten von Neuronen basieren, wobei Knoten die Neuronen und Verbindungen zwischen den Neuronen darstellen, die durch Kanten dargestellt werden. Ein Netzwerk mit vier Schichten – mit einer Eingabe-, einer Ausgabe- und zwei verborgenen Zwischenschichten ist in Bild 2 dargestellt.

Die DNN-Berechnung durchläuft jede Netzwerkschicht und berechnet die Werte jedes Neurons durch Multiplizieren und Akkumulieren aller Werte der Neuronen in der vorherigen Schicht mit den entsprechenden Kantengewichten. DNN-Berechnungen sind daher stark von Multiplikations- und Akkumulationsoperationen abhängig.

Bild 2 beschreibt, wie die DNN-Berechnung Vorwärts- und Rückwärtsdurchläufe verwendet. Der Vorwärtsdurchlauf nimmt ein Sample der Eingabeschicht, führt alle verborgenen Schichten durch und erzeugt eine Vorhersage auf der Ausgabeschicht. In der Inferenzphase verwendet die DNN-Berechnung den Vorwärtsdurchlauf, um eine Vorhersage für ein Sample zu erhalten. In der Trainingsphase wird ein Vorhersagefehler aus dem Vorwärtsdurchlauf während des Rückwärtsdurchlaufs (dem Back-Propagation-Algorithmus) zurückgeführt, und die Netzwerkgewichtungen werden entsprechend aktualisiert. Iterative Vorwärts- und Rückwärtsdurchläufe verfeinern während der Trainingsphase die Netzwerkgewichtungen, bis die gewünschte Genauigkeit erreicht ist.

DNNs können verschiedene Arten von Schichten aufweisen. Vollständig vernetzte Schichten verbinden alle Neuronen einer Schicht mit allen Neuronen in der nächsten Schicht, während Faltungsebenen nur mit Gruppen benachbarter Neuronen vernetzt sind. Andere Arten umfassen Aktivierungs-, Stapelnormalisierungs- und Pooling-Schichten, und moderne DNNs verfügen über mehrere Sätze von jeder Art.

Bild 3a beschreibt, wie eine 3-Neuron-Eingangsebene (I) und eine 2-Neuron-Ausgangsebene (O) als dichte Vektoren und die Gewichte (W) als eine 2x3-dichte Matrix formuliert werden. Die Berechnung multipliziert den Vektor der Eingangsneuronen mit der Gewichtungsmatrix.

Aktuelle Trends bei Deep Neural Networks

Mit der sich rasant weiterentwickelnden DNN-Forschung zeichnen sich drei Trends ab, die für kommende DNNs übernommen werden.

Tiefer greifende Netzwerke: Es hat sich gezeigt, dass tiefer greifende Netzwerke mit mehr Schichten die Genauigkeit erhöhen. Heutige DNNs können über 150 Schichten aufweisen – Im Jahr 2012 waren es noch gerade einmal 10 Schichten. Die entsprechenden Fehlerquoten sind von 16,4 auf 3,5% zurückgegangen, wobei jedoch tiefere Netzwerke zu größeren Modellen führen, die immer mehr Berechnungen erfordern und letztendlich unlösbar werden.

Kompaktere Datentypen nutzen: Es hat sich auch gezeigt, dass kompaktere Datentypen die DNN-Genauigkeit im Vergleich zu Datentypen mit vollständiger Genauigkeit nicht wesentlich beeinflussen. Einige der neuesten GPUs verwenden FP16- und Int8-Datentypen. Die Verwendung extrem kompakter Datentypen mit BNNs (binäre neuronale Netze), die 1-Bit-Datentypen nutzen, wird derzeit erforscht, um die Speichergröße und die Bandbreite erheblich zu reduzieren und die Berechnung zu vereinfachen.

Die Genauigkeit von BNNs bei kleinen Datensätzen ist mit vollpräzisen Netzwerken vergleichbar – bei größeren ist diese Genauigkeit jedoch noch nicht erzielt worden. Die BNN-Forschung ist jedoch in vollem Gange, und in diesem Bereich sind weitere Fortschritte zu erwarten.

TNNs (ternäre neuronale Netze) beschränken die Gewichtungswerte auf 0, +1 oder -1, behalten jedoch FP32-Neuronenwerte bei, wodurch sich eine höhere Genauigkeit bei großen Datensätzen ergibt. Die Rechenleistung ist jedoch geringer als bei BNNs.

Dünne Besetzung: Viele Studien untersuchen auch eine dünne Besetzung (das Vorhandensein von Nullen) in DNN-Neuronen und Gewichten. Nach Schätzungen sind etwa 50% der Neuronenwerte in bekannten Netzwerken wie AlexNet und VGG Nullen. Eine dünne Besetzung erkennt, dass eine Berechnung von Neuronen mit Nullwert nicht erforderlich ist. Die Berechnung wird bei vorhandenen Nullwerten zu einer Matrixmultiplikation, die weniger Operationen erfordert (Bild 3b).

Hardwarevergleich bei DNNs: GPU contra FPGA

Bislang kommen GPUs für DNNs zum Einsatz, da parallele Datenberechnungen erforderlich sind, die einen hohen Durchsatz an Gleitkommadaten garantieren (regelmäßiger Parallelismus). In jede GPU-Generation wurden mehr Gleitkommaeinheiten, On-Chip-RAM und eine höhere Speicherbandbreite integriert, um die FLOP/s-Werte zu erhöhen.

Berechnungen mit unregelmäßigem Parallelismus können GPUs jedoch aufgrund von Divergenz vor Probleme stellen. Da GPUs nur einen festen Satz nativer Datentypen unterstützen, kann es passieren, dass sie kundenspezifische Datentypen nicht effizient handhaben. Das hat eine unzureichende Nutzung der Hardwareressourcen und eine unbefriedigenden Performance zur Folge.

Im Gegensatz zu GPUs ist die FPGA-Architektur äußerst anpassungsfähig.In den letzten Jahren haben fünf bedeutende Trends zu erheblichen Fortschritten bei FPGAs geführt, die deren Performance näher an die von GPUs heran bringt:

  • 1. Kommende FPGAs bieten mehr On-Chip-RAM.
  • 2. Technologien wie HyperFlex ermöglichen wesentlich höhere Taktfrequenzen.
  • 3. Es stehen wesentlich mehr Hard-DSPs zur Verfügung.
  • 4. Die Einführung von HBM-Speicher führt zu einer höheren Off-Chip-Bandbreite
  • 5. Kommende FPGAs basieren auf fortgeschrittener modernster wie 14-nm-CMOS.

Die künftigen Stratix-10-FPGAs von Intel bieten mehr als 5000 Hard-Fließkommaeinheiten (DSPs), über 28 MB On-Chip-RAM (M20Ks), Anbindung an Speicher mit hoher Bandbreite (bis zu 4 x 250 GB/s/Stack oder 1 TB/s) sowie höhere Taktfrequenzen durch die neue HyperFlex-Technologie. Für den Datendurchsatz führt dies zu einem FP32-Spitzenwert von 9,2 TFLOP/s.

FPGA-Entwicklungsumgebungen und -Toolsets werden ebenfalls weiterentwickelt und ermöglichen das Programmieren auf einer höheren Abstraktionsebene. Dadurch wird die FPGA-Programmierung für Entwickler, die keine Hardware-Experten sind, leichter zugänglich, was die Einführung von FPGAs in Mainstream-Systeme beschleunigt.

Evaluierungsansatz: GEMM-Vorgänge und Energieeffizienz

Jüngste Forschungen von Intel untersuchten verschiedene GEMM-Operationen für kommende DNNs. Ein DNN-Hardwarebeschleunigungsmuster (bzw. Template) für FPGAs wurde entwickelt, welches optimale Hardwareunterstützung für dünne besetze Matrixberechnungen als auch kundenspezifische Datentypen bietet. Das Muster wurde zur Unterstützung verschiedener kommender DNNs entwickelt und lässt sich anpassen, um optimierte Hardware-Instanzen für FPGAs und für kundenspezifische DNN-Varianten zu erstellen.

Die Forscher haben dieses Template zur Ausführung und Evaluierung verschiedener Matrix-Multiplikationsvorgänge für kommende DNNs auf der heutigen und nächsten Generation von FPGAs (Arria 10, Stratix 10) sowie auf der neuen, hochleistungsfähigen Titan X Pascal GPU verwendet, um konkrete Vergleiche ziehen zu können.

Die Ergebnisse zeigen, dass das Stratix 10 FPGA bei GEMM-Vorgängen für bereinigte, Int6- und binäre DNNs um 10%, 50% bzw. 5,4-mal besser ist als die Titan X Pascal GPU. Die Tests zeigen auch, dass Arria-10 und Stratix-10-FPGAs gegenüber der Titan X GPU eine bessere Energieeffizienz (TOP/s/W) aufweisen, wobei beide Bausteine im Vergleich zu Titan X eine 3- bis 10-fache Energieeffizienz erzielen.

Event-Tipp: FPGA-Kongress 2019 FPGAs eignen sich auch für den Einsatz neuronaler Netzwerke am Geräte-Edge. Auf dem FPGA-Kongress 2019 werden renommierte Referenten von Intel, Xilinx sowie erfahrene Dienstleister über ihre Erkenntnisse und Lösungen im Einsatz von FPGAs bei künstlicher Intelligenz referieren. Der Fachkongress, der von ELEKTRONIKPRAXIS und dem Schulungscenter PLC2 veranstaltet wird, fokussiert sich auf anwendergerechte Lösungen, die Sie schnell in Ihren eigenen Entwicklungs-Alltag integrieren können. Näheres zu Programm und Anmeldung finden Sie unter www.fpga-kongress.de .

Welche Hardware unterstützt DNN-Algorithmen besser?

Obwohl GPUs bisher erste Wahl für Deep Neural Networks waren, zeigen neueste Performance-Vergleiche bei zwei Generationen von Intel-FPGAs (Arria 10 und Stratix 10) und der neuesten Titan X GPU, dass aktuelle Trends bei DNN-Algorithmen nun auch durch FPGAs unterstützt werden.

FPGAs bieten sogar eine überlegene Performance. Die Ergebnisse zeigen, dass Stratix 10 FPGAs die Titan X Pascal GPU übertreffen – u.a. durch einen geringeren Stromverbrauch. FPGAs werden also zur bevorzugten Plattform für schnellere DNNs.

KI braucht neue Prozessoren

KI braucht neue Prozessoren

10.12.18 - Anlässlich der Fachmesse Electronica gab Gartner einen Ausblick auf die durch Künstliche Intelligenz (KI) und Deep Learning ausgelösten Entwicklungen auf dem Hardwaremarkt. Fazit: Eine neue Gründungswelle kommt ins Rollen, denn der Standard-Prozessorchip hat auf diesem Gebiet ausgedient. lesen

Welche Hardware eignet sich besser zur KI-Beschleunigung?

Welche Hardware eignet sich besser zur KI-Beschleunigung?

04.06.18 - Moderne Hardwarebeschleuniger haben den praktikablen Einsatz von Künstlicher Intelligenz in IT und Industrie in greifbare Nähe gerückt. Doch welche Technologie eignet sich hierfür besser: GPUs, DSPs, programmierbare FPGAs oder eigene, dedizierte Prozessoren? ELEKTRONIKPRAXIS hat Hardwarehersteller und Embedded-Experten zu diesem Thema befragt. lesen

* Stefano Zammattio ist Product Manager bei Intel FPGA in Harrow, Großbritannien.

Kommentar zu diesem Artikel abgeben
Vergleich mit einer Titan Xp? Ein Vergleich mit einer halbwegs aktuellen GPU wie der Titan V (110...  lesen
posted am 06.02.2019 um 09:39 von Unregistriert


Mitdiskutieren
copyright

Dieser Beitrag ist urheberrechtlich geschützt. Sie wollen ihn für Ihre Zwecke verwenden? Infos finden Sie unter www.mycontentfactory.de (ID: 45674168 / FPGA)