DE112018000272T5 - Resistive Verarbeitungseinheit mit hysteretischen Aktualisierungen zum Trainieren neuronaler Netze - Google Patents

Resistive Verarbeitungseinheit mit hysteretischen Aktualisierungen zum Trainieren neuronaler Netze Download PDF

Info

Publication number
DE112018000272T5
DE112018000272T5 DE112018000272.1T DE112018000272T DE112018000272T5 DE 112018000272 T5 DE112018000272 T5 DE 112018000272T5 DE 112018000272 T DE112018000272 T DE 112018000272T DE 112018000272 T5 DE112018000272 T5 DE 112018000272T5
Authority
DE
Germany
Prior art keywords
rpu
rpus
conductance
hysteresis
pulses
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.)
Ceased
Application number
DE112018000272.1T
Other languages
English (en)
Inventor
Tayfun Gokmen
Rudolf Maria Tromp
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 DE112018000272T5 publication Critical patent/DE112018000272T5/de
Ceased 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/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
    • G06N3/065Analogue 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
    • G06N3/084Backpropagation, e.g. using gradient descent

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • Computing Systems (AREA)
  • Software Systems (AREA)
  • Evolutionary Computation (AREA)
  • General Health & Medical Sciences (AREA)
  • Molecular Biology (AREA)
  • Computational Linguistics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Data Mining & Analysis (AREA)
  • Artificial Intelligence (AREA)
  • Neurology (AREA)
  • Complex Calculations (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Semiconductor Memories (AREA)
  • Feedback Control In General (AREA)
  • Image Analysis (AREA)

Abstract

Eine Technik bezieht sich auf eine Anordnung von resistiven Verarbeitungseinheiten (RPUs). Ein Satz von leitfähigen Spaltendrähten ist so konfiguriert, dass er Kreuzungspunkte an Schnittpunkten zwischen dem Satz von leitfähigen Zeilendrähten und dem Satz von leitfähigen Spaltendrähten bildet. RPUs mit zwei Anschlüssen sind so hysteretisch, dass die RPUs mit zwei Anschlüssen jeweils einen durch Hysterese definierten Leitwertzustand aufweisen, wobei sich eine RPU mit zwei Anschlüssen der RPUs mit zwei Anschlüssen an jedem der Mehrzahl von Kreuzungspunkten befindet.

Description

  • ERKLÄRUNG DES ERFINDERS ODER MITERFINDERS ZU FRÜHEREN OFFENBARUNGEN
  • Die folgende Offenbarung wird unter der Nummer 35 U.S.C. 102(b)(1)(A) eingereicht:
  • OFFENBARUNG: „Acceleration of Deep Neural Network Training with Resistive Cross-Point Devices: Design Considerations“ von Tayfun Gokmen und Yurii Vlasov, veröffentlicht am 21. Juli 2016 in Front. Neurosci.10:333, Seiten 1 bis 13, die hierin durch Bezugnahme aufgenommen wird.
  • HINTERGRUND
  • Die vorliegende Erfindung bezieht sich allgemein auf Datenverarbeitungssysteme und insbesondere auf Einheiten einer resistiven Verarbeitungseinheit (resistive processing unit, RPU) mit hysteretischen Aktualisierungen zum Trainieren neuronaler Netze.
  • „Maschinelles Lernen“ wird verwendet, um eine Grundfunktion von elektronischen Systemen, die von Daten lernen, umfassend zu beschreiben. Beim maschinellen Lernen und in der Kognitionswissenschaft bilden künstliche neuronale Netze (KNN) oder tiefe neuronale Netze (deep neural networks, DNNs) eine Familie von statistischen Lernmodellen, die sich an den biologischen neuronalen Netzen von Tieren und insbesondere am Gehirn orientieren. KNN können verwendet werden, um Systeme und Funktionen, die von einer großen Anzahl von Eingaben abhängen und im Allgemeinen unbekannt sind, zu schätzen oder sich diesen anzunähern. KNN werden von Kreuzschienen-Anordnungen (crossbar arrays) von RPUs mit zwei Anschlüssen gebildet. Bei Kreuzschienen-Anordnungen handelt es sich um kostengünstige Schaltungsarchitekturen mit hoher Dichte, die in einer Vielfalt von elektronischen Schaltungen und Einheiten zum Einsatz kommen, unter anderem in KNN-Architekturen, neuromorphen Mikrochips und nichtflüchtigen Speichern mit ultrahoher Dichte. Eine grundlegende Konfiguration einer Kreuzschienen-Anordnung beinhaltet einen Satz von leitfähigen Zeilendrähten und einen Satz von leitfähigen Spaltendrähten, die so gebildet sind, dass sie den Satz von leitfähigen Zeilendrähten kreuzen. Die Schnittpunkte zwischen den beiden Sätzen von Drähten werden durch sogenannte Kreuzungspunkt-Einheiten getrennt, die aus Dünnschichtmaterial gebildet werden können.
  • KURZDARSTELLUNG
  • Gemäß einer oder mehreren Ausführungsformen wird eine Anordnung von resistiven Verarbeitungseinheiten (RPUs) bereitgestellt. Die RPU-Anordnung beinhaltet einen Satz von leitfähigen Zeilendrähten und einen Satz von leitfähigen Spaltendrähten, die so konfiguriert sind, dass sie eine Mehrzahl von Kreuzungspunkten an Schnittpunkten zwischen dem Satz von leitfähigen Zeilendrähten und dem Satz von leitfähigen Spaltendrähten bilden. Eine Mehrzahl von RPUs mit zwei Anschlüssen ist so hysteretisch, dass die Mehrzahl von RPUs mit zwei Anschlüssen jeweils einen durch Hysterese definierten Leitwertzustand aufweist. Eine RPU mit zwei Anschlüssen der Mehrzahl von RPUs mit zwei Anschlüssen befindet sich an jedem der Mehrzahl von Kreuzungspunkten.
  • Gemäß einer oder mehreren Ausführungsformen wird ein Verfahren zum Bilden einer Anordnung von resistiven Verarbeitungseinheiten (RPUs) bereitgestellt. Das Verfahren stellt einen Satz von leitfähigen Zeilendrähten und einen Satz von leitfähigen Spaltendrähten bereit, die so konfiguriert sind, dass sie eine Mehrzahl von Kreuzungspunkten an Schnittpunkten zwischen dem Satz von leitfähigen Zeilendrähten und dem Satz von leitfähigen Spaltendrähten bilden. Das Verfahren beinhaltet ein Bereitstellen einer Mehrzahl von RPUs mit zwei Anschlüssen, die so hysteretisch ist, dass die Mehrzahl von RPUs mit zwei Anschlüssen jeweils einen durch Hysterese definierten Leitwertzustand aufweist. Eine RPU mit zwei Anschlüssen der Mehrzahl von RPUs mit zwei Anschlüssen befindet sich an jedem der Mehrzahl von Kreuzungspunkten.
  • Gemäß einer oder mehreren Ausführungsformen wird ein Verfahren für eine Hysterese-Operation bereitgestellt. Das Verfahren beinhaltet, dass Aktualisierungsimpulse von mindestens einer hysteretischen resistiven Verarbeitungseinheit (RPU) empfangen werden und dass der Leitwertzustand der mindestens einen hysteretischen RPU als Reaktion auf die Aktualisierungsimpulse geändert wird. Die Änderung des Leitwertzustands weist eine Verzögerung für eine zuvor festgelegte Anzahl der Aktualisierungsimpulse auf.
  • Figurenliste
  • Im Folgenden werden Ausführungsformen der Erfindung lediglich als Beispiel mit Bezug auf die beigefügten Zeichnungen beschrieben, in denen:
    • 1A eine schematische Darstellung der ursprünglichen Gewichtungsaktualisierungsregel von Gleichung (1) ist, die an jedem Kreuzungspunkt ausgeführt wird.
    • 1B eine schematische Darstellung einer stochastischen Aktualisierungsregel von Gleichung (2) ist, die an jedem Kreuzungspunkt gemäß einer oder mehreren Ausführungsformen eine einfache „UND“-Operation verwendet.
    • 1C ein Impulsschema zeigt, dass die Umsetzung der stochastischen Aktualisierungsregel durch RPU-Einheiten für Leitwertänderungen nach oben gemäß einer oder mehreren Ausführungsformen ermöglicht.
    • 1D ein Impulsschema zeigt, dass die Umsetzung der stochastischen Aktualisierungsregel durch RPU-Einheiten für Leitwertänderungen nach unten gemäß einer oder mehreren Ausführungsformen ermöglicht.
    • 2A ein Schaubild des Testfehlers für Gleichung (2) gemäß einer oder mehreren Ausführungsformen ist.
    • 2B ein Schaubild des Testfehlers für Gleichung (2) gemäß einer oder mehreren Ausführungsformen ist.
    • 2C verschiedene nichtlineare Reaktionen von RPU-Einheiten gemäß einer oder mehreren Ausführungsformen veranschaulicht.
    • 3A ein Schaubild des Testfehlers gemäß einer oder mehreren Ausführungsformen ist.
    • 3B ein Schaubild des Testfehlers gemäß einer oder mehreren Ausführungsformen ist.
    • 3C ein Schaubild des Testfehlers gemäß einer oder mehreren Ausführungsformen ist.
    • 3D ein Schaubild des Testfehlers gemäß einer oder mehreren Ausführungsformen ist.
    • 3E ein Schaubild des Testfehlers gemäß einer oder mehreren Ausführungsformen ist.
    • 3F ein Schaubild des Testfehlers gemäß einer oder mehreren Ausführungsformen ist.
    • 3G ein Schaubild des Testfehlers gemäß einer oder mehreren Ausführungsformen ist.
    • 3H ein Schaubild des Testfehlers gemäß einer oder mehreren Ausführungsformen ist.
    • 3I ein Schaubild des Testfehlers gemäß einer oder mehreren Ausführungsformen ist.
    • 4A eine Radardarstellung der Stresstests der 3C bis 3I gemäß einer oder mehreren Ausführungsformen ist.
    • 4B die Trainingsergebnisse veranschaulicht, wenn Auswirkungen von mehr als einem Parameter gemäß einer oder mehreren Ausführungsformen zusammengefasst werden.
    • 5A eine schematische Darstellung der Funktionsweise einer einzelnen Spalte (oder Zeile) während eines Vorwärtszyklus (oder Rückwärtszyklus) gemäß einer oder mehreren Ausführungsformen ist.
    • 5B ein Schaubild des Testfehlers für das Netz von Modell 3 in 4B gemäß einer oder mehreren Ausführungsformen ist.
    • 5C eine schematische Darstellung der Architektur für einen RPU-Beschleunigerchip gemäß einer oder mehreren Ausführungsformen ist.
    • 5D ein Schaubild von annehmbaren Rauschpegeln für verschiedene Ein-Aus-Verhältnisse in den RPU-Einheiten gemäß einer oder mehreren Ausführungsformen ist.
    • 6 eine Tabelle mit einer Zusammenfassung des Vergleichs verschiedener RPU-Systementwürfe mit Entwürfen nach dem Stand der Technik gemäß einer oder mehreren Ausführungsformen ist.
    • 7 eine Tabelle mit einer Zusammenfassung von Spezifikationen der RPU-Einheit gemäß einer oder mehreren Ausführungsformen ist.
    • 8 Leitwertänderungen für ungleichgewichtige RPU-Einheiten mit Hysterese gegenüber ungleichgewichtigen RPU-Einheiten ohne Hysterese gemäß einer oder mehreren Ausführungsformen darstellt.
    • 9 ein Hysterese-Modell mit dem Verhältnis zwischen Hysterese-Betrag und Anzahl der Aktualisierungsimpulse gemäß einer oder mehreren Ausführungsformen darstellt.
    • 10A ein Schaubild eines Testfehlers ist, das die Trainingsergebnisse mit verschiedenen Hysterese-Graden gemäß einer oder mehreren Ausführungsformen veranschaulicht.
    • 10B ein Schaubild eines Testfehlers ist, das die Trainingsergebnisse mit verschiedenen Hysterese-Graden gemäß einer oder mehreren Ausführungsformen veranschaulicht.
    • 11 ein Schaubild eines Testfehlers ist, das die Anzahl der Hysterese-Impulse gemäß einer oder mehreren Ausführungsformen veranschaulicht.
    • 12 ein Schaubild ist, das veranschaulicht, dass die Hysterese den Ungleichgewichtsfaktor gemäß einer oder mehreren Ausführungsformen wieder normalisiert.
    • 13 ein Ablaufplan eines Verfahrens zum Bilden einer Anordnung von resistiven Verarbeitungseinheiten gemäß einer oder mehrerer Einheiten ist.
    • 14 ein Ablaufplan eines Verfahrens für eine Hysterese-Operation gemäß einer oder mehreren Ausführungsformen ist.
    • 15 eine beispielhafte RPU-Anordnung gemäß einer oder mehreren Ausführungsformen zeigt.
  • AUSFÜHRLICHE BESCHREIBUNG
  • KNN oder tiefe neuronale Netze (DNNs) werden oft als sogenannte „neuromorphe“ Systeme von miteinander verbundenen Prozessorelementen ausgeführt, die als simulierte „Neuronen“ fungieren und „Nachrichten“ in Form von elektronischen Signalen untereinander austauschen. Ähnlich wie die sogenannte „Plastizität“ von synaptischen Neurotransmitterverbindungen, die Nachrichten zwischen biologischen Neuronen übertragen, werden die Verbindungen in KNN, die elektronische Nachrichten zwischen simulierten Neuronen übertragen, mit numerischen Gewichtungen bereitgestellt, die der Stärke oder Schwäche einer bestimmten Verbindung entsprechen. Die Gewichtungen können aufgrund von Erfahrung angepasst und eingestellt werden, wodurch KNN anpassbar an Eingaben und lernfähig sind. So wird beispielsweise ein KNN zur Handschrifterkennung durch einen Satz von Eingangsneuronen definiert, die durch die Pixel eines Eingangsbildes aktiviert werden können. Nachdem sie mithilfe einer vom Netzwerkentwickler festgelegten Funktion gewichtet und umgewandelt wurden, werden die Aktivierungen dieser Eingangsneuronen dann an andere nachgelagerte Neuronen weitergegeben, die oft als „verborgene“ Neuronen bezeichnet werden. Dieser Prozess wird solange wiederholt, bis ein Ausgangsneuron aktiviert wird. Das aktivierte Ausgangsneuron bestimmt, welches Zeichen gelesen wurde.
  • Bei Kreuzschienen-Anordnungen, auch als Kreuzungspunkt-Anordnungen oder Kreuzdraht-Anordnungen bezeichnet, handelt es sich um kostengünstige Schaltungsarchitekturen mit hoher Dichte, die in einer Vielfalt von elektronischen Schaltungen und Einheiten zum Einsatz kommen, unter anderem in KNN-Architekturen, neuromorphen Mikrochips und nichtflüchtigen Speichern mit ultrahoher Dichte. Eine grundlegende Konfiguration einer Kreuzschienen-Anordnung beinhaltet einen Satz von leitfähigen Zeilendrähten und einen Satz von leitfähigen Spaltendrähten, die so gebildet sind, dass sie den Satz von leitfähigen Zeilendrähten kreuzen. Die Schnittpunkte zwischen den beiden Sätzen von Drähten werden durch sogenannte Kreuzungspunkt-Einheiten getrennt, die aus Dünnschichtmaterial gebildet werden können.
  • Kreuzungspunkt-Einheiten fungieren in der Tat als gewichtete Verbindungen des KNN zwischen Neuronen. Nanoskalige Einheiten mit zwei Anschlüssen wie z.B. Memristoren mit „idealen“ Schalteigenschaften im Leitwertzustand werden häufig als Kreuzungspunkt-Einheiten verwendet, um eine synaptische Plastizität mit hohem energetischen Wirkungsgrad nachzubilden. Der Leitwertzustand (z.B. Kehrwert des Widerstands) des idealen Memristormaterials kann durch Steuern der Spannungen zwischen den einzelnen Drähten der Zeilen- und Spaltendrähte verändert werden. Digitale Daten können durch Ändern des Leitwertzustandes des Memristormaterials am Schnittpunkt gespeichert werden, um einen hohen Leitwertzustand oder einen niedrigen Leitwertzustand zu erreichen. Das Memristormaterial kann auch so programmiert werden, dass zwei oder mehr unterschiedliche Leitwertzustände aufrechterhalten werden, indem der Leitwertzustand des Materials selektiv eingestellt wird. Der Leitwertzustand des Memristormaterials kann durch Anlegen einer Spannung über dem Material und Messen des durch die Zielkreuzungspunkt-Einheit fließenden Stroms gelesen werden.
  • Um den Energieverbrauch zu begrenzen, werden die Kreuzungspunkt-Einheiten von KNN-Chiparchitekturen oftmals so gestaltet, dass sie Offline-Lerntechniken verwenden, wobei sich die Approximation der Zielfunktion nicht ändert, wenn die anfängliche Trainingsphase abgeschlossen worden ist. Offline-Lernen ermöglicht ein Vereinfachen der Kreuzungspunkt-Einheiten der kreuzschienenartigen KNN-Architekturen, sodass sie sehr wenig Energie verbrauchen.
  • Trotz der Möglichkeit eines geringeren Energieverbrauchs kann es schwierig und ressourcenintensiv sein, ein Offline-Training auszuführen, da es während des Trainings in der Regel erforderlich ist, eine beträchtliche Anzahl von einstellbaren Parametern (z.B. Gewichtungen) im KNN-Modell zu ändern, sodass sie mit den Eingabe-Ausgabe-Paaren für die Trainingsdaten übereinstimmen. Wenn Kreuzungspunkt-Einheiten von KNN-Architekturen vereinfacht werden, um einer Energieeinsparung Priorität einzuräumen, bedeuten Offline-Lerntechniken demzufolge normalerweise, dass die Trainingsgeschwindigkeit und die Trainingswirksamkeit nicht optimal sind.
  • Eine oder mehrere Ausführungsformen der Erfindung stellen eine Anordnung resistiver Einheiten bereit, die für ein Trainieren eines tiefen neuronalen Netzes verwendet werden. Zwar werden Beispiele des Trainierens eines tiefen neuronalen Netzes beschrieben, es sei jedoch darauf hingewiesen, dass Ausführungsformen nicht auf die Art der hierin beschriebenen Beispiele beschränkt sind. Die resistiven Einheiten werden als resistive Verarbeitungseinheiten (RPU), Kreuzungspunkt-Einheiten usw. bezeichnet, und eine oder mehrere Ausführungsformen beschreiben, wie die RPU-Einheit verwendet werden kann, um tiefe neuronale Netze zu trainieren, die aus vollständig verbundenen Schichten, Faltungsschichten usw. bestehen. Ein Durchführen verschiedener DNN-Trainings mit unterschiedlichen Mängeln von RPU-Einheiten kann aus den erforderlichen Spezifikationen der RPU-Einheit entnommen werden. Unter allen Spezifikationen der Einheit weist die Asymmetrie als Reaktion auf Änderungen nach oben und unten die geringste Toleranz auf, beispielsweise nur bis zu 5 oder 6 % Asymmetrie bei einer RPU-Einheit. In einer oder mehreren Ausführungsformen zeigen Experimentatoren, wie man die Toleranz erhöht, indem man Hysterese-Aktualisierungen in RPUs einführt. Hysterese wird gezielt in die RPU-Einheiten integriert, und hysteretische RPU-Einheiten werden für das DNN-Training verwendet, da die Hysterese keine Beeinträchtigung mit sich bringt (obwohl dieser Ansatz kontraintuitiv in Bezug auf RPU-Einheiten nach dem Stand der Technik sein könnte).
  • Die Asymmetrie in der RPU-Einheit führt zu einem Ungleichgewicht bei den Leitwertänderungen der RPU-Einheit nach oben und unten. Ausführungsformen sind so konfiguriert, dass sie das Problem der Asymmetrie in RPU-Einheiten lösen und somit das Ungleichgewicht verbessern. Ausführungsformen führen hysteretische Aktualisierungen der RPU-Einheit ein, sodass die Toleranz gegenüber dem Ungleichgewicht deutlich erhöht werden kann. Insbesondere führen Ausführungsformen ein Training eines neuronalen Netzes mit einer RPU-Einheit durch, die eine Hysterese in ihrem Schaltverhalten aufweist (d.h. das Nach-oben- und Nach-unten-Schaltverhalten im Leitwert als Reaktion auf eine Aktualisierung). Da die Hysterese keine Beeinträchtigung darstellt, kann die hysteretische RPU-Einheit auch dann verwendet werden, wenn sie im Gleichgewicht ist (d.h. ihre Leitwertänderungen nach oben und unten gleichgewichtig sind).
  • Zum weiteren Veranschaulichen, wie RPU-Einheiten mit Hysterese verwendet werden, um die Leitwertänderungen einer RPU-Einheit nach oben und unten zu verbessern, zeigt 8 ein Hysterese-Modell gemäß einer oder mehreren Ausführungsformen. Es wird darauf hingewiesen, dass das Hysterese-Modell in 8 auf alle der hierin beschriebenen RPU-Einheiten angewendet wird (wie beispielsweise in den 1 bis 7 und 9 bis 16). Das Hysterese-Modell ist zwar für RPU-Einheiten vorgesehen, die eine Asymmetrie aufweisen, sodass ein Ungleichgewicht zwischen den Leitwertänderungen nach oben und unten besteht, doch sei darauf hingewiesen, dass das Hysterese-Modell auch auf gleichgewichtige RPU-Einheiten angewendet werden kann (die keine Asymmetrie aufweisen). In 8 zeigt das Schaubild 805 den Leitwert oder genauer die Änderung des Leitwerts im Laufe der Zeit bei einer ungleichgewichtigen RPU-Einheit ohne Hysterese. Schaubild 815 den zeigt den Leitwert (genauer die Änderung des Leitwerts) im Laufe der Zeit bei einer ungleichgewichtigen RPU-Einheit mit Hysterese. Schaubild 810 veranschaulicht die Aktualisierungen (z.B. Aktualisierung des Gewichtungszyklusimpulses durch den Rückwärtspropagierungsalgorithmus), die in die RPU-Einheit ohne Hysterese und in die RPU-Einheit mit Hysterese eingegeben werden.
  • Wie sowohl in den Schaubildern 805 als auch 810 zu sehen ist, führt die Vorzeichenänderung (+ oder -) für den Eingangsaktualisierungsimpuls in Schaubild 805 zu einem Richtungswechsel-Leitwert in den Schaubildern 805 und 810. Ein positives Vorzeichen (+) für den Aktualisierungsimpuls führt zu einer Erhöhung des Leitwerts, was durch eine positive Flanke (d.h. Aufwärtsrichtung) für die Leitwertkurve in beiden Schaubildern 805 und 815 veranschaulicht wird. Ein negatives Vorzeichen (-) für den Aktualisierungsimpuls führt zu einer Verringerung des Leitwerts, was durch eine negative Flanke (d.h. Abwärtsrichtung) für die Leitwertkurve in beiden Schaubildern 805 und 815 veranschaulicht wird. Die im Schaubild 815 dargestellte hysteretische RPU-Einheit weist jedoch eine Verzögerung beim Umschalten von einer Erhöhung des Leitwerts (d.h. positive Flanke) zu einer Verringerung des Leitwerts (negative Flanke) sowie beim Umschalten von einer Verringerung des Leitwerts zu einer Erhöhung des Leitwerts auf. Es wird darauf hingewiesen, dass die Asymmetrie bei RPU-Einheiten schwer zu korrigieren ist. Die Hysterese (die zu einer Schaltverzögerung führt) verbessert jedoch die Toleranz der RPU-Einheit gegenüber dem durch Asymmetrie versursachten Ungleichgewicht.
  • Während eines Trainings eines neuronalen Netzes wird jede RPU-Einheit häufig aktualisiert. Wenn eine Einheit entlang der Richtungen (+) und (-) zufällig aktualisiert wird, werden diese zufälligen Aktualisierungen für eine gleichgewichtige RPU-Einheit aufgehoben und führen nicht zu einer Nettogewichtungsänderung. Bei einer asymmetrischen RPU-Einheit verursachen diese zufälligen Aktualisierungen jedoch eine Abweichungskomponente und neigen dazu, die Gewichtung entlang der Asymmetrierichtung zu bewegen. Diese unerwünschte Abweichungskomponente aufgrund von Asymmetrie wird wie in Ausführungsformen beschrieben durch eine hysteretische Einheit gemildert. Die Hysterese filtert gemäß den Ausführungsformen die stark zufälligen Gewichtungsaktualisierungen nach oben und unten und reduziert so wirksam die Mängel einer Asymmetrie.
  • 9 stellt ein Hysterese-Modell mit dem Verhältnis zwischen Hysterese-Betrag und Anzahl der Aktualisierungsimpulse gemäß einer oder mehreren Ausführungsformen dar. Als Beispiel ist in 9 das Schaubild 815 für die ungleichgewichtige RPU-Einheit mit Hysterese dargestellt. Der Hysterese-Betrag hn wird als flache Flanke oder Nullflanke für den Leitwert angegeben, und die Hysterese tritt bei Änderungen/Umschalten des Leitwerts nach oben und unten auf. Bei dem Hysterese-Betrag hn handelt es sich um die Anzahl von Impulsen, die benötigt wird, um die Richtung zu ändern (d.h., den Leitwert von hoch zu niedrig oder von niedrig zu hoch zu ändern). Der Hysterese-Betrag hn kann eingestellt bzw. entworfen werden. In einer Ausführungsform kann der Hysterese-Betrag hn auf 2 Aktualisierungsimpulse, 10 Aktualisierungsimpulse, 100 Aktualisierungsimpulse usw. eingestellt werden.
  • Darüber hinaus ist der Hysterese-Betrag für Leitwertänderungen von (-) und (+) gleich. Das heißt, das Zeitintervall für die Hysterese ist für jedes Auftreten der Hysterese in der RPU-Einheit gleich. Es wird darauf hingewiesen, dass Δg die Änderung des Leitwerts der RPU als Reaktion auf die an xi und δj angelegten Spannungssequenzen ist. Somit ist Δg die Reaktion der RPU auf einen Spannungsimpuls (z.B. Aktualisierungsimpuls). Verschiedene RPU-Einheiten können infolge positiver (Δg+ min) und negativer (Δg- min) Impulse, zum Beispiel aufgrund von Herstellungsunterschieden, unterschiedliche Änderungen des Leitwerts aufweisen. Des Weiteren gibt es einen Durchschnittswert im Hinblick darauf, wie viel Gewichtungsänderung Δw durch das positive und negative Impulsschema erzielt wird. Asymmetrische RPU-Einheiten in einer RPU-Anordnung mit unterschiedlichen Δw+ und Δw- beeinträchtigen das DNN-Training.
  • Nachfolgend werden weitere Erläuterungen zum Training (wie z.B. DNN-Training) mit resistiven Kreuzungspunkteinheiten (z.B. RPU-Einheiten) bereitgestellt. Zum besseren Verständnis und zur Erklärung werden Unterüberschriften verwendet.
  • DNNs zeigten signifikante Erfolge mit einer Leistung, die über die ausgereiften bisherigen Methoden der Sprach- und Objekterkennung hinausgeht. Ein Training von DNNs ist jedoch eine äußerst rechenintensive Aufgabe, die umfangreiche Rechenressourcen und erhebliche Trainingszeiten erfordert, die ihrer weiteren Anwendung im Wege stehen. So wurde beispielsweise eine relative Verbesserung von 70 % für ein DNN mit 1 Milliarde Verbindungen nachgewiesen, das drei Tage lang in einem Cluster mit 1.000 Maschinen trainiert wurde.
  • Das Training von DNNs beruht im Allgemeinen auf dem Rückwärtspropagierungsalgorithmus, der an sich lokal und parallel ist. Für weitere Einzelheiten zum Rückwärtspropagierungsalgorithmus sei verwiesen auf „Learning representations by back-propagating errors“ in Nature 323, 533 bis 536, von Rumelhart, D. E., Hinton, G. E. und Williams, R. J. (1986), das hierin durch Bezugnahme aufgenommen wird. Verschiedene Hardware-Ansätze zur Beschleunigung des DNN-Trainings, die diese Lokalität und Parallelität nutzen, wurden mit unterschiedlichem Erfolg untersucht, angefangen bei aktuellen Entwicklungen mit GPUs, FPGAs oder speziell entwickelten ASICs. Eine weitere Beschleunigung ist möglich, wenn die Lokalität und Parallelität des Algorithmus vollständig genutzt wird. Für eine vollständig verbundene DNN-Schicht, die N Neuronen auf N Neuronen abbildet, kann eine erhebliche Beschleunigung erreicht werden, indem die Datenbewegung durch lokales Speichern und Verarbeiten der Gewichtungswerte auf demselben Knoten minimiert wird und Knoten zu einer riesigen systolischen N x N-Anordnung verbunden werden, in die das gesamte DNN passen kann. Anstelle einer üblichen Zeitkomplexität von O(N2) kann das Problem daher auf eine konstante Zeit O(1) unabhängig von der Größe der Anordnung verringert werden. Die Größe, die ein zu lösendes Problem darstellt, ist jedoch auf die Anzahl der Knoten in der Anordnung beschränkt, was eine Vergrößerung auf Milliarden selbst mit den fortschrittlichsten CMOS-Technologien schwierig macht. Neue nanoelektronische Konzepte für Einheiten, die auf nichtflüchtigen Speichertechnologien (NVM-Technologien) beruhen wie Phasenwechselspeicher (PCM) und resistive Direktzugriffsspeicher (RRAM) wurden kürzlich untersucht, um neuronale Netze mit einer Lernregel umzusetzen, die sich an der von der Impulszeit abhängigen Plastizität (spike-timing dependent plasticity, STDP) orientiert, wie sie in biologischen Systemen beobachtet wird. Erst kürzlich wurde ihre Umsetzung zur Beschleunigung des DNN-Trainings mithilfe eines Rückwärtspropagierungsalgorithmus mit berichteten Beschleunigungsfaktoren von 27X bis 900X und sogar 2140X sowie einer signifikanten Reduzierung von Leistung und Fläche in Betracht gezogen. Diese Bottom-up-Ansätze zur Verwendung zuvor entwickelter Speichertechnologien sehen insgesamt sehr vielversprechend aus. Die geschätzten Beschleunigungsfaktoren werden jedoch durch Spezifikationen der Einheiten eingeschränkt, die charakteristisch für ihre Anwendung als NVM-Zellen sind. Eigenschaften von Einheiten, die normalerweise als vorteilhaft oder irrelevant für Speicheranwendungen angesehen werden, wie z.B. ein hohes Ein-Aus-Verhältnis, digitales bitweises Speichern und asymmetrische Einstell- und Rücksetzoperationen, schränken die Beschleunigung des DNN-Trainings ein. Diese nichtidealen Eigenschaften von Einheiten können potenziell durch einen geeigneten Entwurf von peripheren Schaltungen und eines Gesamtsystems ausgeglichen werden, jedoch nur teilweise und zulasten einer deutlich erhöhten Betriebszeit.
  • Im Gegensatz dazu stellen Experimentatoren einen Top-down-Ansatz bereit, bei dem die höchste Beschleunigung des DNN-Trainings durch den Entwurf eines Systems und CMOS-Schaltungen erreicht wird, der spezifische Anforderungen an resistive Einheiten gemäß einer oder mehreren Ausführungsformen stellt. Die Experimentatoren stellen ein Konzept für Einheiten einer resistiven Verarbeitungseinheit (RPU) bereit, die gleichzeitig Gewichtungen speichern und verarbeiten können und mit CMOS-Fertigungstechnologien auf Milliarden von Knoten vergrößert werden können. Im Gegensatz zu anderen Ansätzen nach dem Stand der Technik besteht die Besonderheit einer RPU-Einheit, die sich aus dieser Analyse ergeben hat, letztlich darin, dass eine einzelne Einheit in der Lage ist, alle vom Algorithmus erforderlichen Operationen ohne zusätzliche Schaltungskomponenten durchzuführen. Schätzungen deuten darauf hin, dass Beschleunigungsfaktoren von nahezu 30.000X auf einem einzigen Chip mit realistischen Leistungs- und Flächenbeschränkungen erreichbar sind.
  • Definition des Konzepts einer RPU-Einheit
  • Der Rückwärtspropagierungsalgorithmus besteht aus drei Zyklen. Bei den drei Zyklen handelt es sich um einen Vorwärtszyklus, einen Rückwärtszyklus und eine Gewichtungsaktualisierung, die mehrfach wiederholt werden, bis ein Konvergenzkriterium erfüllt ist. Der Vorwärtszyklus und der Rückwärtszyklus beinhalten hauptsächlich ein Berechnen einer Vektor-Matrix-Multiplikation in Vorwärts- und Rückwärtsrichtung. Dieser Vorgang kann in einer 2D-Kreuzschienen-Anordnung von resistiven Einheiten mit zwei Anschlüssen durchgeführt werden. Im Vorwärtszyklus bilden gespeicherte Leitwerte in der Kreuzschienen-Anordnung eine Matrix, wobei der Eingangsvektor als Spannungsimpulse durch jede der Eingangszeilen übertragen wird. In einem Rückwärtszyklus, wenn Spannungsimpulse von Spalten als Eingabe zugeführt werden, wird das Vektor-Matrix-Produkt auf der Transponierten einer Matrix berechnet. Mit diesen Operationen wird die erforderliche Zeitkomplexität O(1) erreicht, jedoch nur für zwei von drei Zyklen des Trainingsalgorithmus.
  • Im Gegensatz zum Vorwärtszyklus und Rückwärtszyklus kann die Umsetzung der Gewichtungsaktualisierung in einer 2D-Kreuzschienen-Anordnung von resistiven Einheiten, die lokal und alle parallel sind, unabhängig von der Größe der Anordnung schwierig erscheinen. Die Gewichtungsaktualisierung beinhaltet ein Berechnen eines Vektor-Vektor-Kreuzprodukts, das aus einer Multiplikationsoperation und einer inkrementellen Gewichtungsaktualisierung besteht, die wie in 1A veranschaulicht lokal an jedem Schnittpunkt durchzuführen ist. Die entsprechende Aktualisierungsregel lautet normalerweise wie folgt: w i j w i j + η x i δ j
    Figure DE112018000272T5_0001
    wobei wij den Gewichtungswert für die i-te Zeile und die j-te Spalte (aus Gründen der Einfachheit wird der Schichtindex nicht gezeigt) darstellt, xi die Aktivität am Eingangsneuron ist, δj der vom Ausgangsneuron berechnete Fehler ist und η die allgemeine Lernrate ist. Die i-te Zeile und die j-te Spalte kreuzen sich an der RPU-Einheit.
  • Um eine lokale und parallele Aktualisierung in einer Anordnung von Einheiten mit zwei Anschlüssen umzusetzen, die sowohl Gewichtungsspeicherung als auch Verarbeitung (RPU) durchführen können, beschlossen die Experimentatoren zunächst, die Multiplikationsoperation selbst durch die Verwendung stochastischer Berechnungstechniken deutlich zu vereinfachen. Es hat sich gezeigt, dass die Multiplikationsoperation mithilfe zweier stochastischer Ströme auf eine einfache UND-Verknüpfung reduziert werden kann. 1B veranschaulicht zum Beispiel die stochastische Aktualisierungsregel, bei der Zahlen, die aus Neuronen codiert werden (xi und δj ), mithilfe von stochastischen Übersetzern (stochastic translators, STR) in stochastische Bitströme umgewandelt werden. Anschließend werden diese an die Kreuzschienen-Anordnung gesendet, wo jede RPU-Einheit ihren Leitwert (gij ) leicht ändert, wenn Bits von xi und δj übereinstimmen. Bei diesem Schema können die Experimentatoren die Aktualisierungsregel wie folgt schreiben. w i j w i j + Δ w m i n n = 1 B L A i n Λ B j n
    Figure DE112018000272T5_0002
    wobei BL die Länge des stochastischen Bitstroms am Ausgang von STRs ist, der während des Aktualisierungszyklus verwendet wird, Δ wmin die Änderung des Gewichtungswerts aufgrund eines einzelnen Übereinstimmungsereignisses ist, A i n
    Figure DE112018000272T5_0003
    und B j n
    Figure DE112018000272T5_0004
    Zufallsvariablen sind, die durch einen Bernoulli-Prozess gekennzeichnet sind, und das hochgestellte n die Bitposition in der Testsequenz darstellt. Die Wahrscheinlichkeiten, dass A i n
    Figure DE112018000272T5_0005
    und B j n
    Figure DE112018000272T5_0006
    gleich eins sind, werden von Cxi bzw. j angegeben, wobei C ein Verstärkungsfaktor im STR ist.
  • Ein Impulsschema, das die stochastische Aktualisierungsregel von Gleichung (2) ermöglicht, ist in 1C dargestellt. Die Spannungsimpulse mit positiven und negativen Amplituden werden von den entsprechenden STRs in den Zeilen (Ai ) bzw. Spalten (Bj ) gesendet. Im Gegensatz zu einer Gleitkommazahl, die in einem binären Strom codiert ist, wird die entsprechende Zahl, die in einen stochastischen Strom übersetzt wird, durch eine ganze Population solcher Impulse dargestellt. Damit eine RPU-Einheit mit zwei Anschlüssen Übereinstimmungsereignisse an einem Kreuzungspunkt unterscheiden kann, sollte sich ihr Leitwert nicht wesentlich ändern, wenn eine einzelne Impulsamplitude die Hälfte der Schaltspannung (VS ) der Einheit beträgt. Wenn jedoch zwei Impulse übereinstimmen und die RPU-Einheit die vollständige Spannung (VS ) sieht, sollte sich der Leitwert um einen Betrag ungleich Null Δgmin ändern. Der Parameter Δgmin ist proportional zu Δwmin durch den Verstärkungsfaktor, der durch periphere Schaltungen definiert ist. Um Leitwertänderungen nach oben und unten zu ermöglichen, kann die Polarität der Impulse wie in 1D dargestellt während des Aktualisierungszyklus umgeschaltet werden. Das Vorzeichen der Multiplikation wird von der Polarität der Impulse bestimmt, die während des Aktualisierungszyklus verwendet werden. Daher kann für die Fälle Xi > 0 die Multiplikation mit Vorzeichen durchgeführt werden, indem die Zeilen, die xi > 0 entsprechen, sowohl während der Zyklen nach oben als auch der Zyklen nach unten gefüllt werden, während die Spalten selektiv entweder beim Zyklus nach oben oder unten gefüllt werden, je nach dem Vorzeichen von δj . Eine ähnliche Operation kann wiederholt werden, wenn negative Werte (xi < 0) für einige der Zeilen bestehen. Das vorgeschlagene Impulsschema ermöglicht es allen RPU-Einheiten in einer Anordnung, parallel zu arbeiten und die Multiplikationsoperation lokal durchzuführen, indem man sich einfach auf die Statistik der Übereinstimmungsereignisse stützt und so die Zeitkomplexität O(1) für den Gewichtungsaktualisierungszyklus des Trainingsalgorithmus erreicht.
  • Es sei darauf hingewiesen, dass 1A eine schematische Darstellung der ursprünglichen Gewichtungsaktualisierungsregel von Gleichung (1) ist, die an jedem Kreuzungspunkt ausgeführt wird, und 1B eine schematische Darstellung einer stochastischen Aktualisierungsregel von Gleichung (2) ist, die an jedem Kreuzungspunkt eine einfache „UND“-Operation verwendet. Das Impulsschema, das die Umsetzung der stochastischen Aktualisierungsregel durch RPU-Einheiten für Leitwertänderungen nach oben ermöglicht, ist in 1C und für Leitwertänderungen nach unten in 1D dargestellt.
  • Netztraining mit RPU-Anordnung mithilfe einer stochastischen Aktualisierungsregel
  • Um die Stichhaltigkeit dieses Ansatzes zu prüfen, verglichen die Experimentatoren die Klassifizierungsgenauigkeiten, die mit einem tiefen neuronalen Netz erreicht wurden, das aus vollständig verbundenen Schichten mit 784, 256, 128 bzw. 10 Neuronen besteht. Dieses Netz wird mit einem Standard-Trainingsdatensatz des MNIST (Mixed National Institute of Standards and Technology) mit 60.000 Beispielen von Bildern von handgeschriebenen Ziffern mithilfe der Kreuz-Entropie-Zielfunktion und des Rückwärtspropagierungsalgorithmus trainiert. Rohpixelwerte jedes 28 × 28 Pixel großen Bildes werden als Eingaben genommen, während logistische Sigmoid- und Softmax-Aktivierungsfunktionen in verborgenen Schichten bzw. Ausgabeschichten verwendet werden. Als Temperaturparameter für beide Aktivierungsfunktionen wird eins angenommen.
  • Die 2A, 2B und 2C (allgemein als 2 bezeichnet) beziehen sich auf den Testfehler des DNN mit dem MNIST-Datensatz. In 2B entsprechen die als 1, 2 und 3 gekennzeichneten Linien dem stochastischen Modell, wobei BL = 10 ist und das Nichtlinearität-Verhältnis k = 0,5, 0,4 bzw. 0,1 beträgt. 2C veranschaulicht verschiedene nichtlineare Reaktionen einer RPU-Einheit mit k = 0, 0,5 und 1.
  • Die 2A und 2B zeigen insbesondere eine Reihe von Klassifizierungsfehlerkurven für den MNIST-Testdatensatz von 10.000 Bildern. Die mit offenen Kreisen in 2A gekennzeichnete Kurve entspricht einem Grundmodell, nach dem das Netz mithilfe der herkömmlichen Aktualisierungsregel laut Gleichung (1) mit einer Gleitkomma-Multiplikationsoperation trainiert wird, und die mit 1, 2 und 3 gekennzeichneten Linien entsprechen dem stochastischen Modell von Gleichung (2) mit den stochastischen Bitlängen BL = 1, 2 bzw. 10. In den folgenden Experimenten wird hier die Ministapelgröße eins gewählt. Das Training wird für alle 60.000 Bilder im Trainings-Datensatz wiederholt durchgeführt, und 60.000 Bilder bilden eine einzelne Trainingsepoche. Es werden Lernraten von η = 0,01, 0,005 und 0,0025 für die Epochen 0 bis 10, 11 bis 20 und 21 bis 30 verwendet. Das Grundmodell erreicht in 30 Epochen einen Klassifizierungsfehler von 2,0 % bei den Testdaten.
  • Um einen fairen Vergleich zwischen dem Grundmodell und dem stochastischen Modell herzustellen, bei dem das Training die stochastische Aktualisierungsregel von Gleichung (2) verwendet, müssen die Lernraten übereinstimmen. In der allgemeinsten Form kann die durchschnittliche Änderung des Gewichtungswertes für das stochastische Modell wie folgt geschrieben werden: E ( w i j ) = B L Δ w w i n C 2 x i δ j
    Figure DE112018000272T5_0007
  • Daher wird die Lernrate für das stochastische Modell durch drei Parameter BL, Δwmin und C gesteuert, die angepasst werden sollten, damit sie mit dem im Grundmodell verwendeten Lernraten übereinstimmen. Zwar erlaubt es die stochastische Aktualisierungsregel, die Multiplikationsoperation durch eine einfache UND-Operation zu ersetzen, jedoch ist das Ergebnis der Operation nicht mehr genau, sondern wahrscheinlich mit einem Verhältnis von Standardabweichung zu Mittelwert, das mit 1 / B L
    Figure DE112018000272T5_0008
    skaliert. Eine Erhöhung der stochastischen Bitstromlänge BL würde den Fehler verringern, die Aktualisierungszeit jedoch wiederum erhöhen. Um einen annehmbaren Bereich von BL-Werten zu finden, damit das Netz Klassifizierungsfehler ähnlich dem Grundmodell erreichen kann, führten die Experimentatoren ein Training mit verschiedenen BL-Werten durch, wobei sie Δwmin = η/BL und C = 1 einstellten, um die für das Grundmodell verwendeten Lernraten wie vorstehend erläutert in Übereinstimmung zu bringen. Wie in 2A dargestellt, ist eine BL von nur 10 ausreichend, damit das stochastische Modell nicht mehr vom Grundmodell unterschieden werden kann.
  • Darüber hinaus wird für die stochastische Aktualisierungsregel die Änderung des Gewichtungswertes für einen einzelnen Aktualisierungszyklus durch BL x Δwmin begrenzt, und diese Bedingung kann auftreten, wenn die Wahrscheinlichkeiten zum Erzeugen von Impulsen von STRs (Cxi und j ) nahe eins oder größer sind. Die Folge dieser Begrenzung der Gewichtungsaktualisierung wird auch in den Simulationen berücksichtigt und beeinträchtigt die Leistung nicht, wie in 2A für eine BL von nur 10 zu sehen ist.
  • Um zu ermitteln, wie stark die Nichtlinearität im Schaltverhalten der Einheit sein muss, damit sich der Algorithmus Klassifizierungsfehlern annähert, die mit dem Grundmodell vergleichbar sind, wird ein Nichtlinearitätsfaktor wie in 2B dargestellt variiert. Der Nichtlinearitätsfaktor ist definiert als das Verhältnis von zwei Leitwertänderungen bei halber und voller Spannung als k = Δg(VS/2)/Δg(VS ). Wie in 2C gezeigt, entsprechen die Werte von k ≈ 1 einer saturierenden, nichtlinearen Reaktion, wenn k = 0,5 ist, ist die Reaktion linear, wie es in der Regel für einen idealen Memristor gilt, und die Werte von k ≈ 0 entsprechen einer gleichrichtenden, nichtlinearen Reaktion. Wie in 2B gezeigt, nähert sich der Algorithmus bei der linearen Reaktion nicht an. Ein Nichtlinearitätsfaktor k unter 0,1 reicht jedoch aus, um Klassifizierungsfehler zu erreichen, die mit dem Grundmodell vergleichbar sind.
  • Diese Ergebnisse bestätigen, dass die Aktualisierungen im stochastischen Modell zwar wahrscheinlich sind, Klassifizierungsfehler jedoch nicht mehr von denen zu unterscheiden sind, die mit dem Grundmodell erreicht wurden. Für die Umsetzung der stochastischen Aktualisierungsregel in einer Anordnung von analogen RPU-Einheiten mit nichtlinearen Schalteigenschaften werden Lokalität und Parallelität des Algorithmus wirksam genutzt. Dadurch wird die Aktualisierungszeit unabhängig von der Größe der Anordnung und ist ein konstanter Wert proportional zur BL, wodurch die erforderliche Zeitkomplexität O(1) erreicht wird.
  • Abweichung von Spezifikationen der RPU-Einheit
  • Verschiedene Materialien, physikalische Mechanismen und Konzepte für Einheiten wurden im Hinblick auf ihre mögliche Umsetzung als Kreuzschienen-Anordnungen für das Training neuronaler Netze nach dem Stand der Technik analysiert. Diese Technologien wurden ursprünglich für Anwendungen im Speicherbereich entwickelt. Es ist jedoch im Vorfeld nicht klar, ob inhärente Einschränkungen dieser Technologien, wenn sie auf die Umsetzung des vorgeschlagenen RPU-Konzeptes angewendet werden, zu einer signifikanten Beschleunigung führen würden oder im Gegensatz die Leistung einschränken könnten. Beispielsweise können PCM-Einheiten den Leitwert nur während des Trainings erhöhen, was zu einer Netzsaturierung nach einer Reihe von Aktualisierungen führt. Dieses Problem kann durch ein regelmäßiges, serielles Zurücksetzen der Gewichtungen verringert werden, der Nachteil ist jedoch, dass die Trainingszeit verlängert wird, da gegen die Zeitkomplexität O(1) verstoßen wird.
  • Gemäß einer oder mehreren Ausführungsformen führten die Experimentatoren eine Reihe von Trainings durch, die in den 3A, 3B, 3C, 3D, 3E, 3F, 3G, 3H und 3I (allgemein als 3 bezeichnet) zusammengefasst sind, um die Spezifikationen der Einheit festzulegen, die zum Erzielen der größten Beschleunigung erforderlich sind, wenn die Zeitkomplexität O(1) erreicht ist. In 3 entspricht jede Figur einem spezifischen „Stresstest“, bei dem ein einzelner Parameter abgetastet (oder variiert) wird, während alle anderen feststehend sind, sodass die Experimentatoren die annehmbaren Parameter der RPU-Einheit untersuchen können, die der Algorithmus ohne signifikante Fehlerstrafe tolerieren kann. Dazu gehören Schwankungen der Schaltmerkmale von RPU-Einheiten wie z.B. eine inkrementelle Leitwertänderung durch ein einzelnes Übereinstimmungsereignis, Asymmetrie bei Leitwertänderungen nach oben und unten, anpassbarer Bereich der Leitwerte und verschiedene Arten von Rauschen im System. Ein Übereinstimmungsereignis ist definiert als die Überschneidung der beiden Spannungsimpulse, die von der Spalte (z.B. δj) und der Zeile (xi ) gesendet werden, mit der eine RPU-Einheit verbunden ist.
  • Für alle in 3 veranschaulichten stochastischen Modelle werden k = 0 und BL = 10 verwendet. Um die für das Grundmodell verwendeten Lernraten zu erreichen, werden xi und δj in stochastische Ströme übersetzt, wobei C als C = η / ( B L Δ w m i n )
    Figure DE112018000272T5_0009
    definiert ist. Auf diese Weise ist es möglich, dass die durchschnittliche Lernrate die Gleiche ist wie beim Grundmodell.
  • Im Idealfall sollte die RPU-Einheit analog sein, d.h., die Leitwertänderung durch ein einzelnes Übereinstimmungsereignis Δgmin sollte beliebig klein sein und damit kontinuierlich alle zulässigen Leitwerte abdecken. Um den größten annehmbaren Δgmin aufgrund eines einzelnen Übereinstimmungsereignisses zu bestimmen, das keine signifikante Fehlerstrafe verursacht, wird der Parameter Δwmin zwischen 0,32 und 0,00032 abgetastet (variiert oder geändert), während andere Parameter wie in 3A dargestellt feststehend sind. Während die Konvergenz für einen großen Δwmin gering ist, da Δwmin die Standardabweichung der stochastischen Aktualisierungsregel steuert, nähern sich die Ergebnisse für einen kleineren Δwmin dem Grundmodell an. Ein Δwmin kleiner als 0,01 ergibt einen Klassifizierungsfehler von 2,3 % am Ende der 30. Epoche, der nur 0,3 % über dem Klassifizierungsfehler von 2,0 % des Grundmodells liegt. Die Linien 1, 2 und 3 entsprechen einem stochastischen Modell, wobei Δwmin = 0,1, 0,032 bzw. 0,01 ist. Alle Kurven in den 3B bis 3I verwenden Δwmin = 0,001.
  • Um minimale und maximale Leitwerte zu bestimmen, die RPU-Einheiten unterstützen sollten, damit der Algorithmus sich annähert, wird wie in 3B dargestellt ein Satz von Trainingskurven berechnet. Jede Kurve wird durch den Gewichtungsbereich definiert, in dem der Absolutwert der Gewichtungen |wij| unter einer bestimmten Schranke gehalten wird, die zwischen 0,1 und 3 variiert. Die Linien 1, 2 und 3 entsprechen insbesondere in 3B einem stochastischen Modell mit Gewichtungen zwischen 0,1, 0,2 bzw. 0,3. Die anderen Parameter sind gleich wie in 3A, wobei für Δwmin 0,001 gilt, um sicherzustellen, dass die Ergebnisse im Wesentlichen durch die Auswahl des Gewichtungsbereichs definiert werden. Das Modell mit den Gewichtungen |wij | mit Werten größer als 0,3 führt wie vorstehend definiert zu einem annehmbaren Fehlerstrafkriterium von 0,3 %. Da der Parameter Δgmin (und gij ) durch den von peripheren Schaltungen definierten Verstärkungsfaktor proportional zu Δwmin (und wij ) ist, kann die Anzahl der Übereinstimmungsereignisse, die benötigt werden, um die RPU-Einheit von ihrem Mindest- zu ihrem Höchstleitwert zu bringen, als (max (gij) - min(gij))/Δgmin = (max (wij) - min (wij))//Δwmin abgeleitet werden. Dies ergibt eine niedrigere Schätzung für die Anzahl der Zustände (z.B. 600 Zustände), die in einer RPU-Einheit gespeichert werden müssen. Um die Toleranz des Algorithmus gegenüber der Variation der inkrementellen Leitwertänderung aufgrund eines einzelnen Übereinstimmungsereignisses Δgmin zu bestimmen, wird angenommen, dass es sich bei dem für jedes Übereinstimmungsereignis verwendeten Wert Δwmin um eine Zufallsvariable mit einer Gauß'schen Verteilung handelt. Entsprechende Ergebnisse sind in 3C dargestellt, wo die Standardabweichung variiert wird, während der Durchschnittswert Δwmin auf 0,001 eingestellt wird. In Modellen der Experimentatoren darf Δwmin Übereinstimmungsereignisse aufweisen, die zu einer Änderung in die entgegengesetzte Richtung führen, wenn der Zufallswert kleiner als -1 (oder -100 %) ist. Wie man sieht, zeigt sich der Algorithmus gegenüber der Zufälligkeit der Gewichtungsänderung für jedes Übereinstimmungsereignis beständig, und Modelle mit einer Standardabweichung unter 150 % des Mittelwertes erreichen eine annehmbare Fehlerstrafe von 0,3 %. In 3C entsprechen die Linien 1, 2 und 3 einem stochastischen Modell mit einer Variation von Übereinstimmung zu Übereinstimmung in Δwmin von 1000 %, 320 % bzw. 100 %.
  • Für die in 3D gezeigten stochastischen Modelle wird eine Variation von Einheit zu Einheit (noch eine weitere Zufälligkeit) der inkrementellen Leitwertänderung aufgrund eines einzigen Übereinstimmungsereignisses Δgmin eingeführt. Die Linien 1, 2 und 3 entsprechen insbesondere in 3D einem stochastischen Modell mit einer Variation von Einheit zu Einheit in Δwmin von 1000, 320 bzw. 100 %. In diesem Fall wird der für jede RPU-Einheit verwendete Δwmin zu Beginn des Trainings aus einer Gauß'schen Verteilung entnommen; anschließend wird dieser feststehende Wert während des Trainings für jedes Übereinstimmungsereignis verwendet. Für alle in 3D veranschaulichten stochastischen Modelle wird der durchschnittliche Δwmin -Wert von 0,001 verwendet, während die Standardabweichung für jedes Modell variiert wird. In Modellen der Experimentatoren darf das Modell einige Einheiten aufweisen, die während des Trainings Aktualisierungen in die entgegengesetzte Richtung durchführen, wenn der Zufallswert kleiner als -1 (oder -100 %) ist. Die Ergebnisse zeigen, dass sich der Algorithmus auch gegenüber der Variation von Einheit zu Einheit beständig erweist und für Modelle mit einer Standardabweichung von bis zu 110 % des Mittelwertes eine annehmbare Fehlerstrafe erreicht werden kann. Eine Variation von Einheit zu Einheit ist definiert als die Variation eines Parameters in der Anordnung für verschiedene RPU-Einheiten.
  • Um die Toleranz des Algorithmus gegenüber der Variation von Einheit zu Einheit innerhalb der oberen und unteren Schranken des Leitwerts zu bestimmen, gehen die Experimentatoren von oberen und unteren Schranken aus, die für jede RPU-Einheit für die Modelle in 3E unterschiedlich sind. Die für jede RPU-Einheit verwendeten Schranken werden zu Beginn des Trainings aus einer Gauß'schen Verteilung entnommen und während des Trainings verwendet. Für alle in 3E veranschaulichten stochastischen Modelle wird der Mittelwert von 1,0 für die obere Schranke (und -1,0 für die untere Schranke) verwendet, um sicherzustellen, dass die Ergebnisse hauptsächlich durch eine Variation von Einheit zu Einheit innerhalb der oberen und unteren Schranken definiert sind. Wenn die Standardabweichung groß genug wird, sei darauf hingewiesen, dass einige Einheiten nur positive oder nur negative Gewichtungswerte codieren können. Darüber hinaus können einige Einheiten sogar eine obere Schranke haben, die kleiner als die untere Schranke ist, und es wird davon ausgegangen, dass diese Einheiten am Mittelpunkt stecken bleiben und nicht auf die Aktualisierungen reagieren. Mit diesen Beiträgen zusammengenommen zeigt 3E, dass sich der Algorithmus gegenüber der Variation innerhalb der Schranken beständig zeigt, und Modelle mit einer Standardabweichung von bis zu 80 % des Mittelwerts eine annehmbare Fehlerstrafe von 0,3 % erreichen können. In 3E entsprechen die Linien 1, 2 und 3 einem stochastischen Modell mit einer Variation von Einheit zu Einheit innerhalb der oberen und unteren Schranken von 1000 %, 320 % bzw. 100 %.
  • Wie aus den 1C und 1D hervorgeht, können hergestellte RPU-Einheiten auch unterschiedliche Änderungen des Leitwerts durch positive Impulse ( Δ g m i n + )
    Figure DE112018000272T5_0010
    und negative Impulse ( Δ g m i n )
    Figure DE112018000272T5_0011
    aufweisen. Um zu bestimmen, wie viel Asymmetrie der Algorithmus zwischen Änderungen nach oben und unten tolerieren kann, werden die Änderungen des Gewichtungswertes nach oben ( Δ w m i n + )
    Figure DE112018000272T5_0012
    und unten ( Δ w m i n )
    Figure DE112018000272T5_0013
    wie in den 3F und 3G gezeigt variiert. In 3F entsprechen die Linien 1, 2 und 3 einem stochastischen Modell, bei dem Änderungen nach unten um 0,5, 0,75 bzw. 0,9 geringer sind. In 3G entsprechen die Linien 1, 2 und 3 einem stochastischen Modell, bei dem Änderungen nach oben um 0,5, 0,75 bzw. 0,9 geringer sind.
  • In beiden 3F und 3G wird diese allgemeine Asymmetrie als einheitlich über die gesamte Anordnung der RPU-Einheit betrachtet. Für jedes Modell in 3F ist Δ w m i n +
    Figure DE112018000272T5_0014
    auf 0,001 festgelegt, während Δ w m i n
    Figure DE112018000272T5_0015
    zwischen 0,95 und 0,25 variiert und damit geringer als der Wert nach oben ist. 3G zeigt in ähnlicher Weise analoge Ergebnisse für Δ w m i n + ,
    Figure DE112018000272T5_0016
    der auf 0,001 festgelegt ist, während Δ w m i n +
    Figure DE112018000272T5_0017
    variiert. Die Ergebnisse zeigen, dass Änderungen nach oben und unten in erheblichem Maß gleichmäßig sein müssen (10 % im Verhältnis zueinander), damit das stochastische Modell eine annehmbare Fehlerstrafe von 0,3 % erreicht. Die Experimentatoren definieren den Schwellenwert in Bezug auf den Mittelwert und verwenden daher ein Ungleichgewicht von 5 % als annehmbaren Schwellenwert. Es sei darauf hingewiesen, dass die hohen Fluktuationen, die in 3G, jedoch nicht in 3F auftreten, nicht überraschend sind und nicht auf den stochastischen Charakter der Aktualisierungen zurückzuführen sind. Die Experimentatoren führten ein Training mit Gleitkomma-Multiplikation mit einem Ungleichgewichtsterm durch und beobachteten immer noch ein ähnliches Verhalten.
  • Um die Toleranz des Algorithmus gegenüber der Variation von Einheit zu Einheit in der Asymmetrie zu bestimmen, im Gegensatz zu einer in den 3F und 3G betrachteten allgemeinen Asymmetrie, werden die Kurven in 3H für verschiedene Werte der Standardabweichung von Δ w m i n + / Δ w m i n
    Figure DE112018000272T5_0018
    berechnet. Die Parameter Δ w m i n +
    Figure DE112018000272T5_0019
    und Δ w m i n
    Figure DE112018000272T5_0020
    für jede RPU-Einheit werden einer Gauß'schen Verteilung am Beginn des Trainings entnommen und anschließend während des Trainings für jedes Übereinstimmungsereignis verwendet. Alle Modelle gehen davon aus, dass der Durchschnittswert von Δ w m i n +
    Figure DE112018000272T5_0021
    und Δ w m i n
    Figure DE112018000272T5_0022
    0,001 ist. Die Standardabweichung von Δ w m i n + / Δ w m i n
    Figure DE112018000272T5_0023
    muss kleiner als 6 % des Mittelwertes sein, um eine annehmbare Fehlerstrafe von 0,3 % zu erzielen. In 3H entsprechen die Linien 1, 2 und 3 einem stochastischen Modell mit einer Variation von Einheit zu Einheit nach oben und unten, die sich um 40, 20 bzw. 6 % ändert.
  • Die analoge Berechnung ist anfällig gegenüber verschiedenen Rauschquellen wie thermischem Rauschen, Schrotrauschen usw., die additiv sind und als einzelnes nichtverzerrtes Gauß'sches Rauschen modelliert werden können. Der Einfluss der Rauschstrafe während des Gewichtungsaktualisierungszyklus wird bereits in den 3C, 3D, 3E, 3F, 3G und 3H betrachtet. Um die Toleranz des Algorithmus gegenüber Rauschen während des Vorwärtszyklus und des Rückwärtszyklus zu schätzen, speisten die Experimentatoren Gauß'sches Rauschen in die Ergebnisse von Vektor-Matrix-Multiplikationen mit unterschiedlicher Standardabweichung ein. Nachdem das Ergebnis einer Vektor-Matrix-Multiplikation berechnet wurde, wird zu jedem Element des sich ergebenden Vektors ein unabhängiges Zufallsrauschen hinzugefügt. Für die in 3I dargestellten Daten wird sowohl für den Vorwärtszyklus als auch für den Rückwärtszyklus die gleiche Rauschverteilung verwendet, und eine annehmbare Fehlerstrafe von 0,3 % für ein Rauschen mit einer Standardabweichung von 0,1 wird erreicht. Dieser Wert stellt 10 % des Sigmoid-Neuron-Temperaturparameters dar, der eins beträgt. Die Rauschanforderungen für den Vorwärtszyklus und den Rückwärtszyklus sind unter Umständen jedoch nicht identisch. Wenn Experimentatoren das Rauschen nur in den Vorwärtszyklus einspeisen, zeigen Berechnungen in der Tat, dass der Algorithmus bis zu sechsmal mehr Rauschen mit einer Standardabweichung von 60 % tolerieren kann. Der Rückwärtszyklus ist mit einem Schwellenwert von 10 % weniger tolerant und bestimmt daher den Schwellenwert, der aus 3I abgeleitet wird. In 3I entsprechen die Linien 1, 2 und 3 einem stochastischen Modell mit Rauschen in einer Vektor-Matrix-Multiplikation von 100 %, 60 % bzw. 10 %, normalisiert auf die Temperatur der Aktivierungsfunktion, die eins beträgt.
  • 4A ist eine Radardarstellung, die die Spezifikationen von RPU-Einheiten zusammenfasst, die aus den in 3 durchgeführten „Stresstests“ abgeleitet sind. Die Achsen C bis I entsprechen den Experimenten in den 3C bis 31. Die durchgehende Linie 1 verbindet die für diese Parameter bestimmten Schwellenwerte mit einer annehmbaren Fehlerstrafe von 0,3 %. Es sei darauf hingewiesen, dass sich diese Spezifikationen deutlich von den für NVM-Technologien (non-volatile memory, nichtflüchtige Speicher) typischen Parametern unterscheiden. Das Speichern in NVM-Einheiten erfolgt digital und geht in der Regel über einige Bits nicht hinaus, und diese Einschränkung wird durch die Systemanforderung auferlegt, ein hohes Signal-Rausch-Verhältnis für Lese- und Schreiboperationen zu erreichen. Darüber hinaus ist die Schreiboperation nicht von der Historie abhängig, da alle zuvor gespeicherten Werte überschrieben werden. Im Gegensatz dazu müssen Gewichtungswerte im neuronalen Netz nicht mit einem sehr hohen Signal-Rausch-Verhältnis geschrieben und aufgelöst werden. Tatsächlich kann der Algorithmus einem Rauschen von bis zu 150 % in den Gewichtungsaktualisierungen standhalten (Parameter C) und Leserauschen von bis zu 10 % in Spalten oder Zeilen tolerieren (Parameter I). Im Gegensatz zu einer Speicherkapazität von einigen wenigen Bits in NVM-Einheiten ist jedoch eine große Anzahl von Übereinstimmungsereignissen (über 600 von 3B) erforderlich, damit die RPU-Einheit die Historie der Gewichtungsaktualisierungen verfolgen kann. Darüber hinaus müssen RPU-Einheiten im Gegensatz zu der für NVM-Einheiten erforderlichen hohen Belastbarkeit bei vollem Schreiben zwischen den Bit-Ebenen nur bei kleinen inkrementellen Änderungen (Δgmin) eine hohe Belastbarkeit aufweisen. Der zusammengefasste Beitrag aller in 4A berücksichtigten Parameter kann additiv sein und somit die annehmbare Fehlerquote von 0,3 % überschreiten. 4B zeigt Trainingsergebnisse, wenn die Auswirkungen von mehr als einem Parameter zusammengefasst werden. Wenn alle Parameter (C, D, E, F, G, H und I) am Schwellenwert zusammengefasst werden, erreicht der Testfehler 5,0 %, was 3,0 % über dem Grundmodell liegt. Obwohl diese Strafe für einige Anwendungen annehmbar sein kann, ist sie höher als die oben genannte Fehlerstrafe von 0,3 %. Diese Strafe von 3,0 % ist höher als eine einfache additive Auswirkung von unkorrelierten Beiträgen, was darauf hinweist, dass mindestens einige dieser Parameter zusammenwirken. Dies eröffnet die Möglichkeit, die Fehlerstrafe zu optimieren, indem Toleranzen zwischen verschiedenen Parametern abgewogen werden. Das Modell, das beispielsweise nur die Parameter C, D und E am Schwellenwert zusammenfasst, wie die Kurve 2 in 4B zeigt, ergibt eine Fehlerstrafe von 0,9 %, was ungefähr der erwarteten Summe einzelner Beiträge entspricht. Es sei darauf hingewiesen, dass diese Parameter durch Schwächen im Hinblick auf die Funktion der Einheit und durch eine Nichtübereinstimmung von Einheit zu Einheit definiert sind, die alle durch Fertigungstoleranzen in einer bestimmten Technologie gesteuert werden. Selbst bei tief skalierten CMOS-Technologien liegen die Fertigungstoleranzen nicht über 30 %, und dies ist um einiges geringer als 150 %, 110 % und 80 %, die für die Berechnung der Kurve 2 in 4B verwendet werden. Die Beiträge von C, D und E zur Fehlerstrafe können durch Einstellen der entsprechenden Toleranzen auf 30 % beseitigt werden (Daten nicht dargestellt). In 4B entsprechen die Linien 1, 2 und 3 einem stochastischen Modell mit Rauschen in einer Vektor-Matrix-Multiplikation von 100 %, 60 % bzw. 10 %, normalisiert auf die Temperatur der Aktivierungsfunktion, die eins beträgt. Die 4A und 4B können allgemein als 4 bezeichnet werden.
  • Unter den Parametern von 4A ist die Asymmetrie zwischen Änderungen des Leitwerts von RPU-Einheiten nach oben und unten (Parameter F, G und H) am restriktivsten, und diese Asymmetrie zwischen Änderungen des Leitwerts nach oben und unten wird wie hierin erläutert gemäß einer oder mehreren Ausführungsformen durch Hysterese beseitigt. Parameter F (oder G) stellt die allgemeine Asymmetrie dar, die durch Steuern von Impulsspannungen und/oder der Anzahl von Impulsen in den positiven und negativen Aktualisierungszyklen ausgeglichen werden kann, sodass auch Asymmetrien, die über dem Schwellenwert von 5 % liegen, bei einem zweckmäßigen Entwurf von peripheren Schaltungen beseitigt werden können. Im Gegensatz dazu kann Parameter H, der durch eine Variation von Einheit zu Einheit in der Asymmetrie definiert ist, nur dann durch periphere Schaltungen ausgeglichen werden, wenn jede RPU-Einheit seriell adressiert wird. Um die Zeitkomplexität O(1) aufrechtzuerhalten, können der Parameter H, der sich auf die Nichtübereinstimmung der Einheiten bezieht, und der Rauschparameter I optimiert werden, um die Fehlerstrafe zu reduzieren. Das sich ergebende Modell wird durch den schattierten Bereich veranschaulicht, der durch die Kurve 3 in 4B begrenzt wird, und erreicht eine Fehlerstrafe von höchstens 0,3 %. Für dieses Modell beträgt die Einstellung der Parameter C, D und E 30 %, während die Einstellung für F (oder G) null beträgt, die Einstellung für H beträgt 2 % und für I 6 %. Alternativ kann das gleiche Ergebnis (Daten nicht dargestellt) erreicht werden, indem der Rauschparameter I auf 2,5 % begrenzt und die Toleranz für die Nichtübereinstimmung der Einheiten H auf 4 % erhöht wird, was die Herstellung der Anordnung zulasten des Entwurfs von Schaltungen mit weniger Rauschen vereinfachen kann.
  • Zusätzlich zu den vorstehend betrachteten Parametern können RPU-Einheiten auch die Abhängigkeit von der Leitwertänderung des gespeicherten Leitwerts Δgmin (gij) zeigen. Ein solches Verhalten führt zu einer Aktualisierungsregel, die vom aktuellen Gewichtungswert abhängt, der als Δwmin (wij) ausgedrückt werden kann. Die Experimentatoren führten Simulationen durch, unter anderem eine gewichtungsabhängige Aktualisierungsregel mit verschiedenen Funktionsformen für Δwmin (wij), die eine lineare oder quadratische Abhängigkeit vom Gewichtungswert enthielt. In der ersten Reihe von Simulationen gehen die Experimentatoren davon aus, dass die Aktualisierungen für einen gegebenen Gewichtungswert so im Gleichgewicht sind, dass Δ w m i n + ( w i j ) w m i n ( w i j )
    Figure DE112018000272T5_0024
    beträgt und damit bereits die Ungleichgewichtskriterien H über den gesamten Gewichtungsbereich erfüllen. Diese Simulationsergebnisse zeigen, dass die Abhängigkeit von Δgmin bei gij kein wichtiger Parameter ist, da keine zusätzliche Fehlerstrafe über 0,3 % beobachtet wird, auch wenn Δwmin um einen Faktor von etwa 10 variiert wird. Wenn die Experimentatoren jedoch gewichtungsabhängige Aktualisierungen einführen, die kein Gleichgewicht aufweisen, beobachten die Experimentatoren eine zusätzliche Fehlerstrafe, da diese Bedingung gegen die Ungleichgewichtskriterien H verstößt.
  • Erwägungen zum Entwurf auf Schaltungs- und Systemebene
  • Die größte Beschleunigung des DNN-Trainings mit dem Rückwärtspropagierungsalgorithmus in einer RPU-Anordnung der Größe N × N kann erreicht werden, wenn die Zeitkomplexitätsoperation O(1) erzwungen wird. In diesem Fall ist die Gesamtbeschleunigung proportional zu N2 und begünstigt sehr große Anordnungen. Im Allgemeinen sollte der Entwurf der Anordnung, der peripheren Schaltungen und des gesamten Systems auf einer Optimierung der Netzparameter für eine bestimmte Arbeitslast und Klassifikationsaufgabe beruhen. Um eine allgemeine Methodik für einen solchen Entwurf zu entwickeln, nutzen die Experimentatoren die Ergebnisse der oben vorgestellten Analyse als Beispiel mit Erkenntnissen. Der entwickelte Ansatz ist jedoch für eine größere Klasse komplizierterer Fälle als ein relativ einfaches 3-Schichten-Netz gültig, das zur Klassifizierung des MNIST-Datensatzes in den 2 bis 4 verwendet wird.
  • Entwurf der RPU-Anordnung
  • Für realistische technologische Umsetzungen der Kreuzschienen-Anordnung (d.h. der Anordnung von RPU-Einheiten) wird die Größe der Anordnung durch den Widerstand und die parasitäre Kapazität der Übertragungsleitungen beschränkt, was zu einer erheblichen RC-Verzögerung (Widerstand - Kondensator) und einem Spannungsabfall führt. Für die weitere Analyse gehen die Experimentatoren davon aus, dass RPU-Einheiten am Back-End-of-Line-Stapel (BEOL-Stapel) zwischen den Zwischenmetallebenen integriert sind. Dadurch können die oberen dicken Metallebenen für die Stromverteilung verwendet werden und die unteren Metallebenen und der Bereich unter der RPU-Anordnung für periphere CMOS-Schaltungen. Typische Zwischenmetallebenen in einer skalierten CMOS-Technologie haben eine Dicke von 360 nm (Nanometer) und eine Breite von 200 nm. Der entsprechende typische Leitungswiderstand liegt bei rLeitung = 0,36 Ω/µm (Ohm/Mikrometer) mit einer parasitären Kapazität von CLeitung = 0,2 fF/µm (Femtofarad/Mikrometer). Geht man von einer geeigneten Taktfrequenz von 1 GHz (Gigahertz) für die während des Aktualisierungszyklus verwendeten Impulse aus und unter der Voraussetzung, dass die RC-Verzögerung höchstens 10 % der Impulsbreite (0,1 ns) beträgt, sollte die größte Leitungslänge ILeitung = 1,64 mm (Millimeter) betragen. Bei einem geeigneten Leitungsabstand von 200 nm ergibt sich daraus eine Anordnung mit 4096 × 4096 RPU-Einheiten. Da die Leitwerte von RPU-Einheiten nur positiv sein können, gehen die Experimentatoren davon aus, dass ein Paar identischer Anordnungen von RPU-Einheiten verwendet wird, um positive ( g i j + )
    Figure DE112018000272T5_0025
    Gewichtungswerte und negative ( g i j )
    Figure DE112018000272T5_0026
    Gewichtungswerte zu codieren. Der Gewichtungswert (wij ) ist proportional zu einer Differenz von zwei Leitwerten, die in zwei entsprechenden Einheiten ( g i j + g i j )
    Figure DE112018000272T5_0027
    gespeichert sind, die sich an identischen Positionen eines Paares von RPU-Anordnungen befinden. Um die Fläche zu verringern, können diese beiden Anordnungen übereinander gestapelt werden und 4 aufeinanderfolgende Metallebenen belegen, was zu einer Gesamtfläche von AAnordnung = 2,68 mm2 führt. Für diese Größe der Anordnung kann ein vollständiger Aktualisierungszyklus (sowohl positiv als auch negativ), der mit Impulsen von 1 ns (Nanosekunde) durchgeführt wird, in 20 ns für BL = 10 ausgeführt werden.
  • Um einen durchschnittlichen Widerstand der RPU-Einheit, REinheit , zu schätzen, gehen die Experimentatoren von einem Spannungsabfall von höchstens 10 % auf der Übertragungsleitung aus, der durch N × RLeitung/REinheit definiert ist, wobei RLeitung der gesamte Leitungswiderstand ist, der rLeitung × ILeitung entspricht. Der Beitrag des Ausgangswiderstandes der Leitungstreiber zum Gesamtwiderstand der Leitung kann durch einen geeigneten Schaltungsentwurf verringert werden. Bei einer Größe der Anordnung von N = 4096 beträgt der durchschnittliche Widerstand der RPU-Einheit daher REinheit = 24 MΩ (Megaohm). Mithilfe dieses Widerstandswertes und ausgehend von einer Betriebsspannung von 1 V für alle drei Trainingszyklen und einer durchschnittlichen Aktivität von etwa 20 % für jede Einheit, die für die Modelle der 2 bis 4 typisch sind, kann die Verlustleistung bei einem Paar von RPU-Anordnungen auf PAnordnung = 0,28 W (Watt) geschätzt werden.
  • Entwurf der peripheren Schaltungen
  • 5A veranschaulicht die Funktionsweise einer einzelnen Spalte (oder Zeile) während des Vorwärtszyklus (oder Rückwärtszyklus) und zeigt einen Operationsverstärker, der den Differenzstrom auf dem Kondensator Cint integriert, sowie einen Analog-Digital-Wandler (ADW). Im Gegensatz zum Aktualisierungszyklus werden keine stochastischen Übersetzer benötigt. Hier gehen die Experimentatoren davon aus, dass ein Zeitcodierungsschema verwendet wird, wenn Eingangsvektoren durch eine feste Amplitude Vin = 1 V Impulse mit einer einstellbaren Dauer dargestellt werden. Die Impulsdauer ist ein Vielfaches von 1 ns und ist proportional zum Wert des Eingangsvektors. Die in jeder RPU-Einheit erzeugten Ströme werden in den Spalten (oder Zeilen) summiert, und dieser Gesamtstrom wird wie in 5A veranschaulicht über die Messzeit tMess durch Stromausleseschaltungen integriert. Positive und negative Spannungsimpulse werden separat zu jeder der identischen RPU-Anordnungen gesendet, die zum Codieren von positiven und negativen Gewichtungen verwendet werden. Die Ströme aus beiden Anordnungen werden in die periphere Schaltung eingespeist, die aus dem Operationsverstärker, der den Differenzstrom in den Kondensator Cint integriert, und dem ADW besteht. Zu beachten ist, dass bei zeitcodierten Impulsen der Zeitquantisierungsfehler am Eingang der RPU-Anordnung umgekehrt mit der Gesamtzahl der Impulse skaliert, und dies daher ein besserer Ansatz als das stochastische Impulsschema ist. Für die Modelle in 4B reicht eine Anzahl von Impulsen aus, die größer als 20 (Auflösung von etwa ~5 Bit) ist, um eine entsprechende Fehlerstrafe zu vermeiden.
  • Die Experimentatoren definieren eine einzelne RPU-Kachel als ein Paar von Anordnungen mit 4096 × 4096 Einheiten mit peripheren Schaltungen, die den Parallelbetrieb der Anordnung in allen drei Zyklen unterstützen. Peripherie Schaltungen beinhalten ADW, Operationsverstärker, STRs, die aus Zufallszahlengeneratoren bestehen, und Leitungstreiber, mit denen Signale entlang der Spalten und Zeilen geleitet werden. Wie in 5C dargestellt, sind die Signale von einer RPU-Kachel auf eine Schaltung für nichtlineare Funktionen (NLF) gerichtet, die Aktivierungsfunktionen (d.h. Sigmoid, Softmax) und deren Ableitungen sowie arithmetische Operationen (d.h. Multiplikation) in Abhängigkeit von der Zyklusart (z.B. Rückwärtszyklus, Vorwärtszyklus oder Aktualisierungszyklus) und der Position der entsprechenden Schicht berechnet. An der Kachelgrenze werden die Eingangssignale zu den NLF auf einen bestimmten Schwellenwert begrenzt, um eine Signalsättigung zu vermeiden. Insbesondere 5C stellt ein Schema der Architektur für einen RPU-Beschleunigerchip dar. RPU-Kacheln befinden sich auf der Unterseite, digitale NLF-Rechenschaltungen befinden sich auf der Oberseite, die On-Chip-Datenübertragung wird von einem Bus oder einem Netzwerk auf einem Chip (NoC, Network on Chip) bereitgestellt, und die Off-Chip-Datenübertragung beruht auf E/A-Schaltungen.
  • 5B zeigt einen Testfehler für das Netz von Modell 3 in 4B, jedoch mit den Schranken |α|, die den Ergebnissen der Vektor-Matrix-Multiplikation auferlegt werden, was einer Einschränkung der NLF-Eingabe entspricht. Kurve 1 entspricht einem Modell mit |α| = 3, die nur der Sigmoid-Aktivierungsfunktion in den verborgenen Schichten in 5B auferlegt wird. Die Kurven 2 und 3 entsprechen einem Modell mit |α| = 3 bzw. 12, die sowohl den Sigmoid- als auch den Softmax-Aktivierungsfunktionen in 5B auferlegt werden. Für Neuronen in verborgenen Schichten sollte die NLF-Schaltung eine Sigmoid-Aktivierungsfunktion berechnen. Wenn die Eingabe für diese Sigmoid-NLF auf | α| = 3 beschränkt ist, übersteigt die sich ergebende Fehlerstrafe nicht zusätzlich 0,4 %, wie Kurve 1 in 5B zeigt.
  • Neuronen in der Ausgangsschicht führen eine Softmax-NLF-Operation durch, die, wenn die entsprechende Eingabe ebenfalls auf |α| = 3 beschränkt ist, zu einem sehr großen Fehler führt, wie Kurve 2 in 5B zeigt. Um den Entwurf flexibler und programmierbarer zu gestalten, ist es wünschenswert, dass die NLF sowohl in verborgenen Schichten als auch in Ausgangsschichten die gleichen Schranken aufweist. Wenn die Schranken sowohl für Softmax- als auch für Sigmoid-NLF |α| = 12 betragen, liegt die Gesamtstrafe in einem annehmbaren Bereich, wie Kurve 3 in 5B zeigt. Geht man von einem annehmbaren Geräuschpegel von 6 % aus den Ergebnissen von 4B und einem Betriebsspannungsbereich zwischen -1 V und 1 V am Eingang des ADW aus, betragen die entsprechende Bitauflösung und der erforderliche Spannungsschritt 9 Bit bzw. 3,9 mV. Diese Zahlen zeigen, dass der annehmbare integrierte Effektivwert (root mean square) des Spannungsrauschens am Eingang des ADW (oder am Ausgang des Operationsverstärkers) 5,0 mV nicht überschreiten sollte.
  • Rauschanalyse
  • Um den annehmbaren Pegel des Eingangsrauschens zu schätzen, sollte die Integrationsfunktion des Operationsverstärkers definiert werden. Die Spannung am Ausgang des Operationsverstärkers kann abgeleitet werden von V A u s = 2 N V E i n t M e s s R E i n h e i t C i n t ( β 1 β + 1 )
    Figure DE112018000272T5_0028
    wobei β das Ein-Aus-Verhältnis des Leitwerts für eine RPU-Einheit ist. Bei dieser Gleichung wird davon ausgegangen, dass alle N RPU-Einheiten gleichzeitig einen Beitrag leisten, was es schwieriger machen kann, eine Schaltung zu entwerfen, die entweder einen sehr großen Kondensator oder eine große Spannungsschwankung erfordern würde. Für bestimmte Schranken |α|, die für die NLF-Transformation gelten, und |wij | für die Gewichtungswerte, sollte die Ausgangsspannung jedoch nicht unbedingt das Niveau überschreiten, das dem gleichzeitigen Beitrag von |α|/|wij | Einheiten entspricht. Da eine annehmbare Schranke |α| = 12 und |wij| = 0,6 wie oben gezeigt ausreicht, kann die Zahl N in Gleichung (4) durch 20 ersetzt werden. Wird davon ausgegangen, dass die Einspeisung des Signals VAus in den ADW 1 V nicht überschreiten sollte und dass REinheit 24 MΩ ist, wird die Wahl des Integrationskondensators Cint von der Integrationszeit tMess und dem Ein-Aus-Verhältnis β bestimmt. 5D veranschaulicht annehmbare Eingangsrauschpegel für verschiedene Ein-Aus-Verhältnisse β in den RPU-Einheiten und Integrationszeiten tMess . Die Kurven 1, 2 und 3 entsprechen tMess von 20 ns, 80 ns bzw. 160 ns. Dieser Rauschpegel entspricht dem Eingangsrauschen des Operationsverstärkers, das mithilfe der Standardrauschanalyse in auf einem Integrator beruhenden Schaltungen berechnet wurde (Jensen et al., 2013). Wenn für tMess 20 ns zugrunde gelegt werden, sind die annehmbaren Rauschpegel nach den vorstehend angestellten Erwägungen zu Quantisierungsfehlern relativ niedrig, beispielsweise in der Größenordnung von nur 5 ( n V / H z ) ,
    Figure DE112018000272T5_0029
    wie in Kurve 1 von 5D dargestellt. Selbst eine Erhöhung des Ein-Aus-Verhältnisses β um mehrere Größenordnungen trägt nicht dazu bei, stärkeres Rauschen aufzunehmen. Um stärkeres Rauschen aufzunehmen, muss tMESS jedoch mit einer Strafe für eine längere Gesamtberechnungszeit erhöht werden. Wie aus den Kurven in 5D für einen gegebenen Rauschpegel hervorgeht, können Ein-Aus-Verhältnisse von nur 2 bis 10 annehmbar sein; was in der Tat ziemlich moderat im Vergleich zu einer Erhöhung um mehrere Größenordnungen ist, die bei NVM-Anwendungen die Regel ist. Wenn für t Mess und β 80 ns bzw. 8 gewählt werden, kann für den entsprechenden Pegel des annehmbaren Eingangsrauschens in Kurve 2 in 5D 7,6 ( n V / H z )
    Figure DE112018000272T5_0030
    abgeleitet werden.
  • Die Experimentatoren stellen fest, dass dieser Wert auf Grundlage der Anforderungen für den Rückwärtsdurchlauf berechnet wird, während der annehmbare Rauschpegel für den Vorwärtsdurchlauf mit einem Wert von etwa 45 ( n V / H z )
    Figure DE112018000272T5_0031
    wie vorstehend erläutert etwa sechsmal größer ist. Die entsprechende Kapazität Cint kann auch mit Gleichung (4) als 103 fF berechnet werden.
  • Verschiedene Rauschquellen können zu einem insgesamt annehmbaren Eingangsrauschpegel eines Operationsverstärkers beitragen, darunter thermisches Rauschen, Schrotrauschen und Versorgungsspannungsrauschen, usw. Für thermisches Rauschen durch ein Paar von Anordnungen mit 4096 × 4096 RPU-Einheiten kann 7,0 ( n V / H z )
    Figure DE112018000272T5_0032
    geschätzt werden. Abhängig von der genauen physischen Umsetzung einer RPU-Einheit und der Art der nichtlinearen I-V-Reaktion können die von der RPU-Anordnung erzeugten Schrotrauschpegel variieren. Geht man von einem diodenähnlichen Modell aus, skaliert das Gesamtschrotrauschen einer ganzen Anordnung als Quadratwurzel einer Anzahl aktiver RPU-Einheiten in einer Spalte (oder einer Zeile) und hängt somit von einer allgemeinen momentanen Aktivität der Anordnung ab. Die durchschnittliche Aktivität des Netzes, die typisch für die Modelle der 2 bis 4 ist, beträgt für den Rückwärtszyklus weniger als 1 %, während sie für den Vorwärtszyklus viel höher ist (annähernd 20 %). Diese Aktivitäten führen entsprechend zu Schrotrauschwerten von 3,1   n V / H z  und 1 3,7   n V / H z
    Figure DE112018000272T5_0033
    für den Rückwärtszyklus bzw. Vorwärtszyklus. Daher wird das Rauschen im Rückwärtszyklus vom thermischen Rauschen mit einem Wert von 7,0   n V / H z
    Figure DE112018000272T5_0034
    bestimmt und entspricht zusammen mit dem Beitrag des Schrotrauschens dem Gesamtrauschwert von 7,6   n V / H z .
    Figure DE112018000272T5_0035
    Das Rauschen im Vorwärtszyklus wird dagegen vom Schrotrauschen mit einem Wert von 13,7   n V / H z
    Figure DE112018000272T5_0036
    bestimmt und entspricht dem Gesamtrauschwert von 45   n V / H z .
    Figure DE112018000272T5_0037
    Die Experimentatoren stellen fest, dass eine längere Integrationszeit oder eine geringere Größe der Anordnung für höhere Arbeitslasten oder zusätzliche Rauschbeiträge, einschließlich des Rauschens der Spannung, des Verstärkerrauschens usw., erforderlich ist.
  • Erwägungen zum Entwurf auf Systemebene
  • Der von der peripheren Schaltung belegte Kachelbereich und die entsprechende Verlustleistung werden durch den Beitrag von 4096 ADW bestimmt. Geht man von tMess von 80 ns für den Vorwärtszyklus und den Rückwärtszyklus aus, sind ADW mit einer Auflösung von 9 Bit bei 12,5 MAbtastungen/s erforderlich. Der SAR-ADW nach dem Stand der Technik, der diese Leistung erbringen kann, nimmt eine Fläche von 0,0256 mm2 ein und verbraucht 0,24 mW, sodass der Einsatz des SAR-ADW nach dem Stand der Technik zu einer Gesamtfläche von 104 mm2 und einer Gesamtleistung von 1 W für eine Anordnung von 4096 ADW führt. Diese Fläche ist viel größer als die RPU-Anordnung selbst, und daher ist es sinnvoll, die ADW zwischen verschiedenen Spalten (oder Zeilen) einem Zeitmultiplexverfahren zu unterziehen, indem man die Abtastrate erhöht und gleichzeitig die Gesamtleistung unverändert lässt. Angenommen, jeder ADW wird von 64 Spalten (oder Zeilen) geteilt, kann die gesamte ADW-Fläche auf 1,64 mm2 verringert werden, wobei jeder ADW mit etwa 800 MAbtastungen/s arbeitet. Da die Experimentatoren davon ausgehen, dass Anordnungen von RPU-Einheiten auf den Zwischenmetallebenen aufgebaut sind, die sich auf peripheren CMOS-Schaltungen befinden, wird die gesamte Kachelfläche durch die Fläche der RPU-Anordnung von 2,68 mm2 definiert, was für andere Schaltungen etwa 1,0 mm2 übrig lässt (die auch flächenoptimiert sein können). So kann beispielsweise die Anzahl der Zufallszahlengeneratoren, die zur Umwandlung von Binärdaten in stochastische Bitströme verwendet werden, auf nur 2 deutlich verringert werden, da keine Operationen an Strömen durchgeführt werden, die innerhalb von Spalten (oder Zeilen) erzeugt werden; dies zeigt sich daran, dass keine zusätzliche Fehlerstrafe für einen entsprechenden Klassifizierungstest (Daten nicht dargestellt) vorhanden ist. Die Gesamtfläche einer einzelnen Kachel beträgt somit 2,68 mm2, während die Gesamtverlustleistung von sowohl RPU-Anordnungen als auch von allen peripheren Schaltungen (d.h. ADW, Operationsverstärker, STR) auf 2,0 W geschätzt werden kann, wobei davon ausgegangen wird, dass 0,7 W für Operationsverstärker und STRs vorbehalten sind. Die Anzahl der Gewichtungsaktualisierungen pro Sekunde auf einer einzelnen Kachel (RPU-Kachel) kann aufgrund der Dauer des Aktualisierungszyklus von 20 ns und der Größe der RPU-Anordnung von 4096 × 4096 auf 839 TeraAktualisierungen/s geschätzt werden. Dies entspricht einem Leistungswirkungsgrad von 419 TeraAktualisierungen/s/W und einem Flächenwirkungsgrad von 319 TeraAktualisierungen/s/mm2. Der Kacheldurchsatz während des Vorwärtszyklus und des Rückwärtszyklus kann auf 419 TeraOper/s bei 80 ns für den Vorwärtszyklus (oder Rückwärtszyklus) mit einem Leistungs- und Flächenwirkungsgrad von 210 TeraOper/s/W bzw. 156 TeraOper/s/mm2 geschätzt werden. Diese Wirkungsgrade sind etwa 5 Größenordnungen (105) besser als CPU- und GPU-Leistungsmaßzahlen nach dem Stand der Technik. Die für eine einzelne RPU-Kachel erreichten Leistungs- und Flächenwirkungsgrade können sich verschlechtern, wenn mehrere Kacheln als Ein-Chip-System (System-on-Chip) integriert werden. Wie in 5C dargestellt, sollten zusätzliche Leistung und Fläche für programmierbare NLF-Schaltungen, On-Chip-Datenübertragung über einen kohärenten Bus oder ein Netzwerk auf einem Chip (NoC), Off-Chip-E/A-Schaltungen usw. vorgesehen werden. Eine Erhöhung der Anzahl der RPU-Kacheln auf einem Chip könnte zunächst zu einer Beschleunigung des gesamten Chip-Durchsatzes führen, würde aber schließlich eine Saturation zur Folge haben, da die RPU-Kachel von Leistung, Fläche, Datenübertragungsbandbreite und/oder Rechenressourcen beschränkt wird. Eine CPU oder GPU mit hoher Leistung nach dem Stand der Technik kann als Referenz für die Schätzung der maximalen Fläche von 600 mm2 und Leistung von 250 W auf einem einzelnen Chip herangezogen werden. Während Leistung und Fläche pro Kachel nicht ausschlaggebend sind, um die Anzahl der Kacheln von 50 auf 100 zu erhöhen, könnten die Datenübertragungsbandbreite und die Rechenressourcen, die für die Wirksamkeit eines Systems erforderlich sind, ein Problem darstellen. Die Datenübertragungsbandbreite für eine einzelne RPU-Kachel kann geschätzt werden, indem man von einem 5-Bit-Eingang und 9-Bit-Ausgang pro Spalte (oder Zeile) für Vorwärtszyklus (oder Rückwärtszyklus) ausgeht, die insgesamt etwa unidirektionale Bandbreiten von 90 GB/s ergeben, und diese unidirektionalen Bandbreiten von 90 GB/s erfüllen auch die Datenübertragungsanforderungen des Aktualisierungszyklus. Diese Zahl ist etwa dreimal geringer als die Datenübertragungsbandbreite in der CPU nach dem Stand der Technik zwischen einem einzelnen Kern und einem nahegelegenen L2-Zwischenspeicher. Ein On-Chip-Bus ((über drei TB/s) oder NoC (2,5 TB/s)) nach dem Stand der Technik kann eine ausreichende Datenübertragungsbandbreite zwischen entfernten Kacheln (z.B. RPU-Kacheln) bereitstellen. Für Rechenressourcen, die benötigt werden, um die Zeitkomplexität O(1) für eine einzelne RPU-Kachel aufrechtzuerhalten, können 51 GigaOper/s geschätzt werden, wobei von einer Zykluszeit von 80 ns und 4096 in Spalten oder Zeilen erzeugte Zahlen ausgegangen wird. Um eine parallele Funktionsweise von n RPU-Kacheln zu unterstützen, müssen die Rechenressourcen um O(n) skaliert werden, wodurch die Anzahl von RPU-Kacheln, die zu einem bestimmten Zeitpunkt aktiv sein können, begrenzt wird, um die Gesamtleistung auf einem Chip unter 250 W zu halten. Ein einzelner Kern einer CPU nach dem Stand der Technik kann beispielsweise etwa 50 GigaFLOP/s erreichen, und das könnte ausreichen, um eine RPU-Kachel zu unterstützen. Die maximale Leistung wird jedoch nur für 12 RPU-Kacheln bei 20 W pro Kern erreicht. Der entsprechende Leistungswirkungsgrad für diesen Entwurfspunkt beträgt 20 TeraOper/s/W, wie im Entwurf 1 in Tabelle 1 von 6 dargestellt. In 6 stellt Tabelle 1 eine Zusammenfassung eines Vergleichs verschiedener RPU-Systementwürfe mit einer CPU oder GPU nach dem Stand der Technik dar. Die gleichen Rechenressourcen können durch 32 Kerne einer GPU nach dem Stand der Technik bereitgestellt werden, jedoch mit einem besseren Leistungswirkungsgrad, sodass bis zu 50 Kacheln parallel arbeiten können. Der entsprechende Leistungswirkungsgrad für diesen Entwurf beträgt 84 TeraOper/s/W, wie im Entwurf 2 in Tabelle 1 dargestellt. Eine weitere Erhöhung der Anzahl der RPU-Kacheln, die gleichzeitig in Betrieb sein können, ist durch die Entwicklung spezieller digitaler Schaltungen mit Leistungs- und Flächenwirkungsgrad vorstellbar, die mit Festkommazahlen mit begrenzter Bitauflösung arbeiten. Ein alternativer Entwurf kann auf nur wenigen Rechenkernen beruhen, die die Kacheldaten sequenziell verarbeiten können, um eine größere Anzahl von Kacheln für größere Netzgrößen anzupassen, wie in Entwurf 3 in Tabelle 1 dargestellt. So ist beispielsweise ein Chip mit 100 RPU-Kacheln und einem einzelnen Rechenkern von 50 GigaOper/s in der Lage, Netze mit bis zu 1,6 Milliarden Gewichtungen zu bewältigen und nur etwa 22 W zu verbrauchen, wobei von einem Verbrauch von 20 W vom Rechenkern und Datenübertragungsbus und einem Verbrauch von nur 2 W für RPU-Kacheln ausgegangen wird, da immer nur eine aktiv ist. Dies ergibt einen Leistungswirkungsgrad von 20 TeraOper/s/W, was vier Größenordnungen (104 ) besser ist als bei CPUs und GPUs nach dem Stand der Technik.
  • Wie zu erkennen ist, stellen eine oder mehrere Ausführungsformen Konfigurationen für RPU-Einheiten bereit, die Daten gleichzeitig lokal und parallel speichern und verarbeiten können, was zu einer erheblichen Beschleunigung des DNN-Trainings führt. Die Toleranz des Trainingsalgorithmus gegenüber verschiedenen RPU-Einheiten und Systemparametern sowie technologischen Mängeln und unterschiedlichen Rauschquellen wurde beschrieben. Diese Analyse hat es den Experimentatoren ermöglicht, eine Liste von Spezifikationen für RPU-Einheiten zu definieren, die in Tabelle 2 von 7 zusammengefasst sind. In 7 stellt Tabelle 2 eine Zusammenfassung der Spezifikationen von RPU-Einheiten gemäß einer oder mehreren Ausführungsformen dar. Aktuelle Wettbewerber für RPU-Einheiten, die auf bestehenden NVM-Technologien beruhen, erfüllen möglicherweise nicht unbedingt alle Kriterien gleichzeitig. Die Ergebnisse von Tabelle 2 können jedoch als Leitfaden für eine systematische Suche nach physikalischen Mechanismen, Materialien und Entwürfen für Einheiten dienen, um Konzepte für RPU-Einheiten mit geeigneter CMOS-kompatibler Technologie umzusetzen.
  • Die Experimentatoren haben eine Analyse verschiedener Systementwürfe vorgestellt, die auf der Konfiguration der RPU-Anordnung beruhen, die eine Beschleunigung des Trainings tiefer neuronaler Netze um viele Größenordnungen (103 , 104 , 105 und/oder 106 ) bereitstellen kann, während gleichzeitig die erforderlichen Ressourcen für Leistung und Computerhardware deutlich reduziert werden. Die Ergebnisse sind in Tabelle 1 zusammengefasst. Diese Analyse zeigt, dass (abhängig von der Netzgröße) verschiedene Entwurfsentscheidungen für den RPU-Beschleunigerchip getroffen werden können, wo Leistungsaspekte gegenüber dem Beschleunigungsfaktor abgewogen werden.
  • Gemäß Ausführungsformen ist der beschriebene Entwurf des Beschleunigerchips von 5C flexibel und kann verschiedene Arten von DNN-Architekturen über vollständig verbundene Schichten hinaus mit ähnlichen Beschleunigungsfaktoren einbinden. Beispielsweise können Faltungsschichten auch analog auf eine RPU-Anordnung abgebildet werden, und ein Fachmann weiß, was Faltungsschichten sind. In diesem Fall muss eine Anordnung anstelle einer Vektor-Matrix-Multiplikation für den Vorwärtszyklus und den Rückwärtszyklus eine Matrix-Matrix-Multiplikation durchführen, die durch serielles Zuführen der Spalten der Eingangsmatrix in die Spalten der RPU-Anordnung erreicht werden kann. Darüber hinaus müssen periphere NLF-Schaltungen neu programmiert werden, um nicht nur ein Berechnen von Aktivierungsfunktionen, sondern auch Max-Pooling und Unterabtasten (sub-sampling) durchzuführen. Die erforderliche Konnektivität zwischen den Schichten kann dadurch erreicht werden, dass Kacheladressen in einem Netz neu programmiert werden. Der Aktualisierungszyklus für eine Faltungsschicht kann es erforderlich machen, dass das Produkt aus zwei Matrizen berechnet wird, die während des Vorwärtszyklus und des Rückwärtszyklus verwendet werden. Dies kann erreicht werden, indem die Spalten der Eingangsmatrix und die Spalten der Fehlermatrix der RPU-Anordnung gleichzeitig seriell zugeführt werden. Während des Aktualisierungszyklus führt jede RPU-Einheit eine Reihe von lokalen Multiplikations- und Additionsoperationen durch, sodass jede RPU-Einheit das Produkt der beiden Matrizen während des Aktualisierungsvorgangs berechnet. Es wird darauf hingewiesen, dass alle drei Zyklen (z.B. Vorwärtszyklus, Rückwärtszyklus und Aktualisierungszyklus) in der RPU-Anordnung sowohl für Faltungsschichten als auch für vollständig verbundene Schichten ähnlich sind und keine Neuprogrammierung erfordern. Tatsächlich kann eine Faltungsschicht als vollständig verbundene Schicht mit einer Ministapelgröße größer als eins betrachtet werden. Der Durchsatz eines RPU-Beschleunigerchips ist unabhängig von der DNN-Architektur und der Ministapelgröße, sodass der RPU-Beschleunigerchip ähnliche Beschleunigungsfaktoren für ähnliche Größen von RPU-Anordnungen erreicht. Die Spezifikationen für RPU-Einheiten und -Systeme sollten jedoch für verschiedene DNN-Architekturen und -Datensätze mit dem hierin beschriebenen Ansatz überarbeitet werden. Die meisten der aktuellen DNN-Architekturen beruhen auf einer Kombination aus vielen Faltungsschichten und vollständig verbundenen Schichten mit einer Reihe von Parametern in der Größenordnung von einer Milliarde. Die Analyse zeigt, dass ein einzelner RPU-Beschleunigerchip verwendet werden kann, um DNN dieser Größe zu trainieren. Probleme in Verbindung mit der Größe der ImageNet-Klassifizierung, für deren Lösung derzeit tagelange Trainings auf mehreren GPUs erforderlich sind, können auf einem einzelnen RPU-Beschleunigerchip gemäß einer oder mehreren Ausführungsformen in weniger als einer Minute gelöst werden.
  • Die 10A und 10B stellen Schaubilder von Trainingsergebnissen mit Hysterese (für die RPU-Einheiten) gemäß einer oder mehreren Ausführungsformen dar. Wie vorstehend erwähnt, entspricht 1 Trainingsepoche 60.000 Trainingsbildern. 10A veranschaulicht die Prozentzahl des Testfehlers im Vergleich zur Trainingsepoche für RPU-Einheiten mit einem Ungleichgewicht von 100 %. Ein Beispiel für eine Einheit mit einem Ungleichgewicht von 100 % besteht darin, dass die Leitwertänderung in positive Richtungen (Δg+ min) um den Faktor 2 größer ist (d.h. 2 Mal) als die Änderung in negativer Richtung (Δg- min) oder umgekehrt. 10A dagegen zeigt die Vergleichskurven für keine Hysterese gegenüber mit Hysterese hn von 2, 4, 8, 16 und 32 Impulsen. 10A veranschaulicht auch eine Kurve (als Kreise) für die Gleitkommazahl-Basislinie (GK-Basislinie), die die höchste Genauigkeit und den niedrigsten Testfehler darstellt (z.B. bedeutet ein Testfehler von 2 %, dass die RPU-Einheit in 98 % der Zeit das richtige Ergebnis erreicht). Die hysteretischen RPU-Einheiten können mithilfe der Hysterese hn = 32 Impulse auch bei einem Ungleichgewicht der Einheiten von 100 % gemäß einer oder mehreren Ausführungsformen einen Testfehler von ca. 2 % erreichen. Es ist zu beachten, dass die Hysterese einer RPU-Einheit gleich bleibt (z.B. bei hn = 32 Impulsen), und die Beispiele in den 10A und 10B stellen RPU-Einheiten mit unterschiedlicher Hysterese dar. Die Hysterese ist eine Funktion der physischen Struktur der RPU-Einheit, und bei jeder der beschriebenen RPU-Einheiten kann es sich um eine hysteretische RPU-Einheit gemäß den Ausführungsformen handeln. Hysteretische Einheiten können häufig hergestellt werden, da hysteresefreie Einheiten schwieriger zu erzielen sind. Mechanismen wie Ladungsdiffusion oder Domänenwandbewegung für magnetische Einheiten sind in der Regel hysteretisch. Auch die meisten memristiven Einheiten sind (im Allgemeinen) hysteretisch.
  • 10B veranschaulicht auf ähnliche Weise die Prozentzahl des Testfehlers im Vergleich zur Trainingsepoche für RPU-Einheiten mit einem Ungleichgewicht von 60 %. 10A dagegen zeigt die Vergleichskurven für keine Hysterese gegenüber mit Hysterese hn von 2, 4, 8, 16 Impulsen. 10A veranschaulicht auch eine Kurve (als Kreise) für die Gleitkommazahl-Basislinie, die die höchste Genauigkeit und den niedrigsten Testfehler darstellt (z.B. bedeutet ein Testfehler von 2 %, dass die RPU-Einheit in 98 % der Zeit das richtige Ergebnis erreicht). Die hysteretischen RPU-Einheiten können mithilfe der Hysterese hn = 16 Impulse auch bei einem Ungleichgewicht der Einheiten von 60 % einen Testfehler von ca. 2 % erreichen. Mit einem niedrigeren Ungleichgewicht für die RPU-Einheit kann 10B den Testfehler von 2 % mit einer niedrigeren Hysterese hn als in 10A (ungefähr) erreichen.
  • 11 ist ein Schaubild, das die Testfehlerrate in der 30. Epoche im Vergleich zu einer RPU-Einheit mit Hysterese für ein Ungleichgewicht von 60 % und ein Ungleichgewicht von 100 % gemäß einer oder mehreren Ausführungsformen veranschaulicht.
  • 12 ist ein Schaubild, das veranschaulicht, dass die Hysterese den Ungleichgewichtsfaktor gemäß einer oder mehreren Ausführungsformen wieder normalisiert (d.h. ins Gleichgewicht bringt). Der Ungleichgewichtsfaktor ist r, und Δ w m i n + Δ w m i n = 1 ± r  ist gleich Δ g m i n + Δ g m i n = 1 ± r .
    Figure DE112018000272T5_0038
    Wenn der Ungleichgewichtsfaktor r allein ohne Hysterese-Term (d.h. hn = 0) eingeführt wird, wird der annehmbare Schwellenwert von etwa 5 % mit einer Testfehlerrate von etwa 2,3 % abgeleitet. Wenn jedoch wie in 12 ein Hysterese-Term ungleich null eingeführt wird, normalisiert dieser Hysterese-Term den Ungleichgewichtsfaktor wieder. Wenn das Training des neuronalen Netzes mit unterschiedlichen Ungleichgewichts- und Hysterese-Termen durchgeführt wird, ist zu beobachten, dass der wieder normalisierte Ungleichgewichtsterm r/(hn +1) verwendet werden kann, um die Leistung des Netztrainings vorherzusagen. Die Beschriftungen für jeden Datenpunkt in 12 zeigen, dass der verwendete Ungleichgewichtswert (r) für den entsprechenden Datenpunkt verwendet wird, und es ist klar, dass die wieder normalisierte Asymmetrie r/(hn +1) der maßgebliche Parameter ist, der die Trainingsergebnisse steuert.
  • 13 ist ein Ablaufplan 1300 eines Verfahrens zum Bilden einer Anordnung von resistiven Verarbeitungseinheiten (RPUs) (wie die RPU-Anordnung 1500 in 15) gemäß einer oder mehreren Ausführungsformen. Die RPU-Anordnung 1500 wird zu Erklärungszwecken bereitgestellt. Es kann Bezug auf die 1 bis 12, 14, 15 und 16 genommen werden.
  • Bei Block 1302 wird ein Satz von leitfähigen Zeilendrähten 1502A bis N bereitgestellt. Bei Block 1304 ist ein Satz von leitfähigen Spaltendrähten 1504A bis N so konfiguriert, dass er eine Mehrzahl von Kreuzpunkten an Schnittpunkten zwischen dem Satz von leitfähigen Zeilendrähten 1502A bis N und dem Satz von leitfähigen Spaltendrähten 1504A bis N bildet. Bei Block 1306 wird eine Mehrzahl von RPUs 1550 mit zwei Anschlüssen bereitgestellt, die so hysteretisch sind, dass die Mehrzahl von RPUs 1550 mit zwei Anschlüssen jeweils einen durch Hysterese definierten Leitwertzustand aufweisen, wobei sich eine RPU 1550 mit zwei Anschlüssen der Mehrzahl von RPUs 1550 mit zwei Anschlüssen an jedem der Mehrzahl von Knotenpunkten befindet.
  • Die Hysterese der Mehrzahl von RPUs 1550 mit zwei Anschlüssen ist so konfiguriert, dass sie eine Änderung des Leitwertzustandes bewirkt, um eine Verzögerung für eine zuvor festgelegte Anzahl von Impulsen aufzuweisen. Bei der zuvor festgelegten Anzahl von Impulsen (d.h. der Hysterese hn ) handelt es sich um eine Anzahl von Aktualisierungszyklusimpulsen. Die Aktualisierungsimpulse (des Rückwärtspropagierungsalgorithmus) sind so konfiguriert, dass sie sowohl auf den Satz von leitfähigen Zeilendrähten 1502A bis N als auch auf den Satz von leitfähigen Spaltendrähten 1504A bis N (gleichzeitig oder fast gleichzeitig) angelegt werden. Die Änderung des Leitwertzustandes ist als Umschalten des Leitwertzustandes von einer ersten Richtung in eine zweite Richtung oder Umschalten des Leitwertzustands von der zweiten Richtung in die erste Richtung definiert.
  • Die Verzögerung (d.h. Hysterese) ist für das Umschalten des Leitwertzustandes von der ersten Richtung in die zweite Richtung und für das Umschalten des Leitwertzustandes von der zweiten Richtung in die erste Richtung gleich. Die Aktualisierungsimpulse schalten zwischen einem positiven Impuls und einem negativen Impuls um. Der positive Impuls bewirkt die erste Richtung des Leitwertzustandes, und der negative Impuls bewirkt die zweite Richtung des Leitwertzustandes.
  • Die Mehrzahl der RPUs 1550 mit zwei Anschlüssen sind ungleichgewichtige Einheiten mit einem Ungleichgewicht im Leitwertzustand zwischen Flanken der ersten Richtung und der zweiten Richtung. Die Hysterese bei der Mehrzahl der RPUs 1550 mit zwei Anschlüssen verringert das Ungleichgewicht.
  • 14 ist ein Ablaufplan 1400 eines Verfahrens für eine Hysterese-Operation gemäß einer oder mehreren Ausführungsformen. Es kann Bezug auf die 1 bis 13, 15 und 16 genommen werden. Bei Block 1402 werden Aktualisierungsimpulse (von einer oder mehreren Spannungsquellen) von mindestens einer hysteretischen resistiven Verarbeitungseinheit (RPU) 1550 empfangen. Bei Block 1404 weist die mindestens eine hysteretische RPU 1550 eine Änderung des Leitwertzustandes als Reaktion auf Aktualisierungsimpulse auf, wobei die Änderung des Leitwertzustands eine Verzögerung für eine zuvor festgelegte Anzahl von Aktualisierungsimpulsen (d.h. die Hysterese hn ) nach sich zieht.
  • Zu den technischen Vorteilen gehören resistive Verarbeitungseinheiten mit hysteretischen Aktualisierungen für das Training neuronaler Netze. Die hysteretischen resistiven Verarbeitungseinheiten erhöhen die Toleranz, indem sie Hysterese-Aktualisierungen in resistiven Verarbeitungseinheiten einführen, um das durch Asymmetrie verursachte Ungleichgewicht in der resistiven Verarbeitungseinheit zu korrigieren und dadurch das Ungleichgewicht (Ungleichheit) in den Leitwertänderungen der resistiven Verarbeitungseinheit nach oben und unten zu korrigieren.
  • Die Beschreibungen der verschiedenen Ausführungsformen der vorliegenden Erfindung wurden zum Zwecke der Veranschaulichung vorgestellt, sollen jedoch nicht erschöpfend oder auf die Ausführungsformen beschränkt sein. Für Fachleute ist offensichtlich, dass viele Änderungen und Abwandlungen möglich sind, ohne vom Anwendungsbereich und Erfindungsgedanken der beschriebenen Ausführungsformen abzuweichen. Die hier verwendete Terminologie wurde gewählt, um die Grundgedanken der Ausführungsformen, die praktische Anwendung oder technische Verbesserung gegenüber Technologien auf dem Markt bestmöglich zu erläutern oder es Fachleuten zu ermöglichen, die hier beschriebenen Ausführungsformen zu verstehen.
  • Bei der vorliegenden Erfindung kann es sich um ein System, ein Verfahren und/oder ein Computerprogrammprodukt auf jedem möglichen technischen Detaillierungsgrad der Integration handeln. Das Computerprogrammprodukt kann (ein) durch einen Computer lesbare(s) Speichermedium (oder -medien) beinhalten, auf dem/denen durch einen Computer lesbare Programmanweisungen gespeichert ist/sind, um einen Prozessor dazu zu veranlassen, Aspekte der vorliegenden Erfindung auszuführen.
  • Bei dem durch einen Computer lesbaren Speichermedium kann es sich um eine physische Einheit handeln, die Anweisungen zur Verwendung durch eine Einheit zur Ausführung von Anweisungen behalten und speichern kann. Bei dem durch einen Computer lesbaren Speichermedium kann es sich zum Beispiel um eine elektronische Speichereinheit, eine magnetische Speichereinheit, eine optische Speichereinheit, eine elektromagnetische Speichereinheit, eine Halbleiterspeichereinheit oder jede geeignete Kombination daraus handeln, ohne auf diese beschränkt zu sein. Zu einer nicht erschöpfenden Liste spezifischerer Beispiele des durch einen Computer lesbaren Speichermediums gehören die Folgenden: eine tragbare Computerdiskette, eine Festplatte, ein Direktzugriffsspeicher (RAM), ein Nur-Lese-Speicher (ROM), ein löschbarer programmierbarer Nur-Lese-Speicher (EPROM bzw. Flash-Speicher), ein statischer Direktzugriffsspeicher (SRAM), ein tragbarer Kompaktspeicherplatte-Nur-Lese-Speicher (CD-ROM), eine DVD (digital versatile disc), ein Speicher-Stick, eine Diskette, eine mechanisch codierte Einheit wie zum Beispiel Lochkarten oder gehobene Strukturen in einer Rille, auf denen Anweisungen gespeichert sind, und jede geeignete Kombination daraus. Ein durch einen Computer lesbares Speichermedium soll in der Verwendung hierin nicht als flüchtige Signale an sich aufgefasst werden, wie zum Beispiel Funkwellen oder andere sich frei ausbreitende elektromagnetische Wellen, elektromagnetische Wellen, die sich durch einen Wellenleiter oder ein anderes Übertragungsmedium ausbreiten (z.B. ein Lichtwellenleiterkabel durchlaufende Lichtimpulse) oder durch einen Draht übertragene elektrische Signale.
  • Hierin beschriebene, durch einen Computer lesbare Programmanweisungen können von einem durch einen Computer lesbaren Speichermedium auf jeweilige Datenverarbeitungs-/Verarbeitungseinheiten oder über ein Netzwerk wie zum Beispiel das Internet, ein lokales Netzwerk, ein Weitverkehrsnetz und/oder ein drahtloses Netzwerk auf einen externen Computer oder eine externe Speichereinheit heruntergeladen werden. Das Netzwerk kann Kupferübertragungskabel, Lichtwellenübertragungsleiter, drahtlose Übertragung, Leitwegrechner, Firewalls, Vermittlungseinheiten, Gateway-Computer und/oder Edge-Server aufweisen. Eine Netzwerkadapterkarte oder Netzwerkschnittstelle in jeder 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 entsprechenden Datenverarbeitungs-/Verarbeitungseinheit weiter.
  • Bei durch einen Computer lesbaren Programmanweisungen zum Ausführen von Arbeitsschritten der vorliegenden Erfindung kann es sich um Assembler-Anweisungen, ISA-Anweisungen (Instruction-Set-Architecture), Maschinenanweisungen, maschinenabhängige Anweisungen, Mikrocode, Firmware-Anweisungen, zustandssetzende Daten, Konfigurationsdaten für integrierte Schaltungen oder entweder Quellcode oder Objektcode handeln, die in einer beliebigen Kombination aus einer oder mehreren Programmiersprachen geschrieben werden, darunter objektorientierte Programmiersprachen wie Smalltalk, C++ o. ä. sowie prozedurale Programmiersprachen wie die Programmiersprache „C“ oder ähnliche Programmiersprachen. Die durch einen Computer lesbaren Programmanweisungen können vollständig auf dem Computer des Benutzers, teilweise auf dem Computer des Benutzers, als eigenständiges Software-Paket, 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. In letzterem Fall kann der entfernt angeordnete Computer mit dem Computer des Benutzers durch eine beliebige Art Netzwerk verbunden sein, darunter ein lokales Netzwerk (LAN) oder ein Weitverkehrsnetz (WAN), oder die Verbindung kann mit einem externen Computer hergestellt werden (zum Beispiel über das Internet unter Verwendung eines Internet-Dienstanbieters). In einigen Ausführungsformen können elektronische Schaltungen, darunter zum Beispiel programmierbare Logikschaltungen, vor Ort programmierbare Gatter-Anordnungen (FPGA, field programmable gate arrays) oder programmierbare Logikanordnungen (PLA, programmable logic arrays) die durch einen Computer lesbaren Programmanweisungen ausführen, indem sie Zustandsinformationen der durch einen Computer lesbaren Programmanweisungen nutzen, um die elektronischen Schaltungen zu personalisieren, um Aspekte der vorliegenden Erfindung durchzuführen.
  • Aspekte der vorliegenden Erfindung sind hierin unter Bezugnahme auf Ablaufpläne und/oder Blockschaltbilder bzw. Schaubilder von Verfahren, Vorrichtungen (Systemen) und Computerprogrammprodukten gemäß Ausführungsformen der Erfindung beschrieben. Es wird darauf hingewiesen, dass jeder Block der Ablaufpläne und/oder der Blockschaltbilder bzw. Schaubilder sowie Kombinationen von Blöcken in den Ablaufplänen und/oder den Blockschaltbildern bzw. Schaubildern mittels durch einen Computer lesbare Programmanweisungen ausgeführt werden können.
  • Diese durch einen Computer lesbaren Programmanweisungen können einem Prozessor eines Universalcomputers, eines Spezialcomputers oder einer anderen programmierbaren Datenverarbeitungsvorrichtung bereitgestellt werden, um eine Maschine zu erzeugen, sodass die über den Prozessor des Computers bzw. der anderen programmierbaren Datenverarbeitungsvorrichtung ausgeführten Anweisungen ein Mittel zur Umsetzung der in dem Block bzw. den Blöcken der Ablaufpläne und/oder der Blockschaltbilder bzw. Schaubilder festgelegten Funktionen/Schritte erzeugen. Diese durch einen Computer lesbaren Programmanweisungen können auch auf einem durch einen Computer lesbaren Speichermedium gespeichert sein, das einen Computer, eine programmierbare Datenverarbeitungsvorrichtung und/oder andere Einheiten so steuern kann, dass sie auf eine bestimmte Art funktionieren, sodass das durch einen Computer lesbare Speichermedium, auf dem Anweisungen gespeichert sind, einen Herstellungsartikel aufweist, darunter Anweisungen, welche Aspekte der/des in dem Block bzw. den Blöcken des Ablaufplans und/oder der Blockschaltbilder bzw. Schaubilder angegebenen Funktion/Schritts umsetzen.
  • Die durch einen Computer lesbaren Programmanweisungen können auch auf einen Computer, eine andere programmierbare Datenverarbeitungsvorrichtung oder eine andere Einheit geladen werden, um das Ausführen einer Reihe von Prozessschritten auf dem Computer bzw. der anderen programmierbaren Vorrichtung oder anderen Einheit zu verursachen, um einen auf einem Computer ausgeführten Prozess zu erzeugen, sodass die auf dem Computer, einer anderen programmierbaren Vorrichtung oder einer anderen Einheit ausgeführten Anweisungen die in dem Block bzw. den Blöcken der Ablaufpläne und/oder der Blockschaltbilder bzw. Schaubilder festgelegten Funktionen/Schritte umsetzen.
  • Die Ablaufpläne und die Blockschaltbilder bzw. Schaubilder in den Figuren veranschaulichen die Architektur, die Funktionalität und den Betrieb möglicher Ausführungen von Systemen, Verfahren und Computerprogrammprodukten gemäß verschiedenen Ausführungsformen der vorliegenden Erfindung. In diesem Zusammenhang kann jeder Block in den Ablaufplänen oder Blockschaltbildern bzw. Schaubildern ein Modul, ein Segment oder einen Teil von Anweisungen darstellen, die eine oder mehrere ausführbare Anweisungen zur Ausführung der bestimmten logischen Funktion(en) aufweisen. In einigen alternativen Ausführungen können die in dem Block angegebenen Funktionen in einer anderen Reihenfolge als in den Figuren gezeigt stattfinden. Zwei nacheinander gezeigte Blöcke können zum Beispiel in Wirklichkeit im Wesentlichen gleichzeitig ausgeführt werden, oder die Blöcke können manchmal je nach entsprechender Funktionalität in umgekehrter Reihenfolge ausgeführt werden. Es ist ferner anzumerken, dass jeder Block der Blockschaltbilder bzw. Schaubilder und/oder der Ablaufpläne sowie Kombinationen aus Blöcken in den Blockschaltbildern bzw. Schaubildern und/oder den Ablaufplänen durch spezielle auf Hardware beruhende Systeme umgesetzt werden können, welche die festgelegten Funktionen oder Schritte durchführen, oder Kombinationen aus Spezial-Hardware und Computeranweisungen ausführen.
  • ZITATE ENTHALTEN IN DER BESCHREIBUNG
  • Diese Liste der vom Anmelder aufgeführten Dokumente wurde automatisiert erzeugt und ist ausschließlich zur besseren Information des Lesers aufgenommen. Die Liste ist nicht Bestandteil der deutschen Patent- bzw. Gebrauchsmusteranmeldung. Das DPMA übernimmt keinerlei Haftung für etwaige Fehler oder Auslassungen.
  • Zitierte Nicht-Patentliteratur
    • Rumelhart, D. E., Hinton, G. E. und Williams, R. J. (1986) [0023]

Claims (20)

  1. Anordnung von resistiven Verarbeitungseinheiten (RPUs), die aufweist: einen Satz von leitfähigen Zeilendrähten; einen Satz von leitfähigen Spaltendrähten, die so konfiguriert sind, dass sie eine Mehrzahl von Kreuzungspunkten an Schnittpunkten zwischen dem Satz von leitfähigen Zeilendrähten und dem Satz von leitfähigen Spaltendrähten bilden; und eine Mehrzahl von RPUs mit zwei Anschlüssen, die so hysteretisch ist, dass die Mehrzahl von RPUs mit zwei Anschlüssen jeweils einen durch Hysterese definierten Leitwertzustand aufweist, wobei sich eine RPU mit zwei Anschlüssen der Mehrzahl von RPUs mit zwei Anschlüssen an jedem der Mehrzahl von Kreuzungspunkten befindet.
  2. RPU-Anordnung nach Anspruch 1, wobei die Hysterese der Mehrzahl von RPUs mit zwei Anschlüssen so konfiguriert ist, dass sie eine Änderung des Leitwertzustandes bewirkt, um eine Verzögerung für eine zuvor festgelegte Anzahl von Impulsen aufzuweisen.
  3. RPU-Anordnung nach Anspruch 2, wobei es sich bei der zuvor festgelegten Anzahl von Impulsen um eine Anzahl von Aktualisierungsimpulsen handelt.
  4. RPU-Anordnung nach Anspruch 3, wobei die Aktualisierungsimpulse so konfiguriert sind, dass sie sowohl an den Satz von leitfähigen Zeilendrähten als auch an den Satz von leitfähigen Spaltendrähten angelegt werden.
  5. RPU-Anordnung nach Anspruch 2, wobei die Änderung des Leitwertzustandes als Umschalten des Leitwertzustands von einer ersten Richtung in eine zweite Richtung oder Umschalten des Leitwertzustands von der zweiten Richtung in die erste Richtung definiert ist.
  6. RPU-Anordnung nach Anspruch 5, wobei die Verzögerung für das Umschalten des Leitwertzustandes von der ersten Richtung in die zweite Richtung und für das Umschalten des Leitwertzustandes von der zweiten Richtung in die erste Richtung gleich ist.
  7. RPU-Anordnung nach Anspruch 5, wobei die Aktualisierungsimpulse von einem positiven Impuls und zu einem negativen Impuls umschalten.
  8. RPU-Anordnung nach Anspruch 7, wobei der positive Impuls die erste Richtung des Leitwertzustandes bewirkt und der negative Impuls die zweite Richtung des Leitwertzustandes bewirkt.
  9. RPU-Anordnung nach Anspruch 1, wobei: die Mehrzahl der RPUs mit zwei Anschlüssen ungleichgewichtige Einheiten mit einem Ungleichgewicht im Leitwertzustand zwischen Flanken einer ersten Richtung und einer zweiten Richtung sind; und die Hysterese bei der Mehrzahl der RPUs mit zwei Anschlüssen das Ungleichgewicht verringert.
  10. Verfahren zum Bilden einer Anordnung von resistiven Verarbeitungseinheiten (RPUs), wobei das Verfahren aufweist: Bereitstellen eines Satzes von leitfähigen Zeilendrähten; Bereitstellen eines Satzes von leitfähigen Spaltendrähten, die so konfiguriert sind, dass sie eine Mehrzahl von Kreuzungspunkten an Schnittpunkten zwischen dem Satz von leitfähigen Zeilendrähten und dem Satz von leitfähigen Spaltendrähten bilden; und Bereitstellen einer Mehrzahl von RPUs mit zwei Anschlüssen, die so hysteretisch ist, dass die Mehrzahl von RPUs mit zwei Anschlüssen jeweils einen durch Hysterese definierten Leitwertzustand aufweist, wobei sich eine RPU mit zwei Anschlüssen der Mehrzahl von RPUs mit zwei Anschlüssen an jedem der Mehrzahl von Kreuzungspunkten befindet.
  11. Verfahren nach Anspruch 10, wobei die Hysterese der Mehrzahl von RPUs mit zwei Anschlüssen so konfiguriert ist, dass sie eine Änderung des Leitwertzustandes bewirkt, um eine Verzögerung für eine zuvor festgelegte Anzahl von Impulsen aufzuweisen.
  12. Verfahren nach Anspruch 11, wobei es sich bei der zuvor festgelegten Anzahl von Impulsen um eine Anzahl von Aktualisierungsimpulsen handelt.
  13. Verfahren nach Anspruch 12, wobei die Aktualisierungsimpulse so konfiguriert sind, dass sie sowohl an den Satz von leitfähigen Zeilendrähten als auch an den Satz von leitfähigen Spaltendrähten angelegt werden.
  14. Verfahren nach Anspruch 11, wobei die Änderung des Leitwertzustandes als Umschalten des Leitwertzustands von einer ersten Richtung in eine zweite Richtung oder Umschalten des Leitwertzustands von der zweiten Richtung in die erste Richtung definiert ist.
  15. Verfahren nach Anspruch 14, wobei die Verzögerung für das Umschalten des Leitwertzustandes von der ersten Richtung in die zweite Richtung und für das Umschalten des Leitwertzustandes von der zweiten Richtung in die erste Richtung gleich ist.
  16. Verfahren nach Anspruch 14, wobei die Aktualisierungsimpulse von einem positiven Impuls zu einem negativen Impuls umschalten.
  17. Verfahren nach Anspruch 16, wobei der positive Impuls die erste Richtung des Leitwertzustandes bewirkt und der negative Impuls die zweite Richtung des Leitwertzustandes bewirkt.
  18. Verfahren nach Anspruch 10, wobei: die Mehrzahl der RPUs mit zwei Anschlüssen ungleichgewichtige Einheiten mit einem Ungleichgewicht im Leitwertzustand zwischen Flanken einer ersten Richtung und einer zweiten Richtung sind; die Hysterese bei der Mehrzahl der RPUs mit zwei Anschlüssen das Ungleichgewicht verringert.
  19. Verfahren für eine Hysterese-Operation, wobei das Verfahren aufweist: ein Bewirken, dass Aktualisierungsimpulse von mindestens einer hysteretischen resistiven Verarbeitungseinheit (RPU) empfangen werden; und ein Bewirken, dass die mindestens eine hysteretische RPU eine Änderung des Leitwertzustandes als Reaktion auf Aktualisierungsimpulse aufweist, wobei die Änderung des Leitwertzustands eine Verzögerung für eine zuvor festgelegte Anzahl von Aktualisierungsimpulsen aufweist.
  20. Verfahren nach Anspruch 19, wobei die Änderung des Leitwertzustandes ein Umschalten des Leitwertzustands von einer ersten Richtung in eine zweite Richtung oder ein Umschalten des Leitwertzustands von der zweiten Richtung in die erste Richtung ist.
DE112018000272.1T 2017-03-01 2018-02-27 Resistive Verarbeitungseinheit mit hysteretischen Aktualisierungen zum Trainieren neuronaler Netze Ceased DE112018000272T5 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US15/446,264 US10755170B2 (en) 2017-03-01 2017-03-01 Resistive processing unit with hysteretic updates for neural network training
US15/446,264 2017-03-01
PCT/IB2018/051224 WO2018158680A1 (en) 2017-03-01 2018-02-27 Resistive processing unit with hysteretic updates for neural network training

Publications (1)

Publication Number Publication Date
DE112018000272T5 true DE112018000272T5 (de) 2019-09-12

Family

ID=63355648

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112018000272.1T Ceased DE112018000272T5 (de) 2017-03-01 2018-02-27 Resistive Verarbeitungseinheit mit hysteretischen Aktualisierungen zum Trainieren neuronaler Netze

Country Status (6)

Country Link
US (1) US10755170B2 (de)
JP (1) JP6995131B2 (de)
CN (1) CN110352436B (de)
DE (1) DE112018000272T5 (de)
GB (1) GB2574168A (de)
WO (1) WO2018158680A1 (de)

Families Citing this family (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2017105460A1 (en) * 2015-12-17 2017-06-22 Hewlett Packard Enterprise Development Lp Improved computational accuracy in a crossbar array
US10303998B2 (en) * 2017-09-28 2019-05-28 International Business Machines Corporation Floating gate for neural network inference
US11301752B2 (en) * 2017-10-24 2022-04-12 International Business Machines Corporation Memory configuration for implementing a neural network
US10340002B1 (en) 2018-03-30 2019-07-02 International Business Machines Corporation In-cell differential read-out circuitry for reading signed weight values in resistive processing unit architecture
US10831860B2 (en) * 2018-10-11 2020-11-10 International Business Machines Corporation Alignment techniques to match symmetry point as zero-weight point in analog crosspoint arrays
KR102543232B1 (ko) * 2018-12-04 2023-06-15 한국전자통신연구원 아날로그 디지털 변환기 및 아날로그 디지털 변환기의 동작 방법
US11153104B2 (en) 2019-03-14 2021-10-19 International Business Machines Corporation Generating key material for information security using a resistive processing unit (RPU) accelerator array as a physically unclonable function (PUF)
US11769046B2 (en) 2019-03-14 2023-09-26 International Business Machines Corporation Symmetric phase-change memory devices
US11461640B2 (en) 2019-04-18 2022-10-04 International Business Machines Corporation Mitigation of conductance drift in neural network resistive processing units
CN110059038A (zh) * 2019-04-28 2019-07-26 北京超维度计算科技有限公司 一种基于可重构计算的高性能弹性连接架构及方法
US11562249B2 (en) * 2019-05-01 2023-01-24 International Business Machines Corporation DNN training with asymmetric RPU devices
US11361218B2 (en) 2019-05-31 2022-06-14 International Business Machines Corporation Noise and signal management for RPU array
US10839900B1 (en) 2019-06-12 2020-11-17 International Business Machines Corporation Parasitic voltage drop compensation in large cross-point arrays
US11200297B2 (en) 2019-06-12 2021-12-14 International Business Machines Corporation Integrator voltage shifting for improved performance in softmax operation
US11455520B2 (en) 2019-06-14 2022-09-27 International Business Machines Corporation Copying weights between resistive cross-point arrays
US10832773B1 (en) 2019-07-01 2020-11-10 International Business Machines Corporation Architecture for enabling zero value shifting
US11183238B2 (en) * 2019-08-28 2021-11-23 International Business Machines Corporation Suppressing outlier drift coefficients while programming phase change memory synapses
US11610101B2 (en) * 2019-08-30 2023-03-21 International Business Machines Corporation Formation failure resilient neuromorphic device
US20210142153A1 (en) * 2019-11-07 2021-05-13 International Business Machines Corporation Resistive processing unit scalable execution
US11520855B2 (en) * 2020-05-15 2022-12-06 International Business Machines Corportation Matrix sketching using analog crossbar architectures
CN111614346B (zh) * 2020-06-11 2023-06-30 电子科技大学 基于延时信号的ai处理器的处理单元及累积单元
JP6968941B1 (ja) 2020-07-08 2021-11-24 ウィンボンド エレクトロニクス コーポレーション 抵抗変化型クロスバーアレイ装置
JP7150787B2 (ja) 2020-07-31 2022-10-11 ウィンボンド エレクトロニクス コーポレーション 抵抗変化型クロスバーアレイ装置
US20220180164A1 (en) * 2020-12-07 2022-06-09 International Business Machines Corporation Worst Case Noise and Bound Management for RPU Crossbar Arrays
US20220207344A1 (en) * 2020-12-26 2022-06-30 International Business Machines Corporation Filtering hidden matrix training dnn
US11983604B2 (en) * 2021-07-16 2024-05-14 Hewlett Packard Enterprise Development Lp Quantum-inspired algorithms to solve intractable problems using classical computers
CN113505887B (zh) * 2021-09-12 2022-01-04 浙江大学 一种针对忆阻器误差的忆阻器存储器神经网络训练方法
KR102634665B1 (ko) * 2021-12-21 2024-02-07 포항공과대학교 산학협력단 뉴로모픽 반도체 소자 및 동작 방법

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
AU5503194A (en) * 1993-02-22 1994-08-25 General Electric Company Single phase electronically commutated motor system and method
US9269043B2 (en) 2002-03-12 2016-02-23 Knowm Tech, Llc Memristive neural processor utilizing anti-hebbian and hebbian technology
US7668795B2 (en) 2004-11-02 2010-02-23 Fuji Xerox Co., Ltd. Data analyzer utilizing the spreading activation theory for stemming processing
US20070233761A1 (en) 2006-04-03 2007-10-04 Mouttet Blaise L Crossbar arithmetic processor
US8527438B2 (en) 2009-12-22 2013-09-03 International Business Machines Corporation Producing spike-timing dependent plasticity in an ultra-dense synapse cross-bar array
US8274812B2 (en) * 2010-06-14 2012-09-25 Crossbar, Inc. Write and erase scheme for resistive memory device
US8510239B2 (en) * 2010-10-29 2013-08-13 International Business Machines Corporation Compact cognitive synaptic computing circuits with crossbar arrays spatially in a staggered pattern
CN102663493A (zh) * 2012-03-23 2012-09-12 天津工业大学 一种用于时间序列预测的迟滞神经网络
US9490011B2 (en) * 2013-07-10 2016-11-08 Hewlett Packard Enterprise Development Lp Storage device write pulse control
US10395166B2 (en) 2013-09-04 2019-08-27 Lockheed Martin Corporation Simulated infrared material combination using neural network
US9715660B2 (en) 2013-11-04 2017-07-25 Google Inc. Transfer learning for deep neural network based hotword detection
US20150324690A1 (en) 2014-05-08 2015-11-12 Microsoft Corporation Deep Learning Training System
US9466362B2 (en) * 2014-08-12 2016-10-11 Arizona Board Of Regents On Behalf Of Arizona State University Resistive cross-point architecture for robust data representation with arbitrary precision
WO2016068920A1 (en) 2014-10-29 2016-05-06 Hewlett Packard Enterprise Development Lp Memristive dot product engine for vector processing
US9886953B2 (en) 2015-03-08 2018-02-06 Apple Inc. Virtual assistant activation
US10520975B2 (en) * 2016-03-03 2019-12-31 Regents Of The University Of Minnesota Polysynchronous stochastic circuits

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Rumelhart, D. E., Hinton, G. E. und Williams, R. J. (1986)

Also Published As

Publication number Publication date
CN110352436A (zh) 2019-10-18
GB2574168A (en) 2019-11-27
US20180253642A1 (en) 2018-09-06
JP6995131B2 (ja) 2022-01-14
JP2020514886A (ja) 2020-05-21
GB201913458D0 (en) 2019-10-30
WO2018158680A1 (en) 2018-09-07
US10755170B2 (en) 2020-08-25
CN110352436B (zh) 2023-05-16

Similar Documents

Publication Publication Date Title
DE112018000272T5 (de) Resistive Verarbeitungseinheit mit hysteretischen Aktualisierungen zum Trainieren neuronaler Netze
DE112018005726B4 (de) Resistive verarbeitungseinheit auf zählerbasis für programmierbare und rekonfigurierbare künstliche neuronale netzwerke
DE112016003245T5 (de) Resistive Verarbeitungseinheit
DE112018004223T5 (de) Trainieren künstlicher neuronaler Netze
DE102019116305A1 (de) Pipelining zur verbesserung der inferenzgenauigkeit neuronaler netze
DE112018000134T5 (de) Memristive Einheit auf Grundlage einer Alkali-Dotierung von Übergangsmetalloxiden
DE112019000226T5 (de) Neuromorpher chip zum aktualisieren präziser synaptischer gewichtswerte
DE112019000437B4 (de) Architektur einer resistiven verarbeitungseinheit mit voneinander getrennter gewichtungsaktualisierungs- und inferenzschaltung
DE112011101370T5 (de) Neuronales Netz mit kanonischen gepulsten Neuronen für einen raumzeitlichen Assoziativspeicher
DE112018004992B4 (de) Übertragung synaptischer gewichte zwischen leitfähigkeitspaaren mitpolaritätsumkehr zum verringern fester einheitenasymmetrien
DE112008003510T5 (de) Im Mikro- und/oder Nanobereich liegende Neuromorphe integrierte Hybridschaltung
DE102021207661A1 (de) Ratiometrische zeitdomänen-auslesungschnittstellen für speicherinterne, analoge mischsignal-rechen-crossbar-netzwerke
DE112019005119T5 (de) Abgleichtechniken zum angleichen des symmetriepunktes als null-gewichtungspunkt in analogen kreuzungspunktanordnungen
DE102021207970A1 (de) Eine nurlesespeicherarchitektur für analoge matrixoperationen
DE112018002950T5 (de) System und Verfahren zum Aufbauen von synaptischen Gewichten für künstliche neuronale Netze aus mit Vorzeichen versehenen analogen Leitwertpaaren unterschiedlicher Wertigkeit
DE112020002186T5 (de) Dnn-training mit asymmetrischen rpu-einheiten
Ji et al. Adaptive sparse coding based on memristive neural network with applications
DE102021208010A1 (de) Hardware-rechenstruktur für tiefe gleichgewichtsmodelle
DE112012005565T5 (de) Elektronische Synapsen aus stochastischen binären Speichereinheiten
DE102022100920A1 (de) Compute-in-memory-akkumulator
DE102020120212A1 (de) Netzwerk zur automatischen Programmierspannungsauswahl
DE102021123580A1 (de) Verfahren zum entwickeln einer initialisierungsfunktion zum programmieren eines speicherelements
DE102021108823A1 (de) System für eine flexible leitwerttraverse
DE112020005613T5 (de) Neuromorphe Einheit mit Kreuzschienen-Array-Struktur
DE112020002547T5 (de) Rausch- und signalverwaltung für rpu-array

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R016 Response to examination communication
R002 Refusal decision in examination/registration proceedings
R003 Refusal decision now final