Suchen

Adaptives Computing für die AI-Produktisierung

| Autor / Redakteur: Nick Ni und Lindsey Brown * / Michael Eckstein

Mit KI-Inferenzierung am Edge wird bald mehr Geld verdient als mit dem Trainieren von Neuronalen Netzen. Eine Domänenspezifische Architektur (DSA) stellt dafür zielgenau Rechenleistung bereit.

Firmen zum Thema

Bild 1: Jedes KI-Netz hat drei Komponenten, die je nach Anforderung angepasst werden müssen.
Bild 1: Jedes KI-Netz hat drei Komponenten, die je nach Anforderung angepasst werden müssen.
(Bild: ©Alexander - stock.adobe.com)

Die Datenmengen explodieren, die Innovationsrate verläuft exponentiell und die Algorithmen ändern sich schnell: KI (Künstliche Intelligenz) wird in fast jedem Industriezweig immer populärer. Doch der meiste Umsatz mit KI wird bis dato im Trainingsbereich umgesetzt. Also dort, wo es darum geht, die Genauigkeit und Effizienz von KI-Modellen zu verbessern. Die Industrie, die sich mit dem Inferenzieren beschäftigt – also dem Anwenden fertig trainierter Algorithmen – steht erst am Anfang, wird aber aufgrund der zunehmenden Umsetzung von KI-Modellen in Produkte („Produktisierung“) bald die Umsätze aus dem Trainingsbereich überholen.

Bei der KI-Inferenzierung gibt es noch etliche unbesetzte Anwendungsfelder: In der Automobilindustrie sind die meisten Fahrzeuge noch nicht mit ADAS-Funktionen ausgestattet, Drohnen und Logistikroboter stecken noch in ihren Kinderschuhen, KI-basierte robotergestützte Chirurgie ist alles andere als perfekt und es gibt noch viel Verbesserungspotenzial bei der Spracherkennung, der automatischen Videobeschreibung und der Erkennung schädlicher Muster in Datenzentren.

Da moderne KI-Modelle im Vergleich zu konventionellen Algorithmen um Größenordnungen mehr Rechenleistung erfordern, sind die Anforderungen an die Hardware auch bei der Inferenzierung sprunghaft gestiegen. Die stete Entwicklung der Halbleitertechnik allein reicht nicht aus, um damit Schritt zu halten. Die Frequenz, mit der Prozessoren getaktet werden, ist mit der Dennard-Skalierung längst an ihre Grenzen gekommen.

Damit ist klar: Die Algorithmen werden nicht alle paar Jahre automatisch eine Beschleunigung erfahren. Auch die Integration von immer mehr Prozessorkernen stößt aufgrund von Amdahls Gesetz an ihre Grenzen: Wenn 25 Prozent des Codes nicht parallelisierbar sind, ist im besten Fall eine Beschleunigung um den Faktor 4 machbar, vollkommen egal, wie viele Prozessorkerne integriert werden.

Hardware-Architektur an Workload anpassen

Wie also kann die Hardware mit den ständig steigenden Anforderungen Schritt halten? Die Antwort lautet: Mithilfe einer domänenspezifischen Architektur (DSA). FPGAs ermöglichen das Implementieren von Work­load-spezifischen Hardware-Architekturen. Da diese besonders effektiv arbeiten, reicht eine im Vergleich zu CPU-basierten Lösungen viel niedrigere Taktfrequenz (typischerweise 300 bis 500 MHz im Vergleich zu einer CPU mit 3 GHz+), um die gleiche Performance erreichen. Der interne Speicher verbraucht zwar etwas mehr Strom, aber die Gesamtleistung des Systems ist sehr effizient.

Bei jedem KI-Modell ist der Datenfluss komplex, trotzdem muss meist ein hoher Durchsatz erzielt werden. Heutige CPUs, GPUs, ASSPs und ASICs haben Mühe, mit dem Innovationstempo Schritt zu halten. CPUs sind generisch und können für jedes Problem eingesetzt werden, aber es mangelt ihnen an Recheneffizienz. Fest „verdrahtete“ Hardware-Beschleuniger hingegen sind für gängige, spezifische Arbeitsanforderungen und Rechenverfahren ausgelegt, die bereits stabil sind und nicht allzu viele Neuerungen erfahren. Eine DSA hingegen wird dort gebraucht, wo die Hardware flexibel an unterschiedliche Arbeitsanforderungen angepasst werden muss, damit sie mit höchster Effizienz läuft.

Rechenstarke KI-Engines drehen häufig Däumchen

Diese Anpassung erfolgt bei einem Neuronalen Netz mithilfe der Parameter Datenpfad, Präzision und Speicherhierarchie. Die meisten der modernen Chips zur KI-Inferenzierung sind zwar mit rechenstarken Engines ausgestattet, können diesen aber oft die Daten nicht schnell genug zuliefern.

Wie kann der domänenspezifische Ansatz hier helfen? Jedes KI-Modell erfordert eine mehr oder weniger spezifische DSA. Die erste Komponente ist ein benutzerdefinierter Datenpfad. Jedes Modell nutzt unterschiedliche Topologien, bei denen Daten von Schicht zu Schicht unterschiedlich, zum Beispiel mithilfe von Broadcasting, Informationskaskadierung, Skip-Through (Überspringen von Layern) etc., weitergeleitet werden. Die Synchronisierung aller Verarbeitungsprozesse einer Schicht ist äußerst anspruchsvoll, aber erforderlich, damit die Daten für die Verarbeitung in der nächsten Schicht garantiert verfügbar sind.

Bei der zweiten Komponente geht es um eine kundenspezifische Genauigkeit. Bis vor einigen Jahren wurde hauptsächlich mit 32-Bit-Gleitkomma-Zahlen gerechnet. Google hat dann angefangen, die Präzision bei seiner TPU auf 8-bit-Integer-Zahlen zu reduzieren. Heute wird mit noch geringeren Genauigkeiten wie INT4, INT2, binären und ternären Formaten gearbeitet. Neuere Untersuchungen bestätigen, dass jedes Netz ein anderes Optimum hinsichtlich der Kombinationen unterschiedlicher Genauigkeiten aufweist, um am effizientesten zu sein. Beispiel: 8 Bit für die ersten fünf Layer, 4 Bit für die nächsten fünf Layer und 1 Bit für die letzten zwei Layer.

Die letzte und wahrscheinlich wichtigste Komponente, die eine Anpassungsfähigkeit der Hardware benötigt, ist die Speicherhierarchie: Leistungsfähige Recheneinheiten ständig mit Daten zu versorgen, ist absolut entscheidend. Und dafür ist eine maßgeschneiderte Speicherhierarchie vom internen Speicher bis hin zum externen DDR/HBM notwendig. Nur dann ist der Baustein in der Lage, die Anforderungen für den Datentransfer zwischen den einzelnen Layern erfüllen zu können.

Die Verbreitung von KI-Anwendungen wächst rapide, dabei sollte aber nicht vergessen werden, dass jedes KI-Modell eine kundenspezifische DSA benötigt, um höchste Effizienz zu erreichen. Klassifizierung, Objekterkennung, Segmentierung, Spracherkennung und Empfehlungsmaschinen sind nur einige der Anwendungsfälle, die bereits als „Produkt“ zur Verfügung stehen. Und täglich kommen viele neue Anwendungen hinzu.

Es gibt noch einen weiteren wichtigen Punkt in diesem komplexen Wachstumsumfeld: In jedem Anwendungsbereich werden immer weitere Modelle entwickelt, entweder um die Genauigkeit zu verbessern oder um das Modell leichtgewichtiger (mit einem geringeren Rechenaufwand) zu machen. Das Beispiel Klassifizierung zeigt, was gemeint ist. 2012 stellte AlexNet den ersten Durchbruch im Bereich Deep Learning dar. AlexNet war ziemlich einfach mit einer Feed-Forward-Topologie augebaut. Google kam 2013 mit Googlenet heraus, das schon fast einem MapReduce-Ansatz entsprach. Moderne Netze wie DenseNet und MobileNet nutzen Depthwise Convolution und Übersprungstechniken, wenn Daten an viele Schichten weitergeleitet werden müssen. Xilinx-Bausteine lassen sich flexibel an neue KI-Netze anpassen. Bei anderen Ansätzen muss hingegen oft erst ein neues ASIC, eine CPU oder GPU entwickelt werden.

Event-Tipp: FPGA conference europe 2020

Die FPGA conference europe 2020 (29. bis 30. September 2020) ist Europas führende Entwicklerkonferenz und Networking-Plattform für den Einsatz der flexibel einsetzbaren programmierbaren Logik-SoCs.

Corona-bedingt findet die Veranstaltung in diesem Jahr virtuell statt – mit stark vergünstigten Ticket-Preisen!

Hier geht's zum Programm

Hohe Innovationsrate setzt Chip-Hersteller unter Druck

Die hohe Schlagzahl von Neuerungen beim Einsatz von KI-Applikationen übt einen ständigen Druck auf die vorhandene Hardware aus und fordert von den Chip-Herstellern eine hohe Innovationsrate. Aktuelle Trends erhöhen den Bedarf an neuen DSAs: Mit Depthwise Convolution wurde ein neuer Layer eingeführt, der eine große Speicherbandbreite und ein spezielles internes Speicher-Caching erfordert, um effizient zu sein.

Typische KI-Chips und GPUs haben eine feste L1/L2/L3-Cache-Architektur und eine begrenzte interne Speicherbandbreite, was zu einer sehr geringen Effizienz führt. Entwickler erfinden ständig neue Custom-Layer, die die heutigen Chips einfach nicht nativ unterstützen. Deshalb müssen diese Layer auf Host-CPUs ohne Beschleunigung laufen, was häufig zum Leistungsengpass wird.

Sparse Neural Networks stellen eine weitere vielversprechende Optimierungstechnik dar, bei der Netze mithilfe von Pruning deutlich verkleinert werden. In manchen Fällen ist damit eine Reduktion um bis zu 99 Prozent möglich. Diese Ausdünnung kann beispielsweise erreicht werden, indem die hochauflösenden, sehr kleinen Werte in den Faltungsmatrizen der Neuronenverbindungen entfernt (auf Null gesetzt) werden. Um solche Netze effizient auf Hardware laufen zu lassen, ist eine spezialisierte Sparse-Architektur notwendig, plus ein Encoder und ein Decoder für diese Operationen.

Die meisten Halbeiter sind aber nicht mit diesen Funktionsblöcken ausgestattet. Binäre/Ternäre Netze stellen eine extreme Form der Optimierung dar, bei der alle mathematischen Operationen lediglich Bit-Manipulationen sind. Die meisten KI-Chips und GPUs verfügen nur über 8-Bit, 16-Bit oder Gleitkomma-Recheneinheiten. Das heißt, dass bei diesen ICs eine sehr niedrige Genauigkeit (binär/ternär) keinerlei Gewinn auf der Leistungsseite oder bei der Leistungseffizienz bringt.

TOPS-Zahlen sind wenig aussagekräftig für KI-Leistung

Ende 2019 wurde der Machine-Learning-Benchmark MLPerf Inference 0.5 veröffentlicht, dessen Ergebnisse alle beschriebenen Probleme bestätigt. Beispielsweise kommt das Nvidia Flaggschiff T4 auf eine Effizienz von lediglich 13%. Konkret bedeutet das: Obwohl Nvidia eine Spitzenleistung von 130 TOPS für seine T4-Karten angibt, können die realen KI-Modelle wie SSD mit MobileNet-v1 nur 16,9 TOPS der Hardware nutzen. Von Herstellern angegeben TOPS-Zahlen sind offensichtlich kein aussagekräftiger Wert.

Einige Chips mögen zwar sehr gut in der Beschleunigung von KI-Inferenzen sein, aber in den meisten Fällen wird damit nur ein Teil der Anwendung beschleunigt. Das zeigt ein Beispiel aus dem Bereich „Smart Retail“: Diese Einzelhandelanwendung beinhaltet Vorverarbeitungsprozesse wie die Dekodierung von mehreren Video-Streams, gefolgt von konventionellen Bildverarbeitungsalgorithmen, um die Größe, Form, Formatierung und Konvertierung der Videos zu ändern.

Dazu kommen noch Post-Processing-Schritte die Objektverfolgung und eine Datenbankrecherche. Ein Endkunde interessiert es weniger, wie schnell die KI-Inferenzierung abläuft, sondern mehr, ob die Leistung beim Video-Streamen ausreicht und/oder die Echtzeit-Reaktionsfähigkeit der gesamten Anwendung gut genug ist. Die meisten Chips haben Probleme, die gesamte Anwendung zu beschleunigen, was nicht nur eine individuelle Beschleunigung einzelner Arbeitslasten bedeutet, sondern auch eine Optimierung des Datenflusses auf Systemebene erforderlich macht.

Letztendlich sind in realen Produktionsumgebungen wie der Automobilindustrie, der Industrieautomation und der Medizintechnik auch noch Chips gefordert, deren funktionale Sicherheit zertifiziert ist, die lange verfügbar sind und die strenge Security- und Authentifizierungsmerkmale aufweisen. Vielen der neuen KI-Chips und GPUs fehlen aber genau diese Leistungsmerkmale.

Mehr interner Speicher mit anpassbarer Hierarchie

Im Vergleich zu hochmodernen GPUs verfügen die Xilinx-Bausteine über einen um bis zu achtmal größeren internen Speicher. Darüber hinaus kann der Entwickler auch noch die Speicherhierarchie komplett seinen eigenen Bedürfnissen anpassen. Dies ist entscheidend, wenn es darum geht, die höchstmögliche „nutzbare“ TOPS-Zahl in modernen Netzen, wie zum Beispiel Depthwise Convolution, zu erreichen.

Bild 2: Benchmarkergebnisse des YOLOv2-Algorithmus beim Vergleich GPU versus FPGA.
Bild 2: Benchmarkergebnisse des YOLOv2-Algorithmus beim Vergleich GPU versus FPGA.
(Bild: XIlinx)

Die anwenderprogrammierbare FPGA-Logik wiederum macht es möglich, einen benutzerdefinierten Layer auf die effizienteste Art und Weise zu implementieren, so dass sie nicht zum Flaschenhals des Systems wird. Geht es um Sparse Neural Networks, sei darauf hingewiesen, dass Xilinx schon seit langem in vielen Signalverarbeitungsanwendungen auf Basis von Sparse Matrices (schwachbesetzte Matrizen mit geringer Bittiefe) erfolgreich ist – zum Beispiel in der Kommunikationstechnik. Entwickler können spezialisierte Encoder, Decoder und Sparse-Matrix-Engines in der FPGA-Fabric entwerfen.

Für binäre/ternäre Netze nutzen Xilinx-FPGAs Look-Up-Tables (LUTs), um Bit-Manipulationen zu implementieren, was zu einer Leistung von fast 1 PetaOPS (1000 TOPS) führt, wenn ein Binärformat statt Integer 8 verwendet wird. Mit all den Hardware-Anpassungsmöglichkeiten können nahezu 100 Prozent der Hardware-Spitzenleistung bei allen modernen AI-Inferenzierungsaufgaben erreicht werden.

Geht es um die Beschleunigung der gesamten Anwendung hat Xilinx bereits gezeigt, dass auch das kein Problem ist, denn die Komponenten werden seit langem in verschiedenen Industrien eingesetzt, um Arbeitslasten wie Sensor Fusion, konventionelle Bildverarbeitung und DSP-Algorithmen, Pfadplanung und Motorsteuerungsanwendungen zu beschleunigen.

Bild 3: Die einheitliche Software-Plattform Vitis stellt über 900 vordefinierte Bibliotheken für die Hardware-Beschleunigung typischer Aufgaben bereit.
Bild 3: Die einheitliche Software-Plattform Vitis stellt über 900 vordefinierte Bibliotheken für die Hardware-Beschleunigung typischer Aufgaben bereit.
(Bild: Xilinx)

Damit Entwickler schnell zum Ziel kommen, hat Xilinx die einheitliche Software-Plattform Vitis entwickelt. Sie enthält über 900 Bibliotheken für die Hardware-Beschleunigung typischer Aufgaben. Vitis verbindet KI und Software-Entwicklung und macht es Anwendern möglich, ihre Applikationen für heterogene Hardware-Plattformen und Zielanwendungen zu beschleunigen, vom Cloud-Computing bis in den Embedded-Bereich. Vitis fügt sich in Standardumgebungen ein, verwendet Open-Source-Technologien und ist kostenlos.

Diesen Beitrag lesen Sie auch in der Fachzeitschrift ELEKTRONIKPRAXIS Ausgabe 17/2020 (Download PDF)

Innerhalb von Vitis stehen mit „Vitis AI“ Tools zum Optimieren, Quantisieren und Kompilieren der trainierten Modelle bereit. Vitis liefert außerdem spezialisierte APIs für den Einsatz vom Edge bis zur Cloud. Der KI-Stack ermöglicht eine direkte Programmierung im Framework und wird mit einem Toolkit geliefert, das KI-Modelloptimierungsverfahren (Pruning) und Quantisierungsansätze umfasst. Vitis AI ermöglicht die direkte Inferenzierung aus Standard-Frameworks heraus, so dass jeder Entwickler Beschleunigungslösungen auf allen Xilinx-Bausteinen realisieren kann – ohne jegliche Hardware-Kenntnisse.

* Nick Ni Director of Product Marketing, AI, Software and Ecosystem bei Xilinx

* Lindsey Brown ist Product Marketing Specialist Software and AI bei Xilinx

(ID:46752464)