DE102019100292A1 - Neuronalnetz-Verarbeitungseinheit mit Approximationsmultiplizierer und System-on-Chip mit einer solchen Einheit - Google Patents

Neuronalnetz-Verarbeitungseinheit mit Approximationsmultiplizierer und System-on-Chip mit einer solchen Einheit Download PDF

Info

Publication number
DE102019100292A1
DE102019100292A1 DE102019100292.3A DE102019100292A DE102019100292A1 DE 102019100292 A1 DE102019100292 A1 DE 102019100292A1 DE 102019100292 A DE102019100292 A DE 102019100292A DE 102019100292 A1 DE102019100292 A1 DE 102019100292A1
Authority
DE
Germany
Prior art keywords
processing unit
value
neural
output
neural network
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
DE102019100292.3A
Other languages
English (en)
Inventor
Jun-Seok Park
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.)
Samsung Electronics Co Ltd
Original Assignee
Samsung Electronics Co Ltd
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 Samsung Electronics Co Ltd filed Critical Samsung Electronics Co Ltd
Publication of DE102019100292A1 publication Critical patent/DE102019100292A1/de
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/483Computations with numbers represented by a non-linear combination of denominational numbers, e.g. rational numbers, logarithmic number system or floating-point numbers
    • G06F7/487Multiplying; Dividing
    • G06F7/4876Multiplying
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/544Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices for evaluating functions by calculation
    • G06F7/5443Sum of products
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/78Architectures of general purpose stored program computers comprising a single central processing unit
    • G06F15/7807System on chip, i.e. computer system on a single chip; System in package, i.e. computer system on one or more chips in a single package
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/499Denomination or exception handling, e.g. rounding or overflow
    • G06F7/49942Significance control
    • G06F7/49947Rounding
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06GANALOGUE COMPUTERS
    • G06G7/00Devices in which the computing operation is performed by varying electric or magnetic quantities
    • G06G7/12Arrangements for performing computing operations, e.g. operational amplifiers
    • G06G7/14Arrangements for performing computing operations, e.g. operational amplifiers for addition or subtraction 
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06GANALOGUE COMPUTERS
    • G06G7/00Devices in which the computing operation is performed by varying electric or magnetic quantities
    • G06G7/12Arrangements for performing computing operations, e.g. operational amplifiers
    • G06G7/16Arrangements for performing computing operations, e.g. operational amplifiers for multiplication or division
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06GANALOGUE COMPUTERS
    • G06G7/00Devices in which the computing operation is performed by varying electric or magnetic quantities
    • G06G7/12Arrangements for performing computing operations, e.g. operational amplifiers
    • G06G7/26Arbitrary function generators
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/06Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
    • G06N3/063Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • G06N3/084Backpropagation, e.g. using gradient descent

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • Software Systems (AREA)
  • Artificial Intelligence (AREA)
  • Molecular Biology (AREA)
  • General Health & Medical Sciences (AREA)
  • Evolutionary Computation (AREA)
  • Data Mining & Analysis (AREA)
  • Computational Linguistics (AREA)
  • Computer Hardware Design (AREA)
  • Mathematical Optimization (AREA)
  • Mathematical Analysis (AREA)
  • Computational Mathematics (AREA)
  • Pure & Applied Mathematics (AREA)
  • Neurology (AREA)
  • Power Engineering (AREA)
  • Nonlinear Science (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Image Analysis (AREA)
  • Investigating Or Analysing Biological Materials (AREA)

Abstract

Eine Neuronalnetz-Verarbeitungseinheit (100) kann zum Ausführen einer approximativen Multiplikationsoperation ausgelegt sein, und ein System-on-Chip kann die Neuronalnetz-Verarbeitungseinheit (100) aufweisen. Die Neuronalnetz-Verarbeitungseinheit (100) kann eine Mehrzahl von neuronalen Verarbeitungseinheiten (140-1 bis 140-n) aufweisen und kann eine Berechnung basierend auf einer oder mehreren Instanzen von Eingabedaten (I) und einer Mehrzahl von Wichtungen (W) ausführen. Mindestens eine neuronale Verarbeitungseinheit ist ausgelegt zum Empfangen eines ersten Wertes (mo) und eines zweiten Wertes und Ausführen einer approximativen Multiplikationsoperation basierend auf dem ersten Wert (mo) und dem zweiten Wert und ist ferner ausgelegt zum Ausführen einer stochastischen Rundungsoperation basierend auf einem Ausgabewert der approximativen Multiplikationsoperation.

Description

  • STAND DER TECHNIK
  • Die erfinderischen Konzepte beziehen sich auf Neuronalnetz-Verarbeitungseinheiten und insbesondere auf Neuronalnetz-Verarbeitungseinheiten, die einen Approximationsmultiplizierer aufweisen, und auf ein System-on-Chip, das eine solche Einheit aufweist.
  • Ein neuronales Netz betrifft eine Rechenarchitektur, die ein biologisches Gehirn modelliert. Mit Herausbildung der neuronalen Netztechnologie wurden in jüngster Zeit verschiedene Arten von elektronischen Systemen aktiv untersucht, was die Analyse von Eingabedaten und die Extraktion von gültigen Informationen mit Hilfe einer Neuronalnetz-Verarbeitungseinheit betrifft.
  • Neuronalnetz-Verarbeitungseinheiten arbeiten mit einer relativ großen Menge von Rechenoperationen zur Verarbeitung komplexer Eingabedaten. Um eine Neuronalnetz - Verarbeitungseinheit so auszugestalten, dass sie hochqualitative Eingaben in Echtzeit analysiert und Informationen extrahiert, ist eine Technologie für die effiziente Verarbeitung von neuronalen Netzoperationen erforderlich. Energiearme und leistungsstarke eingebettete Systeme wie Smartphones verfügen über begrenzte Ressourcen.
  • ZUSAMMENFASSUNG DER ERFINDUNG
  • Einige beispielhafte Ausführungsformen stellen Neuronalnetz-Verarbeitungseinheiten bereit, die so ausgelegt sind, dass sie eine Reduzierung des Genauigkeitsverlustes bei gleichzeitiger Reduzierung des für die Verarbeitung komplexer Eingabedaten erforderlichen Rechenaufwands ermöglichen, wodurch Neuronalnetz-Verarbeitungseinheiten bereitgestellt werden, die für den Einbau in energiearme und leistungsstarke eingebettete Systeme, zu denen Smartphones gehören, besonders geeignet sind.
  • Die erfinderischen Konzepte stellen Neuronalnetz-Verarbeitungseinheiten, die einen zur Ausführung einer Festkomma-Trainingsberechnung ausgelegten Approximationsmultiplizierer aufweisen, und ein diese Einheiten aufweisendes System-on-Chip bereit.
  • Gemäß einem Aspekt der erfinderischen Konzepte kann eine Neuronalnetz-Verarbeitungseinheit ausgelegt sein zum Ausführen einer Berechnung basierend auf einer oder mehreren Instanzen von Eingabedaten und einer Mehrzahl von Wichtungen. Die Neuronalnetz-Verarbeitungseinheit kann eine Mehrzahl von neuronalen Verarbeitungseinheiten aufweisen. Mindestens eine neuronale Verarbeitungseinheit aus der Mehrzahl von neuronalen Verarbeitungseinheiten kann ausgelegt sein zum Empfangen eines ersten Wertes und eines zweiten Wertes und Ausführen einer approximativen Multiplikationsoperation basierend auf dem ersten Wert und dem zweiten Wert und Ausführen einer stochastischen Rundungsoperation basierend auf einem Ausgabewert der approximativen Multiplikationsoperation.
  • Gemäß einem anderen Aspekt der erfinderischen Konzepte kann ein System-on-Chip einen oder mehrere Halbleiter-Intellectual-Property-Cores (IPs) und eine Neuronalnetz-Verarbeitungseinheit, die ausgelegt ist zum Empfangen von Eingabedaten aus dem einen oder den mehreren IPs und Ausführen einer Neuronalnetz-Berechnung basierend auf den Eingabedaten und einer Mehrzahl von Wichtungen, umfassen. Die Neuronalnetz-Verarbeitungseinheit kann eine Mehrzahl von neuronalen Verarbeitungseinheiten aufweisen, wobei mindestens eine neuronale Verarbeitungseinheit aus der Mehrzahl von neuronalen Verarbeitungseinheiten ausgelegt ist zum Empfangen eines ersten Wertes und eines zweiten Wertes und Ausführen einer approximativen Multiplikationsoperation basierend auf dem ersten Wert und dem zweiten Wert und Ausführen einer stochastischen Rundungsoperation basierend auf einem Ausgabewert der approximativen Multiplikationsoperation, um eine Nachaktivierung in Bezug auf die Ausgabe der approximativen Multiplikationsoperation auszugeben.
  • Gemäß einem anderen Aspekt der erfinderischen Konzepte kann eine Neuronalnetz-Verarbeitungseinheit eine Trainingsoperation basierend auf einer oder mehreren Instanzen von Trainingsdaten und einer Mehrzahl von Wichtungen in einem Trainingsmodus ausführen. Die Neuronalnetz-Verarbeitungseinheit kann eine Mehrzahl von neuronalen Verarbeitungseinheiten aufweisen. Mindestens eine neuronale Verarbeitungseinheit aus der Mehrzahl von neuronalen Verarbeitungseinheiten kann ausgelegt sein zum Empfangen eines ersten Wertes und eines zweiten Wertes und Ausführen einer approximativen Multiplikationsoperation am ersten Wert und am zweiten Wert im Trainingsmodus, Ausführen einer Additionsoperation basierend auf einem Ausgabewert der approximativen Multiplikationsoperation und einem dritten Wert, Akkumulieren eines Ausgabewerts der approximativen Multiplikationsoperation, und Ausführen einer stochastischen Rundungsoperation an einem basierend auf der Akkumulation ausgegebenen Akkumulationswert, um eine Nachaktivierung in Bezug auf den Akkumulationswert auszugeben.
  • Figurenliste
  • Beispielhafte Ausführungsformen der erfinderischen Konzepte werden anhand der im Zusammenhang mit den Begleitzeichnungen zu lesenden folgenden Detailbeschreibung besser verständlich, wobei gilt:
    • 1 ist ein Blockschaltbild zur Veranschaulichung eines System-on-Chips (SoC) gemäß einigen beispielhaften Ausführungsformen der vorliegenden Offenbarung;
    • 2 ist eine Darstellung zur Veranschaulichung eines Beispiels eines neuronalen Netzes gemäß einigen beispielhaften Ausführungsformen der vorliegenden Offenbarung;
    • 3 ist ein Flussdiagramm zur Veranschaulichung eines Trainingsprozesses eines neuronalen Netzes gemäß einigen beispielhaften Ausführungsformen der vorliegenden Offenbarung. 3 kann unter Verweis auf 2 beschrieben sein;
    • 4 ist eine Darstellung zur Veranschaulichung eines Beispiels eines Festkommawertes;
    • 5 ist ein Blockschaltbild zur Veranschaulichung eines Beispiels einer Struktur einer Neuronalnetz-Verarbeitungseinheit gemäß einigen beispielhaften Ausführungsformen der vorliegenden Offenbarung;
    • 6 ist ein Blockschaltbild zur Veranschaulichung einer detaillierten Struktur einer neuronalen Verarbeitungseinheit gemäß einigen beispielhaften Ausführungsformen der vorliegenden Offenbarung;
    • 7 ist ein Blockschaltbild zur Veranschaulichung einer arithmetisch-logischen Einheit gemäß einigen beispielhaften Ausführungsformen der vorliegenden Offenbarung;
    • 8 ist ein Blockschaltbild zur Veranschaulichung einer Aktivierungsfunktionseinheit gemäß einigen beispielhaften Ausführungsformen der vorliegenden Offenbarung;
    • 9 und 10 sind ein Flussdiagramm zur Veranschaulichung des Trainierens einer Neuronalnetz-Verarbeitungseinheit gemäß einigen beispielhaften Ausführungsformen der vorliegenden Offenbarung beziehungsweise eine Darstellung zur Veranschaulichung einer stochastischen Rundung gemäß einigen beispielhaften Ausführungsformen der vorliegenden Offenbarung;
    • 11 ist ein Blockschaltbild zur Veranschaulichung einer arithmetisch-logischen Einheit gemäß einigen beispielhaften Ausführungsformen der vorliegenden Offenbarung;
    • 12 ist ein Blockschaltbild zur Veranschaulichung einer arithmetisch-logischen Einheit gemäß einigen beispielhaften Ausführungsformen der vorliegenden Offenbarung;
    • 13 ist ein Blockschaltbild zur Veranschaulichung einer mobilen Rechenvorrichtung gemäß einigen beispielhaften Ausführungsformen der vorliegenden Offenbarung; und
    • 14 veranschaulicht ein Fahrzeug gemäß einigen beispielhaften Ausführungsformen.
  • DETAILLIERTE BESCHREIBUNG DER AUSFÜHRUNGSFORMEN
  • Nachfolgend werden beispielhafte Ausführungsformen der vorliegenden erfinderischen Konzepte unter Bezugnahme auf die Begleitzeichnungen im Detail beschrieben.
  • 1 ist ein Blockschaltbild zur Veranschaulichung eines System-on-Chips (SoC) 10 gemäß einigen beispielhaften Ausführungsformen der vorliegenden Offenbarung.
  • Wie in 1 dargestellt, kann das SoC eine Mehrzahl von Intellectual-Properties (IPs) und eine Neuronalnetz-Verarbeitungseinheit (NPU) 100 aufweisen. Das SoC 10 kann zur Ausführung verschiedener Funktionen in einem Halbleitersystem ausgelegt sein, und das SoC 10 kann zum Beispiel ein Anwendungsprozessor sein. Das SoC 10 kann basierend auf einem neuronalen Netz Eingabedaten in Echtzeit analysieren und gültige Informationen extrahieren und basierend auf den extrahierten Informationen Situationen bestimmen oder Konfigurationen einer elektronischen Vorrichtung, in der das SoC 10 eingebaut ist, steuern. Das SoC 10 kann beispielsweise in einer Drohne, einer Robotervorrichtung wie in fortgeschrittenen Fahrerassistenzsystemen (ADAS), einem autonomen Fahrzeug, einem Smart-TV-Gerät, einem Smartphone, einem medizinischen Gerät, einem mobilen Gerät, einem Bildanzeigegerät, einem Messgerät, einem Gerät des Internets der Dinge (IoT) usw. verwendet werden und darüber hinaus in mindestens einer von verschiedenen Arten von elektronischen Geräten installiert werden.
  • Im vorliegenden Sprachgebrauch ist davon auszugehen, dass ein IP (zum Beispiel IP1, IP2 und IP3) eine Instanz einer Hardware-Schaltungsanordnung (zum Beispiel eines integrierten Schaltkreises) bezeichnet, die das geistige Eigentum einer Partei ist. Ein IP kann hier austauschbar als Halbleiter-Intellectual-Property-Core, IP-Core und/oder IP-Block bezeichnet werden. Das SoC 10 kann verschiedene Arten von IPs umfassen. Die IPs können beispielsweise eine Verarbeitungseinheit („Instanz von Verarbeitungsschaltung“, zum Beispiel eine CPU, einen anwendungsspezifischen integrierten Schaltkreis, eine Kombination derselben oder dergleichen), eine Mehrzahl von in der Verarbeitungseinheit enthaltenen Kernen, Multi-Format-Codec (MFC), ein Videomodul (zum Beispiel eine Kamera-Schnittstelle, einen JPEG-Prozessor (Joint Photographic Experts Group), einen Video-Prozessor oder einen Mixer), einen dreidimensionalen (3D) Grafikkern, ein Audiosystem, einen Treiber, einen Anzeigetreiber, volatilen Speicher, nichtvolatilen Speicher, einen Speichercontroller, Eingabe- und Ausgabe-Schnittstellenblöcke oder Cache-Speicher umfassen.
  • Die meisten Techniken zum Verbinden von IPs arbeiten mit einem Verbindungsverfahren, das auf einem Systembus basiert. Als Standard-Busspezifikation kann das AMBA-Protokoll (Advanced Microcontroller Bus Architecture) der Advanced RISC Machines Ltd (ARM) verwendet werden. Bustypen des AMBA-Protokolls können Advanced High-Performance Bus (AHB), Advanced Peripheral Bus (APB), Advanced eXtensible Interface (AXI), AXI4, AXI Coherency Extensions (ACE) usw. umfassen. Von den oben beschriebenen Bustypen ist AXI ein Schnittstellenprotokoll zwischen IPs und kann eine Mehrfachadressierungsfunktion ausstehender Adressen, eine Daten-Interleaving-Funktion usw. bereitstellen. Auf den Systembus können außerdem andere Arten von Protokollen wie uNetwork von SONICs Inc., CoreConnect von IBM oder Open Core Protocol von OCP-IP angewendet werden.
  • Die NPU 100 kann das neuronale Netz erzeugen, kann das neuronale Netz trainieren (oder anlernen), kann basierend auf den empfangenen Eingabedaten eine Berechnung ausführen und basierend auf einem Ergebnis der Berechnung ein Informationssignal erzeugen oder kann das neuronale Netz nachtrainieren. In einigen beispielhaften Ausführungsformen kann die NPU 100 das neuronale Netz auf Festkomma-Basis trainieren. Dies wird im Folgenden im Detail beschrieben.
  • Es versteht sich, dass die NPU 100 ein Prozessor (zum Beispiel eine Instanz von Verarbeitungsschaltungsanordnung) sein kann, der ein in einem Speicher (zum Beispiel in einer Ablagespeichervorrichtung) gespeichertes Programm von Anweisungen ausführen kann, oder durch einen solchen Prozessor implementiert werden kann. Dementsprechend kann die hier beschriebene NPU 100 in einigen beispielhaften Ausführungsformen ein Prozessor sein, der die Funktionalität der NPU 100 implementiert.
  • Die NPU 100 kann verschiedene Arten von Eingabedaten aus den IPs über den Systembus empfangen und kann dementsprechend ein Informationssignal erzeugen (zum Beispiel eine Neuronalnetz-Berechnung basierend auf den Eingabedaten ausführen, um ein Ausgabesignal zu erzeugen). Das vom neuronalen Netz erzeugte Informationssignal kann eine von verschiedenen Arten von Erkennungssignalen, wie ein Spracherkennungssignal, ein Objekterkennungssignal, ein Bilderkennungssignal und ein Bioinformationserkennungssignal, umfassen. Die NPU 100 kann als Eingabedaten beispielsweise Bilddaten in einem Videostream empfangen und kann aus den Bilddaten ein Erkennungssignal erzeugen, das ein Objekt betrifft, das in einem durch die Bilddaten dargestellten Bild enthalten ist. Die vorliegende Offenbarung ist jedoch hierauf nicht beschränkt, und die NPU 100 kann verschiedene Arten von Eingabedaten empfangen und ein Erkennungssignal entsprechend den Eingabedaten erzeugen.
  • 2 ist eine Darstellung zur Veranschaulichung eines Beispiels eines neuronalen Netzes 1 gemäß einigen beispielhaften Ausführungsformen der vorliegenden Offenbarung. Das in 2 dargestellte neuronale Netz kann durch eine Neuronalnetz-Verarbeitungseinheit realisiert sein, die beispielsweise die NPU 100 und/oder die in 13 (weiter unten beschrieben) dargestellte NPU 1058 umfasst.
  • Wie in 2 zu sehen, kann das neuronale Netz 1 eine Struktur aufweisen, die eine Eingabeschicht, versteckte Schichten und eine Ausgabeschicht umfasst. Eine das neuronale Netz 1 realisierende Neuronalnetz-Verarbeitungseinheit kann eine Berechnung basierend auf den empfangenen Eingabedaten (z. B. 11 und 12) ausführen und kann basierend auf der Berechnung Ausgabedaten (z. B. O1 und O2) erzeugen. In einigen beispielhaften Ausführungsformen kann eine Neuronalnetz-Verarbeitungseinheit trainiert werden, um das neuronale Netz 1 über die anhand der Eingabedaten ausgeführte Berechnung zu realisieren. Das Trainieren einer Neuronalnetz-Verarbeitungseinheit zur Realisierung des neuronalen Netzes kann hier auch als „Trainieren“ des neuronalen Netzes bezeichnet werden. Wenn das neuronale Netz 1 trainiert wird, können die Eingabedaten Trainingsdaten sein.
  • Beim neuronalen Netz 1 kann es sich um ein tiefes neuronales Netz (DNN) oder um ein n-schichtiges neuronales Netz, das zwei oder mehr versteckte Schichten aufweist, handeln. Wie in 2 dargestellt, kann das neuronale Netz 1 beispielsweise ein DNN sein, das eine Eingabeschicht 2, eine erste und zweite versteckte Schicht 3 und 4 und eine Ausgabeschicht 5 aufweist. Das DNN kann insbesondere, aber nicht ausschließlich, faltende neuronale Netze (CNN), rekurrente neuronale Netze (RNN), Deep-Belief-Netze, beschränkte Boltzmann-Maschinen usw. umfassen.
  • Wenn das neuronale Netz 1 eine DNN-Struktur aufweist, umfasst das neuronale Netz 1 mehr Schichten, aus denen gültige Informationen extrahiert werden können, und damit kann das neuronale Netz 1 komplexe Datensätze verarbeiten. Obwohl das neuronale Netz 1 als ein Netz mit vier Schichten, d. h. Eingabeschicht 2, erste und zweite versteckte Schicht 3 und 4 und Ausgabeschicht 5, abgebildet ist, handelt es sich nur um ein Beispiel, und das neuronale Netz 1 kann weniger oder mehr Schichten umfassen. Darüber hinaus kann das neuronale Netz 1 Schichten unterschiedlicher Strukturen abweichend von den Schichten der Darstellung in 2 umfassen.
  • Die im neuronalen Netz enthaltenen Schichten, d. h. Eingabeschicht 2, erste und zweite versteckte Schicht 3 bzw. 4 und die Ausgabeschicht 5, können jeweils eine Mehrzahl von Neuronen umfassen. Die Neuronen können einer Mehrzahl von künstlichen Knoten entsprechen, die als Verarbeitungselemente (PEs), Einheiten oder ähnlich bezeichnet werden. Wie in 2 abgebildet, kann die Eingabeschicht 2 zum Beispiel zwei Neuronen (Knoten) umfassen, und die erste und die zweite versteckte Schicht 3 bzw. 4 können jeweils drei Neuronen (Knoten) umfassen. Dies ist jedoch nur ein Beispiel, und jede der im neuronalen Netz 1 enthaltenen Schichten kann eine unterschiedliche Anzahl von Neuronen (Knoten) aufweisen.
  • Die Neuronen, die in jeder der im neuronalen Netz 1 enthaltenen Schichten enthalten sind, können verbunden sein, um Daten miteinander auszutauschen. Ein Neuron kann Daten von anderen Neuronen empfangen und eine Berechnung ausführen und kann ein Ergebnis der Berechnung an andere Neuronen ausgeben.
  • Eine Eingabe (Input) und eine Ausgabe (Output) der jeweiligen Neuronen (Knoten) kann als Eingabeaktivierung bzw. Ausgabeaktivierung bezeichnet werden. Das heißt, eine Aktivierung kann eine Ausgabe eines Neurons sein und kann auch ein Parameter sein, der einer Eingabe von in der nächsten Schicht enthaltenen Neuronen entspricht. Jedes der Neuronen kann seine Aktivierung basierend auf Aktivierungen und Wichtungen bestimmen, die aus in der vorhergehenden Schicht enthaltenen Neuronen empfangen werden. Eine Wichtung ist ein Parameter, der für die Berechnung einer Ausgabeaktivierung in jedem Neuron verwendet wird, und kann ein Wert sein, der einem Verbindungsverhältnis zwischen Neuronen zugewiesen ist.
  • Jedes der Neuronen kann durch eine neuronale Verarbeitungseinheit (oder PE), die eine Eingabe empfängt und eine Aktivierung ausgibt, verarbeitet werden, und die Eingabe-Ausgabe jedes der Neuronen kann durch Mapping abgebildet werden. Beispielsweise kann σ eine Aktivierungsfunktion sein, und w j ,k i
    Figure DE102019100292A1_0001
    kann ein Wichtungswert von einem in einer (i-l)-ten Schicht enthaltenen k-ten Neuron zu einem in einer i-ten Schicht enthaltenen j-ten Neuron sein. b j i
    Figure DE102019100292A1_0002
    kann ein Bias-Wert des in der i-ten Schicht enthaltenen j-ten Neurons sein, und a j i
    Figure DE102019100292A1_0003
    kann eine Aktivierung des j-ten Neurons der i-ten Schicht, mit anderen Worten: eine Nachaktivierung sein. Die Nachaktivierung a j i
    Figure DE102019100292A1_0004
    kann mit Hilfe der folgenden Gleichung 1 berechnet werden. a j i = σ ( k ( w j ,k i × a k i 1 ) + b j i )
    Figure DE102019100292A1_0005
  • Wie in 2 dargestellt, kann eine Nachaktivierung eines ersten Neurons der ersten versteckten Schicht 3 als a 1 2
    Figure DE102019100292A1_0006
    bezeichnet sein. Darüber hinaus kann a 1 2
    Figure DE102019100292A1_0007
    einen Wert von a 1 2 = σ ( w 1 ,1 2 × a 1 1 + w 1 ,2 2 × a 2 1 + b 1 2 )
    Figure DE102019100292A1_0008
    gemäß Gleichung 1 aufweisen. Mit anderen Worten kann eine Nachaktivierung ein Wert sein, der dadurch ermittelt wird, dass eine Aktivierungsfunktion auf eine Summe von aus der vorhergehenden Schicht empfangenen Aktivierungen angewendet wird. Die Gleichung 1 ist jedoch nur ein Beispiel zur Erläuterung der Aktivierung und der Wichtung, die verwendet werden, um Daten im neuronalen Netz 1 zu verarbeiten, und ist hierauf nicht beschränkt.
  • Wie oben beschrieben, werden im neuronalen Netz 1 zahlreiche Datensätze zwischen einer Mehrzahl von wechselseitig verbundenen Neuronen ausgetauscht und beim Durchlaufen der Schichten zahlreichen Berechnungsprozessen unterzogen. Über diese Berechnungen kann das neuronale Netz 1 trainiert werden, und die Wichtungen und Bias-Werte können entsprechend optimiert werden. Eine NPU gemäß einigen beispielhaften Ausführungsformen der vorliegenden Offenbarung kann einen Approximationsmultiplizierer umfassen und/oder zu dessen Implementierung ausgelegt sein und kann dazu ausgelegt sein, das neuronale Netz 1 basierend auf einer Festkomma-Aktivierung, einer Wichtung und einem Bias zu trainieren. Nachstehend folgt eine detaillierte Beschreibung.
  • 3 ist ein Flussdiagramm zur Veranschaulichung eines Trainingsprozesses eines neuronalen Netzes gemäß einigen beispielhaften Ausführungsformen der vorliegenden Offenbarung. 3 kann unter Verweis auf 2 beschrieben sein. Der in 3 dargestellte Trainingsprozess kann durch eine Neuronalnetz-Verarbeitungseinheit realisiert sein, die die NPU 100 und/oder die in 13 (weiter unten beschrieben) dargestellte NPU 1058 umfasst.
  • Wie in 3 zu sehen, kann in Operation S100 eine Berechnung des neuronalen Netzes 1 basierend auf Trainingsdaten ausgeführt werden, und Ausgabedaten können erzeugt werden. Mit anderen Worten kann, wenn Trainingsdaten als Eingabedaten 11 und 12 an die Eingabeschicht 2 angelegt werden, das neuronale Netz 1 die Ausgabedaten O1 und O2 entsprechend den Trainingsdaten erzeugen. Die Trainingsdaten, bei denen es sich um Eingabedaten handelt, die für den Lernprozess an das neuronale Netz 1 angelegt werden, können Daten sein, die einen entsprechenden Target-Wert oder ein entsprechendes Label vorab kennen.
  • Das neuronale Netz 1 kann basierend auf einer Festkomma-Aktivierung, einer Wichtung und einem Bias trainiert werden. In einigen beispielhaften Ausführungsformen kann in jedem Neuron eine Nachaktivierung basierend auf einem Festkomma-Approximationsmultiplizierer, einem Festkomma-Addierer und einem Festkomma-Rundungsglied berechnet werden. Eine Nachaktivierung und eine Wichtung der vorhergehenden Schicht können zusammen beispielsweise über einen approximierenden Multiplizierer multipliziert werden, und an einem Wert, der durch Aufaddieren von mehreren Approximationsmultiplikationen ermittelt wird, kann eine Rundung vollzogen werden. Ein Rundungsglied kann beispielsweise eine stochastische Rundung ausführen.
  • In Operation S200 kann anhand der den Trainingsdaten entsprechenden Ausgabedaten ein Verlust berechnet werden. Der Verlust kann sich beispielsweise auf eine Abweichung zwischen einem Target-Wert, der den Trainingsdaten entspricht, und den Ausgabedaten, die den Trainingsdaten entsprechen, beziehen.
  • In Operation S300 kann der Verlust zum neuronalen Netz 1 rückpropagiert werden, und Parameter jedes Neurons können bestimmt werden. Die Parameter eines Neurons können verschiedene Arten von Daten umfassen, die die Grundlage einer Neuronalnetz-Berechnung bilden, zum Beispiel Wichtungen, Bias-Werte usw. Da das neuronale Netz 1 wiederholt trainiert wird, können Parameter des neuronalen Netzes 1 feinabgestimmt werden, um eine genauere Ausgabe in Bezug auf eine bestehende Eingabe zu berechnen.
  • 4 ist eine Darstellung zur Veranschaulichung eines Beispiels eines Festkommawertes FX.
  • Wie in 4 zu sehen, kann der Festkommawert FX in einen ganzzahligen Teil IL, einen Dezimalpunkt DP und einen Bruchteil FL geteilt werden. Ein Festkomma bezieht sich auf eine Darstellung, in der ein Dezimalbruch, der eine feste Anzahl von Stellen aufweist, mit Hilfe eines Dezimalzeichens angegeben wird.
  • Der ganzzahlige Teil IL kann ein Vorzeichenbit SB aufweisen. Das Vorzeichenbit SB kann ein Vorzeichen des Festkommawertes FX bestimmen. Der ganzzahlige Teil IL kann einem Teil entsprechen, der eine Ganzzahl des Festkommawertes FX anzeigt, und der Bruchteil FL kann einem Teil entsprechen, der eine Bruchstelle des Festkommawertes FX anzeigt. Das Dezimalzeichen DP kann sich auf einen Referenzpunkt beziehen, um eine Unterscheidung zwischen dem ganzzahligen Teil IL und dem Bruchteil FL des Festkommawertes FX zu treffen.
  • Wenn der Festkommawert FX beispielsweise ein 8-Bit-Festkommawert ist, kann jedes der Bits, die den ganzzahligen Teil IL und den Bruchteil FL angeben, einen Wert 1 oder 0 aufweisen. Die den ganzzahligen Teil IL anzeigenden Bits können sequenziell Werte von -8, +4, +2 und +1 ab dem Vorzeichenbit angeben. Die den Bruchteil FL angebenden Bits können darüber hinaus sequenziell Werte von +0,5, +0,25, +0,125 und +0,0625 ausgehend vom Dezimalpunkt angeben. Wenn das Vorzeichenbit SB beispielsweise 1 ist, beträgt ein Wert, den ein höchstwertiges Bit des ganzzahligen Teils IL angibt, -8, wobei ein Wert, den der Festkommawert FX angibt, eine negative Zahl ist, unabhängig von den Werten der im ganzzahligen Teil IL und Bruchteil FL enthaltenen anderen Bits.
  • Obwohl 4 einen 8-Bit-Festkommawert FX abbildet, handelt es sich dabei nur um eine beispielhafte Ausführungsform, und der Festkommawert FX kann ein Festkommawert mit einer beliebigen geeigneten Anzahl von Bits sein. Außerdem kann der Festkommawert FX mit Hilfe einer kodierten Darstellung, eines Einerkomplement-Systems oder eines Zweierkomplement-Systems eine negative Zahl angeben.
  • 5 ist ein Blockschaltbild zur Veranschaulichung eines Beispiels einer Struktur der NPU 100 gemäß einigen beispielhaften Ausführungsformen der vorliegenden Offenbarung. 5 zeigt beispielsweise einen detaillierten Aufbau der NPU 100. Nachfolgend wird 5 unter Verweis auf 1 beschrieben.
  • Wie in 5 zu sehen, kann die NPU 100 einen Daten-Direktzugriffsspeicher (Daten-RAM) 110, einen Wichtungs-RAM 120, einen Controller 130 und eine Mehrzahl von neuronalen Verarbeitungseinheiten 140-1 bis 140-n umfassen. Obwohl nicht abgebildet, kann die NPU 100 ferner einen Sequenzer, mehrere Register, einen Programmspeicher usw. umfassen. Der Controller 130, der Sequenzer, die mehreren Register usw. können in einigen beispielhaften Ausführungsformen ein Prozessor (zum Beispiel eine Instanz von Verarbeitungsschaltungsanordnung) sein, der ein in einem Speicher (zum Beispiel in einer Ablagespeichervorrichtung) gespeichertes Programm von Anweisungen ausführt, oder durch einen solchen Prozessor implementiert werden. Dementsprechend kann es sich beim Controller 130, Sequenzer, den mehreren Registern, dem Programmspeicher usw., wie hier beschrieben, in einigen beispielhaften Ausführungsformen um einen Prozessor handeln, der die Funktionalität des Controllers 130, des Sequenzers, der mehreren Register, des Programmspeichers usw. implementiert.
  • Wie hier beschrieben, können die neuronalen Verarbeitungseinheiten 140-1 bis 140-n jeweils durch einen Prozessor (zum Beispiel eine Instanz von Verarbeitungsschaltungsanordnung) implementiert sein, der ein in einem Speicher (zum Beispiel in einer Ablagespeichervorrichtung) gespeichertes Programm von Anweisungen ausführt. Dementsprechend kann es sich beim Controller 130, Sequenzer, den mehreren Registern, dem Programmspeicher usw., wie hier beschrieben, in einigen beispielhaften Ausführungsformen um einen Prozessor handeln, der die Funktionalität des Controllers 130, des Sequenzers, der mehreren Register, des Programmspeichers usw. implementiert.
  • In einigen beispielhaften Ausführungsformen ist jede separate neuronale Verarbeitungseinheit 140-1 bis 140-n eine separate Instanz von Schaltungsanordnung, die dazu ausgelegt ist, die Funktionalität der jeweiligen neuronalen Verarbeitungseinheit zu implementieren.
  • Der Daten-RAM 110 kann eine oder mehrere Einzelpositionen („Instanzen“) von Eingabedaten I speichern und die Eingabedaten I an die neuronalen Verarbeitungseinheiten 140-1 bis 140-n anlegen. Die Eingabedaten I können beispielsweise aus dem mindestens einen der mehreren IPs bereitgestellt werden. Darüber hinaus können Ausgabedaten O, die basierend auf einem Rechenvorgang der neuronalen Verarbeitungseinheiten 140-1 bis 140-n erzeugt werden, empfangen und gespeichert werden. In einigen beispielhaften Ausführungsformen können die Eingabedaten I und die Ausgabedaten O Daten vom Typ Festkomma sein.
  • In einem Trainingsmodus (oder Lernmodus) der NPU 100 (zum Beispiel in Antwort auf die in einem Trainingsmodus arbeitende NPU 100) kann der Daten-RAM 110 beispielsweise Trainingsdaten (zum Beispiel Trainingsdaten, die aus einem oder mehreren IPs in einem Trainingsmodus empfangen werden) speichern und kann die Trainingsdaten als Eingabedaten I an die neuronalen Verarbeitungseinheiten 140-1 bis 140-n anlegen. In einem Inferenzmodus der NPU 100 (zum Beispiel in Antwort auf die in einem Inferenzmodus arbeitende NPU 100) kann der Daten-RAM 110 beispielsweise Daten für ein Inferenzoperation der NPU 100 speichern und kann die Daten als Eingabedaten I an die neuronalen Verarbeitungseinheiten 140-1 bis 140-n anlegen. Wenn die NPU 100 in einem System-on-Chip (zum Beispiel 10 von 1) enthalten ist, kann der Daten-RAM 110 als Eingabedaten I Daten speichern, die von verschiedenen im System-on-Chip (zum Beispiel 10 von 1) enthaltenen IPs ausgegeben werden. Die NPU 100 kann somit basierend auf einer oder mehreren Einzelpositionen („Instanzen“) von Trainingsdaten und einer Mehrzahl von Wichtungen eine Trainingsoperation in einem Trainingsmodus ausführen. Die Trainingsoperation kann eine Festkomma-Trainingsoperation umfassen.
  • Das Wichtungs-RAM 120 kann eine Mehrzahl von Wichtungen W speichern und jedes Wichtung an eine entsprechende neuronale Verarbeitungseinheit anlegen. Mit anderen Worten können die den neuronalen Verarbeitungseinheiten 140-1 bis 140-n zugeordneten Wichtungen W im Wichtungs-RAM 120 gespeichert werden. In einem Trainingsmodus (oder Lernmodus) der NPU 100 kann das Wichtungs-RAM 120 beispielsweise die über Trainingsprozesse abgestimmten Wichtungen W aus den neuronalen Verarbeitungseinheiten 140-1 bis 140-n empfangen und kann die Wichtungen W speichern. In einigen beispielhaften Ausführungsformen kann das Wichtung W ein Wichtung vom Typ Festkomma sein.
  • Das Daten-RAM 110 und das Wichtungs-RAM 120 können zum Beispiel dynamischer RAM (DRAM), statischer RAM (SRAM), synchroner DRAM (SDRAM), Phasenänderungs-RAM (PRAM) usw. sein. Die vorliegende Offenbarung ist jedoch darauf nicht beschränkt, und der Daten-RAM 110 und das Wichtungs-RAM 120 können als verschiedene Arten von Speicher implementiert werden.
  • Der Controller 130 kann allgemeine Steueroperationen an den neuronalen Verarbeitungseinheiten 140-1 bis 140-n ausführen. Der Controller 130 kann an die neuronalen Verarbeitungseinheiten 140-1 bis 140-n beispielsweise ein erstes Steuersignal CTRL_1 zur Steuerung eines in jeder neuronalen Verarbeitungseinheit enthaltenen Multiplexers anlegen. In einigen beispielhaften Ausführungsformen kann der Controller 130 an die neuronalen Verarbeitungseinheiten 140-1 bis 140-n ein zweites Steuersignal CTRL 2 zur Steuerung eines in jeder neuronalen Verarbeitungseinheit enthaltenen Approximationsmultiplizierers anlegen. Das zweite Steuersignal CTRL 2 kann beispielsweise eine Grundlage für die Modus-Auswahl des Approximationsmultiplizierers sein. Wie hier beschrieben, kann es sich bei einem Steuersignal für die Steuerung eines Modus eines Elements einer neuronalen Verarbeitungseinheit 140-1 bis 140-n (zum Beispiel eines Multiplexers und/oder eines Approximationsmultiplizierers) um ein Steuersignal handeln, das ausgegeben wird, um einen Modus mindestens einer neuronalen Verarbeitungseinheit 140-1 bis 140-n zu steuern.
  • Die neuronalen Verarbeitungseinheiten 140-1 bis 140-n können dazu ausgelegt sein, als in den jeweiligen Schichten (zum Beispiel 2, 3, 4 und 5 von 2) eines neuronalen Netzes (zum Beispiel 10 von 2) enthaltene Neuronen zu arbeiten. Zum Beispiel können mindestens einige der neuronalen Verarbeitungseinheiten 140-1 bis 140-n entsprechend den in einer Eingabeschicht (zum Beispiel 2 von 2) enthaltenen Neuronen arbeiten und können somit die Eingabedaten I und die Wichtung W empfangen und entsprechend eine Aktivierung ausgeben. Zum Beispiel können einige andere der neuronalen Verarbeitungseinheiten 140-1 bis 140-n entsprechend den in versteckten Schichten (zum Beispiel 3 und 4 von 2) enthaltenen Neuronen arbeiten und können somit Aktivierungen und die aus Neuronen der vorhergehenden Schicht empfangene Wichtung W empfangen und entsprechend eine Aktivierung ausgeben. Zum Beispiel können die anderen der neuronalen Verarbeitungseinheiten 140-1 bis 140-n entsprechend den in einer Ausgabeschicht (zum Beispiel 5 von 2) enthaltenen Neuronen arbeiten und können somit Aktivierungen und das aus Neuronen der vorhergehenden Schicht empfangene Wichtung W empfangen und entsprechende Ausgabedaten erzeugen.
  • In einigen beispielhaften Ausführungsformen kann mindestens eine der neuronalen Verarbeitungseinheiten 140-1 bis 140-n einen Approximationsmultiplizierer und ein Rundungsglied aufweisen. Anders ausgedrückt kann mindestens eine der neuronalen Verarbeitungseinheiten dazu ausgelegt sein, die Funktionalität eines Approximationsmultiplizierers und eines Rundungsglieds zu implementieren. Mindestens eine der neuronalen Verarbeitungseinheiten 140-1 bis 140-n kann beispielsweise, basierend auf einem an der mindestens einen neuronalen Verarbeitungseinheit empfangenen ersten Wert (z. B. mo) und zweiten Wert (z. B. W), eine approximative Multiplikationsoperation zum Beispiel an einer Aktivierung (z. B. I_A) und an der Wichtung W über den Approximationsmultiplizierer ausführen. Darüber hinaus kann mindestens eine der neuronalen Verarbeitungseinheiten 140-1 bis 140-n, basierend auf einer Ausgabe der approximativen Multiplikationsoperation, zum Beispiel an einer Summe von mehreren approximationsmultiplizierten Werten, über das Rundungsglied eine stochastische Rundung ausführen („eine stochastische Rundungsoperation ausführen“).
  • Obwohl in einigen beispielhaften Ausführungsformen nicht abgebildet, kann die NPU 100 ferner einen Taktgeber aufweisen, und die neuronalen Verarbeitungseinheiten 140-1 bis 140-n können während jedes Taktzyklus eine Berechnungsoperation ausführen. In einigen beispielhaften Ausführungsformen können die neuronalen Verarbeitungseinheiten 140-1 bis 140-n nach Art einer Pipeline arbeiten.
  • 6 ist ein Blockschaltbild zur Veranschaulichung einer detaillierten Struktur einer neuronalen Verarbeitungseinheit 140-m gemäß einigen beispielhaften Ausführungsformen der vorliegenden Offenbarung. Die in 6 dargestellte neuronale Verarbeitungseinheit 140-m kann eine der neuronalen Verarbeitungseinheiten 140-1 bis 140-n von 5 sein. Nachfolgend wird 6 unter Verweis auf 5 beschrieben. Es versteht sich, dass in einigen Ausführungsformen eines oder mehrere der Elemente 150m-180m der neuronalen Verarbeitungseinheit 140-m durch Schaltungsanordnungen der neuronalen Verarbeitungseinheit 140-m implementiert sein können.
  • Wie in 6 zu sehen, kann die neuronale Verarbeitungseinheit 140-m eine arithmetisch-logische Einheit (ALU) 160m, einen Akkumulator 170 m und eine Aktivierungsfunktionseinheit (AFU) 180m aufweisen und/oder dazu ausgelegt sein, deren Funktionalität zu implementieren. Darüber hinaus kann die neuronale Verarbeitungseinheit 140-m zudem einen Multiplexer 150m umfassen und/oder zur Implementierung der Funktionalität eines Multiplexers 150m ausgelegt sein.
  • Der Multiplexer 150m kann die Eingabedaten I und eine Eingabeaktivierung A_I empfangen und kann alternativ anhand des ersten Steuersignals CTRL_1 entweder die Eingabedaten I oder die Eingabeaktivierung A_I auswählen und das entsprechend Ausgewählte als ersten Wert mo ausgeben. Das erste Steuersignal CTRL_1 kann beispielsweise durch den Controller 130 bereitgestellt werden. In einigen beispielhaften Ausführungsformen handelt es sich bei den Eingabedaten I um Trainingsdaten, die aus einem Daten-RAM (zum Beispiel Daten-RAM 110) der NPU 100 ausgegeben werden.
  • Die Eingabedaten I können beispielsweise vom Daten-RAM 110 bereitgestellt werden. Darüber hinaus kann die Eingabeaktivierung A_I von einer der neuronalen Verarbeitungseinheiten 140-1 bis 140-n bereitgestellt werden. Die Eingabeaktivierung A_I kann beispielsweise basierend auf einer Schicht, die Neuronen aufweist, die der neuronalen Verarbeitungseinheit 140-m entsprechen, von einer neuronalen Verarbeitungseinheit bereitgestellt werden, die Neuronen entspricht, die in der vorhergehenden Schicht enthalten sind, oder kann von einer neuronalen Verarbeitungseinheit bereitgestellt werden, die Neuronen entspricht, die in der gleichen Schicht enthalten sind.
  • Die ALU 160m kann eine Mehrzahl von Dateninstanzen empfangen und kann entsprechend arithmetische und logische Operationen durchführen. Die ALU 160m kann beispielsweise den ersten Wert mo und die Wichtung W empfangen und kann eine Multiplikationsoperation am ersten Wert mo und der Wichtung W ausführen. Darüber hinaus kann die ALU 160m zudem einen vom Akkumulator 170m ausgegebenen Akkumulationswert aco empfangen und kann einen Ausgabewert alo erzeugen, indem sie eine Additionsoperation an einem Ergebnis der Multiplikationsoperation am ersten Wert mo und der Wichtung W und Akkumulationswert aco ausführt. Die ALU 160m kann eine Festkomma-Vorrichtung umfassen.
  • In einigen beispielhaften Ausführungsformen kann die ALU 160m in einem Trainingsmodus der NPU 100 (zum Beispiel in Antwort auf die in einem Trainingsmodus arbeitende NPU 100) eine approximative Multiplikationsoperation am ersten Wert mo und an der Wichtung W ausführen. Die approximative Multiplikationsoperation, die eine Art von Näherungsberechnung ist, kann sich auf einen Multiplikationsvorgang beziehen, bei dem ein Fehler eines berechneten Ergebniswertes teilweise zulässig ist. Darüber hinaus kann in einem Inferenzmodus der NPU 100 die ALU 160m am ersten Wert mo und an der Wichtung W eine allgemeine Multiplikationsoperation ausführen.
  • Der Akkumulator 170m kann ein Berechnungsergebnis der ALU 160m temporär speichern. Der Akkumulator 170m kann im Detail ein Register umfassen, das den Ausgabewert alo der ALU 160m empfängt und temporär speichert. Der Akkumulator 170m kann beispielsweise eine Ausgestaltung aufweisen, in der eine Mehrzahl von bistabilen Kippgliedern (Flipflops) miteinander verbunden sind. Der Akkumulator 170m kann den temporär gespeicherten Ausgabewert alo an die ALU 160m oder die AFU 180m als Akkumulationswert aco ausgeben. Es versteht sich, dass der Akkumulator 170m einen oder mehrere Ausgabewerte alo der von der ALU 160m ausgeführten approximativen Multiplikationsoperation akkumuliert.
  • Die AFU 180m kann den Akkumulationswert aco (zum Beispiel einen Ausgabewert der vom Akkumulator 170m ausgeführten Akkumulation) aus dem Akkumulator 170m empfangen. In einigen beispielhaften Ausführungsformen kann die AFU 180m eine Rundungsoperation am Akkumulationswert aco ausführen und kann eine den Akkumulationswert aco betreffende Nachaktivierung A_O erzeugen. Es versteht sich auch, dass die Nachaktivierung A_O die Ausgabe der approximativen Multiplikationsoperation der ALU 160m betreffen kann. Als Beispiel kann die AFU 180m eine Rundungsoperation am Akkumulationswert aco ausführen und kann an ihn eine Aktivierungsfunktion anlegen. Alternativ kann die AFU 180m eine Aktivierungsfunktion an den Akkumulationswert aco anlegen und an diesem eine Rundungsoperation ausführen. Alternativ kann die AFU 180m eine Rundungsoperation am Akkumulationswert aco ausführen und kann das Anlegen einer Aktivierungsfunktion umgehen. Die AFU 180m kann beispielsweise eine stochastische Rundungsoperation am Akkumulationswert aco ausführen. Dementsprechend kann die AFU 180m die Nachaktivierung A_O (oder Ausgabeaktivierung) erzeugen.
  • 7 ist ein Blockschaltbild zur Veranschaulichung der ALU 160m gemäß einigen beispielhaften Ausführungsformen der vorliegenden Offenbarung. 7 kann beispielsweise ein detailliertes Blockschaltbild der in 6 abgebildeten ALU 160m sein. Nachfolgend wird 7 unter Verweis auf 5 und 6 beschrieben.
  • Wie in 7 dargestellt, kann die ALU 160m einen Approximationsmultiplizierer 162m und einen Addierer 164m aufweisen. Der Approximationsmultiplizierer 162m kann eine approximative Multiplikationsoperation an einer Mehrzahl von Eingabewerten ausführen. Im Detail kann der Approximationsmultiplizierer 162m den ersten Wert mo und die Wichtung W empfangen und kann eine approximative Multiplikation des ersten Werts mo und der Wichtungs W heranziehen. Der Approximationsmultiplizierer 162m kann verschiedenartig implementiert werden, zum Beispiel als Komprimierer-basierter 4:2-Approximationsmultiplizierer, modifizierter Booth-Approximationsmultiplizierer usw.
  • Die vom Approximationsmultiplizierer 162m herangezogene Approximationsmultiplikation des ersten Wertes mo und der Wichtung W kann im Vergleich zu einer allgemeinen Multiplikation des ersten Wertes mo und der Wichtung W zufallsbasiert einen Fehler in einem oder mehreren Bits aufweisen. Das heißt, die Multiplikation des ersten Wertes mo und der Wichtung W kann durch die approximierende Multiplikation eine Zufälligkeit erlangen, und dementsprechend kann anschließend eine stochastische Rundungsoperation in der AFU 180m ausgeführt werden.
  • In einigen beispielhaften Ausführungsformen kann der Approximationsmultiplizierer 162m so gesteuert werden, dass er eine Approximationsmultiplikation in einem Trainingsmodus der NPU 100 ausführt und eine allgemeine Multiplikation in einem Inferenzmodus der NPU 100 ausführt. Der Approximationsmultiplizierer 162m kann, basierend auf dem empfangenen zweiten Steuersignal CTRL 2 aus dem Controller 130, beispielsweise entweder die Approximationsmultiplikation oder die allgemeine Multiplikation ausführen (kann zum Beispiel entweder in einem ersten Modus arbeiten, in dem die approximative Multiplikationsoperation ausgeführt wird, oder in einem zweiten Modus, in dem eine allgemeine Multiplikationsoperation ausgeführt wird).
  • Der Addierer 164m kann eine Additionsoperation an einer Ausgabe des Approximationsmultiplizierers 162m und an dem vom Akkumulator 170 m ausgegebenen Akkumulationswert aco (zum Beispiel an einem Ausgabewert der Akkumulation) ausführen. Das heißt, der Addierer 164m kann den Ausgabewert alo dadurch erzeugen, dass er eine Additionsoperation an einem Ergebnis einer Multiplikationsoperation am ersten Wert mo und der Wichtung W und Akkumulationswert aco im Trainingsmodus ausführt. Der Ausgabewert alo kann beispielsweise ein Wert sein, der einer Summe von Aktivierungen entspricht, die aus der vorhergehenden Schicht empfangen werden.
  • 8 ist ein Blockschaltbild zur Veranschaulichung der AFU 180m gemäß einigen beispielhaften Ausführungsformen der vorliegenden Offenbarung. 8 kann beispielsweise ein detailliertes Blockschaltbild der in 6 abgebildeten AFU 180m sein. Nachfolgend wird 8 unter Verweis auf 5 und 6 beschrieben.
  • Wie in 8 zu sehen, kann die AFU 180m ein Rundungsglied 182m und ein Aktivierungsfunktionsmodul (AF-Modul) 184m aufweisen. Das Rundungsglied 182m kann eine Rundungsoperation an dem vom Akkumulator 170m ausgegebenen Akkumulationswert ausführen. In einigen beispielhaften Ausführungsformen kann der Akkumulationswert aco in einem Trainingsmodus der NPU 100 basierend auf einer approximativen Multiplikationsoperation zufallsbasiert einen Fehler aufweisen, und das Rundungsglied 182m kann dementsprechend eine stochastische Rundungsoperation am Akkumulationswert aco ausführen. Durch eine Rundungsoperation am Akkumulationswert aco kann der Akkumulationswert aco quantisiert werden.
  • Die stochastische Rundungsoperation kann sich auf eine Operation zur Ausführung einer wahrscheinlichkeitsbasierten Rundung beziehen. Wenn bei einem Festkomma-Ansatz ein Exponententeil IL ist und einem Bruchteil FL ist, lässt sich die stochastische Rundungsoperation als nachfolgende [Gleichung 2] definieren. runden ( x , < I L , F L > ) = { x ( mit Wahrscheinlichkeit  1 x x ε ) x + ε ( mit Wahrscheinlichkeit  x x ε ) , ( wenn  ε = 2 FL )
    Figure DE102019100292A1_0009
  • In [Gleichung 2], kann [x] das größte ganzzahlige Vielfache von ∈ unter Werten kleiner als x bezeichnen. In der stochastischen Rundungsoperation gemäß [Gleichung 2] wird eine wahrscheinlichkeitsbasierte Rundungsoperation ausgeführt, und damit lässt sich während des Trainings beispielsweise eine kleine Änderung in einem Bereich von ( ε 2 ,   ε 2 )
    Figure DE102019100292A1_0010
    abbilden.
  • Die NPU 100 gemäß der erfinderischen Konzepte kann eine Mehrzahl von neuronalen Verarbeitungseinheiten aufweisen, die eine stochastische Rundung über den Approximationsmultiplizierer 162m und das Rundungsglied 182m implementieren. Die in der neuronalen Verarbeitungseinheit gemäß mehreren beispielhaften Ausführungsformen implementierte stochastische Rundung lässt sich als nachstehende [Gleichung 3] definieren. runden ( y , < I L , F L > ) = { y ( if x x x + ε 2 ) y + ε ( if y + ε 2 x y + ε ) , ( wenn  ε = 2 FL  und y = x + uniform ( ε 2 , ε 2 ) )
    Figure DE102019100292A1_0011
  • In [Gleichung 3] kann eine uniforme Funktion definiert sein als eine Funktion zur Rückführung eines zufälligen Dezimalbruchs zwischen zwei Eingabegrößen ( ε 2 , ε 2 ) .
    Figure DE102019100292A1_0012
  • In einigen beispielhaften Ausführungsformen kann das AF-Modul 184m eine Aktivierungsfunktion an den gerundeten Akkumulationswert aco anlegen. Das AF-Modul 184m kann eine Aktivierungsfunktion an den gerundeten Akkumulationswert aco anlegen und eine Nachaktivierung A_O ausgeben. Das heißt, das AF-Modul 184m kann eine Aktivierungsfunktion an eine Summe von empfangenen Aktivierungen aus der vorhergehenden Schicht anlegen und die Nachaktivierung A_O ausgeben. Das AF-Modul 184m kann beispielsweise eine Schrittfunktion, eine S-förmige Funktion, eine Hyperbeltangens-Funktion oder eine ReLU-Funktion (Rectified Linear Unit) anlegen, die vorliegende Offenbarung ist aber nicht darauf beschränkt.
  • Obwohl in einigen beispielhaften Ausführungsformen beschrieben wurde, dass der im Rundungsglied 182m gerundete Akkumulationswert aco ins AF-Modul 184m eingegeben wird, handelt es sich hierbei nur um Beispiel, und die vorliegende Offenbarung ist nicht darauf beschränkt. Der Akkumulationswert aco kann beispielsweise ins AF-Modul 184m eingegeben werden, um an ihn eine Aktivierungsfunktion anzulegen, und der Akkumulationswert aco mit der angelegten Aktivierungsfunktion kann in das Rundungsglied 182m eingegeben werden, um an ihm eine stochastische Rundung auszuführen. Als weiteres Beispiel kann vom Rundungsglied 182m eine stochastische Rundungsoperation am Akkumulationswert aco ausgeführt werden, und der Akkumulationswert aco kann das AFM-Modul 184m umgehen und von der AFU 180m ausgegeben werden.
  • 9 und 10 sind ein Flussdiagramm zur Veranschaulichung des Trainierens einer NPU gemäß einigen beispielhaften Ausführungsformen der vorliegenden Offenbarung beziehungsweise eine Darstellung zur Veranschaulichung einer stochastischen Rundung gemäß einigen beispielhaften Ausführungsformen der vorliegenden Offenbarung. Nachfolgend werden 9 und 10 unter Verweis auf 6 bis 8 beschrieben.
  • Wie in 9 dargestellt, kann in einem Trainingsmodus der NPU 100 jede neuronale Verarbeitungseinheit eine approximative Multiplikationsoperation an der Eingabeaktivierung A_I und der Wichtung W ausführen (Operation S110). Die approximative Multiplikationsoperation kann beispielsweise über den in der ALU 160m enthaltenen Approximationsmultiplizierer 162m ausgeführt werden.
  • Als nächstes kann eine Akkumulation an Werten mit ausgeführter approximativer Multiplikationsoperation ausgeführt werden (Operation S120). Die Ausführung der Akkumulation an Werten mit ausgeführter approximativer Multiplikationsoperation kann beispielsweise über den in der ALU 160m enthaltenen Addierer 164m und den Akkumulator 170m erfolgen. Die akkumulierten Werte können beispielsweise einer Summe von empfangenen Aktivierungen aus der vorhergehenden Schicht entsprechen.
  • Als nächstes kann jede neuronale Verarbeitungseinheit eine stochastische Rundung am Akkumulationswert aco ausführen (Operation S130). Die stochastische Rundungsoperation kann beispielsweise über das in der AFU 180m enthaltene Rundungsglied 182m ausgeführt werden. Nach Ausführung der stochastischen Rundung kann eine Aktivierungsfunktion an den Wert mit der ausgeführten stochastischen Rundung angelegt werden (Operation S140). Das Anlegen der Aktivierungsfunktion kann beispielsweise über das in der AFU 180m enthaltene AF-Modul 184m erfolgen.
  • In 10 ist zudem die Realisierung einer stochastischen Rundung an einer Zufallszahl dargestellt. Wenn der in das Rundungsglied 182m eingegebene Akkumulationswert aco beispielsweise 3,3 beträgt, kann bei der stochastischen Rundung gemäß einigen beispielhaften Ausführungsformen der vorliegenden Offenbarung die Wahrscheinlichkeit einer Rundung auf 3 bei 70% und die Wahrscheinlichkeit einer Rundung auf 4 bei 30% liegen. Das heißt, da selbst bei einer Festkomma-Operation eine kleine Änderung wahrscheinlichkeitsabhängig abgebildet werden kann, kann die NPU 100 gemäß den erfinderischen Konzepten ein Festpunkt-Training ausführen. Da außerdem eine stochastische Rundungsoperation über einen Approximationsmultiplizierer auch ohne separaten Zufallszahlengenerator ausgeführt werden kann, können sich eine Fläche und ein Energieverbrauch der NPU 100 vermindern.
  • 11 ist ein Blockschaltbild zur Veranschaulichung einer ALU 260m gemäß einigen beispielhaften Ausführungsformen der vorliegenden Offenbarung. Auf eine wiederholte Beschreibung von in 11 dargestellten Ausgestaltungen, die in Bezug auf 7 beschrieben werden, wird im Folgenden verzichtet.
  • Wie in 11 dargestellt, kann die ALU 260m einen Approximationsmultiplizierer 262m und einen Approximationsaddierer 264m aufweisen. In einigen beispielhaften Ausführungsformen kann der Approximationsaddierer 264m eine approximative Additionsoperation an einer Ausgabe des Approximationsmultiplizierers 262m und am Akkumulationswert aco ausführen. Die approximierende Additionsoperation, die eine Art von Näherungsberechnung ist, kann sich auf einen Additionsoperation beziehen, bei der ein Fehler eines berechneten Ergebniswertes teilweise zulässig ist.
  • In einigen beispielhaften Ausführungsformen kann der Approximationsaddierer 264m so gesteuert werden, dass er eine Approximationsaddition in einem Trainingsmodus der NPU (100 von 5) ausführt und eine allgemeine Addition in einem Inferenzmodus der NPU (100 von 5) ausführt. Der Approximationsaddierer 264m kann beispielsweise so angesteuert werden, dass er basierend auf einem aus dem Controller (130 von 5) empfangenen dritten Steuersignal CTRL 3 entweder eine Approximationsaddition oder eine allgemeine Addition ausführt. Beispielsweise kann im Trainingsmodus der NPU (100 von 5) der Ausgabewert alo über eine Approximationsmultiplikation des Approximationsmultiplizierers 262m und Approximationsaddition des Approximationsaddierers 264m eine Zufälligkeit erlangen, und eine stochastische Rundungsoperation kann dementsprechend anschließend in der AFU (180m von 6) ausgeführt werden.
  • 12 ist ein Blockschaltbild zur Veranschaulichung einer ALU 360m gemäß einigen beispielhaften Ausführungsformen der vorliegenden Offenbarung. Auf eine wiederholte Beschreibung von in 12 dargestellten Ausgestaltungen, die in Bezug auf 7 und 11 beschrieben werden, wird im Folgenden verzichtet.
  • Wie in 12 dargestellt, kann die ALU 360m einen allgemeinen Multiplizierer 362m und einen Approximationsaddierer 364m aufweisen. In einigen beispielhaften Ausführungsformen kann der allgemeine Multiplizierer 362m eine allgemeine Multiplikation in einem Trainingsmodus und einem Inferenzmodus der NPU (100 von 5) ausführen. Darüber hinaus kann der Approximationsaddierer 364m so gesteuert werden, dass er eine Approximationsaddition im Trainingsmodus der NPU (100 von 5) ausführt und eine allgemeine Addition im Inferenzmodus der NPU (100 von 5) ausführt. Beispielsweise kann im Trainingsmodus der NPU (100 von 5) der Ausgabewert alo über eine Approximationsaddition des Approximationsaddierers 364m eine Zufälligkeit erlangen, und eine stochastische Rundungsoperation kann dementsprechend anschließend in der AFU (180m von 6) ausgeführt werden.
  • 13 ist ein Blockschaltbild zur Veranschaulichung einer mobilen Rechenvorrichtung 1000 gemäß einigen beispielhaften Ausführungsformen der vorliegenden Offenbarung. Die mobile Rechenvorrichtung 1000 kann, als nicht einschränkende Beispiele, ein mobiles elektronisches Gerät wie ein Mobiltelefon, ein Tablet-PC, ein Wearable-Gerät oder eine Vorrichtung des Internets der Dinge (IoT) sein, die per Batterie oder Eigenstromerzeugung mit Energie versorgt werden.
  • Wie in 13 dargestellt, kann die mobile Rechenvorrichtung 1000 ein Speichersubsystem 1010, Eingabe/Ausgabe(E/A)-Vorrichtungen 1030, eine Verarbeitungseinheit 1050 und eine Netzschnittstelle 1070 aufweisen, und das Speichersubsystem 1010, die E/A-Vorrichtungen 1030, die Verarbeitungseinheit 1050 und die Netzschnittstelle 1070 können über einen Bus 1090 miteinander kommunizieren. In einigen Ausführungsformen können mindestens zwei der Elemente Speichersubsystem 1010, E/A-Vorrichtungen 1030, Verarbeitungseinheit 1050 und Netzschnittstelle 1070 in ein und demselben Gehäuse als System-on-Chip enthalten sein.
  • Das Speichersubsystem 1010 kann RAM 1012 und einen Ablagespeicher 1014 umfassen. Der RAM 1012 und/oder der Ablagespeicher 1014 können Anweisungen zur Ausführung durch die Verarbeitungseinheit 1050 und zu verarbeitende Daten speichern. Der RAM 1012 und/oder der Ablagespeicher 1014 können beispielsweise Variablen wie Signale, Wichtungen und Bias-Werte eines neuronalen Netzes speichern oder können Parameter eines Neurons (oder Knotens) des neuronalen Netzes speichern. In einigen Ausführungsformen kann der Ablagespeicher 1014 nichtvolatilen Speicher umfassen.
  • Die Verarbeitungseinheit 1050 kann eine zentrale Verarbeitungseinheit (CPU) 1052, einen Grafikprozessor (GPU) 1054, einen digitalen Signalprozessor (DSP) 1056 und eine NPU 1058 umfassen. Anders als in 13 dargestellt, kann die Verarbeitungseinheit 1050 in einigen Ausführungsformen mindestens einige der Elemente CPU 1052, GPU 1054, DSP 1056 und NPU 1058 umfassen.
  • Die CPU 1052 kann einen Gesamtbetrieb der mobilen Rechenvorrichtung 1000 ausführen oder steuern und beispielsweise eine gegebene Operation in Antwort auf eine über die E/A-Vorrichtungen 1030 empfangene externe Eingabe direkt ausführen oder kann andere Komponenten der Verarbeitungseinheit 1050 zur Ausführung anweisen. Die GPU 1054 kann Daten für ein Bild erzeugen, das über eine in den E/A-Vorrichtungen 1030 enthaltene Anzeige ausgegeben wird, oder kann Daten kodieren, die aus einer in den E/A-Vorrichtungen 1030 enthaltenen Kamera empfangen werden. Die DSP 1056 kann nützliche Daten durch Verarbeitung eines digitalen Signals, beispielsweise eines von der Netzschnittstelle 1070 bereitgestellten Digitalsignals, erzeugen.
  • Die NPU 1058 als exklusive Hardware für das neuronale Netz kann neuronale Verarbeitungseinheiten aufweisen, die mindestens einigen Neuronen entsprechen, aus denen das neuronale Netz besteht, und mindestens einige der neuronalen Verarbeitungseinheiten können Signale parallel verarbeiten. Die NPU 1058 gemäß einigen beispielhaften Ausführungsformen der vorliegenden Offenbarung kann einen Approximationsmultiplizierer und ein Rundungsglied aufweisen und kann dementsprechend ein neuronales Netztraining ausführen, das ein Festkomma-Training mit hoher Genauigkeit ermöglicht, was die Betriebsleistung und/oder Funktionalität der mobilen Rechenvorrichtung 1000 verbessert. Da außerdem eine stochastische Rundung auch ohne separaten Zufallszahlengenerator ausgeführt werden kann, können sich eine Fläche und ein Energieverbrauch der NPU 1058 vermindern, was die Betriebsleistung und/oder Funktionalität der mobilen Rechenvorrichtung 1000 weiter verbessert.
  • Die E/A-Vorrichtungen 1030 können Eingabegeräte wie ein Tasteingabegerät, ein Toneingabegerät und eine Kamera sowie Ausgabegeräte wie ein Bildanzeigegerät und ein Tonausgabegerät umfassen. Wenn beispielsweise die Stimme eines Benutzers über das Toneingabegerät eingegeben wird, kann die Stimme durch das in der mobilen Rechenvorrichtung 1000 implementierte neuronale Netz erkannt und eine entsprechende Operation ausgelöst werden. Wenn zudem ein Bild über die Kamera eingegeben wird, kann ein im Bild enthaltenes Objekt durch das in der mobilen Rechenvorrichtung 1000 implementierte neuronale Netz erkannt und eine Ausgabe wie virtuelle Realität einem Nutzer bereitgestellt werden. Die Netzschnittstelle 1070 kann die mobile Rechenvorrichtung 1000 mit einem Zugang zu einem mobilen Kommunikationsnetz wie LTE (Long Term Evolution), 5G usw. versehen oder kann einen Zugang zu einem lokalen Netz wie Wi-Fi bereitstellen.
  • 14 veranschaulicht ein Fahrzeug gemäß einigen beispielhaften Ausführungsformen.
  • Wie in 14 dargestellt, kann das Fahrzeug 1400 eines oder mehrere der folgenden Elemente umfassen: eine Verarbeitungsanordnung 1402, eine oder mehrere Sensorvorrichtungen 1420, eine oder mehrere Kommunikationsschnittstellen 1430, eines oder mehrere Fahrsteuerungselemente 1440, ein autonomes Navigationssystem 1450 und einen oder mehrere Fahrzeuginsassen(„Benutzer“)schnittstellen 1460.
  • Der eine oder die mehreren Sensoren 1420 können, wie vorliegend beschrieben, eine oder mehrere Kameravorrichtungen, aktive Abtastvorrichtungen (zum Beispiel ein oder mehrere LiDAR-Sensorvorrichtungen), eine oder mehrere Ultraschall-Sensorvorrichtungen, eine oder mehrere Geopositionsbestimmungsvorrichtungen, eine Kombination derselben oder dergleichen umfassen. Eine Sensorvorrichtung 1420 kann basierend auf einer Überwachung eines oder mehrerer Teilabschnitte einer Außenumgebung des Fahrzeugs 1400 ein Sensorsignal erzeugen.
  • Das eine oder die mehreren Fahrsteuerungselemente, wie vorliegend beschrieben, können eines oder mehrere der folgenden Elemente umfassen: eine Fahrzeuglenkvorrichtung, die zur Lenkung des Fahrzeugs 1400 ausgelegt ist, eine Drosselvorrichtung, die zur Steuerung mindestens eines Teilbereichs eines Motors des Fahrzeugs 1400 ausgelegt ist, um die Beschleunigung und/oder Bewegung des Fahrzeugs 1400 zu steuern, eine Bremsvorrichtung, die zur Bremsung des Fahrzeugs 1400 ausgelegt ist, eine Lichtanordnung, die zur Bereitstellung einer Außenbeleuchtung ausgelegt ist (zum Beispiel Scheinwerfer, Bremslichter, Blinklichter zur Richtungsanzeige und dergleichen), eine Klimasteuerungsanordnung, die zur Steuerung der Beheizung und/oder Kühlung eines oder mehrerer Zonen des Fahrgastraums des Fahrzeugs 1400 ausgelegt ist, oder ein beliebiges anderes bekanntes Element mit Auslegung zur Steuerung eines Betriebs- oder Bedienvorgangs des Fahrzeugs 1400.
  • Wie hier beschrieben, kann die Benutzerschnittstelle 1460 eines oder mehrere der folgenden Elemente umfassen: eine grafische Benutzerschnittstelle (GUI), die auf einem oder mehreren Anzeigebildschirmen im Fahrgastraum des Fahrzeugs 1400 (darunter ein Touchscreen-Display, nicht interaktives Display, Heads-up-Display, deren Kombination oder dergleichen) dargestellt wird, eine Audio-Schnittstelle (zum Beispiel Lautsprecher und/oder Mikrofone), taktile Schnittstellenvorrichtungen, eine Kombination derselben oder dergleichen.
  • Die eine oder mehreren Kommunikationsschnittstellen 1430, wie hier beschrieben, können einen Funktransceiver, einen Drahtlosnetz-Kommunikationstransceiver, einen ad-hoc-Drahtlosnetz-Kommunikationstransceiver, eine Vorrichtung mit Geopositionsbestimmungssystem (GPS), eine Kombination derselben oder dergleichen umfassen.
  • Das autonome Navigationssystem 1450, wie hier beschrieben, kann eine Rechenvorrichtung (zum Beispiel mindestens einen ein Programm von Anweisungen speichernden Speicher und mindestens einen zum Ausführen des Programms von Anweisungen ausgelegten Prozessor) umfassen, die dazu ausgelegt ist, eine autonome Steuerung eines oder mehrerer Fahrsteuerungselemente 1440 zu implementieren, um das Fahrzeug 1400 autonom durch eine Umgebung zu navigieren. Das autonome Navigationssystem 1450 kann dazu ausgelegt sein, diese autonome Steuerung eines oder mehrerer Fahrsteuerungselemente auf Grundlage der Verarbeitung von Sensordaten, die durch eine oder mehrere Sensorvorrichtungen 1420 erzeugt werden, zu implementieren.
  • Die Verarbeitungsanordnung 1402 kann, wie dargestellt, eine Neuronalnetz-Verarbeitungseinheit (NPU) 1410 umfassen. Die NPU 1410 kann die NPU 100 und/oder die NPU 1058 sein, wie hier beschrieben. In einigen beispielhaften Ausführungsformen ist die Verarbeitungsanordnung 1402 im autonomen Navigationssystem 1450 enthalten, so dass das autonome Navigationssystem die NPU 1410 umfasst.
  • In einigen beispielhaften Ausführungsformen ist das Fahrzeug 1400 zum Einschalten einer autonomen Navigation (zum „autonomen Fahren“) ausgelegt, beispielsweise zum Fahren des Fahrzeugs unabhängig von der fahrzeuginsassenseitigen Bedienung von Fahrsteuerungselementen 1440, so dass das Fahrzeug 1400 hier als autonomes Fahrzeug bezeichnet werden kann.
  • In einigen beispielhaften Ausführungsformen kann die NPU 1410, bei der es sich um die hier beschriebene(n) NPU 100 und/oder NPU 1058 handeln kann, so ausgelegt sein, dass sie eine oder mehrere Einzelpositionen („Instanzen“) von Eingabedaten empfängt, die Sensordaten umfassen, die von einer oder mehreren Sensorvorrichtungen 1420 erzeugt werden. Die NPU 1410 kann ausgelegt sein zum Empfangen von mehreren Wichtungen aus einer oder mehreren verschiedenen Vorrichtungen, die einen oder mehrere IPs umfassen, die in der Verarbeitungsanordnung 1402 und/oder im autonomen Navigationssystem 1450 enthalten sein können. Die Wichtungen können an der NPU über eine oder mehrere der Elemente Benutzerschnittstelle 1460, Sensorvorrichtung 1420 oder Kommunikationsschnittstelle 1430 empfangen werden.
  • Die NPU 1410 kann, wie hier beschrieben, zum Ausführen der Funktionalität der NPU 100 ausgelegt sein, zum Beispiel zum Ausführen einer Berechnung basierend auf einer oder mehreren Instanzen von Eingabedaten (zum Beispiel Sensordaten) und mehreren Wichtungen, um ein Ausgangssignal (zum Beispiel eine Nachaktivierung A_O) zu erzeugen, bei dem es sich um ein Fahrsteuerungselement-Steuersignal handeln kann, das an mindestens ein Fahrsteuerungselement 1440 gesendet wird, um zu bewirken, dass das mindestens eine Fahrsteuerungselement 1440 eine Steuerungskontrolle über einen oder mehrere Fahraspekte des Fahrzeugs 1400 realisiert, um das Fahrzeug 1400 autonom zu navigieren.
  • Die eine oder mehreren Instanzen von Eingabedaten können in einigen beispielhaften Ausführungsformen Daten sein, die aus einer Benutzerschnittstelle 1460 und/oder einer Kommunikationsschnittstelle 1430 an der NPU 1410 empfangen werden. Darüber hinaus ist die NPU 1410 in einigen beispielhaften Ausführungsformen ausgelegt zum Erzeugen eines Ausgabesignals (zum Beispiel einer Nachaktivierung A_O), das dafür sorgt, dass eine Benutzerschnittstelle 1460 eine Benutzerschnittstellenfunktionalität in Bezug auf einen oder mehrere Insassen des Fahrzeugs 1400 bereitstellt. In einigen beispielhaften Ausführungsformen ist die NPU 1410 auch ausgelegt zum Erzeugen eines Ausgabesignals (zum Beispiel einer Nachaktivierung A_O), das dafür sorgt, dass eine Kommunikationsschnittstelle 1430 Informationen und/oder eine Informationsanforderung an eine oder mehrere externe, fernpositionierte Entitäten sendet, die eine Basisstation, ein anderes Fahrzeug, eine fernpositionierte Kommunikationsvorrichtung (zum Beispiel ein Smartphone), eine Server-Vorrichtung in einem drahtlosen Netzwerk, eine Kombination derselben oder dergleichen umfassen.
  • In einigen beispielhaften Ausführungsformen kann die NPU 1410 einen Approximationsmultiplizierer und ein Rundungsglied aufweisen und kann dementsprechend ein neuronales Netztraining ausführen, das ein Festkomma-Training mit hoher Genauigkeit ermöglicht, was die betriebliche Leistung und/oder Funktionalität der mobilen Rechenvorrichtung 1400 dahingehend verbessert, dass sie zur Implementierung einer autonomen Navigation des Fahrzeugs 1400 ausgelegt ist. Die NPU 1410 kann beispielsweise so ausgelegt sein, dass sie auf Grundlage der Verarbeitung von Sensordaten, die durch eine oder mehrere Sensorvorrichtungen 1420 erzeugt werden, eine autonome Navigation des Fahrzeugs 1400 mit verbesserter Genauigkeit, Präzision und/oder Effizienz ermöglicht und dadurch die autonome Navigationsfunktionalität des Fahrzeugs 1400 verbessert. Da außerdem eine stochastische Rundung auch ohne separaten Zufallszahlengenerator ausgeführt werden kann, können sich eine Fläche und ein Energieverbrauch der NPU 1410 vermindern, was die betriebliche Leistung und/oder Funktionalität des Fahrzeugs 1400 mit Blick auf eine mindestens effiziente und kompakte Hardware in Verbindung mit der autonomen Navigationsfunktionalität des Fahrzeugs 1400 verbessert.
  • Während die erfinderischen Konzepte unter Bezugnahme auf beispielhafte Ausführungsformen besonders dargestellt und beschrieben wurden, versteht es sich, dass hier verschiedene Änderungen an Form und Einzelheiten vorgenommen werden können, ohne vom Umfang der nachfolgenden Ansprüche abzuweichen.

Claims (20)

  1. Neuronalnetz-Verarbeitungseinheit, die ausgelegt ist zum Ausführen einer Berechnung basierend auf einer oder mehreren Instanzen von Eingabedaten (I) und einer Mehrzahl von Wichtungen (W), wobei die Neuronalnetz-Verarbeitungseinheit umfasst: eine Mehrzahl von neuronalen Verarbeitungseinheiten (140-1 bis 140-n, 140-m), wobei mindestens eine neuronale Verarbeitungseinheit aus der Mehrzahl von neuronalen Verarbeitungseinheiten (140-1 bis 140-n, 140-m) ausgelegt ist zum Empfangen eines ersten Wertes (mo) und eines zweiten Wertes und Ausführen einer approximativen Multiplikationsoperation basierend auf dem ersten Wert (mo) und dem zweiten Wert; und Ausführen einer stochastischen Rundungsoperation basierend auf einem Ausgabewert der approximativen Multiplikationsoperation.
  2. Neuronalnetz-Verarbeitungseinheit nach Anspruch 1, wobei die mindestens eine neuronale Verarbeitungseinheit ferner dazu ausgelegt ist, als ein Element alternativ entweder eine oder mehrere Instanzen von Eingabedaten (I) oder einen Ausgabewert (A I) einer neuronalen Verarbeitungseinheit aus der Mehrzahl neuronaler Verarbeitungseinheiten (140-1 bis 140-n, 140-m) auszuwählen, und das ausgewählte eine Element als ersten Wert (mo) auszugeben.
  3. Neuronalnetz-Verarbeitungseinheit nach Anspruch 1 oder 2, wobei der zweite Wert mindestens eine Wichtung aus der Mehrzahl von Wichtungen (W) umfasst.
  4. Neuronalnetz-Verarbeitungseinheit nach einem der Ansprüche 1 bis 3, wobei die mindestens eine neuronale Verarbeitungseinheit ferner ausgelegt ist zum Akkumulieren eines oder mehrerer Ausgabewerte der approximativen Multiplikationsoperation; und Ausführen einer Additionsoperation basierend auf dem Ausgabewert der approximativen Multiplikationsoperation und einem Ausgabewert der Akkumulation (aco).
  5. Neuronalnetz-Verarbeitungseinheit nach Anspruch 4, wobei die mindestens eine neuronale Verarbeitungseinheit ausgelegt ist zum Ausführen der stochastischen Rundungsoperation am Ausgabewert der Akkumulation (aco).
  6. Neuronalnetz-Verarbeitungseinheit nach einem der Ansprüche 1 bis 5, wobei die mindestens eine neuronale Verarbeitungseinheit ausgelegt ist zum Ausführen der approximativen Multiplikationsoperation in Reaktion darauf, dass die Neuronalnetz-Verarbeitungseinheit (100; 1058) in einem Trainingsmodus arbeitet.
  7. Neuronalnetz-Verarbeitungseinheit nach Anspruch 6, ferner umfassend: einen Controller (130), der ausgelegt ist zum Ausgeben eines Steuersignals (CTRL_1 bis CTRL_3) zum Steuern eines Modus der mindestens einen neuronalen Verarbeitungseinheit, wobei die mindestens eine neuronale Verarbeitungseinheit dazu ausgelegt ist, dass sie basierend auf dem Steuersignal (CTRL 2) entweder in einem ersten Modus, in dem die approximative Multiplikationsoperation ausgeführt wird, oder einem zweiten Modus, in dem eine allgemeine Multiplikationsoperation ausgeführt wird, arbeitet.
  8. Neuronalnetz-Verarbeitungseinheit nach Anspruch 7, wobei die mindestens eine neuronale Verarbeitungseinheit dazu ausgelegt ist, basierend auf dem Steuersignal (CTRL_1 bis CTRL_3) in einem Inferenzmodus der Neuronalnetz-Verarbeitungseinheit (100; 1058) im zweiten Modus zu arbeiten.
  9. Neuronalnetz-Verarbeitungseinheit nach einem der Ansprüche 1 bis 8, wobei die mindestens eine neuronale Verarbeitungseinheit eine Vorrichtung des Festkommatyps umfasst.
  10. System-on-Chip, umfassend: einen oder mehrere Halbleiter-Intellectual-Property-Cores (IPs) (IP1 bis IP3); und eine Neuronalnetz-Verarbeitungseinheit (100), die ausgelegt ist zum Empfangen von Eingabedaten (I) aus dem einen oder den mehreren IPs und Ausführen einer Neuronalnetz-Berechnung basierend auf den Eingabedaten (I) und einer Mehrzahl von Wichtungen (W), wobei die Neuronalnetz-Verarbeitungseinheit (100; 1058) eine Mehrzahl von neuronalen Verarbeitungseinheiten (140-1 bis 140-n, 140-m) umfasst, wobei mindestens eine neuronale Verarbeitungseinheit aus der Mehrzahl von neuronalen Verarbeitungseinheiten (140-1 bis 140-n, 140-m) ausgelegt ist zum Empfangen eines ersten Wertes (mo) und eines zweiten Wertes und Ausführen einer approximativen Multiplikationsoperation an dem ersten Wert (mo) und dem zweiten Wert, und Ausführen einer stochastischen Rundungsoperation basierend auf einem Ausgabewert der approximativen Multiplikationsoperation, um eine Nachaktivierung (A_O) in Bezug auf die Ausgabe der approximativen Multiplikationsoperation auszugeben.
  11. System-on-Chip nach Anspruch 10, wobei die Neuronalnetz-Verarbeitungseinheit (100) ferner einen zum Steuern der approximativen Multiplikationsoperation ausgelegten Controller (130) umfasst und die mindestens eine neuronale Verarbeitungseinheit ausgelegt ist zum Ausführen der approximativen Multiplikationsoperation in einem Trainingsmodus der Neuronalnetz-Verarbeitungseinheit (100; 1058), basierend auf der Steuerung des Controllers (130).
  12. System-on-Chip nach Anspruch 11, wobei die mindestens eine neuronale Verarbeitungseinheit ausgelegt ist zum Ausführen einer allgemeinen Multiplikationsoperation in einem Inferenzmodus der Neuronalnetz-Verarbeitungseinheit (100; 1058), basierend auf der Steuerung des Controllers (130).
  13. System-on-Chip nach Anspruch 10 oder 12, wobei die Neuronalnetz-Verarbeitungseinheit (100; 1058) ferner einen Daten-Direktzugriffsspeicher (Daten-RAM) (110) umfasst, der ausgelegt ist zum Empfangen von Trainingsdaten aus dem einen oder den mehreren IPs (IP1 bis IP3) in einem Trainingsmodus und Speichern der Trainingsdaten.
  14. System-on-Chip nach Anspruch 13, wobei die mindestens eine neuronale Verarbeitungseinheit ausgelegt ist zum Empfangen ausgegebener Trainingsdaten (I) aus dem Daten-RAM und eines Ausgabewerts (A I) von einem der mehreren neuronalen Verarbeitungseinheiten, Auswählen entweder der Trainingsdaten (I) oder des Ausgabewerts (A I), und Ausgeben der ausgewählten Trainingsdaten (I) oder des ausgewählten Ausgabewerts (A_I) als ersten Wert (mo).
  15. System-on-Chip nach einem der Ansprüche 10 bis 14, wobei der zweite Wert mindestens eine Wichtung aus der Mehrzahl von Wichtungen (W) umfasst.
  16. System-on-Chip nach einem der Ansprüche 10 bis 15, wobei die mindestens eine neuronale Verarbeitungseinheit ausgelegt ist zum Akkumulieren eines oder mehrerer Ausgabewerte der approximativen Multiplikationsoperation, Ausführen einer Additionsoperation basierend auf dem Ausgabewert der approximativen Multiplikationsoperation und einem Ausgabewert der Akkumulation (aco), und Ausführen der stochastischen Rundungsoperation am Ausgabewert der Akkumulation (aco).
  17. Neuronalnetz-Verarbeitungseinheit, die ausgelegt ist zum Ausführen einer Trainingsoperation basierend auf einer oder mehreren Instanzen von Trainingsdaten (I) und einer Mehrzahl von Wichtungen (W) in einem Trainingsmodus, wobei die Neuronalnetz-Verarbeitungseinheit (100; 1058) umfasst: eine Mehrzahl von neuronalen Verarbeitungseinheiten (140-1 bis 140-n, 140-m), wobei mindestens eine neuronale Verarbeitungseinheit aus der Mehrzahl von neuronalen Verarbeitungseinheiten (140-1 bis 140-n, 140-m) ausgelegt ist zum Empfangen eines ersten Wertes (mo) und eines zweiten Wertes und Ausführen einer approximativen Multiplikationsoperation an dem ersten Wert (mo) und dem zweiten Wert im Trainingsmodus, Ausführen einer Additionsoperation basierend auf einem Ausgabewert der approximativen Multiplikationsoperation und einem dritten Wert, Akkumulieren eines Ausgabewertes der approximativen Multiplikationsoperation, und Ausführen einer stochastischen Rundungsoperation an einem Akkumulationswert (aco) basierend auf der Akkumulation, um eine Nachaktivierung (A_O) in Bezug auf den Akkumulationswert (aco) auszugeben.
  18. Neuronalnetz-Verarbeitungseinheit nach Anspruch 17, wobei der erste Wert (mo) entweder die eine oder die mehreren Instanzen von Trainingsdaten (I) oder einen Ausgabewert (A I) von einer der mehreren neuronalen Verarbeitungseinheiten (140-1 bis 140-n, 140-m) umfasst und der zweite Wert mindestens eine Wichtung aus der Mehrzahl von Wichtungen (W) umfasst.
  19. Neuronalnetz-Verarbeitungseinheit nach Anspruch 17 oder 18, wobei der dritte Wert den basierend auf der Akkumulation ausgegebenen Akkumulationswert (aco) umfasst.
  20. Neuronalnetz-Verarbeitungseinheit nach einem der Ansprüche 17 bis 19, wobei die Trainingsoperation eine Trainingsoperation des Festkommatyps umfasst.
DE102019100292.3A 2018-01-09 2019-01-08 Neuronalnetz-Verarbeitungseinheit mit Approximationsmultiplizierer und System-on-Chip mit einer solchen Einheit Pending DE102019100292A1 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020180002776A KR102637735B1 (ko) 2018-01-09 2018-01-09 근사 곱셈기를 구비하는 뉴럴 네트워크 처리 장치 및 이를 포함하는 시스템온 칩
KR10-2018-0002776 2018-01-09

Publications (1)

Publication Number Publication Date
DE102019100292A1 true DE102019100292A1 (de) 2019-07-11

Family

ID=66995591

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102019100292.3A Pending DE102019100292A1 (de) 2018-01-09 2019-01-08 Neuronalnetz-Verarbeitungseinheit mit Approximationsmultiplizierer und System-on-Chip mit einer solchen Einheit

Country Status (5)

Country Link
US (1) US20190212981A1 (de)
KR (1) KR102637735B1 (de)
CN (1) CN110020723B (de)
DE (1) DE102019100292A1 (de)
TW (1) TWI818944B (de)

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102098713B1 (ko) * 2018-01-29 2020-04-08 주식회사 유엑스팩토리 Cnn과 rnn이 하나의 고성능 저전력 칩으로 집적된 이기종 프로세서 구조
US11410040B2 (en) * 2018-10-23 2022-08-09 Qualcomm Incorporated Efficient dropout inference for bayesian deep learning
TWI723634B (zh) * 2019-10-01 2021-04-01 創鑫智慧股份有限公司 資料處理系統及其資料處理方法
US12020149B2 (en) * 2019-10-28 2024-06-25 Micron Technology, Inc. Distributed neural network processing on an intelligent image sensor stack
US11507702B2 (en) * 2019-11-05 2022-11-22 Apple Inc. Secure mode switching in neural processor circuit
CN111832719A (zh) * 2020-07-28 2020-10-27 电子科技大学 一种定点量化的卷积神经网络加速器计算电路
CN112098845B (zh) * 2020-08-17 2021-08-31 四川大学 一种用于分布式储能系统的锂电池状态估计方法
CN112035398B (zh) * 2020-08-25 2023-10-24 青岛信芯微电子科技股份有限公司 一种系统级芯片SoC及适用于SoC的数据处理方法
US11099854B1 (en) * 2020-10-15 2021-08-24 Gigantor Technologies Inc. Pipelined operations in neural networks
US11256981B1 (en) * 2020-10-15 2022-02-22 Gigantor Technologies Inc. Unbounded parallel implementation of deep neural networks
WO2022126630A1 (zh) * 2020-12-18 2022-06-23 清华大学 可重构处理器及其上多种神经网络激活函数计算方法
EP4323864A1 (de) * 2021-04-15 2024-02-21 Gigantor Technologies Inc. Pipelineoperationen in neuronalen netzwerken
TWI819645B (zh) * 2022-06-08 2023-10-21 緯創資通股份有限公司 更新神經網路模型的方法和電子裝置
KR102607328B1 (ko) * 2023-02-01 2023-11-29 (주) 한국주택정보 소규모 주택의 관리비 정산 방법 및 시스템

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7711765B2 (en) * 2006-02-17 2010-05-04 Telefonaktiebolaget L M Ericsson (Publ) Method and apparatus to perform multiply-and-accumulate operations
US9389863B2 (en) * 2014-02-10 2016-07-12 Via Alliance Semiconductor Co., Ltd. Processor that performs approximate computing instructions
US10049322B2 (en) * 2015-05-21 2018-08-14 Google Llc Prefetching weights for use in a neural network processor
US10192162B2 (en) * 2015-05-21 2019-01-29 Google Llc Vector computation unit in a neural network processor
US11244225B2 (en) * 2015-07-10 2022-02-08 Samsung Electronics Co., Ltd. Neural network processor configurable using macro instructions
CN106485318B (zh) * 2015-10-08 2019-08-30 上海兆芯集成电路有限公司 具有混合协处理器/执行单元神经网络单元的处理器
US10353860B2 (en) * 2015-10-08 2019-07-16 Via Alliance Semiconductor Co., Ltd. Neural network unit with neural processing units dynamically configurable to process multiple data sizes
CN107153522B (zh) * 2017-04-21 2020-10-02 东南大学 一种面向人工神经网络计算的动态精度可配近似乘法器
US10474458B2 (en) * 2017-04-28 2019-11-12 Intel Corporation Instructions and logic to perform floating-point and integer operations for machine learning
US11361215B2 (en) * 2017-11-29 2022-06-14 Anaflash Inc. Neural network circuits having non-volatile synapse arrays
EP3502978A1 (de) * 2017-12-22 2019-06-26 Siemens Healthcare GmbH Meta-lernsystem

Also Published As

Publication number Publication date
KR102637735B1 (ko) 2024-02-19
US20190212981A1 (en) 2019-07-11
CN110020723B (zh) 2024-09-24
KR20190084705A (ko) 2019-07-17
TWI818944B (zh) 2023-10-21
TW201933194A (zh) 2019-08-16
CN110020723A (zh) 2019-07-16

Similar Documents

Publication Publication Date Title
DE102019100292A1 (de) Neuronalnetz-Verarbeitungseinheit mit Approximationsmultiplizierer und System-on-Chip mit einer solchen Einheit
DE102020132559A1 (de) Technologie zum anwenden von fahrnormen zur verhaltensvoritersage automatisierter fahrzeuge
DE102020105535A1 (de) Neuronale Netzwerkvorrichtung und Verfahren zum Quantisieren von Parametern eines neuronalen Netzwerks
CN109685819B (zh) 一种基于特征增强的三维医学图像分割方法
DE112019001733T5 (de) Emotional adaptive Fahr-Policies für automatisiert fahrende Fahrzeuge
DE202016107436U1 (de) Neuronaler Netzwerkprozessor
DE112016002298T5 (de) Vorabruf von gewichten zur verwendung in einem neuronalen netzwerkprozessor
DE102018126670A1 (de) Fortschreitende Modifizierung von generativen adversativen neuronalen Netzen
DE102018132069A1 (de) Äquivariante Orientierungspunkt-Transformation für Orientierungspunkt-Lokalisierung
DE112016002292T5 (de) Stapel-verarbeitung in einem neuronalen netzwerkprozessor
DE102019122818A1 (de) Neuronale Netzwerkvorrichtung für eine neuronale Netzwerkoperation, Verfahren zum Betreiben einer neuronalen Netzwerkvorrichtung und Anwendungsprozessor, der die neuronale Netzwerkvorrichtung beinhaltet
DE102017121257A1 (de) Ausführen von Mittelwert-Poolbildung in Hardware
DE202016008302U1 (de) Komprimierte rekurrente neuronale Netzmodelle
DE112019003529T5 (de) Datendarstellung für dynamische Genauigkeit in Kernen neuronaler Netze
DE102022119386A1 (de) Verfahren und einrichtung zum durchführen einer dichten vorhersage unter verwendung von transformatorblöcken
DE102021119722A1 (de) Feingranulare pro-vektor-skalierung für neuronale netzwerkquantisierung
DE112019000676T5 (de) Zentraler scheduler und anweisungszuteiler für einen neuronalen inferenzprozessor
DE102021108622A1 (de) Neuronale netzvorrichtung , verfahren zum betrieb der neuronalen netzvorrichtung und anwendungsprozessor, der die neuronale netzvorrichtung umfasst
DE102019115244A1 (de) Aktivieren des null-bypasses und des weight-pruning in neuronalen netzwerken für fahrzeugwahrnehmungssysteme
DE102019103319A1 (de) Stochastisches runden von zahlenwerten
DE102022103358A1 (de) Training für maschinelles lernen im logarithmischen zahlensystem
CN109492761A (zh) 实现神经网络的fpga加速装置、方法和系统
DE112022005379T5 (de) Robuste vision-transformer
US11119507B2 (en) Hardware accelerator for online estimation
DE102018114799A1 (de) Halbüberwachtes lernen zur orientierungspunktlokalisierung

Legal Events

Date Code Title Description
R012 Request for examination validly filed