DE112020004067T5 - Hybride daten-modell-parallelität für effizientes deep learning - Google Patents

Hybride daten-modell-parallelität für effizientes deep learning Download PDF

Info

Publication number
DE112020004067T5
DE112020004067T5 DE112020004067.4T DE112020004067T DE112020004067T5 DE 112020004067 T5 DE112020004067 T5 DE 112020004067T5 DE 112020004067 T DE112020004067 T DE 112020004067T DE 112020004067 T5 DE112020004067 T5 DE 112020004067T5
Authority
DE
Germany
Prior art keywords
processors
parallelism
technique
array
neural network
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
DE112020004067.4T
Other languages
English (en)
Inventor
Swagath Venkataramani
Vijayalakshmi Srinivasan
Philip Heidelberger
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of DE112020004067T5 publication Critical patent/DE112020004067T5/de
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/044Recurrent networks, e.g. Hopfield networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3409Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
    • G06F11/3414Workload generation, e.g. scripts, playback
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3466Performance evaluation by tracing or monitoring
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5066Algorithms for mapping a plurality of inter-dependent sub-tasks onto a plurality of physical CPUs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/81Threshold
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/06Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
    • G06N3/063Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Quality & Reliability (AREA)
  • Computer Hardware Design (AREA)
  • General Health & Medical Sciences (AREA)
  • Mathematical Physics (AREA)
  • Data Mining & Analysis (AREA)
  • Molecular Biology (AREA)
  • Computing Systems (AREA)
  • Computational Linguistics (AREA)
  • Biophysics (AREA)
  • Evolutionary Computation (AREA)
  • Biomedical Technology (AREA)
  • Artificial Intelligence (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Multi Processors (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Image Analysis (AREA)

Abstract

Die Ausführungen hierin beschreiben hybride Parallelitätstechniken, bei denen eine Mischung aus Daten- und Modellparallelitätstechniken verwendet wird, um die Betriebslast einer Schicht unter einem Array von Prozessoren aufzuteilen. Beim Konfigurieren des Arrays kann die Bandbreite der Prozessoren in einer Richtung größer als die Bandbreite in der anderen Richtung sein. Jede Schicht wird dahingehend charakterisiert, ob sie eher merkmalsschwer oder gewichtungsschwer ist. Je nach dieser Charakterisierung kann die Betriebslast einer NN-Schicht des Arrays unter Verwendung einer hybriden Parallelitätstechnik anstelle der Verwendung allein der Datenparallelitätstechnik oder allein der Modellparallelitätstechnik zugewiesen werden. Wenn zum Beispiel eine NN-Schicht eher gewichtungsschwer als merkmalsschwer ist, wird Datenparallelität in der Richtung mit der höheren Bandbreite verwendet (um die negative Auswirkung von Gewichtungsverringerung zu minimieren), während Modellparallelität in der Richtung mit der geringeren Bandbreite verwendet wird.

Description

  • HINTERGRUND
  • Die vorliegende Erfindung betrifft ein Verwenden von hybriden Parallelitätstechniken, um Schichten in einem neuronalen Netz eines Arrays von Prozessoren zuzuweisen.
  • Trainieren eines neuronalen Netzes (NN) ist ein zeitraubender Prozess. Infolgedessen verwenden viele Trainingsplattformen ein Array von Prozessoren (z.B. einen 2-D-Torus), um die Betriebslast jeder Schicht des NN zu verteilen. Es gibt mehrere bekannte Techniken zum Verteilen der Betriebslast auf eine Mehrzahl von Prozessoren. Bei einer derartigen Technik handelt es sich um Datenparallelität, bei der die Betriebslast durch die Merkmale (oder Eingaben) der Schichten aufgeteilt wird. Bei dieser Technik kann jeder Prozessor alle Aufgaben für einen bestimmten Batch (oder Minibatch) von Trainingsdaten durchführen. Zum Beispiel kann unter Verwendung eines Bildprozessor-NN jedem Prozessor zugewiesen werden, ein jeweiliges Bild zu verarbeiten. Zu diesem Zweck müssen die Gewichtungen (oder Kerne) für diese Schicht zu jedem der Prozessoren übermittelt werden. In NN-Schichten, bei denen die Gewichtungen größer als die Merkmale sind (die hierin als gewichtungsschwere Schichten bezeichnet werden), ist ein Verwenden der Datenparallelitätstechnik wegen der Gewichtungsverringerung zwischen den Chips ineffizient, bei denen am Ende jedes Batch- oder Minibatchtrainings die Gewichtungen synchronisiert werden. Dies ist eine von Chip zu Chip erfolgende aufwendige Operation und oftmals die Hauptschwachstelle bei Datenparallelität.
  • Bei einer weiteren Technik handelt es sich um Modellparallelität, bei der die Betriebslast für eine Schicht in der Ausgabedimension aufgeteilt wird. Das heißt, die ersten mehreren Merkmale werden in einem Prozessor berechnet, die nächsten mehreren Merkmale werden in einem weiteren Prozessor berechnet usw. Dadurch wird vermieden, dass alle Gewichtungen der Schicht an den Prozessor gesendet werden müssen, und somit wird eine Gewichtungsverringerung vermieden. Jedoch erfordert bei einem NN jedes Ausgabemerkmal normalerweise den gesamten Eingabekanal. Das heißt, jeder Prozessor benötigt zum Berechnen eines neuen Merkmals nach wie vor die gesamte Eingabe der Schicht (z.B. die Ausgabe aus der vorhergehenden Schicht). Bei Verwendung von Modellparallelität wird die Eingabe in allen Prozessoren repliziert (was als Durchführen von „Aktivierungen“ bezeichnet wird). Bevor die nächste Schicht in dem NN beginnen kann, muss jeder Prozessor die durch jeden anderen Chip berechnete Ausgabe empfangen - d.h., die Aktivierungen aller Prozessoren werden untereinander ausgetauscht. Somit ist Modellparallelität bei gewichtungsschweren Schichten effizienter als Datenparallelität, aber weniger effizient bei merkmalsschweren Schichten (bei denen mehr Merkmalsdaten (oder Eingabedaten) als Gewichtungsdaten vorliegen).
  • KURZDARSTELLUNG
  • Gemäß einer Ausführungsform der vorliegenden Erfindung liegt ein Verfahren vor, das ein Auswählen einer hybriden Parallelitätstechnik zum Aufteilen einer Betriebslast einer Schicht eines neuronalen Netzes auf ein Array von Prozessoren umfasst, wobei jeder Prozessor in dem Array von Prozessoren Daten zu benachbarten Prozessoren in einer ersten Richtung und in einer zweiten Richtung übertragen kann. Das Verfahren umfasst außerdem, dass dem Array von Prozessoren unter Verwendung der ausgewählten hybriden Parallelitätstechnik Aufgaben zugewiesen werden, die der Schicht des neuronalen Netzes entsprechen, wobei die hybride Parallelitätstechnik ein Verwenden einer ersten Parallelitätstechnik umfasst, wenn Daten zwischen Prozessoren in dem Array von Prozessoren in der ersten Richtung übertragen werden, und ein Verwenden einer zweiten, anderen Parallelitätstechnik, wenn Daten zwischen Prozessoren in dem Array von Prozessoren in der zweiten Richtung übertragen werden.
  • Bei einer weiteren Ausführungsform der vorliegenden Erfindung handelt es sich um ein System, das ein Array von Prozessoren und einen Zuweiser (assignor) eines neuronalen Netzes umfasst. Der Zuweiser ist so konfiguriert, dass er eine hybride Parallelitätstechnik zum Aufteilen einer Betriebslast einer Schicht eines neuronalen Netzes auf ein Array von Prozessoren auswählt, wobei jeder Prozessor in dem Array von Prozessoren Daten zu benachbarten Prozessoren in einer ersten Richtung und in einer zweiten Richtung übertragen und Aufgaben, die der Schicht des neuronalen Netzes entsprechen, unter Verwendung der ausgewählten hybriden Parallelitätstechnik des Arrays von Prozessoren zuweisen kann, wobei die hybride Parallelitätstechnik ein Verwenden einer ersten Parallelitätstechnik umfasst, wenn Daten zwischen Prozessoren des Arrays von Prozessoren in der ersten Richtung übertragen werden, und ein Verwenden einer zweiten, anderen Parallelitätstechnik, wenn Daten zwischen Prozessoren des Arrays von Prozessoren in der zweiten Richtung übertragen werden.
  • Bei einer weiteren Ausführungsform der vorliegenden Erfindung handelt es sich ein durch einen Computer lesbares Speichermedium, auf dem durch einen Computer lesbarer Programmcode verkörpert ist, wobei der durch einen Computer lesbare Programmcode durch einen oder mehrere Computerprozessoren lesbar ist, um eine Operation durchzuführen. Die Operation umfasst ein Auswählen einer hybriden Parallelitätstechnik zum Aufteilen einer Betriebslast einer Schicht eines neuronalen Netzes auf ein Array von Prozessoren, wobei jeder Prozessor in dem Array von Prozessoren Daten zu benachbarten Prozessoren in einer ersten Richtung und in einer zweiten Richtung übertragen kann, und ein Zuweisen von Aufgaben, die der Schicht des neuronalen Netzes entsprechen, unter Verwendung der ausgewählten hybriden Parallelitätstechnik zu dem Array von Prozessoren, wobei die hybride Parallelitätstechnik ein Verwenden einer ersten Parallelitätstechnik umfasst, wenn Daten zwischen Prozessoren in dem Array von Prozessoren in der ersten Richtung übertragen werden, und ein Verwenden einer zweiten, anderen Parallelitätstechnik, wenn Daten zwischen Prozessoren in dem Array von Prozessoren in der zweiten Richtung übertragen werden.
  • Figurenliste
  • Im Folgenden werden Ausführungsformen der Erfindung lediglich beispielhaft beschrieben, wobei auf die beigefügten Zeichnungen Bezug genommen wird, in denen:
    • 1 ein NN-Trainingssystem gemäß einer hierin beschriebenen Ausführungsform veranschaulicht.
    • 2 NN-Trainingshardware gemäß einer hierin beschriebenen Ausführungsform veranschaulicht.
    • 3 verschiedene Dimensionen in einem NN gemäß einer hierin beschriebenen Ausführungsform veranschaulicht.
    • 4 ein Flussdiagramm zum Ermitteln einer optimalen Technik zur Ausführung des Aufteilens von NN-Schichten unter dem Array von Prozessoren gemäß einer hierin beschriebenen Ausführungsform ist.
    • 5 ein Flussdiagramm zum Auswählen einer hybriden Parallelitätstechnik gemäß einer hierin beschriebenen Ausführungsform ist.
    • 6 ein Prozessor-Array veranschaulicht, das x- und y-Ringe gemäß einer hierin beschriebenen Ausführungsform bildet.
    • 7 eine Matrix zum Auswählen einer Parallelitätstechnik für eine NN-Schicht gemäß einer hierin beschriebenen Ausführungsform veranschaulicht.
    • 8 eine Einstufung von Parallelitätstechniken auf der Grundlage der Eigenschaften der NN-Schicht gemäß einer hierin beschriebenen Ausführungsform veranschaulicht.
  • AUSFÜHRLICHE BESCHREIBUNG
  • Anstatt auf Datenparallelität oder aber Modellparallelität beschränkt zu sein, führen die hierin beschriebenen Ausführungsformen hybride Parallelitätstechniken ein, bei denen eine Mischung aus Daten- und Modellparallelität verwendet werden kann, um die Betriebslast einer Schicht unter einem Array von Prozessoren (z.B. ein Array von integrierten Schaltungen (integrated circuits, ICs) oder Chips) aufzuteilen. Bei einer Ausführungsform umfasst das Array von Prozessoren x-Ringe in einer ersten Richtung (X-Richtung) und y-Ringe in einer zweiten Richtung (Y-Richtung). Beim Konfigurieren des Arrays kann die Bandbreite der Prozessoren in einer Richtung größer als die Bandbreite in der anderen Richtung sein. Das heißt, der Systementwickler kann absichtlich mehrere Datenübertragungsverbindungen zum Austauschen von Daten zwischen Prozessoren in der X-Richtung als in der Y-Richtung zuweisen. Jede Schicht kann dann dahingehend charakterisiert werden, ob sie eher merkmalsschwer oder gewichtungsschwerer ist. Je nach dieser Charakterisierung kann die Betriebslast einer NN-Schicht des Arrays unter Verwendung einer hybriden Parallelitätstechnik anstelle der Verwendung allein der Datenparallelitätstechnik oder allein der Modellparallelitätstechnik zugewiesen werden. Zum Beispiel kann eine NN-Schicht geringfügig gewichtungsschwerer als merkmalsschwer sein. Da Modellparallelitätstechnik effizienter beim Ausführen gewichtungsschwerer Schichten ist, kann die Betriebslast der NN-Schicht unter Verwendung einer ersten hybriden Parallelitätstechnik aufgeteilt werden, bei der Datenparallelität in der X-Richtung verwendet wird (bei der die Bandbreite höher ist), um eine Gradientenverringerung entlang einer schnellen X-Richtungsverbindung zu realisieren, und Modellparallelität in der Y-Richtung verwendet wird (bei der die Bandbreite geringer ist, aber Modellparallelität von sich aus bei gewichtungsschweren Schichten effizienter ist). Wenn umgekehrt eine NN-Schicht eher merkmalsschwer als gewichtungsschwer ist, kann die Betriebslast unter Verwendung einer zweiten hybriden Parallelitätstechnik aufgeteilt werden, bei der Modellparallelität in der X-Richtung verwendet wird, um die negative Auswirkung von Merkmalsaktivierung zu minimieren, während Datenparallelität in der Y-Richtung verwendet wird, da Datenparallelität von sich aus bei gewichtungsschweren Schichten effizienter ist.
  • Während die hybriden Parallelitätstechniken bei einem Array von Prozessoren verwendet werden können, bei dem sich die Bandbreite in einer Richtung von der Bandbreite in der dazu im rechten Winkel stehenden Richtung unterscheidet, können die hybriden Parallelitätstechniken außerdem verwendet werden, wenn die Bandbreite in beiden Richtungen des Arrays dieselbe ist.
  • 1 veranschaulicht ein NN-Trainingssystem 100 gemäß einer hierin beschriebenen Ausführungsform. Das Trainingssystem 100 umfasst ein Datenverarbeitungssystem 105, das eine ausgewählte Technik 145 verwendet, um die Betriebslast jeder Schicht in einem NN aufzuteilen, das einer NN-Trainingshardware 150 zugewiesen ist. Obwohl die Ausführungsformen hierin ein Aufteilen einer Betriebslast einer Schicht beim Trainieren des NN beschreiben, sind sie auf diese beschränkt. Es kann vorteilhaft sein, eine Betriebslast unter Verwendung der nachstehend erörterten Techniken in anderen Situationen als beim Trainieren des NN aufzuteilen.
  • Das Datenverarbeitungssystem 105 umfasst einen Prozessor 110, der eine beliebige Anzahl von Verarbeitungselementen mit einer beliebigen Anzahl von Verarbeitungskernen und Speicher 115 darstellt, der flüchtige Speicherelemente, nichtflüchtige Speicherelemente und Kombinationen davon umfassen kann. Wie gezeigt umfasst der Speicher 115 zwei Softwareanwendungen, die in dem Datenverarbeitungssystem 105 ausgeführt werden: einen NN-Zuweiser 120 und einen Leistungsschätzer 125. Der NN-Zuweiser 120 ermittelt die ausgewählte Technik 145, die verwendet wird, um die Betriebslast der Schichten in dem NN der NN-Trainingshardware 150 zuzuweisen. Bei einer Ausführungsform wählt der NN-Zuweiser 120 die Technik 145 als Reaktion auf Informationen aus, die der Leistungsschätzer 125 über jede Schicht in dem NN erzeugt. Das heißt, der NN-Zuweiser 120 kann für die verschiedenen Schichten in dem NN eine unterschiedliche Technik 145 auswählen.
  • Der Leistungsschätzer 125 modelliert (oder simuliert) die NN-Schichten, um die Leistung der Schichten unter Verwendung einer Vielfalt von Parallelitätstechniken zu schätzen. Bei diesem Beispiel bewertet der Leistungsschätzer 125 die Schichten, um ihre Leistungsfähigkeit zu ermitteln, wenn die Datenparallelitätstechnik 130, die Modellparallelitätstechnik 135 und eine oder mehrere hybride Parallelitätstechniken 140 verwendet werden. Bei einer Ausführungsform handelt es sich bei den hybriden Parallelitätstechniken 140 um beliebige Techniken, bei denen es sich um eine Mischung aus zwei anderen Parallelitätstechniken handelt, die in Kombination verwendet werden, um eine Betriebslast einer Aufgabe unter den verschiedenen Hardwareelementen in der NN-Trainingshardware 150 aufzuteilen. Das heißt, bei der hybriden Parallelitätstechnik 140 kann es sich um eine oder mehrere Techniken handeln, die eine Kombination aus der Datenparallelitätstechnik 130 und der Modellparallelitätstechnik 135 sind. Die hybride Parallelitätstechnik 140 ist jedoch nicht auf eine Kombination der Techniken 130, 135 beschränkt, sondern könnte eine Kombination aus anderen Arten von Parallelitätstechniken umfassen, die verwendet werden, um die Betriebslast einer Schicht unter der Trainingshardware 150 aufzuteilen.
  • Die NN-Trainingshardware 150 umfasst mehrere Prozessoren 155, die jeweils mehrere Kerne 160 umfassen. Die Kerne 160 umfassen mehrere Verarbeitungselement-Arrays (PE-Arrays) (PE = processing element) (z.B. systolische Arrays), die unter Verwendung mehrerer PEs 170 gebildet sind. Wie nachstehend erörtert teilt die ausgewählte Technik 145 die Betriebslast einer Schicht zwischen den Prozessoren 155 auf. Wenn es sich bei der ausgewählten Technik 145 um die Datenparallelitätstechnik 130 handelt, wird die Betriebslast durch Minibatches aufgeteilt, wobei jeder Minibatch einem anderen Prozessor 155 zugewiesen wird (z.B. wird ein Bild, das beim Trainieren eines Bildverarbeitungs-NN verwendet wird, an jeden Prozessor 155 gesendet). Wenn es sich bei der ausgewählten Technik 145 um die Modellparallelitätstechnik 135 handelt, wird jedem Prozessor 155 ein Teilsatz der Merkmale in den Ausgabedaten zugewiesen (wobei es sich um einen oder mehrere Teilsätze handelt). Die Prozessoren 155 können dann parallel arbeiten, um ihre zugewiesenen Aufgaben auszuführen. Zum Beispiel kann jeder Prozessor 155 ein Bild gleichzeitig verarbeiten oder jeder Prozessor 155 kann seinen zugewiesenen Teilsatz von Merkmalen gleichzeitig verarbeiten.
  • 2 veranschaulicht NN-Trainingshardware gemäß einer hierin beschriebenen Ausführungsform. 2 veranschaulicht ein 2-D-Array 200, das die Prozessoren 155 umfasst, die untereinander sowohl horizontal (eine X-Richtung) als auch vertikal (eine Y-Richtung) mit benachbarten Prozessoren 155 verbunden sind. Daher können die Prozessoren verarbeitete Daten gemeinsam nutzen. Dieses gemeinsame Nutzen von Daten wird nachstehend ausführlicher beschrieben, wenn die hybriden Parallelitätstechniken erörtert werden.
  • Jeder Prozessor 155 umfasst mehrere Kerne 160, die zu Datenübertragungszwecken unter Verwendung einer auf dem Chip befindlichen Zwischenverbindung 202 verbunden sind, die den Kernen 160 ermöglicht, mit externem Speicher 205 (z.B. RAM) in der NN-Trainingshardware Daten auszutauschen. Jeder Kern 160 wiederum umfasst mehrere PE-Arrays 165, die mit Arbeitspufferspeicher 210 verbunden sind, der eine beliebige Anzahl von Caches darstellt (z.B. Level-1- und Level-2-Caches), die chipinternen Speicher bilden.
  • Jedes PE-Array 165 umfasst mehrere PEs 170, die untereinander verbunden sind, um ein Array oder Gitter (z.B. ein systolisches Array) zu bilden. Die Eingänge und Ausgänge des PE-Arrays 165 umfassen First-In-First-Out-Puffer (FIFO-Puffer) 215. Jedes PE 170 umfasst Multiplikations-Akkumulations-Einheiten (MAC-Einheiten) (MAC = multiply-accumulate) 220, die mit einer Registrierungsdatei 225 verbunden sind.
  • Die Betriebslast einer NN-Schicht kann unter den in 2 veranschaulichten verschiedenen Hardwarekomponenten verteilt werden. Die nachstehend aufgeführten Techniken konzentrieren sich jedoch auf das Aufteilen der Betriebslast einer NN-Schicht unter den Prozessoren 155. Andere Techniken können dann verwendet werden, um die jedem Prozessor 155 zugewiesene Betriebslast unter den Kernen 160, den PE-Arrays 165 und den PEs 170 aufzuteilen. Das heißt, dass bei den nachstehenden Ausführungsformen zwar ein Auswählen einer optimalen Parallelitätstechnik zum Verteilen der Betriebslast unter den Prozessoren 155 erörtert wird, die Betriebslast aber ferner unter den Hardwareelementen in den Prozessoren 155 unter Verwendung zusätzlicher Parallelitätstechniken aufgeteilt werden kann.
  • 3 veranschaulicht verschiedene Dimensionen in einem NN gemäß einer hierin beschriebenen Ausführungsform. Das heißt, 3 veranschaulicht verschiedene Dimensionen, die zum Partitionieren einer faltenden Schicht in einem NN verwendet werden können. Die Betriebslast der Faltungsschicht kann drei Datenstrukturen eingeben: Eingabe (Eing), Ausgabe (Ausg), und Gewichtungen (Kerne). NEing ist die Anzahl von Merkmalen (oder Gesichtern) in den Daten, die aus der vorhergehenden Schicht oder den vorhergehenden Schichten in dem NN empfangen wurden. Das heißt, die Eingabe hat eine Tiefe von NEing. Jedes Merkmal oder Gesicht hat Dimensionen, die durch Ni und Nj ausgedrückt werden (z.B. eine Merkmalsgröße von Ni x Nj). Beim Durchführen einer Faltung wird jedes Pixel in einem Merkmal unter Verwendung eines der Kerne verarbeitet (z.B. ein Punktprodukt). Das NN hat eine Anzahl von NAusg Kernen, wobei jeder Kern eine Höhe Ki, eine Breite Kj und eine Tiefe bei NEing hat.
  • Faltung funktioniert, indem das Punktprodukt eines der Kerne mit einem Pixel in einem der Merkmal in der Eingabe durchgeführt wird. Dadurch wird ein Skalarwert (z.B. ein Pixel) ausgegeben, der in der Ausgabe gespeichert wird. Infolgedessen handelt es sich bei der Tiefe der Ausgabe um NAusg (z.B. die Anzahl von Merkmalen in der Ausgabe), die mit der Anzahl von Kernen identisch ist. Ein Verschieben des Kerns unter Verwendung einer Schrittgröße beim Durchführen des Punktprodukts für andere Pixel in dem Merkmal oder Gesicht der Eingabe führt zu einem Merkmal (oder Gesicht) der Ausgabe. Unter Annahme einer Schrittgröße von 1 haben die Merkmale oder Gesichter der Ausgabe dieselbe Breite und Höhe (Ni und Nj) wie die Merkmale der Eingabe.
  • Das Durchführen einer Faltung führt zu vier Dimensionen: NEing, Nij, Kij und NAusg zum Aufteilen der Betriebslast der Faltungsschicht. Aber das Trainieren eines NN umfasst außerdem Minibatches (mb), bei denen ein NN unter Verwendung unterschiedlicher Eingabetrainingsdaten (z.B. unterschiedlicher Trainingsbilder) trainiert werden kann, die alle dieselben Gewichtungen (Kerne) verwenden, um mehrere Ausgabeergebnisse zu erzeugen. Somit ist der mb eine fünfte Dimension, die mit den anderen vier Dimensionen verwendet werden kann, um die Betriebslast einer Faltungsschicht darzustellen als: N{Eing, Ausg, Nij, Kij, mb}.
  • Andere Arten von Schichten können unter Verwendung anderer Dimensionen ausgedrückt werden. Beim Durchführen einer Matrixmultiplikation bei vollständig verbundenen Schichten in einem NN betragen die Werte Nij und Kij zum Beispiel 1. In jedem Fall können die hierin beschriebenen Ausführungsformen verwendet werden, um unterschiedliche Arten von Schichten zu verteilen, die unterschiedliche Arten (und Anzahlen) von Dimensionen haben können.
  • 4 ist ein Flussdiagramm eines Verfahrens 400 zum Ermitteln einer optimalen Technik zur Ausführung des Aufteilens von NN-Schichten unter dem Array von Prozessoren gemäß einer hierin beschriebenen Ausführungsform. Bei Block 405 wählt der Zuweiser eine Schicht in einem NN aus. Bei einer Ausführungsform wird das Verfahren 400 verwendet, um durch jede Schicht in dem NN zu iterieren und eine optimale Parallelitätstechnik auszuwählen.
  • Bei Block 410 ermittelt der NN-Zuweiser eine optimale Technik zum Aufteilen der Ausführung der Schicht auf ein 2-D-Array von Prozessoren. Das heißt, der NN-Zuweiser kann ermitteln, welche der in 1 veranschaulichten Techniken (die Datenparallelitätstechnik 130, die Modellparallelitätstechnik 135 oder eine hybride Parallelitätstechnik 140) die optimale Technik für die betreffende Schicht ist.
  • Bei einer Ausführungsform handelt es sich bei dem 2-D-Array von Prozessoren um einen 2-D-Torus, bei dem die Prozessoren untereinander verbunden sind. Zum Beispiel können die Prozessoren zu Datenübertragungszwecken mit benachbarten Prozessoren in zwei unterschiedlichen Richtungen verbunden sein (z.B. x/Y oder Nord/Süd). Bei einer Ausführungsform kann die Bandbreite für die Prozessor-zu-Prozessor-Datenübertragung je nach der Richtung unterschiedlich sein. Zum Beispiel kann das 2-D-Array so gestaltet sein, dass die Datenübertragung zwischen Prozessoren in der X-Richtung eine höhere Bandbreite als die Datenübertragung zwischen Prozessoren in der y-Richtung hat. Die Einzelheiten zum Auswählen der optimalen Technik, die beim Aufteilen der Betriebslast unter den Prozessoren in einem 2-D-Array verwendet werden soll, sind nachstehend in 5 beschrieben.
  • Bei Block 415 ermittelt der NN-Zuweiser, ob weitere Schichten in dem NN verbleiben. Das heißt, der NN-Zuweiser ermittelt, ob er für jede Schicht in dem NN eine optimale Parallelitätstechnik ausgewählt hat. Wenn nicht, kehrt das Verfahren 400 zu Block 405 zurück, aber wenn dies der Fall ist, geht das Verfahren zu Block 420 weiter.
  • Bei Block 420 weist der NN-Zuweiser beim Trainieren des NN dem 2-D-Array von Prozessoren Aufgaben unter Verwendung der optimalen Techniken zu. Wenn es sich bei der ausgewählten Technik um Datenparallelität oder Modellparallelität handelt, tauschen die Prozessoren in beiden Richtungen Daten aus, indem gemäß diesen Techniken Daten übermittelt werden. Das heißt, wenn Datenparallelität ausgewählt ist, tauschen die Prozessoren Gewichtungen/Kerne sowohl in der X- als auch in der Y-Richtung des 2-D-Arrays aus (die auch als Gradientenrichtung bezeichnet wird). Wenn Modellparallelität ausgewählt ist, tauschen die Prozessoren Eingabemerkmale entlang beider Richtungen aus.
  • Wenn jedoch eine hybride Parallelitätstechnik ausgewählt ist, tauschen die Prozessoren Daten in einer Richtung gemäß der Datenparallelität und in der anderen Richtung gemäß der Modellparallelität aus. Dementsprechend hat die Parallelitätstechnik, die in der Richtung des 2-D-Arrays mit der höheren Bandbreite realisiert ist, die Leistung im Verhältnis zu der Technik verbessert, die in der anderen Richtung realisiert ist, die eine geringere Bandbreite hat. Die Einzelheiten dieses Kompromisses werden nachstehend erörtert.
  • 5 ist ein Flussdiagramm eines Verfahrens 500 zum Auswählen einer hybriden Parallelitätstechnik gemäß einer hierin beschriebenen Ausführungsform. Das Verfahren 500 beschreibt mehrere Techniken zum Durchführen von Block 410 im Verfahren 400, um eine optimale Parallelitätstechnik für eine Schicht in einem NN auszuwählen. Aus Gründen der Anschaulichkeit wird das Verfahren 500 zusammen mit 6 beschrieben.
  • Bei Block 505 schätzt der Leistungsschätzer die Leistung der Schicht bei Verwendung einer Mehrzahl von Parallelitätstechniken. Zum Beispiel kann der Leistungsschätzer bei jeder Schicht ein Modell oder eine Simulation verwenden, um zu schätzen, wie die Schicht an der NN-Trainingshardware bei Verwendung jeder der unterschiedlichen Parallelitätstechniken, z.B. Datenparallelität, Modellparallelität oder hybride Parallelität, ausgeführt werden würde.
  • Bei einer Ausführungsform kann der Leistungsschätzer anstelle des Modellierens oder Simulierens jeder Parallelitätstechnik für jede Schicht Heuristiken verwenden, um die Anzahl von Techniken zu begrenzen, die geschätzt werden. Zum Beispiel kann der Leistungsschätzer ein Gewichtung-zu Merkmal-Verhältnis erzeugen, das verwendet werden kann, um schnell zu ermitteln, welche Parallelitätstechnik verwendet werden sollte. Wenn die Schicht gemäß einem vordefinierten Schwellenwert wesentlich mehr Gewichtungsdaten als Merkmalsdaten enthält, kann der Leistungsschätzer ohne Durchführen beliebiger weiterer Modellierung oder Simulation annehmen, dass Modellparallelität die optimale Parallelitätstechnik ist. Wenn umgekehrt das Gewichtung-zu-Merkmal-Verhältnis angibt, dass die Schicht wesentlich mehr Merkmalsdaten als Gewichtungsdaten enthält, wird Datenparallelität als die optimale Parallelitätstechnik erachtet. Somit muss der Leistungsschätzer nicht jede Parallelitätstechnik für jede Schicht modellieren oder testen.
  • Wie vorstehend erwähnt kann das 2-D-Array von Prozessoren mehrere Dimensionen umfassen, bei denen mindestens eine Dimension eine höhere Bandbreite für die Prozessor-zu-Prozessor-Datenübertragung als eine weitere Dimension hat. 6 veranschaulicht ein Array von Prozessoren, die x- und y-Ringe in einem 2-D-Array 600 gemäß einer hierin beschriebenen Ausführungsform bilden. Der x-Ring 610 gibt Datenübertragungsverbindungen an, die Prozessoren 155 zum Übertragen von Daten in der X-Richtung verwenden, während der y-Ring 605 Datenübertragungsverbindungen angibt, die Prozessoren 155 zum Übertragen von Daten in der Y-Richtung verwenden.
  • Bei einer Ausführungsform kann das 2-D-Array 600 begrenzte Ressourcen für Datenübertragungsverbindungen umfassen, die die x- und die y-Ringe bilden. Anstelle des Zuweisens derselben Anzahl von Ressourcen für beide Ringe hat das 2-D-Array 600 eine unterschiedliche Bandbreite für den x- und den y-Ring. Das heißt, bei dem 2-D-Array 600 handelt es sich um ein asymmetrisches Array (oder einen symmetrischen Torus), bei dem sich die Bandbreite für die Prozessor-zu-Prozessor-Datenübertragung je nach der Datenübertragungsrichtung unterscheidet. Zum Beispiel können jede Verbindung von Prozessor zu Prozessor mehrere physische Verbindungen umfassen. Um den x-Ringen 610 mehr Bandbreite als den y-Ringen 605 zuzuweisen, kann das 2-D-Array mehr physische Verbindungen haben, die jeder Prozessor-zu-Prozessor-Verbindung in der X-Richtung als den Prozessor-zu-Prozessor-Verbindungen in der Y-Richtung zugewiesen sind. Infolgedessen sind die Prozessoren 155 in der Lage, Daten in der X-Richtung (z.B. zu benachbarten Prozessoren links und rechts) schneller zu übertragen als in der Y-Richtung (z.B. zu benachbarten Prozessoren oberhalb und unterhalb). Auf diese Weise werden die hierin beschriebenen hybriden Parallelitätstechniken wirksam eingesetzt, bei denen die weniger effizienten Parallelitätstechniken verwendet werden können, wenn Daten zwischen den Prozessoren 155 in der X-Richtung übertragen werden (um den Vorteil der höheren Bandbreite zu nutzen), während die effizientere Parallelitätstechnik verwendet wird, wenn Daten zwischen den Prozessoren 155 in der Y-Richtung übertragen werden. Bei einigen NN-Schichten ist dies möglicherweise nicht der Fall und es ist optimal, die effizientere Parallelitätstechnik in der Richtung mit der höheren Bandbreite zu verwenden.
  • Zwar veranschaulichen die 2 und 6 ein 2-D Array von Prozessoren, die Ausführungsformen sind jedoch nicht darauf beschränkt. Wenn ein NN unter Verwendung eines N-dimensionalen Arrays von Prozessoren realisiert ist (bei dem N größer als 3 ist), kann mindestens eine der Dimensionen (oder Einrichtungen) so gestaltet sein, dass sie eine höhere Bandbreite als mindestens eine andere Dimension hat. Daher können die hierin beschriebenen Ausführungsformen verwendet werden, um ein hybrides Parallelitätsmodell auszuwählen, bei dem unterschiedliche Dimensionen unterschiedliche Parallelitätstechniken verwenden.
  • Unter erneuter Bezugnahme auf das Verfahren 500 ermittelt der NN-Zuweiser bei Block 510 unter Verwendung von Leistungsschätzungen, die bei Block 505 erzeugt wurden, ob Daten- oder Modellparallelität die optimale Parallelitätstechnik für die Schicht ist. Wenn dies der Fall ist, geht das Verfahren 500 zu Block 515 weiter, bei dem der NN-Zuweiser die Daten- oder Modellparallelitätstechnik für die Schicht zuweist. Das heißt, beim Aufteilen von Aufgaben und Konfigurieren der NN-Trainingshardware werden die Daten in beiden Richtungen in dem 2-D-unter Verwendung derselben Parallelitätstechnik unabhängig davon übertragen, ob es sich um die Datenmodellparallelitätstechnik oder die Modellparallelitätstechnik handelt. Daher wird dasselbe Parallelitätsmodell in beiden Richtungen verwendet, selbst wenn eine der Richtungen möglicherweise eine höhere Bandbreite als die andere Richtung hat.
  • Anderenfalls geht das Verfahren 500 zu Block 520 weiter, bei dem der NN-Zuweiser unter Verwendung der Leistungsschätzungen ermittelt, ob die aktuell bewertete Schicht eher merkmalsschwer als gewichtungsschwer ist. Wie vorstehend erwähnt ist bei NN-Schichten, bei denen die Merkmale zahlreicher als die Gewichtungen sind (z.B. eine schwere Schicht), die Datenparallelitätstechnik effizienter als die Modellparallelitätstechnik. Das heißt, bei einigen NNs erfordert jedes Ausgabemerkmal den gesamten Eingabekanal. Das heißt, jeder Prozessor benötigt zum Berechnen eines neuen Merkmals nach wie vor die gesamte Eingabe der Schicht (z.B. die Ausgabe aus der vorhergehenden Schicht). Bei Verwendung von Modellparallelität wird die Eingabe in allen Prozessoren repliziert, oder Aktivierungen werden an allen Prozessoren durchgeführt. Somit geht das Verfahren 500, wenn es sich bei der Schicht um eine merkmalsschwere Schicht handelt, zu Block 535 weiter, bei dem der NN-Zuweiser die Modellparallelitätstechnik zur Verwendung in der Richtung mit der höchsten Bandbreite in dem 2-D-Array auswählt. Auf diese Weise hat die negative Auswirkung der Aktivierungen weniger Einfluss auf den effizienten Betrieb des NN, da diese Aktivierungen auf den Prozessor-zu-Prozessor-Verbindungen mit der höheren Bandbreite übermittelt werden. Bei Block 540 wählt der NN-Zuweiser die Datenparallelitätstechnik zur Verwendung in der Richtung mit der kleinsten Bandbreite in dem 2-D-Array aus.
  • Im Gegensatz hierzu geht das Verfahren, wenn es sich bei der Schicht um eine eher gewichtungsschwere Schicht handelt, von Block 520 zu Block 525, bei dem der NN-Zuweiser die Datenparallelitätstechnik zur Verwendung in der Richtung mit der größten Bandbreite in dem 2-D-Array auswählt, und zu Block 530 weiter, bei dem der NN-Zuweiser die Modellparallelitätstechnik zur Verwendung in der Richtung mit der kleinsten Bandbreite auswählt. Da Datenparallelität auf den Verbindungen mit der höheren Bandbreite verwendet wird, wird die negative Auswirkung der Gradientenverringerung verringert. Auf diese Weise gibt das Verfahren 500 ein Verwenden zweier unterschiedlicher hybrider Parallelitätstechniken an. Eine hybride Technik bilden die Blöcke 535 und 540, bei denen Modellparallelität in der Dimension mit der höheren Bandbreite des Arrays von Prozessoren verwendet wird und Datenparallelität in der Dimension mit der geringeren Bandbreite verwendet wird, und die andere bilden die Blöcke 525 und 530, bei denen Datenparallelität in der Dimension mit der höheren Bandbreite des Arrays von Prozessoren verwendet wird und Modellparallelität in der Dimension mit der geringeren Bandbreite verwendet wird.
  • Wie vorstehend erwähnt kann es jedoch effizienter sein, Datenparallelität in der Richtung zu verwenden, die höhere Bandbreite bei merkmalsschweren Schichten hat, oder Modellparallelität in der Richtung zu verwenden, die die höhere Bandbreite bei gewichtungsschweren Schichten hat. Zum Beispiel bevorzugen Schichten eines langen Kurzzeitgedächtnisses (LSTM), obwohl sie gewichtungsschwer sind, hybride Parallelität, bei der Modellparallelität in der Richtung mit der höheren Bandbreite verwendet wird und Datenparallelität in der Richtung mit der geringeren Bandbreite verwendet wird. In diesem Fall ist Gradientenverringerung ziemlich selten (tritt nur auf, nachdem alle Zeitschritte ausgeführt wurden) und kann auf Verbindungen der langsameren Richtung vorkommen, ohne die Leistung zu beeinträchtigen.
  • Zwar wird das Verfahren 500 im Kontext eines asymmetrischen Arrays erörtert, bei dem sich die Bandbreite unterscheidet, das Verfahren 500 kann aber auch in einem symmetrischen Array von Prozessoren verwendet werden, bei dem die Bandbreite in der X- und in der Y-Richtung dieselbe ist. Zum Beispiel kann die NN-Trainingshardware mehr Prozessoren umfassen, als zu testende Minibatches vorliegen. In diesem Fall ist die Verwendung nur von Datenparallelität ineffizient, da der NN-Zuweiser einen Batch (z.B. ein Bild) jedem Prozessor zuweisen kann. In diesem Fall kann die Verwendung eines hybriden Parallelitätsmodells die Effizienz verbessern. Bei einem weiteren Beispiel hat der NN-Zuweiser möglicherweise nicht genügend Merkmale zum Verteilen auf alle Prozessoren (z.B. ist NAusg kleiner als die Anzahl von Prozessoren in dem Array). Somit kann die Verwendung von nur Modellparallelität ineffizient sein, aber das Aufteilen der Dimensionen unter Verwendung eines hybriden Parallelitätsmodells kann zu einer effizienteren Verwendung der NN-Trainingshardware führen. Bei diesen Beispielen spielt es keine Rolle, welche Parallelität in welcher Richtung verwendet wird, da die Richtungen in einem symmetrischen Array dieselbe Bandbreite haben.
  • 7 veranschaulicht eine Matrix 700 zum Auswählen einer Parallelitätstechnik für eine NN-Schicht gemäß einer hierin beschriebenen Ausführungsform. Die Matrix 700 veranschaulicht vier Parallelitätstechniken und ihre Beziehungen zueinander. Die x-Achse gibt die Parallelitätstechnik an, die in der X-Richtung des 2-D-Arrays verwendet wird, während die y-Achse die Parallelitätstechnik angibt, die in der Y-Richtung des 2-D-Arrays verwendet wird.
  • Die Parallelitätstechnik „Alles Daten“ ist diejenige, bei der nur Datenparallelität verwendet wird, wenn die Betriebslast aufgeteilt wird. Daher wird die Parallelität in der X-Richtung und in der Y-Richtung des 2-D-Arrays unter Verwendung von Datenparallelität durchgeführt.
  • Bei der Parallelitätstechnik „DatenXModellY“ handelt sich um eine erste hybride Parallelitätstechnik, bei der Datenparallelität in der X-Richtung des 2-D-Arrays verwendet wird, aber Modellparallelität in der Y-Richtung des 2-D-Arrays verwendet wird.
  • Bei der Parallelitätstechnik „ModellXDatenY“ handelt sich um eine zweite hybride Parallelitätstechnik, bei der Modellparallelität in der X-Richtung des 2-D-Arrays verwendet wird, aber Datenparallelität in der Y-Richtung des 2-D-Arrays verwendet wird.
  • Bei der Parallelitätstechnik „Alles Modell“ handelt es sich um diejenige, bei der nur Modellparallelität verwendet wird, wenn die Betriebslast aufgeteilt wird. Daher wird die Parallelität in der X-Richtung und in der Y-Richtung des 2-D-Arrays unter Verwendung von Modellparallelität durchgeführt.
  • 8 veranschaulicht eine Einstufung von Parallelitätstechniken auf der Grundlage der Eigenschaften der NN-Schicht gemäß einer hierin beschriebenen Ausführungsform. Die hybriden Parallelitätstechniken stellen einen Kompromiss zwischen den Vorteilen und Nachteilen der Daten- und der Modellparallelitätstechnik dar. Bei NN-Schichten, bei denen es sich hauptsächlich um merkmalsschwere Schichten handelt, führt die Verwendung der Parallelitätstechnik „Alles Daten“ in beiden Richtungen des 2-D-Arrays wahrscheinlich zur effizientesten Verwendung der NN-Trainingshardware. Umgekehrt führt bei NN-Schichten, bei denen es sich hauptsächlich um gewichtsschwere Schichten handelt, die Verwendung der Parallelitätstechnik „Alles Modell“ in beiden Richtungen des 2-D-Arrays wahrscheinlich zur effizientesten Verwendung der NN-Trainingshardware.
  • Die Verwendung der hybriden Parallelitätstechniken (d.h. von „DatenXModellY“ und „ModellXDatenY“) kann die Effizienz im Verhältnis zu den Techniken „Alles Daten“ oder „Alles Modell“ bei Schichten verbessern, die nicht hauptsächlich merkmalsschwer oder gewichtsschwer sind. Das heißt, bei Schichten, die unter diese beiden Extreme fallen, kann es effizienter sein, eine hybride Parallelitätstechnik zu verwenden. Das heißt, bei Schichten, bei denen der Leistungsschätzer feststellt, dass sie eher merkmalsschwer als gewichtsschwer sind, kann die hybride Parallelität „ModellXDatenY“ zu einer verbesserten Effizienz führen (unter der Annahme, die X-Richtung des 2-D-Arrays mehr Bandbreite als die Y-Richtung hat). Das heißt, Modellparallelität wird in der X Richtung durchgeführt, während Datenparallelität in der Y-Richtung verwendet wird. Somit ermöglicht dies der NN-Trainingshardware, die negative Auswirkung der langsameren Eingabeaktivierungen der Modellparallelität abzumildern, da sie in der X-Richtung durchgeführt wird, in der die Bandbreite am höchsten ist, während die von sich aus effizientere Datenparallelität in der Y-Richtung verwendet wird, in der die Bandbreite geringer ist. Zum Beispiel bevorzugen faltende Schichten mit kleineren Merkmalsgrößen (z.B. der abschließende Satz von faltenden Schichten in ResNet und GoogLeNet), die nur unwesentlich merkmalsschwer sind, die Parallelität „ModellXDatenY“, um die Aktivierung/Fehlerrotation zu optimieren.
  • Bei NN-Schichten, die eher gewichtsschwer als merkmalsschwer sind, kann die hybride Parallelität „DatenXModellY“ zu einer verbesserten Effizienz führen, da Datenparallelität in der Richtung mit der höheren Bandbreite durchgeführt wird (d.h. in der X-Richtung), wodurch die negative Auswirkung der Gewichtungs-/Gradientenverringerung minimiert wird, während die von sich aus effizientere Modellparallelität in der Richtung mit der geringeren Bandbreite durchgeführt wird. Zum Beispiel bevorzugen kleine, vollständig verbundene Schichten (z.B. letzte Schichten von VGG/ResNet), die mäßig gewichtsschwer sind, „DatenXModellY“, da sie eine Gradientenverringerung entlang Verbindungen in der X-Richtung realisieren.
  • Die Beschreibungen der verschiedenen Ausführungsformen der vorliegenden Erfindung sollen der Veranschaulichung dienen, sind jedoch nicht als vollständig oder auf die offenbarten Ausführungsformen beschränkt gedacht. Für Fachleute sind viele Modifikationen und Variationen denkbar, ohne dass diese eine Abweichung vom Schutzumfang und Grundgedanken der beschriebenen Ausführungsformen darstellen würden. Die hierin verwendete Terminologie wurde gewählt, um die Grundgedanken der Ausführungsformen, die praktische Anwendung bzw. die technische Verbesserung gegenüber den auf dem Markt vorgefundenen Technologien zu erläutern bzw. anderen mit entsprechenden Fachkenntnissen das Verständnis der hierin offenbarten Ausführungsformen zu ermöglichen.
  • Im Vorstehenden wird Bezug auf in dieser Offenbarung vorgestellte Ausführungsformen genommen. Der Schutzbereich der vorliegenden Offenbarung ist jedoch nicht auf bestimmte beschriebene Ausführungsformen beschränkt. Stattdessen ist eine beliebige Kombination der folgenden Merkmale und Elemente unabhängig davon denkbar, ob sie mit unterschiedlichen Ausführungsformen im Zusammenhang stehen, um die Erfindung zu realisieren und in die Praxis umzusetzen. Obwohl hierin offenbarte Ausführungsformen möglicherweise Vorteile gegenüber anderen möglichen Lösungen oder gegenüber dem Stand der Technik erzielen, schränkt des Weiteren eine angegebene Ausführungsform den Schutzbereich der vorliegenden Offenbarung unabhängig davon nicht ein, ob ein bestimmter Vorteil durch eine angegebene Ausführungsform erzielt wird. Daher tragen die Aspekte, Merkmale, Ausführungsformen und Vorteile lediglich einen veranschaulichenden Charakter und sind nicht als Elemente oder Einschränkungen der beigefügten Ansprüche gedacht, ausgenommen in Fällen, in denen dies in einem Anspruch bzw. in Ansprüchen ausdrücklich angegeben ist. Ebenso ist der Bezug auf „die Erfindung“ nicht als Verallgemeinerung eines hierin offenbarten Erfindungsgegenstands auszulegen und nicht als Element oder Einschränkung der beigefügten Ansprüche anzusehen, ausgenommen in Fällen, in denen dies in einem Anspruch bzw. in Ansprüchen ausdrücklich angegeben ist.
  • Aspekte der vorliegenden Erfindung können die Form einer vollständig in Hardware realisierten Ausführungsform, einer vollständig in Software realisierten Ausführungsform (unter anderem Firmware, residente Software, Mikrocode usw.) oder einer Ausführungsform annehmen, die Software- und Hardwareaspekte kombiniert, die im hierin allgemein als „Schaltung“, „Modul“ oder „System“ bezeichnet sind.
  • Bei der vorliegenden Erfindung kann es sich um ein System, ein Verfahren und/oder ein Computerprogrammprodukt handeln. Das Computerprogrammprodukt kann (ein) durch einen Computer lesbare(s) Speichermedium (oder -medien) enthalten, auf dem/denen durch einen Computer lesbare Programmanweisungen gespeichert sind, um einen Prozessor zu veranlassen, Aspekte der vorliegenden Erfindung auszuführen.
  • Bei dem durch einen Computer lesbaren Speichermedium kann es sich um eine materielle Einheit handeln, auf der Anweisungen zur Verwendung durch eine Einheit zur Ausführung von Anweisungen aufbewahrt und gespeichert sein können. Bei dem durch einen Computer lesbaren Speichermedium kann es sich zum Beispiel, ohne auf diese beschränkt zu sein, um eine elektronische Speichereinheit, eine magnetische Speichereinheit, eine optische Speichereinheit, eine elektromagnetische Speichereinheit, eine Halbleiterspeichereinheit oder eine beliebige geeignete Kombination des Vorstehenden handeln. Eine nicht erschöpfende Liste genauerer Beispiele des durch einen Computer lesbaren Speichermediums umfasst Folgendes: eine transportable Computerdiskette, eine Festplatte, einen Direktzugriffsspeicher (RAM), einen Nur-Lese-Speicher (ROM), einen löschbaren programmierbaren Nur-Lese-Speicher (EPROM oder Flash-Speicher), einen statischen Direktzugriffsspeicher (SRAM), einen transportablen Nur-Lese-Speicher in Form einer Compact Disc (CD-ROM), eine Digital Versatile Disc (DVD), einen Speicherstick, eine Diskette, eine mechanisch codierte Einheit wie zum Beispiel Lochkarten oder erhöhte Strukturen in einer Rille mit darauf aufgezeichneten Anweisungen oder beliebige geeignete Kombinationen des Vorstehenden. Ein durch einen Computer lesbares Speichermedium im hierin verwendeten Sinne ist nicht so auszulegen, dass es sich dabei um flüchtige Signale an sich handelt, beispielsweise um Funkwellen oder sich frei ausbreitende elektromagnetische Wellen, um elektromagnetische Wellen, die sich durch einen Hohlleiter oder andere Übertragungsmedien ausbreiten (z.B. ein Lichtwellenleiterkabel durchlaufende Lichtimpulse) oder um elektrische Signale, die über ein Kabel übertragen werden.
  • Hierin beschriebene, durch einen Computer lesbare Programmanweisungen können über ein Netzwerk, zum Beispiel das Internet, ein lokales Netzwerk ein Weitverkehrsnetzwerk und/oder ein Drahtlosnetzwerk von einem durch einen Computer lesbaren Speichermedium auf betreffende Datenverarbeitungs-/Verarbeitungseinheiten oder auf einen externen Computer oder eine externe Speichereinheit heruntergeladen werden. Das Netzwerk kann Kupferübertragungskabel, Lichtwellenübertragungsleiter, Drahtlosübertragung, Router, Firewalls, Switches, Gateway-Computer und/oder Edge-Server aufweisen. Eine Netzwerkadapterkarte oder eine Netzwerkschnittstelle in der Datenverarbeitungs-/Verarbeitungseinheit empfängt durch einen Computer lesbare Programmanweisungen aus dem Netzwerk und leitet die durch einen Computer lesbaren Programmanweisungen zur Speicherung in einem durch einen Computer lesbaren Speichermedium innerhalb der jeweiligen Datenverarbeitungs-/Verarbeitungseinheit weiter.
  • Durch einen Computer lesbare Programmanweisungen zum Ausführen von Operationen der vorliegenden Erfindung können Assembleranweisungen, ISA-Anweisungen (ISA = Instruction Set Architecture), Maschinenanweisungen, maschinenabhängige Anweisungen, Mikrocode, Firmware-Anweisungen, Daten zum Setzen von Zuständen oder entweder Quellcode oder Objektcode sein, die in einer beliebigen Kombination aus einer oder mehreren Programmiersprachen geschrieben sind, zu denen eine objektorientierte Programmiersprache wie beispielsweise Smalltalk, C++ oder Ähnliches und herkömmliche prozedurale Programmiersprachen wie beispielsweise die Programmiersprache „C“ oder ähnliche Programmiersprachen gehören. Die durch einen Computer lesbaren Programmanweisungen können vollständig auf dem Computer des Benutzers, teilweise auf dem Computer des Benutzers, als eigenständiges Softwarepaket, teilweise auf dem Computer des Benutzers und teilweise auf einem entfernt angeordneten Computer oder vollständig auf dem entfernt angeordneten Computer oder Server ausgeführt werden. Bei dem letztgenannten Szenario kann der entfernt angeordnete Computer mit dem Computer des Benutzers über eine beliebige Art von Netzwerk verbunden sein, unter anderem über ein lokales Netzwerk (Local Area Network, LAN) oder über ein Weitverkehrsnetzwerk (Wide Area Network, WAN), oder die Verbindung kann zu einem externen Computer hergestellt werden (beispielsweise über das Internet unter Nutzung eines Internetdienstanbieters (Internet Service Provider)). Bei einigen Ausführungsformen können elektronische Schaltungen, zu denen beispielsweise programmierbare Logikschaltungen, vor Ort programmierbare Gatteranordnungen (Field-Programmable Gate Arrays, FPGA) oder programmierbare Logikanordnungen (PLA) gehören, die durch einen Computer lesbaren Programmanweisungen ausführen, indem Zustandsinformationen der durch einen Computer lesbaren Programmanweisungen genutzt werden, um die elektronische Schaltung zu personalisieren, sodass Aspekte der vorliegenden Erfindung durchgeführt werden.
  • Aspekte der vorliegenden Erfindung sind hierin unter Bezugnahme auf Flussdiagrammdarstellungen und/oder Blockschemata von Verfahren, Vorrichtungen (Systemen) und Computerprogrammprodukten gemäß Ausführungsformen der Erfindung beschrieben. Es wird klar sein, dass jeder Block der Flussdiagramme und/oder der Blockschemata und Kombinationen von Blöcken in den Flussdiagrammen und/oder Blockschemata mit Hilfe von durch einen Computer lesbaren Programmanweisungen realisiert werden kann bzw. können.
  • Diese durch einen Computer lesbaren Programmanweisungen können einem Prozessor eines Universalcomputers, eines Spezialcomputers oder anderer programmierbaren Datenverarbeitungsvorrichtungen bereitgestellt werden, um eine Maschine zu erzeugen, sodass die Anweisungen, die über den Prozessor des Computers oder anderer programmierbarer Datenverarbeitungsvorrichtungen ausgeführt werden, Mittel schaffen, um die in einem Block bzw. in den Blöcken des Flussdiagramms bzw. der Flussdiagramme und/oder des Blockschemas bzw. der Blockschemata angegebenen Funktionen/Aktionen zu realisieren. Diese durch einen Computer lesbaren Programmanweisungen können ebenfalls in einem durch einen Computer lesbaren Medium gespeichert sein, das einen Computer, andere programmierbare Datenverarbeitungsvorrichtungen oder andere Einheiten anweisen kann, in einer bestimmten Weise zu funktionieren, sodass das durch einen Computer lesbare Medium mit darauf gespeicherten Anweisungen ein Erzeugnis aufweist, das Anweisungen enthält, die die in einem Block bzw. in den Blöcken der Flussdiagramme und/oder der Blockschemata angegebene Funktion/Aktion realisieren.
  • Die durch einen Computer lesbaren Programmanweisungen können auch in einen Computer, in andere programmierbare Datenverarbeitungsvorrichtungen oder in andere Einheiten geladen werden, um zu bewirken, dass auf dem Computer, auf anderen programmierbaren Vorrichtungen oder anderen Einheiten eine Reihe von Operationen ausgeführt wird, um einen mittels Computer realisierten Prozess zu schaffen, sodass die Anweisungen, die auf dem Computer, auf anderen programmierbaren Vorrichtungen oder Einheiten ausgeführt werden, die in einem Block bzw. in den Blöcken der Flussdiagramme und/oder der Blockschemata angegebenen Funktionen/Aktionen realisieren.
  • Die Flussdiagramme und Blockschemata in den Figuren veranschaulichen die Architektur, Funktionalität und Wirkungsweise möglicher Realisierungsformen von Systemen, Verfahren und Computerprogrammprodukten gemäß verschiedenen Ausführungsformen der vorliegenden Erfindung. In diesem Zusammenhang kann jeder Block in den Flussdiagrammen bzw. in den Blockschemata ein Modul, ein Segment oder einen Abschnitt von Anweisungen darstellen, das bzw. der eine oder mehrere ausführbare Anweisungen zum Realisieren der angegebenen Logikfunktion bzw. Logikfunktionen aufweist. Bei einigen alternativen Realisierungsformen können die in dem Block angegebenen Funktionen in einer anderen als in der Reihenfolge ausgeführt werden, die in den Figuren angegeben ist. Zum Beispiel können zwei hintereinander aufgeführte Blöcke tatsächlich im Wesentlichen gleichzeitig ausgeführt werden, oder die Blöcke können je nach der mit den Blöcken verbundenen Funktionalität manchmal in umgekehrter Reihenfolge ausgeführt werden. Darüber hinaus ist anzumerken, dass jeder Block der Blockschemata und/oder Flussdiagrammdarstellungen sowie Kombinationen von Blöcken in den Blockschemata und/oder Flussdiagrammdarstellungen mit Hilfe zweckgebundener hardwaregestützter Systeme zum Ausführen der angegebenen Funktionen bzw. Aktionen oder mit Hilfe von Kombinationen aus zweckgebundener Hardware und zweckgebundenen Computeranweisungen realisiert werden kann bzw. können.
  • Ausführungsformen der Erfindung können Endbenutzern über eine Cloud-Datenverarbeitungsinfrastruktur bereitgestellt werden. Der Begriff „Cloud-Datenverarbeitung“ („Cloud-Computing“) bezeichnet allgemein die Bereitstellung skalierbarer Datenverarbeitungsressourcen als Dienst über ein Netzwerk. Formaler ausgedrückt kann Cloud-Computing als Datenverarbeitungsfunktion definiert werden, die eine Abstraktion zwischen der Datenverarbeitungsressource und ihrer zugrundeliegenden technischen Architektur (z.B. Server, Speicher, Netzwerke) bereitstellt, die den benutzerfreundlichen bedarfsorientierten Netzwerkzugriff auf eine gemeinsam genutzte Ansammlung konfigurierbarer Datenverarbeitungsressourcen ermöglicht, die mit minimalem Verwaltungsaufwand bzw. über minimale Interaktion mit dem Dienstanbieter bereitgestellt und freigegeben werden kann. Somit ermöglicht Cloud-Computing einem Benutzer unabhängig von den zugrundeliegenden physischen Systemen (oder den Standorten der Systeme), die zur Bereitstellung der Datenverarbeitungsressourcen verwendet werden, auf virtuelle Datenverarbeitungsressourcen (z.B. Speicher, Daten, Anwendungen und selbst auf komplette virtualisierte Datenverarbeitungssysteme) in der „Cloud“ zuzugreifen.
  • In der Regel werden Cloud-Computing-Ressourcen einem Benutzer auf einer Grundlage der Kosten pro Nutzung (Pay-per-Use) bereitgestellt, bei der Benutzern nur Kosten für die tatsächlich genutzten Datenverarbeitungsressourcen (z.B. eine Größe des durch einen Benutzer verbrauchten Speicherplatzes oder eine Anzahl virtueller Systeme, die der Benutzer instanziiert hat) in Rechnung gestellt werden. Ein Benutzer kann über das Internet jederzeit und von überall auf beliebige der Ressourcen zugreifen, die sich in der Cloud befinden. Im Kontext der vorliegenden Erfindung kann ein Benutzer auf Anwendungen (z.B. auf den NN-Zuweiser oder den Leistungsschätzer) und zugehörige Daten zugreifen, die in der Cloud zur Verfügung stehen. Zum Beispiel könnten der NN-Zuweiser oder der Leistungsschätzer auf einem Datenverarbeitungssystem in der Cloud ausgeführt werden und die optimale Parallelitätstechnik für jede Schicht in einem NN auswählen. In einem derartigen Fall könnte der NN-Zuweiser oder der Leistungsschätzer die optimalen Techniken auswählen und diese Auswahlen auf einem Speicherplatz in der Cloud speichern. Dies ermöglicht einem Benutzer, von einem beliebigen Datenverarbeitungssystem, das an ein mit der Cloud verbundenes Netzwerk (z.B. das Internet) angeschlossen ist, auf diese Daten zuzugreifen.
  • Zwar ist das Vorstehende auf Ausführungsformen der vorliegenden Erfindung gerichtet, andere und weitere Ausführungsformen der Erfindung können jedoch entwickelt werden, ohne von deren grundlegendem Schutzbereich abzuweichen, wobei deren Schutzbereich durch die nachfolgenden Ansprüche festgelegt ist.

Claims (20)

  1. Verfahren, das aufweist: Auswählen einer hybriden Parallelitätstechnik zum Aufteilen einer Betriebslast einer Schicht eines neuronalen Netzes auf ein Array von Prozessoren, wobei jeder Prozessor in dem Array von Prozessoren Daten zu benachbarten Prozessoren in einer ersten Richtung und in einer zweiten Richtung übertragen kann; und Zuweisen von Aufgaben, die der Schicht des neuronalen Netzes entsprechen, zu dem Array von Prozessoren unter Verwendung der ausgewählten hybriden Parallelitätstechnik, wobei die hybride Parallelitätstechnik ein Verwenden einer ersten Parallelitätstechnik aufweist, wenn Daten zwischen Prozessoren in dem Array von Prozessoren in der ersten Richtung übertragen werden, und ein Verwenden einer zweiten, anderen Parallelitätstechnik, wenn Daten zwischen Prozessoren in dem Array von Prozessoren in der zweiten Richtung übertragen werden.
  2. Verfahren nach Anspruch 1, wobei das Array von Prozessoren eine höhere Bandbreite beim Übertragen von Daten zwischen den Prozessoren in der ersten Richtung als beim Übertragen von Daten zwischen den Prozessoren in der zweiten Richtung hat.
  3. Verfahren nach Anspruch 2, das ferner aufweist: Schätzen einer Leistung der Schicht des neuronalen Netzes unter Verwendung einer Mehrzahl von unterschiedlichen hybriden Parallelitätstechniken; und Ermitteln auf der Grundlage der geschätzten Leistung, ob die Schicht des neuronalen Netzes eher merkmalsschwer oder gewichtsschwer ist.
  4. Verfahren nach Anspruch 3, das ferner aufweist: nach dem Feststellen, dass die Schicht des neuronalen Netzes eher merkmalsschwer ist, Verwenden von Modellparallelität als erste Parallelitätstechnik und von Datenparallelität als zweite Parallelitätstechnik.
  5. Verfahren nach Anspruch 3, das ferner aufweist: nach dem Feststellen, dass die Schicht des neuronalen Netzes eher gewichtungsschwer ist, Verwenden von Datenparallelität als erste Parallelitätstechnik und von Modellparallelität als zweite Parallelitätstechnik.
  6. Verfahren nach Anspruch 1, wobei das Array von Prozessoren einen 2-D-Torus bildet, wobei die erste Richtung und die zweite Richtung im rechten Winkel zueinander stehen.
  7. Verfahren nach Anspruch 1, wobei die Aufgaben, die der Schicht des neuronalen Netzes entsprechen, Trainingsdaten umfassen, die zum Trainieren des neuronalen Netzes verwendet werden, das die Schicht des neuronalen Netzes enthält.
  8. Verfahren nach Anspruch 7, das ferner aufweist: Schätzen einer Leistung einer Mehrzahl von Schichten in dem neuronalen Netz unter Verwendung einer Mehrzahl von unterschiedlichen hybriden Parallelitätstechniken; und Zuweisen einer der Mehrzahl von unterschiedlichen hybriden Parallelitätstechniken zu jeder der Mehrzahl von Schichten.
  9. System, das aufweist: ein Array von Prozessoren; und eine Zuweiser eines neuronalen Netzes, der konfiguriert ist zum: Auswählen einer hybriden Parallelitätstechnik zum Aufteilen einer Betriebslast einer Schicht eines neuronalen Netzes auf ein Array von Prozessoren, wobei jeder Prozessor in dem Array von Prozessoren Daten zu benachbarten Prozessoren in einer ersten Richtung und in einer zweiten Richtung übertragen kann; und Zuweisen von Aufgaben, die der Schicht des neuronalen Netzes entsprechen, zu dem Array von Prozessoren unter Verwendung der ausgewählten hybriden Parallelitätstechnik, wobei die hybride Parallelitätstechnik ein Verwenden einer ersten Parallelitätstechnik aufweist, wenn Daten zwischen Prozessoren in dem Array von Prozessoren in der ersten Richtung übertragen werden, und ein Verwenden einer zweiten, anderen Parallelitätstechnik, wenn Daten zwischen Prozessoren in dem Array von Prozessoren in der zweiten Richtung übertragen werden.
  10. System nach Anspruch 9, wobei das Array von Prozessoren eine höhere Bandbreite beim Übertragen von Daten zwischen den Prozessoren in der ersten Richtung als beim Übertragen von Daten zwischen den Prozessoren in der zweiten Richtung hat.
  11. System nach Anspruch 10, wobei Zuweiser des neuronalen Netzes konfiguriert ist zum: Schätzen einer Leistung der Schicht des neuronalen Netzes unter Verwendung einer Mehrzahl von unterschiedlichen hybriden Parallelitätstechniken; und Ermitteln auf der Grundlage der geschätzten Leistung, ob die Schicht des neuronalen Netzes eher merkmalsschwer oder gewichtsschwer ist.
  12. System nach Anspruch 11, wobei der Zuweiser des neuronalen Netzes konfiguriert ist zum: nach dem Feststellen, dass die Schicht des neuronalen Netzes eher merkmalsschwer ist, Verwenden von Modellparallelität als erste Parallelitätstechnik und von Datenparallelität als zweite Parallelitätstechnik.
  13. System nach Anspruch 11, wobei der Zuweiser des neuronalen Netzes konfiguriert ist zum: nach dem Feststellen, dass die Schicht des neuronalen Netzes eher gewichtungsschwer ist, Verwenden von Datenparallelität als erste Parallelitätstechnik und von Modellparallelität als zweite Parallelitätstechnik.
  14. System nach Anspruch 9, wobei das Array von Prozessoren einen 2-D-Torus bildet, wobei die erste Richtung und die zweite Richtung im rechten Winkel zueinander stehen.
  15. Durch einen Computer lesbares Speichermedium, auf dem durch einen Computer lesbarer Programmcode verkörpert ist, wobei der durch einen Computer lesbare Programmcode durch einen oder mehrere Computerprozessoren lesbar ist, um eine Operation durchzuführen, wobei die Operation aufweist: Auswählen einer hybriden Parallelitätstechnik zum Aufteilen einer Betriebslast einer Schicht eines neuronalen Netzes auf ein Array von Prozessoren, wobei jeder Prozessor in dem Array von Prozessoren Daten zu benachbarten Prozessoren in einer ersten Richtung und in einer zweiten Richtung übertragen kann; und Zuweisen von Aufgaben, die der Schicht des neuronalen Netzes entsprechen, zu dem Array von Prozessoren unter Verwendung der ausgewählten hybriden Parallelitätstechnik, wobei die hybride Parallelitätstechnik ein Verwenden einer ersten Parallelitätstechnik aufweist, wenn Daten zwischen Prozessoren in dem Array von Prozessoren in der ersten Richtung übertragen werden, und ein Verwenden einer zweiten, anderen Parallelitätstechnik, wenn Daten zwischen Prozessoren in dem Array von Prozessoren in der zweiten Richtung übertragen werden.
  16. Durch einen Computer lesbares Speichermedium nach Anspruch 15, wobei das Array von Prozessoren eine höhere Bandbreite beim Übertragen von Daten zwischen den Prozessoren in der ersten Richtung als beim Übertragen von Daten zwischen den Prozessoren in der zweiten Richtung hat.
  17. Durch einen Computer lesbares Speichermedium nach Anspruch 16, wobei die Operation aufweist: Schätzen einer Leistung der Schicht des neuronalen Netzes unter Verwendung einer Mehrzahl von unterschiedlichen hybriden Parallelitätstechniken; und Ermitteln auf der Grundlage der geschätzten Leistung, ob die Schicht des neuronalen Netzes eher merkmalsschwer oder gewichtsschwer ist.
  18. Durch einen Computer lesbares Speichermedium nach Anspruch 17, wobei die Operation aufweist: nach dem Feststellen, dass die Schicht des neuronalen Netzes eher merkmalsschwer ist, Verwenden von Modellparallelität als erste Parallelitätstechnik und von Datenparallelität als zweite Parallelitätstechnik.
  19. Durch einen Computer lesbares Speichermedium nach Anspruch 17, wobei die Operation aufweist: nach dem Feststellen, dass die Schicht des neuronalen Netzes eher gewichtungsschwer ist, Verwenden von Datenparallelität als erste Parallelitätstechnik und von Modellparallelität als zweite Parallelitätstechnik.
  20. Durch einen Computer lesbares Speichermedium nach Anspruch 15, wobei das Array von Prozessoren einen 2-D-Torus bildet, wobei die erste Richtung und die zweite Richtung im rechten Winkel zueinanderstehen.
DE112020004067.4T 2019-10-11 2020-09-29 Hybride daten-modell-parallelität für effizientes deep learning Pending DE112020004067T5 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US16/599,189 2019-10-11
US16/599,189 US11556450B2 (en) 2019-10-11 2019-10-11 Hybrid data-model parallelism for efficient deep learning
PCT/IB2020/059113 WO2021070006A1 (en) 2019-10-11 2020-09-29 Hybrid data-model parallelism for efficient deep learning

Publications (1)

Publication Number Publication Date
DE112020004067T5 true DE112020004067T5 (de) 2022-05-19

Family

ID=75384038

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112020004067.4T Pending DE112020004067T5 (de) 2019-10-11 2020-09-29 Hybride daten-modell-parallelität für effizientes deep learning

Country Status (6)

Country Link
US (1) US11556450B2 (de)
JP (1) JP2022552803A (de)
CN (1) CN114424214A (de)
DE (1) DE112020004067T5 (de)
GB (1) GB2604060A (de)
WO (1) WO2021070006A1 (de)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20210158147A1 (en) * 2019-11-26 2021-05-27 International Business Machines Corporation Training approach determination for large deep learning models
US20220043769A1 (en) * 2020-07-21 2022-02-10 Fathom Radiant, PBC Toroidal Systolic Array Processor for General Matrix Multiplication (GEMM) With Local Dot Product Output Accumulation
US20220121928A1 (en) * 2020-10-19 2022-04-21 Google Llc Enhanced reconfigurable interconnect network
KR20220056621A (ko) * 2020-10-28 2022-05-06 삼성전자주식회사 매니코어 시스템을 위한 뉴럴 네트워크 모델 처리의 병렬화 방법 및 장치
CN114035936B (zh) * 2021-10-15 2024-05-17 北京潞晨科技有限公司 一种基于人工智能的多维并行处理方法、系统、设备和可读存储介质

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7747070B2 (en) 2005-08-31 2010-06-29 Microsoft Corporation Training convolutional neural networks on graphics processing units
US9508347B2 (en) 2013-07-10 2016-11-29 Tencent Technology (Shenzhen) Company Limited Method and device for parallel processing in model training
CN106462800A (zh) 2014-04-11 2017-02-22 谷歌公司 使卷积神经网络的训练并行化
US9805303B2 (en) * 2015-05-21 2017-10-31 Google Inc. Rotating data for neural network computations
US10540588B2 (en) * 2015-06-29 2020-01-21 Microsoft Technology Licensing, Llc Deep neural network processing on hardware accelerators with stacked memory
JP6784162B2 (ja) * 2016-12-13 2020-11-11 富士通株式会社 情報処理装置、プログラム及び情報処理方法
EP3367310A1 (de) 2017-02-28 2018-08-29 Fujitsu Limited Verfahren und vorrichtung zur parallelisierung von schichten von tiefen neuronalen netzwerken auf parallelen computersystemen
US11094029B2 (en) * 2017-04-10 2021-08-17 Intel Corporation Abstraction layers for scalable distributed machine learning
US11023803B2 (en) * 2017-04-10 2021-06-01 Intel Corporation Abstraction library to enable scalable distributed machine learning
US11556772B2 (en) * 2017-04-28 2023-01-17 Intel Corporation Incremental precision networks using residual inference and fine-grain quantization
US11373266B2 (en) * 2017-05-05 2022-06-28 Intel Corporation Data parallelism and halo exchange for distributed machine learning
US11188820B2 (en) 2017-09-08 2021-11-30 International Business Machines Corporation Deep neural network performance analysis on shared memory accelerator systems
US20190164035A1 (en) * 2017-11-29 2019-05-30 Electronics And Telecommunications Research Institute Device for reorganizable neural network computing
CN109919308B (zh) * 2017-12-13 2022-11-11 腾讯科技(深圳)有限公司 一种神经网络模型部署方法、预测方法及相关设备
US11270201B2 (en) * 2017-12-29 2022-03-08 Intel Corporation Communication optimizations for distributed machine learning
WO2019165946A1 (zh) 2018-02-27 2019-09-06 上海寒武纪信息科技有限公司 集成电路芯片装置、板卡及相关产品
CN108647773B (zh) 2018-04-20 2021-07-23 复旦大学 一种可重构卷积神经网络的硬件互连系统
US20200019836A1 (en) * 2018-07-12 2020-01-16 International Business Machines Corporation Hierarchical parallelism in a network of distributed neural network cores
EP3654247A1 (de) * 2018-11-15 2020-05-20 IMEC vzw Faltungsmotor für neuronale netzwerke
CN110163338B (zh) * 2019-01-31 2024-02-02 腾讯科技(深圳)有限公司 具有运算阵列的芯片运算方法、装置、终端及芯片

Also Published As

Publication number Publication date
US11556450B2 (en) 2023-01-17
JP2022552803A (ja) 2022-12-20
GB202206096D0 (en) 2022-06-08
US20210110247A1 (en) 2021-04-15
WO2021070006A1 (en) 2021-04-15
GB2604060A (en) 2022-08-24
CN114424214A (zh) 2022-04-29

Similar Documents

Publication Publication Date Title
DE112020004067T5 (de) Hybride daten-modell-parallelität für effizientes deep learning
DE112017000855B4 (de) Energiesparender zeitlich gemultiplexter neurosynaptischer Kern zum Implementieren neuronaler Netze
DE112011101633B4 (de) Virtualisierung und dynamische Ressourcenzuweisung berücksichtigendes Neuordnen von Speicherebenen
DE112018006189T5 (de) Robuste gradienten-gewichtskomprimierungsschemata für deep-learning-anwendungen
DE112019004076T5 (de) Dezentralisiertes verteiltes deep learning
DE102019103340A1 (de) Simultanes rechen- und grafik-scheduling
DE112017003691T5 (de) Zuteilung und Pooling von Beschleunigerressourcen
DE112019002981T5 (de) Parallelberechnungsarchitektur mit rekonfigurierbarer kernebenen- und vektorebenen-parallelität
DE102016125131A1 (de) Effiziente Erzeugung stochastischer Spike-Muster in kernbasierten neuromorphen Systemen
DE112019003529T5 (de) Datendarstellung für dynamische Genauigkeit in Kernen neuronaler Netze
DE112020005323T5 (de) Elastische ausführung von machine-learning-arbeitslasten unter verwendung einer anwendungsbasierten profilierung
DE112019000421B4 (de) Arbeitslastverwaltung mit datenzugriffserkennung in einem datenverarbeitungscluster
DE112021003908T5 (de) Föderales maschinenlernen durch verwenden von ortsabhängigem hashing
DE112007001135T5 (de) Gemeinschaftliche Nutzung von Daten durch Partitionen in einem partitionierbaren System
DE112013000904T5 (de) Durchführen von Aktualisierungen von Quellcode, der auf einer Vielzahl von Rechenknoten ausgeführt wird
DE102010044529A1 (de) Autonome Subsystem-Architektur
DE112020001774T5 (de) Datensatzabhängiges niedrigrang-zerlegen von neuronalen netzwerken
DE112021002820T5 (de) Dynamische automatisierung einer auswahl von pipeline-artefakten
DE112021001408T5 (de) Verwendung kohärent verbundener schnittstellen in einem netzwerkstapelrahmen
DE112020006449T5 (de) Verteilen von arbeitslasten bei berechnungen auf der grundlage einer berechneten berechnungsschwerkraft innerhalb unterschiedlicher datenverarbeitungsparadigmen
DE102021107586A1 (de) Spekulatives training unter verwendung der aktualisierung partieller gradienten
DE112013000599T5 (de) Konfigurieren von Rechenknoten in einem parallelen Computer unter Verwendung eines entfernt angeordneten direkten Speicherzugriffs
DE102022103358A1 (de) Training für maschinelles lernen im logarithmischen zahlensystem
DE112018004415B4 (de) Optimierung von cloud-ressourcen bei operationen in mehrstufigem speicher auf richtliniengrundlage
DE112017002931T5 (de) Synaptischer Supercomputer mit skalierbarem Fluss für neuronale Netzwerke mit äußerstem Durchsatz

Legal Events

Date Code Title Description
R012 Request for examination validly filed