-
Die vorliegende Erfindung betrifft ein Verfahren zur Konfiguration eines neuronalen Netzes unter rechtzeitiger Berücksichtigung verfügbarer Hardware für eine Implementierung desselben.
-
Die Beschleunigung moderner Faltungsneuronaler Netze (CNNs) für eingebettete Anwendungen stellt in verschiedenen Bereichen Herausforderungen dar. Die eingeschränkte Beschaffenheit eingebetteter Hardware setzt enge Budgets für Speicher- und Rechenressourcen voraus, während sicherheitskritische Anwendungen Mindestanforderungen an die aufgabenbezogene Vorhersagegenauigkeit stellen. Diese Hardware(HW)- und Software(SW)-Einschränkungen können zu gegensätzlichen Designzielen führen.
-
Ein Beispiel für ein solches HW-SW-Co-Design-Szenario ist die numerische Quantisierung von CNNs und das HW-Design eines bit-seriellen Akzelerators. Quantisierung ist ein Standardansatz zur Reduzierung der Bitbreite von Operanden und der Komplexität der arithmetischen Operationen eines CNN. Zu den Vorteilen der Quantisierung gehören einfachere arithmetische HW, eine höhere Effizienz der Datenbewegung, ein geringerer Energiebedarf und eine niedrigere Latenzzeit von Berechnungen auf einem Akzelerator. Zudem hat sich gezeigt, dass CNNs hinsichtlich der Güte der Anwendung! Genauigkeit der Prädiktion von schichtweiser und datentypvariabler numerischer Präzision profitieren. Um die genannten Vorteile der variablen numerischen Genauigkeit zu nutzen, kann ein HW-Akzelerator bit-serielle Recheneinheiten verwenden. Ein solcher Akzelerator kann ein Array räumlich verteilter Recheneinheiten und einen verteilten On-Chip-Puffer aufweisen, um das Berechnungsarray effizient mit Daten zu versorgen.
-
Damit der CNN-Designer und der HW-Ingenieur effektiv zu einer Lösung gelangen können, die den Einschränkungen einer Anwendung genügt, muss ein großer und komplexer Lösungsraum untersucht werden. Dies motiviert das Design eines leichtgewichtigen, einfach rekonfigurierbaren HW-Modells, das verwendet werden kann, um Designentscheidungen in diesem komplexen Raum zu bewerten. Die Nutzung der Geschwindigkeit und Flexibilität solcher Modelle kann die Entwicklung der HW parallel zu den CNN-Design-Phasen ermöglichen, ohne prohibitive Synthese- oder zyklusgenaue Simulationsengpässe.
-
Hierzu beschreibt Fasfous, Nael et al.: HW-FlowQ: A Multi-Abstraction level HW-CNN Co-design Quantization Methodology, ACM Transactions on Embedded Computing Systems (TECS), 2021, 20. Jg., Nr. 5s, S. 1-25, einen systematischen Ansatz, der das Co-Design der Zielhardwareplattform und des komprimierten CNN-Modells durch Quantisierung ermöglicht. Der Suchraum wird auf drei Abstraktionsebenen betrachtet, was einen iterativen Ansatz ermöglicht, um den Lösungsraum einzugrenzen, bevor ein CNN-Hardwaremodellierungstool erreicht wird, das in der Lage ist, die Auswirkungen von Mixed-Precision-Quantisierungsstrategien auf verschiedene Hardware-Architekturen und zwei Arten von Recheneinheiten zu berücksichtigen. Hierbei wird ein multiobjektiver, nicht-dominierender genetischer Algorithmus eingesetzt, um einen Pareto-optimalen Satz von Quantisierungsstrategien für die Ziel-HW-Metriken auf jeder Abstraktionsebene zu ermöglichen. Der Algorithmus findet Optima in einem diskreten Suchraum und maximiert die aufgabenbezogene Genauigkeit des zugrunde liegenden CNN bei gleichzeitiger Minimierung der hardwarebezogenen Kosten.
-
Zudem offenbart Lin, Yujun et al.: Neural-Hardware Architecture Search, NeurIPS WS, 2019, S. 1-5, eine automatische, auf maschinellem Lernen basierende Architektur-Suche. Diese Suche umfasst eine Hardware-Architektur-Suche und eine quantisierte neuronale Architektur-Suche, um die am besten passenden Neural-Hardware-Architekturen zu finden.
-
Ausgehend vom vorgenannten Stand der Technik ist es eine Aufgabe der vorliegenden Erfindung, eine geeignete Software-/Hardware-Kombination für die Implementierung neuronaler Netze zu finden und hierbei insbesondere Zeit zu sparen, Rechenaufwand zu verringern und akkurate Ergebnisse zu erzielen.
-
Die vorliegende Offenbarung schlägt einen verschachtelten Co-Design-Ansatz vor, um HW-Design parallel zur Quantisierungssuche durchzuführen, was zu einer engen Kopplung zwischen der HW und dem CNN führt, ohne iterativ oder sequentiell zwischen den beiden Bereichen zu wechseln. Anders ausgedrückt ist es eine Aufgabe, eine optimale HW Konfiguration zu identifizieren, welche in der Lage ist, die Operationen des neuronalen Netzes optimal (insbesondere hinsichtlich minimalen Energiebedarfes, bester Laufzeit, etc.) auszuführen.
-
Die vorstehend genannte Aufgabe wird also erfindungsgemäß durch ein Verfahren zur Optimierung einer Parametrisierung und/oder Dimensionierung eines neuronalen Netzes gelöst. Das Verfahren kann als Entwurfsverfahren bzw. für die Entwicklung sich neuronaler Netze bedienender rechentechnischer Einheiten verstanden werden. Die Parametrisierung und/oder Dimensionierung kann auch als „Konfiguration“ des neuronalen Netzes verstanden werden. Beispielsweise kann die Quantisierungsstrategie des neuronalen Netzes (softwareseitig) dahingehend optimiert werden, dem beabsichtigten Zweck / der beabsichtigten Aufgabe bestmöglich angepasste Verfahren zu formulieren und eine optimale HW Konfiguration zu identifizieren. Bei der Findung geeigneter Hardware hat sich im Stand der Technik stets die Frage gestellt, inwiefern die vollständige Neuentwicklung geeigneter Recheneinheiten gegenüber der Verwendung bereits verfügbarer Recheneinheiten zu bevorzugen ist, um das Kosten/Nutzen-Verhältnis zu optimieren. Insbesondere werden im Rahmen der vorliegenden Erfindung somit Hardware-Architekturen gesucht, welche eine bestmögliche Eignung für den beabsichtigten Anwendungsfall aufweisen, ohne diese erst neu entwickeln zu müssen. Mit anderen Worten kann die Suche als eine Suche nach existierenden Hardware-Bausteinen mit entsprechenden Architekturen ausgeführt werden, ohne auf diesen Anwendungsfall beschränkt zu sein. In einem ersten Schritt wird ein erster genetischer Algorithmus zur Erzeugung einer Vielzahl von Konfigurationen verwendet, wodurch z.B. eine Population unterschiedlicher Quantisierungsstrategien entsteht. Der erste genetische Algorithmus wird im Rahmen der vorliegenden Offenbarung auch als „äußerer“ genetischer Algorithmus bezeichnet, da er - wie später im Detail erläutert wird - einen Unterauftrag an einen zweiten („inneren“) genetischen Algorithmus ausspricht und dessen Ergebnisse anschließend weiterverarbeitet. Der erste genetische Algorithmus kann ein metaheuristisches Optimierungsverfahren ausführen, welches im Stand der Technik grundsätzlich bekannt ist. Der erste genetische Algorithmus kann insbesondere ein SOGA (single objectiv genetischer Algorithmus) sein oder einen solchen umfassen. Zumindest wird im ersten Schritt die Grundlage dafür geschaffen, dass eine Vielzahl von Konfigurationen vorgeschlagen werden, welche es einerseits im weiteren Verlaufe zu optimieren und andererseits mit einer geeigneten Hardware zu implementieren gilt. Hierbei kann also eine Anpassung der Konfiguration bzw. Quantisierungsstrategie an die Hardware und andersherum auch ein Einfluss grundsätzlich geeigneter Hardware auf die Ausgestaltung mit ihr verwendbarer Quantisierungsstrategien haben. In einem nächsten Schritt wird daher ein jeweiliger Hardware-Architektur-Suchauftrag zu der erzeugten Vielzahl von Konfigurationen automatisch an den vorgenannten zweiten genetischen Algorithmus übergeben. Zu jeder als geeignet kategorisierten Quantisierungsstrategie der Population wird somit (insbesondere parallel) eine Vielzahl Hardware-Suchaufträge (HAS) an einen zweiten genetischen Algorithmus ausgelagert, welcher als „innerer“ genetischer Algorithmus bezeichnet wird, da er vom ersten genetischen Algorithmus einen Auftrag erhält und diesem auch die gefundenen Ergebnisse zurückliefert. Anders ausgedrückt werden insbesondere parallel mehrere innere GA basierte Hardware-Suchaufträge gestartet. Der zweite genetische Algorithmus kann als NSGA2 (non-dominated sorting genetischer Algorithmus) ausgestaltet sein. Mit anderen Worten kann der zweite genetische Algorithmus hinsichtlich seines Aufbaues, seiner Prioritäten, insbesondere seiner Parameter, gänzlich an andere Rahmenbedingungen angepasst sein als der erste genetische Algorithmus. Durch den inneren genetischen Algorithmus gefundene geeignete Hardware-Architekturergebnisse, welche als Ergebnis der Hardware-Architektur Suchaufträge erstellt worden sind, werden anschließend automatisch an den ersten genetischen Algorithmus ausgegeben. Die Vielzahl Suchaufträge, welche insbesondere (anteilig) parallel zueinander mittels des zweiten genetischen Algorithmus abgearbeitet worden sind, führen sozusagen zu einem Ergebnispool unterschiedlicher Hardware-Designs, welche sämtlich dem ersten genetischen Algorithmus übergeben werden. Anhand dieses Ergebnisses kann der erste genetische Algorithmus nun seine Suche nach einer geeigneten Quantisierungsstrategie fortsetzen bzw. fortentwickeln. Indem konkrete in Frage kommende Hardware-Architekturen von nun an bekannt sind, kann eine Fortentwicklung der Quantisierungsstrategie unter Berücksichtigung der verfügbaren Hardware zielgerichteter und somit weniger rechenintensiv ausgeführt werden. Hervorzuheben ist, dass Konfigurationen neuronaler Netze, welche keine geeignete Hardware-Architektur aufweisen, an dieser Stelle verworfen werden. Diese Konfigurationen /Individuen der Population müssen somit nicht weiter durch den äußeren GA betrachtet werden. Dies verringert auch die Zeit bis zum Vorliegen geeigneter (End-)Ergebnisse. Beim Fortentwickeln können beispielsweise die der Population angehörigen Quantisierungsstrategien überarbeitet bzw. überprüft werden und insbesondere durch cross-over (übergreifende) Zusammensetzungen und Mutationen (Veränderungen ohne konkrete Übernahme von Eigenschaften fremder Quantisierungsstrategien) umfassen. Das Ergebnis der Fortentwicklung kann in einer weiteren Schleife erneut zur Formulierung neuer Hardware-Suchaufträge verwendet werden, welche anschließend erneut an den zweiten genetischen Algorithmus zur Findung verbesserter Hardware-Architektur-Designs übergeben werden. Aufgrund unterschiedlicher Anforderungen für die Findung und Weiterentwicklung von Quantisierungsstrategien gegenüber der Findung geeigneter Hardware-Architekturen können in erfindungsgemäßer Weise zwei jeweils geeignete genetische Algorithmen verwendet werden und die jeweiligen Vorzüge der beiden Algorithmen genutzt werden, ohne auch die jeweiligen Nachteile der Algorithmen in Bezug auf die übrigen Aufgaben in Kauf nehmen zu müssen. Entwicklungsprozesse für die Implementierung neuronaler Netze können somit erheblich beschleunigt sowie weniger kostenintensiv und personalintensiv ausgeführt werden. Zudem kann mit immer kürzeren Entwicklungszeiten im Automobilbau oder anderen Branchen besser Schritt gehalten werden.
-
Die Unteransprüche zeigen bevorzugte Weiterbildungen der Erfindung.
-
Der erste genetische Algorithmus kann erste Kriterien anwenden, um insbesondere aufgabenbezogene Güten des neuronalen Netzes und/oder eine Genauigkeit einer Applikation zu verbessern. Beispielsweise kann eine Selektion gefundener und grundsätzlich geeigneter Hardware-Architekturen in Abhängigkeit der formulierten Quantisierungsstrategien vorgenommen werden. Die Kriterien können beispielsweise durch einen Anwender oder automatisch aufgrund eines Einsatzgebietes des neuronalen Netzes formuliert und bedarfsweise angepasst/gewichtet werden. Alternativ oder zusätzlich können auch durch den zweiten genetischen Algorithmus zweite vordefinierte Kriterien angewendet werden, um die anwendungsbezogenen Randbedingungen bei der Hardware-Architektursuche zu berücksichtigen. Beispielsweise kann ein Energiebedarf und/oder ein Speicherplatzbedarf und/oder eine Anzahl an Rechenzyklen und/oder eine Laufzeit einer Zielanwendung zusätzliche Kriterien bei der automatischen Suche/Entwicklung und der etwaigen Selektion der Hardware-Architekturen vor der Ausgabe an den ersten genetischen Algorithmus angewandt werden. Beispielsweise kann eine automobile Verwendung eine höhere Anforderung an eine Echtzeitfähigkeit der Auswertung stellen als eine mobile Anwendung in einem tragbaren Anwenderendgerät. Demgegenüber kann der Energieverbrauch bzw. Energiebedarf in einer mobilen Anwendung deutlich wichtiger als in einem Fortbewegungsmittel mit vergleichsweise großen energetischen Reserven sein. Eine Möglichkeit für eine automobile Verwendung ist Objekterkennung in Verbindung mit Umgebungssensorik, insbesondere die Erkennung von Fußgängern, Verkehrsteilnehmern und Infrastrukturelementen (Verkehrszeichen). Eine wiederum andere Gewichtung hardware-bezogener Qualitätskriterien ergibt sich für einen Server, welcher weder mobil noch hinsichtlich energetischer Ressourcen besonders kritisch ist, während hier gegebenenfalls die dauerhafte Verfügbarkeit und Bereithaltung von rechentechnischen Ressourcen schwerer wiegen als z.B. bei einer Anwendung auf einem Smartphone.
-
Um das Verfahren weiter zielgerichtet zu gestalten, kann vorgesehen sein, dass die von dem zweiten genetischen Algorithmus gelieferten Hardware-Architektur-Ergebnisse durch den ersten genetischen Algorithmus dahingehend überprüft werden, ob es eine Quantisierungsstrategie gibt, welche mittels keiner der gefundenen Hardware-Architekturen in geeigneter Weise implementiert werden kann. Eine solche Quantisierungsstrategie (auch „Genom“ genannt), kann anschließend vollständig aus der weiteren Betrachtung ausgeschlossen werden, da eine realistische Aussicht auf hardwaretechnische Implementierung eine offensichtlich nicht erfüllbare Voraussetzung darstellt. Somit kann die Rechenleistung bzw. die Rechenanforderung durch die Exploration des Suchraums des ersten genetischen Algorithmus auf diejenigen Genome beschränkt werden, welche Aussicht auf Realisierbarkeit aufweisen. Auf diese Weise kann die Population verringert werden, bevor anschließend erste Kriterien auf die Weiterentwicklung der Quantisierungsstrategien sowie deren Kreuzung oder Vermischung („Crossover“) und Mutation angewendet werden. Durch diese Maßnahme ist der äußerst komplexe und große Suchraum mit heutigen Mittel/Servern vorteilhaft zu explorieren.
-
Das neuronale Netz kann insbesondere als faltendes (convolutionary) neuronales Netz ausgestaltet sein.
-
Die Ausgestaltung der Hardware-Architektur kann parametrisierbar sein. Hierzu kann beispielsweise ein analytisches Modell in dem zweiten genetischen Algorithmus verwendet werden, um rasche Ergebnisse mit vergleichsweise geringem Rechenaufwand erzeugen zu können. Zudem sind synthetisierbare Hardware-Beschreibungen zur Abschätzung und/oder Simulation der Hardware-Architektur anwendbar, so dass insbesondere Laufzeit, Speicherbedarf, Energiebedarf und die Abmessungen/Größe der Hardware-Architektur bestmöglich definiert werden können.
-
Die Hardware-Architekturen können beispielsweise mehrere räumlich voneinander getrennte Rechenelemente aufweisen, welche in Reihen und/oder Matrizen und/oder kubischen Geometrien angeordnet sein können bzw. logisch funktionieren können. Die Architekturen können daher insbesondere durch eine bestimmte Länge und/oder Breite und/oder Höhe einer mehrdimensionalen Matrix von einzelnen Rechenelementen definiert bzw. gegenüber anderen Architekturen ausgezeichnet sein. Diesen Hardware-Architekturen können auch unterschiedliche Linien/Matrizen/Kuben von Speicherarrays zugeordnet sein und durch den zweiten genetischen Algorithmus auf Eignung für die Implementierung des neuronalen Netzes mit den gefundenen Quantisierungsstrategien verwendet werden.
-
Die Hardware-Architektur kann mehrere Speicherarrays aufweisen, welche parametrisierbar ausgestaltet sind. Beispielsweise kann ein einzelnes Speicherarray, zwei Speicherarrays, drei Speicherarrays oder mehr Speicherarrays Bestandteil der Hardware-Architekturen sein und deren Eignung für die zugrundeliegende Zielsetzung bedingen.
-
Beispielsweise kann ein individuelles Speicherarray jeweils für die Operanden einer Berechnung und/oder für das Rechenergebnis bereitgestellt werden.
-
Beispielsweise kann die Hardware-Architektur eine Bit-Serial Akzelerator-Struktur aufweisen. Eine solche Struktur hat sich für die Verwendung in gattungsgemäßen neuronalen Netzen und insbesondere durch Versuche der erfindungsgemäßen Entwicklung von neuronalen Netzen als vorteilhaft herausgestellt.
-
Die Konfigurationen können beispielsweise eine Quantisierungsstrategie umfassen, welche beispielsweise die Wortweite der Aktivierungen (zu lernender Eingabe-Informationen) und/oder Gewichte und/oder Rechenoperationen (auch Filter) beeinflussen. Alternativ oder zusätzlich können die Konfigurationen auch ein Stutzen (Englisch: Pruning), also das Entfernen von Filtern und/oder Kanälen und Gewichten, aufweisen. Insbesondere können auf diese Weise weniger komplexe Rechenvorschriften gefunden werden. Die Konfiguration kann alternativ oder zusätzlich auch eine Suche nach einer neuronalen Architektur definieren, welche grundsätzlich bereits existieren kann oder im Zuge des zweiten genetischen Algorithmus zu entwickeln ist.
-
Der erste genetische Algorithmus kann beispielsweise eine Vielzahl jeweiliger Hardware-Architektur-Suchaufträge zu den erzeugten Genomen der Population an den zweiten genetischen Algorithmus parallel an mehrere innere/zweite genetische Algorithmen übergeben. Mit anderen Worten kann ein zweiter Hardware-Architektur-Suchauftrag an den ersten genetischen Algorithmus übergeben werden, bevor ein ihm vorausgegangener Hardware-Architektur-Suchauftrag bereits Hardware-Architektur-Ergebnisse an den ersten genetischen Algorithmus übergeben hat. In entsprechender Weise können auch drei oder mehr Hardware-Architektur-Suchaufträge an den zweiten genetischen Algorithmus bzw. parallel ablaufende zweite genetische Algorithmen übergeben werden, bevor die jeweiligen Ergebnisse zu den Suchaufträgen geliefert worden sind. Die o.g. Außerachtlassung unterschiedlicher Elemente der Population kann nun jeweils in Anbetracht eines einzelnen Ergebnisses eines Hardware-Suchauftrages oder in Anbetracht einer Vielzahl durch parallele Hardware-Suchaufträge gelieferte Hardware-Architektur-Ergebnisse erfolgen.
-
Auch die durch den zweiten genetischen Algorithmus bearbeiteten Hardware-Architektur-Aufträge können mehrere Hardware-Architektur-Kandidaten hervorbringen, welche durch den zweiten genetischen Algorithmus in einer zweiten Iterationsschleife überprüft/überarbeitet werden. Zuvor kann Crossover oder Mutation ausgeführt werden, um neue geeignete Lösungen bzw. Hardware-Architektur-Kandidaten zu erzeugen. Die Hardware-Architektur-Suche kann die Ausführung einer Vielzahl von Schleifen mit jeweiligen Selektionsschritten, Crossovers und Mutationen umfassen, um bestmögliche Ergebnisse an den ersten genetischen Algorithmus zurückliefern zu können und dort eine größtmögliche Ausrichtung auf den Einsatzzweck zu ermöglichen.
-
Insbesondere kann für eine Vielzahl gefundener Hardware-Architektur-Ergebnisse ein mehrdimensionaler Pareto-optimaler Lösungsraum erfasst werden, bevor die Vielzahl durch den zweiten genetischen Algorithmus gefundener geeigneter Hardware-Architektur-Ergebnisse an den ersten genetischen Algorithmus zurückgeliefert werden. Vor der Ausgabe an den ersten genetischen Algorithmus kann insbesondere geprüft werden, ob die gefundene Menge an Hardware-Architektur-Ergebnissen bzw. Hardware-Architektur-Kandidaten größer Null ist.
-
In dieser Erfindung wird die HW-Architektursuche (HAS) in einer verschachtelten genetischen Algorithmus (GA)-Formulierung in die Quantisierung-Strategie-Suche (QSS) eingebettet. Die wichtigsten Beiträge dieser Erfindung lassen sich wie folgt zusammenfassen:
- - Formulieren eines analytischen HW-Modells für die Ausführung von CNN-Arbeitslasten auf einem hochmodernen bit-seriellen Akzelerator zum Ermöglichen einer schnellen Untersuchung und Bewertung von HW-Leistung und Ressourcennutzung, ohne Notwendigkeit einer kostenaufwändigen Synthese oder Simulation.
- - Komprimieren von CNNs durch schichtweise, datentypweise Quantisierung-Strategie-Suche (QSS) und Automatisierung des Designs eines bit-seriellen Akzelerators durch HW-Architektursuche (HAS), durch Formulierung eines single objektiven und eines multiobjektiven GAs, die den Bedarf an handgefertigten Belohnungsfunktionen umgehen.
- - Einfügen eines HAS-Loops, also einer Hardware-Architektur-Suche mittels eines genetischen Algorithmus in den QSS-Loop. Für jede von QSS vorgeschlagene potenzielle Quantisierung-Strategie bewertet der HAS-Loop effizient eine 4-D-HW-Design-Pareto-Front. Nach Synthese erreicht das gemeinsam entworfene HW-CNN-Paar eine Reduzierung der Latenzzeit und der DRAM-Zugriffe um 35 % bzw. 37 % bei einer um 2,88 p. p. höheren Genauigkeit im Vergleich zu einem 2-Bit-ResNet20-CIFAR-10, das auf einer Standard Edge-Variante des Akzelerators ausgeführt wird.
-
Weitere Einzelheiten, Merkmale und Vorteile der Erfindung ergeben sich aus der nachfolgenden Beschreibung und den Figuren. Es zeigen:
- 1 eine schematische Darstellung einer Hardware-Architektur für ein neuronales Netz;
- 2 ein Flussdiagramm veranschaulichend die Struktur der Arbeitsschritte und Informationsflüsse bei der Ausführung eines erfindungsgemäßen Verfahrens zur Optimierung einer Parametrisierung und/oder Dimensionierung eines neuronalen Netzes; und
- 3 zeigt eine schematische Darstellung eines neuronalen Netzes umfassend eine Mehrzahl Schichten, mit einer Detaildarstellung einer exemplarischen faltenden Schicht.
-
In diesem Abschnitt werden drei Hauptkomponenten dieser Erfindung vorgestellt:
- (1) das analytische Akzelerator-Modell,
- (2) der Quantisierung-Strategie-Such(QSS)-Algorithmus und
- (3) der Hardware-Architektur-Such(HAS)-Algorithmus, gefolgt von AnaCoNGA.
-
A. Modellierung eines bit-seriellen Akzelerators für BISMO
-
Faltungs- und vollverknüpfte Schichten können durch Darstellung des Gewichtstensors W
l und des Aktivierungstensors A
l-1 der Schicht l als 2-D-Matrizen Mat
W und Mat
A (Gl. (1)) auf eine allgemeine Matrixmultiplikation (GEMM) reduziert werden. Die Dimensionen m und n bezeichnen die Zeilen und Spalten der jeweiligen Matrix.
-
Es ist zu beachten, dass das Transponieren beider Matrizen und das Umstellen ihrer Reihenfolge ebenfalls zum Faltungsergebnis führen würde. Daher wird im weiteren Text auf die Matrixpositionen und nicht auf den Datentyp Bezug genommen. LHS ist die linksseitige Matrix, während RHS die rechte Seite bezeichnet. Aus Gründen der Lesbarkeit werden m Zeilen und n Spalten als tiefgestellte Indizes der entsprechenden Matrix angezeigt, wenn auf ihre Dimensionen Bezug genommen wird, z. B. ist LHSn die Anzahl der Spalten der linksseitigen Matrix.
-
Der BISMO-Akzelerator, abstrahiert in
1, umfasst ein D
m × D
n Array von Verarbeitungselementen (PEs). Jedes PE ist für das Skalarprodukt einer Zeile der LHS mit einer Spalte der RHS zuständig. Aufgrund der bit-seriellen Zerlegung der GEMM-Operation muss dieselbe Zeile und Spalte so oft berechnet werden, wie es die Bitbreiten ihrer Operanden erfordern. Normalerweise ist D
m × D
n viel kleiner als LHS
m × RHS
n der Schicht. Die Berechnung muss in Kacheln mit einer kleineren Größe D
m × D
n aufgeteilt werden. Außerdem kann jedes PE D
k binäre Skalarprodukte parallel ausführen, wobei das Zeilen-Spalten-Skalarprodukt in Kacheln von D
k berechnet wird, wenn das innere Produkt von LHS und RHS größer als D
k ist. Um eine strukturierte Parallelität im gesamten Berechnungsarray aufrechtzuerhalten, werden die LHS- und RHS-Matrizen aufgefüllt, um Matrizen zu erhalten, die durch die Dimensionen des Arrays teilbar sind. Mit den aufgefüllten Matrizen lässt sich die Anzahl der Kacheln, die für den Abschluss der Berechnung erforderlich sind, in Gl. (2) ausdrücken.
-
Bei Kenntnis der Größe der aufgefüllten Matrizen und der Anzahl der Kacheln, die für die GEMM-Operation erforderlich sind, kann die Größe jeder Kachel in Bytes gemäß Gl. (3) berechnet werden, wobei LHS
bits die numerische Genauigkeit der LHS-Elemente ist.
-
DRAM-Anforderungen, die sich auf die LHS beziehen, hängen sowohl von T
m als auch von T
n ab, während RHS-Elemente nur T
n Mal angefordert werden (siehe Gl. (4)). Dies ist eine Funktion des Standard-Planers von BISMO, der die Wiederverwendung der RHS-Matrix beibehält. Jedes T
m der LHS muss gegen alle Kacheln T
n der RHS berechnet werden, sodass der Planer die RHS-Kacheln auf dem Chip behält, bis sie erschöpfend verwendet worden sind. Wenn eine neue Kachel der RHS geladen wird, müssen alle T
m Kacheln der LHS zur Berechnung mit ihr erneut aufgerufen werden.
-
Schließlich, bei Betrachtung der für die Berechnung aufgewendeten Zyklen, muss jedes Bit jeder Kachel jeder Matrix gegen die Bits der anderen Matrix berechnet werden. Zusätzliche Zyklen werden als Teil der Pipeline für jede Bitkombination auf jedem T
m, das gegen T
n berechnet wird, aufgewendet. Beim BISMO-Akzelerator überschneiden sich Datenübertragungen mit Berechnung, sodass Gl. (5) für die Untersuchung des Designraums hinreichend genau ist.
-
Mit dieser Analyse können Workload-Ausführungsmetriken in Bezug auf HW-Parameter bewertet werden, wie z. B. die Berechnung der Array-Dimensionen Dm, Dn, Dk sowie der On-Chip-Puffergrößen für LHS und RHS, ohne dass die HW jedes Mal synthetisiert werden muss. Das in diesem Abschnitt vorgestellte analytische Modell wird verwendet, um eine schnelle Untersuchung und ein schnelles Design der HW als Beispiel durchzuführen. Es ist wichtig zu erwähnen, dass AnaCoNGA nicht auf dieses analytische HW-Modell beschränkt ist; die in den nächsten Abschnitten vorgestellten Optimierungsschleifen können potenziell verwendet werden, um die Geschwindigkeit und Flexibilität von fortgeschritteneren schnellen analytischen HW-Modellen zu nutzen.
-
B. Modellvalidierung und reale HW-Messungen
-
Zur Validierung des vorgeschlagenen analytischen HW-Modells werden drei unterschiedlich dimensionierte BISMO-Akzeleratoren kleine und große GEMM-Operationen werden auf allen drei Akzeleratoren ausgeführt, indem alle Faltungs- und vollverknüpften Schichten von ResNet20 für CIFAR-10 (klein) und ResNet18 für ImageNet (groß) mit 4 Bits für Gewichte und Aktivierungen ausgeführt werden.
-
C. Genetische Quantisierung-Strategie-Suche (QSS) bzw. Erzeugung einer Vielzahl Konfigurationen
-
Der Quantisierungssuchraum für ein CNN weist eine Größe von Q2L auf, wobei Q den Satz der möglichen Quantisierungsstufen für Gewichte und Aktivierungen aufweist und L die Anzahl der Schichten im neuronalen Netz ist. Es ist wichtig anzumerken, dass die Quantisierung-Strategie-Suche (QSS) auf jede Quantisierungstechnik anwendbar ist, wobei lediglich versucht wird, die besten Bitbreiten für jede Schicht und jeden Datentyp zu finden. Ein multiobjektives GA (MOGA) wird verwendet, um das multikriterielle Optimierungsproblem der Maximierung der Genauigkeit und Minimierung der HW-bezogenen Kosten zu lösen. Bei dieser Suche findet kein HW-Design statt.
-
Eine anfängliche Population
wird zufällig generiert, wobei jedes Genom eine Quantisierung-Strategie kodiert, d. h. ein Quantisierungstupel
für jede Schicht des CNN (explizite, bijektive Kodierung). Die Genome von
werden kurz fein-abgestimmt und aufgrund ihrer Aufgabengenauigkeit in einem Validierungssatz bewertet. Wenn ein eigenständiges QSS verwendet wird, muss das GA zusätzlich die Fitness der quantisierten CNNs mit den HW-Schätzungen (DRAM-Zugriffe und Rechenzyklen) berücksichtigen. Basierend auf den drei Fitness-Metriken wird die Pareto-Optimalität jedes Individuums in Bezug auf die Population
ermittelt. Die Population durchläuft die Phasen der Selektion, des Crossovers und der Mutation für die nachfolgenden Generationen, um Pareto-optimale CNN-Quantisierung-Strategien zu erzeugen.
-
D. Genetische Hardware-Architektur-Suche (HAS) im zweiten genetischen Algorithmus
-
Ein zweiter GA wird formuliert, der die HW zuweist und optimal dimensioniert. Das Genom jedes Individuums erfasst HW-DesignEntscheidungen, nämlich Dm, Dn, Dk, LHS_Depth und RHS_Depth an der jeweiligen genetischen Stelle. Die Fitness-Kriterien dieses GA sind die Ausführungsleistung (Rechenzyklen und DRAM-Zugriffe) des HW-Designs eines vorbestimmten quantisierten CNN sowie die Menge an FPGA-Ressourcen (BRAMs und LUTs), die es für seine Zuweisung benötigt. Zur Abschätzung der FPGA-Ressourcenausnutzung eines Genoms wird das von Y. Umuroglu et al. vorgeschlagene Modell (siehe „Bismo: A scalable bit serial matrix multiplication overlay for reconfigurable computing“) verwendet. Für Leistungskriterien kann das in Kapitel A. („Modellierung eines bit-seriellen Akzelerators für BISMO“) beschriebene Modell verwendet werden. NSGA-II wird auf diesen 4-dimensionalen Lösungsraum angewendet, wobei der Entwickler aus einer Vielzahl von Pareto-optimalen Lösungen auswählen kann. Die komplexe Formulierung einer Belohnungsfunktion ist im MOGA nicht notwendig, was die Last der Abwägung der 4 Kriterien in einem einzigen, handgefertigten Belohnungswert abnimmt.
-
E. AnaCoNGA: Verschachteltes HW-CN-Co-Design
-
Die QSS- und HAS-Loops weisen ein Kausalitätsdilemma auf: Was kommt zuerst, die optimierte HW oder die CNN-Quantisierung-Strategie? In Abschnitt II werden bestehende Verfahren, die diese Herausforderung sequentiell oder iterativ lösen, erwähnt. Zur Durchführung eines echten Co-Designs müssen sowohl HW als auch CNN gemeinsam und gleichzeitig berücksichtigt werden.
-
Ein Ansatz besteht darin, HAS-Genome mit QSS-Genomen in einem GA zu kombinieren. Dies würde jedoch zu einem untragbar komplexen, großen Suchraum führen (4,77 × 1037 für ResNet20 auf dem betrachteten bit-seriellen Akzelerator), mit vielen direkten und indirekten Beziehungen zwischen den HW- und Quantisierungsparametern. Dieser rauschende Suchraum wäre eine Herausforderung für den genetischen Algorithmus, selbst mit gut kodierten Genomen und genetischen Operatoren. Der komplexe gemeinsame Suchraum würde auch größere Populationen und Generationen für den GA erfordern, was zu übermäßigen GPU-Stunden führen würde. Ein anderer Ansatz könnte darin bestehen, zwischen den Suchräumen zu iterieren. Ein iterativer Ansatz bringt das gleiche Dilemma mit sich, wobei die HW ursprünglich für eine andere Quantisierung-Strategie voreingestellt war und eine neu gefundene HW-CNN-Kombination im Vergleich zu einer anderen Kombination, die zuvor eine andere Quantisierung-Strategie aufwies, suboptimal ist.
-
Um diese Herausforderung zu lösen, werden zwei verschachtelte genetische Algorithmen 1, 2 eingesetzt, wie in 2 dargestellt. 2 zeigt ein als AnaCoNGA bezeichnetes Entwicklungsverfahren: Jedes Individuum der QSS führt sein eigenes HAS-MOGA aus. Jedes QSS-Individuum kann sich auf seinem eigenen HW-Design als effizient erweisen, um eine Chance zu ermöglichen, seine Genauigkeit zu bewerten. QSS ist von der HW-Optimierung entlastet und wird zu einem SOGA (d.h. genauigkeitsorientiert) umgewandelt.
-
Einerseits benötigt der HAS-GA etwa -1,5 Minuten für die Ausführung von 200 Generationen und 200 HW-Genomen und kann parallelisiert werden. Dies ist aufgrund des schnellen analytischen HW-Modells in Kapitel A. und den von Y. Umuroglu et al. vorgeschlagenen LUT/BRAM-Nutzungsmodellen möglich. Andererseits erfordert der genetische QSS-Algorithmus 1 einige Epochen der Feinabstimmung, um die Genauigkeit eines potenziellen Quantisierungsgenoms 3 zu bewerten. Dies kann ein kostenaufwändiger Fitness-Bewertungsprozess 6 für größere Netze und Datensätze sein. Bei der Verschachtelung des HAS-GA 2 mit dem QSS-GA 1 wird die Geschwindigkeit des HAS-Loops genutzt, um die HW-Design-Pareto-Front 15 für jedes betrachtete Quantisierungsgenom zu bewerten (parallele HAS- Experimente 5 in 2). In jedem HAS-Experiment 5 wird eine 4-D-Pareto-Front 15 von HW-Designs für das jeweilige Quantisierungsgenom erzeugt. Die Lösungen in der 4-D-HW-Pareto-Front 15 werden daraufhin überprüft, ob eine von ihnen die Ziel-HW-Einschränkungen erfüllt (Block 16). Wenn keine der Lösungen in der HAS-Pareto-Front 15 die HW-Anforderungen erfüllt, empfängt der erste Algorithmus 1 eine Anweisung, um den Feinabstimmungsschritt des Genoms zu entfernen und ihm eine Null-Genauigkeit zuzuweisen, ohne irgendwelche GPU-Trainingszeit zu verschwenden (Feedback-Linie 17 vom HAS zum Block 5 in 2). Mit diesem Ansatz wird der erste genetische Algorithmus 1 von der Optimierung der HW-Metriken entlastet und kann nun in einen Einzel-Ziel-Genetischen -Algorithmus (SOGA) umformuliert werden, der sich ausschließlich auf die Verbesserung der Genauigkeit der quantisierten CNNs konzentriert. Der erste genetische Algorithmus 1 ermöglicht es im Wesentlichen, dass jedes Quantisierungsgenom seinen eigenen HW-Design-Raum bewerten kann, bevor diese in die Population aufgenommen werden. Daher könnten zwei grundverschiedene QSS-Genome die Ziel-HW-Kriterien 12 (DRAM, Rechenzyklen, BRAM und LUTs) erfüllen, indem sie in ihren jeweiligen HAS-Untersuchungen 4 spezielle HW-Designs aufweisen. Auf diese Weise bleibt das HW-Design auf der Skala des Gesamtexperiments flexibel (nicht definiert), aber es ist garantiert, dass es für jedes Genom existiert, das schließlich von dem ersten genetischen Algorithmus 1 am Ende der Suche ausgewählt wird. Die Design-Loops von AnaCoNGA ermöglichen es, analytische HW-Modelle zu verwenden und deren Geschwindigkeit und Flexibilität für ein paralleles HW-CNN-Co-Design zu nutzen.
-
3 zeigt eine schematische Darstellung eines neuronalen Netzes umfassend eine Mehrzahl von Schichten. Aus der Darstellung sind die Lokalisierung und Ausführung der Schritte des Stutzens (Pruning), der Parametrisierung sowie der Dimensionierung exemplarisch ersichtlich, welche in Verbindung mit der obigen detaillierten Beschreibung im Detail diskutiert worden sind. In der unteren Bildhälfte ist eine exemplarische faltende Schicht im Detail dargestellt.
-
Bezugszeichenliste:
-
- 1
- erster (äußerer) genetischer Algorithmus
- 2
- zweiter (innerer) genetischer Algorithmus
- 3
- Konfigurationen
- 4
- Hardware-Architektur-Suchauftrag
- 5
- Genom-Filter
- 6
- Kriterien
- 7
- Selektion
- 8
- Cross-Over/Mutation
- 9
- gestrichelte Linien veranschaulichend die Umfänge eines Hardware-Suchauftrages 4
- 10
- faltendes neuronales Netz
- 11
- Population
- 12
- Kriterien
- 13
- Selektion
- 14
- Cross-Over/Mutation
- 15
- Lösungsraumerfassung
- 16
- Prüfung auf leere Ergebnismenge
- 17
- Übergabepfad
- 18
- Ergebnisausgabe
- 20
- Recheneinheit
- 21
- Rechenelemente
- 22, 23
- Speicherarray
- 24
- Ausgabematrix