DE19718224A1 - Digitaler Neuroprozessor - Google Patents
Digitaler NeuroprozessorInfo
- Publication number
- DE19718224A1 DE19718224A1 DE19718224A DE19718224A DE19718224A1 DE 19718224 A1 DE19718224 A1 DE 19718224A1 DE 19718224 A DE19718224 A DE 19718224A DE 19718224 A DE19718224 A DE 19718224A DE 19718224 A1 DE19718224 A1 DE 19718224A1
- Authority
- DE
- Germany
- Prior art keywords
- activity
- values
- bit
- memory
- calculation
- 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.)
- Withdrawn
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/06—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
- G06N3/063—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Health & Medical Sciences (AREA)
- Life Sciences & Earth Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Theoretical Computer Science (AREA)
- Evolutionary Computation (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Artificial Intelligence (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Neurology (AREA)
- Complex Calculations (AREA)
Description
Die Erfindung betrifft einen Neuroprozessor mit dem künstliche neuronale Netzwerke unterschiedlicher
Struktur mit geringem Platz- und Kostenaufwand sowie geringem Stromverbrauch bei gleichzeitig hoher
Rechenleistung in der Arbeitsphase realisiert werden können. Mögliche Netzstrukturen sind dabei, Per
ceptron, Multi-Layer-Perceptron, Elman und Jordan Netze sowie lokal- und vollvernetzte rückgekoppelte
Netzwerke.
Es ist bekannt, daß zur Umsetzung künstlicher neuronaler Netzwerke sowohl universelle Digitalrechner
hoher Leistung als auch Spezialhardware eingesetzt wird. Beiden gemein ist im allgemeinen ein großer
Schaltungsaufwand, der zu hohen Systemkosten bei hohem Platz- und Strombedarf führt. Der Einsatz
einfacherer, für die Anwendung in Massen- und Konsumgütern sowie in netzunabhängigen Geräten op
timierter Systeme wie digitalen Signalprozessoren oder Microcontroller ist auf Grund der zu geringen
Rechenleistung dieser Systeme meist nicht möglich.
Die bekannten digitalen Neuroprozessoren (MA16, Siemens/Lneuro 1.0, Philips/CNAPS, Adaptive
Solutions/etc.) stellen in den meisten Fällen Co-Prozessoren dar, die zu ihrer Verwendung in ein größeres
Computersystem integriert werden müssen. Dabei ist entweder die Flexibilität bezüglich der simulierbaren
Netzstrukturen eingeschränkt oder es ist eine aufwendige Programmierung erforderlich. Im allgemeinen
wurden die Prozessoren dabei auf die Anforderungen beim Netztraining optimiert, um die Entwicklung
neuronaler Netzwerke im Forschungsbereich bestmöglich zu unterstützen. Im reinen Anwendungsfall wer
den aber fast ausschließlich fertig trainierte Netzwerke eingesetzt, für deren Berechnung nur sehr wenige
auf den speziellen Anwendungsfall optimierte Prozessoren existieren. Daher ist die Anwendung neurona
ler Netzwerke zur Zeit weitgehend auf den Forschungsbereich und einige Einzelanwendungen beschränkt.
Dort haben sich neuronale Netzwerke jedoch als äußert leistungsfähig erwiesen, da sie in der Lage sind
nichtlineare Abbildungen zu erlernen, die in vielen Bereichen eine große Rolle spielen. Im angrenzenden
Bereich der Fuzzy-Logic wurde erst durch die Einführung kostengünstiger und für den Anwendungsfall
optimierter Spezialprozessoren die Verwendung von Fuzzy-Logic in Massenprodukten in großem Maße
ermöglicht.
Der Erfindung liegt die Aufgabe zugrunde eine Berechnung neuronaler Netzwerke in der Arbeitsphase bei
niedriger Systemkomplexität und niedrigem Speicherbedarf zu ermöglichen. Dabei sollen unterschiedliche
nicht rekurrente sowie rekurrente neuronale Netzwerke mit hoher Neuronenanzahl und hohem Vernet
zungsgrad, unter Ausnutzung der inhärenten Parallelität und Regularität dieser Netzwerke simulierbar
sein, ohne daß Kommunikations- und Datentransferprobleme auftreten. Die für solche Netzwerke nöti
ge hohe Rechenleistung soll bei niedrigem Energieverbrauch und niedrigen Systemkosten bereitgestellt
werden können um den Einsatz in mobilen, netzunabhängigen Massenprodukten zu ermöglichen.
Diese Aufgabe wird durch die Vorrichtung und das Verfahren gemäß Anspruch 1 gelöst.
Die zur Berechnung neuronaler Netzwerke notwendigen Rechenoperationen werden auf digitaler Spe
zialhardware im allgemeinen im Festkommaformat mit relativ geringer Bitbreite ausgeführt (teilweise
wird auch eine Zahlendarstellung der Form 2x verwendet). Die Werte der Netzgewichte und Neuronen
aktivitäten sind nicht gleichmäßig auf den zur Verfügung stehenden Wertebereich verteilt, so daß die
Festkommadarstellung mit der daraus resultierenden gleichförmigen Quantisierung der Werte bezüglich
der zum Erreichen einer vorgegebenen Quantisierungsgenauigkeit nötigen Wortlänge nicht optimal ist.
Mit steigender Netzgröße nähert sich die Werteverteilung der Gewichtswerte einer Gaußverteilung, so daß
eine logarithmische Zahlendarstellung eine bessere Anpassung darstellt. Dabei ergibt sich zusätzlich der
Vorteil, daß die erforderliche Multiplikation der Netzgewichte mit den Aktivitätswerten auf eine einfa
chere Addition der Exponenten zurückgeführt werden kann. Die Abstufung der Zahlenwerte in der rein
logarithmischen Darstellung ist jedoch auf Grund der Beschränkung auf ganzzahlige Zweierpotenzen im
allgemeinen zu grob, um eine ausreichende Rechengenauigkeit für die Berechnung neuronaler Netzwerke
bereitzustellen.
Anstelle dieser beiden Zahlendarstellungen kann erfindungsgemäß eine angepaßte Fließkomma-Zahlendar
stellung verwendet werden. Dabei läßt sich zum einen der zur Verfügung stehende Wertebereich mit Hilfe
der Wortlänge des verwendeten Exponenten und zum anderen die Wertabstufung mit Hilfe der Wortlänge
der Mantisse in einem weiten Bereich den Erfordernissen anpassen. Bereits bei sehr geringen Wortlänge
für Exponent und Mantisse wird damit eine nahezu optimale Quantisierung sowohl der Gewichtswerte
als auch der Aktivitätswerte erreicht, wodurch bei gleicher Rechengenauigkeit die erforderliche Wort
länge gegenüber der Festkommadarstellung signifikant reduziert und die Rechengenauigkeit gegenüber
der logarithmischen Darstellung mit wenigen zusätzlichen Mantissenbits stark erhöht ist.
Bei Verwendung eines Fließkomma-Zahlenformats für die Darstellung der Werte läßt sich zusätzlich zur
beschriebenen Reduktion der Wortlänge, in gleicher Weise wie bei der logarithmischen Zahlendarstellung,
die Multiplikation der Neuronenaktivitäten mit den Gewichtswerten auf eine Addition der Exponenten
und zusätzlich eine Multiplikation der Mantissen zurückführen. Der Aufwand für die Mantissenmulti
plikation ist dabei im Vergleich zur Multiplikation von Werten im Festkommaformat entsprechender
Genauigkeit wegen der sehr geringen Wortlänge der Mantisse erheblich reduziert.
Zur Berechnung neuronaler Netzwerke ist es erforderlich, die Multiplikationsergebnisse zu akkumulieren.
Diese Summation läßt sich im Gegensatz zur Multiplikation nur mit erhöhtem Aufwand im Fließkom
maformat ausführen. Eine signifikante Aufwandsreduzierung des gesamten Rechenwerks kann jedoch er
reicht werden, wenn zum einen eine effiziente Umwandlung aus dem verwendeten Fließkommaformat in
ein Festkommaformat erfolgt, in dem dann die Summation ausgeführt wird, und zum anderen auch die
anschließend notwendige Rückwandlung der resultierenden Festkommawerte ins Fließkommaformat mit
geringem Aufwand erfolgt.
Die Umwandlung ins Festkommaformat wird deshalb durch einfache Multiplexer ausgeführt und die
Rückwandlung ins Fließkommaformat erfolgt ohne zusätzlichen Aufwand implizit bei der Berechnung der
Aktivitätsfunktion.
Die Berechnung großer und speziell rekurrenter neuronaler Netzwerke mit ihrem hohen Vernetzungsgrad
führt bei der daraus resultierenden großen Anzahl an Verbindungsgewichten zu einer erheblichen Größe
des benötigten Gewichtsspeichers. Der Einsatz der erfindungsgemäßen Fließkommadarstellung reduziert
durch die geringe Wortlänge den erforderlichen Speicheraufwand signifikant, was bei einer Ein-Chip-
Lösung mit integriertem Gewichtsspeicher von besonderer Bedeutung ist.
Durch eine an die reguläre Struktur neuronaler Netzwerke angepaßte mehrstufige Gruppierung mehre
rer parallel arbeitender Rechenwerke und den Einsatz mehrerer doppelt ausgeführter Aktivitätsspeicher
kann die inhärente Parallelität neuronaler Netzwerke ausgenutzt werden, um eine hohe Rechenleistung bei
geringer Systemkomplexität zu erreichen. Dabei wird die Berechnung rekurrenter neuronaler Netzwerke
durch die doppelte Ausführung der Aktivitätsspeicher ermöglicht, indem der eine Teil die jeweils aktuellen
Aktivitätswerte dem Rechenwerk bereitstellt während die neu berechneten Werte davon unabhängig im
jeweils anderen Teil abgelegt werden. Eine direkte Kommunikation der parallel arbeitenden Rechenwerke
untereinander ist damit nicht erforderlich, wodurch die von Parallelrechnern bekannten Datentransfer und
Kommunikationsprobleme vermieden werden. Die mehrstufige Gruppierung verbindet dabei mehrere Re
chenwerke zu Rechenwerksgruppen die einen gemeinsamen Aktivitätsspeicher verwenden und zusammen
mit einer Steuerlogik nahezu abgeschlossene Einzelsysteme bilden. Diese Rechenwerksgruppen können
daher sehr einfach sowohl innerhalb eines Chips als auch durch Verbinden mehrere Chips kaskadiert
werden, wobei sich in weiten Bereichen ein linearer Leistungszuwachs ergibt.
Durch ein einfach integrierbares mehrstufiges Pipelining lassen sich kurze Verzögerungszeiten in den
Rechenwerken und damit hohe Taktfrequenzen erzielen, so daß höchste Rechenleistungen erreichbar sind.
Bei Anwendungen, die die hohe Rechenleistung nicht direkt benötigen, kann umgekehrt eine zusätzliche
Reduktion des Energieverbrauchs durch Senken der Taktfrequenz erreicht werden.
Die Kombination der erfindungsgemäßen Maßnahmen führt zu einem Grundsystem geringer Komplexität,
das zum einen eine kostengünstige FPGA-Realisierung mit mehreren parallelen Rechenwerken oder zum
anderen eine Ein-Chip-VLSI-Realisierung mit integriertem Gewichtsspeicher möglich wird.
Das hier beschriebene Schaltungskonzept ist mit den verwendeten Parametern beispielhaft in der Hard
warebeschreibungssprache VHDL ausgeführt und in Simulationsexperimenten mit großen rekurrenten
neuronalen Netzwerken an komplexen Beispielen aus dem Bereich der automatischen Spracherkennung
getestet worden. Die Möglichkeit der Implementation auf FPGAs der Firma Xilinx wurde mit entspre
chenden Synthesetools verifiziert.
Im folgenden wird die Erfindung an Hand eines in den Zeichnungen dargestellten Ausführungsbeispiels
näher erläutert.
Die Zeichnungen zeigen:
Fig. 1 Eine Darstellung der verwendeten Zahlenformate sowie der Formatwandlungen.
Fig. 2 Eine schematische Darstellung des Aufbaus des kaskadierbaren digitalen Neuroprozessors.
Es wird ein Prozessor mit paralleler Verarbeitung zur Berechnung rekurrenter und nichtrekurrenter neu
ronaler Netzwerke in der Arbeitsphase beschrieben. In der Beschreibung werden zahlreiche Details ange
geben, um das Verständnis der Erfindung zu erleichtern. Für den Fachmann ist es jedoch offensichtlich
daß die Erfindung auch ohne diese speziellen Details ausführbar ist.
Bei der Berechnung neuronaler Netzwerke läßt sich bei Verwendung einer Fließkommadarstellung für die
Netzgewichte und Neuronenaktivitäten mit einem Vorzeichenbit (S), einem 3-Bit Exponenten (E) und nur
einem einzigen Mantissenbit (M) im allgemeinen bereits eine höhere Rechengenauigkeit erreichen als mit
einer häufig verwendeten 8-Bit Festkommaberechnung. Aus diesem Grund wird im folgenden beispielhaft
die Erfindung mit dieser 5 Bit breiten Fließkommadarstellung beschrieben.
Der übliche Wertebereich der Gewichtswerte bewegt sich in einem Zahlenbereich von ±4. Größere Ge
wichtswerte sind bei großen Netzen selten und können durch geeignetes Training der Netze vermieden
werden. Dieser Wertebereich wird mit dem vorzeichenlosen 3-Bit Exponenten abgedeckt, wenn beim Ex
ponenten ein Offset von -5 berücksichtigt wird. Zusammen mit dem Vorzeichenbit der Fließkommazahl
ergibt sich somit ein Zahlenbereich von ±2² = ±4 bis ±2-5 = ±0.03125.
Bei der erfindungsgemäßen Verwendung einer normalisierten Mantisse werden durch die 1-Bit Mantisse
(M) Zahlen der Form 1*2x + M*2(x-1) dargestellt, bei denen das höherwertige Bit immer gesetzt ist
und das niederwertige Bit durch das Mantissenbit gebildet wird. Der darstellbare Zahlenbereich erweitert
sich damit auf ±6 bis ±0.03125 bei gleichzeitiger Verdoppelung der Darstellungsgenauigkeit innerhalb
des Wertebereichs.
Für die Darstellung des Zahlenwertes Null wird entgegen der üblichen Festlegung bei Fließkommazah
len, zum Beispiel durch IEEE, nicht nur der Exponentenwert zur Nulldetektion verwendet, sondern auch
die Mantissenbits und eventuell auch das Vorzeichenbit. Damit wird nur der jeweils kleinste positive
und/oder negative darstellbare Zahlenwert zur eindeutigen Repräsentation der Null verwand. Dem Wert
Null ist so ein eindeutiges Bitmuster zugeordnet, das dadurch ausgezeichnet ist, daß kein Bit (eventuell
mit Ausnahme des Vorzeichenbits) in der Zahlendarstellung gesetzt ist. Damit kann der Wert Null ein
fach detektiert werden, ohne daß unnötig Quantisierungsstufen verschenkt werden, was bei der geringen
Bitzahl der Darstellung einen großen Einfluß auf die erreichbare Rechengenauigkeit hätte. In der weiteren
Beschreibung wird der Einfachheit wegen das Vorzeichenbit nicht in die Nulldetektion mit einbezogen.
Somit ergibt sich der neue darstellbare Zahlenbereich zu ±6 bis ±0.0625 und 0. Die Werteverteilung ent
spricht dabei nahezu einer Gaußverteilung und gegenüber der reinen logarithmischen Darstellung ist die
Größe der Quantisierungsstufen halbiert, was eine signifikante Steigerung der Rechengenauigkeit zur Folge
hat. Ein Hinzufügen zusätzlicher Bits bei der rein logarithmischen Zahlendarstellung würde hingegen nur
zu einer Erweiterung des möglichen Zahlenbereichs führen, ohne die effektive Quantisierungsgenauigkeit
innerhalb des bestehenden Zahlenbereichs zu erhöhen.
Die Aktivitätswerte können im gleichen 5-Bit Fließkommaformat dargestellt werden, wobei sich der
benötigte Wertebereich auf Grund der verwendeten Aktivitätsfunktion (Sigmoid oder Tangenshyperboli
cus) auf ±1 beschränkt. Daher wird hier als Exponentenoffset ein Wert von -7 verwendet womit sich ein
möglicher Wertebereich von ±1.5 bis ±0.015625 und 0 ergibt. Die Netzeingabewerte können dabei meist
leicht durch eine einfache Transformation an diesen Wertebereich und die spezielle Zahlendarstellung
angepaßt werden.
Die zur Berechnung neuronaler Netzwerke erforderliche Multiplikation der Aktivitätswerte mit den Ge
wichtswerten erfolgt in 4 separaten, parallel ausführbaren Einheiten. Entsprechend Fig. 1 erfolgt dies auf
folgende Weise:
- 1. Mit einem 3-Bit Addierer (5) werden die Exponenten der beiden Faktoren (1, 2) addiert.
- 2. Das Ergebnisvorzeichen wird mit einem Exklusiv-Oder-Gatter (3) aus den Vorzeichen (S) der Fak toren generiert.
- 3. Durch Oderverknüpfung (6) der Bits im Bitmuster der Zahlendarstellung werden beide Faktoren (1, 2) auf den Wert Null geprüft und ein Nullsignal generiert, welches das Multiplikationsergebnis Null anzeigt, falls einer der Operanden gleich Null ist.
- 4. Durch eine im folgenden näher beschriebene einfache Multiplikationslogik (4) wird das Ergebnis der 1-Bit Mantissenmultiplikation bestimmt.
Da die Mantissen (M) in normalisierter Form dargestellt sind hat die Multiplikation die binäre Form
(1 MA)×(1 MB) mit den möglichen Faktoren 10 und 11. Damit sind die folgenden 4 Operandenkombina
tionen bei der Mantissenmultiplikation möglich:
10×10 = 0100,
10×11 = 0110,
11×10 = 0110,
11×11 = 1001
Daraus lassen sich drei Logikfunktionen zur Ermittelung des 4-Bit Multiplikationsergebnisses ablesen:
Bit 0/Bit 3 = A AND B,
Bit 1 = A XOR B,
Bit 2 = A NAND B
Eine sonst übliche explizite Normalisierung des Ergebnisses ist nicht erforderlich, da sich nach einer even tuellen Pufferung des 9-Bit Ergebnisses und des Nullsignals durch eine erste Pipeline-Stufe (7) direkt die Formatwandlung in das zur Summation verwendete Festkommaformat anschließt. Die Formatwandlung wird von einem Satz von Multiplexern (8) in der Weise ausgeführt, daß das 4-Bit Ergebnis der Mantissen multiplikation an einer durch den 4-Bit Wert der Exponentenaddition bestimmten Position in einem 18 Bit breiten Binärwort eingeblendet wird. Das heißt, beim Exponentenwert Null wird das Bitmuster der Ergebnismantisse beispielsweise in den Bits 0 bis 3 des Binärwortes gesetzt und bei dem höchst möglichen Exponentenwert 14 entsprechend an den Positionen 14 bis 17. Durch einen gemeinsamen Steuereingang an den Multiplexern wird bei gesetztem Nullsignal ein Setzen des Bitmusters unterbunden, womit das Ergebnis Null realisiert wird.
10×10 = 0100,
10×11 = 0110,
11×10 = 0110,
11×11 = 1001
Daraus lassen sich drei Logikfunktionen zur Ermittelung des 4-Bit Multiplikationsergebnisses ablesen:
Bit 0/Bit 3 = A AND B,
Bit 1 = A XOR B,
Bit 2 = A NAND B
Eine sonst übliche explizite Normalisierung des Ergebnisses ist nicht erforderlich, da sich nach einer even tuellen Pufferung des 9-Bit Ergebnisses und des Nullsignals durch eine erste Pipeline-Stufe (7) direkt die Formatwandlung in das zur Summation verwendete Festkommaformat anschließt. Die Formatwandlung wird von einem Satz von Multiplexern (8) in der Weise ausgeführt, daß das 4-Bit Ergebnis der Mantissen multiplikation an einer durch den 4-Bit Wert der Exponentenaddition bestimmten Position in einem 18 Bit breiten Binärwort eingeblendet wird. Das heißt, beim Exponentenwert Null wird das Bitmuster der Ergebnismantisse beispielsweise in den Bits 0 bis 3 des Binärwortes gesetzt und bei dem höchst möglichen Exponentenwert 14 entsprechend an den Positionen 14 bis 17. Durch einen gemeinsamen Steuereingang an den Multiplexern wird bei gesetztem Nullsignal ein Setzen des Bitmusters unterbunden, womit das Ergebnis Null realisiert wird.
Zusammen mit dem Ergebnisvorzeichen stellt dieses Binärwort direkt das Multiplikationsergebnis in
Festkommadarstellung dar, wobei die Wertigkeit des höchstwertigen Bits durch die Zahlenbereiche und
damit durch die festgelegten Offsets der Faktoren bestimmt wird, so daß in diesem Fall das höchstwertige
Bit die Wertigkeit 8 besitzt.
Mit dieser Festkommazahl läßt sich, nach einer eventuellen weiteren Pufferung der 19 Bit Zahl, zur Reali
sierung einer zweiten Pipeline-Stufe (9), die Summation zur Bestimmung der Neuronenaktivierung einfach
ausführen. Dabei ist es nicht erforderlich jedes theoretisch mögliche Zwischenergebnis ohne Überlauf im
verwendeten Akkumulator (10) darstellen zu können, sondern es reicht aus, das größte zu erwartende End
ergebnis darstellen zu können, da sich auftretende Über- und Unterläufe gegenseitig bis zum endgültigen
Endergebnis ausgleichen. Dieses fällt auf Grund der Werteverteilung der Netzgewichte im Vergleich zu
möglichen Zwischenergebnissen wesentlich kleiner aus, so daß die Summation bereits mit einer Bitbreite
von 22-Bit ausreichend dimensioniert ist. Damit sind Endergebnisse im Bereich ±127 darstellbar, wo
bei Zwischenergebnisse je nach Netzgröße theoretisch im Bereich bis weit über 10.000 auftreten können,
was mehr als 8 Bit zusätzlich im Akkumulator erfordern würde. Die Summation kann dabei ebenfalls in
weitere Pipeline-Stufen unterteilt werden, um eine gleichmäßige minimale Verzögerungszeit der einzelnen
Berechnungsabschnitte zu gewährleisten.
Berücksichtigt man die bei der weiteren Verarbeitung angewandte nichtlineare Abbildung durch die Ak
tivitätsfunktion sowie die Quantisierungsgenauigkeit des resultierenden Aktivitäts-Zahlenformates, so
können im niederwertigen Teil der Summe weitere Bits unberücksichtigt bleiben, ohne daß die Rechenge
nauigkeit beeinflußt wird. Die Summation läßt sich so auf eine Breite von 20 Bit reduzieren, was sich auch
auf die vorhergehende Verarbeitungsstufe auswirkt, da auf die Bildung der untersten 2 Bit und damit auf
die entsprechenden Multiplexer verzichtet werden kann.
Die Berechnungsergebnisse werden dann mit Hilfe der Aktivitätsfunktion (12) von der Festkomma-
Neuronenaktivierung auf die Fließkomma-Neuronenaktivität (13) abgebildet. Dazu werden wiederum
nicht alle 20 Bits der Summe benötigt. Aus den höherwertigen Bits lassen sich statt dessen Über- und
Unterlaufssignale generieren, falls das Summationsergebnis im Sättigungsbereich der nichtlinearen Ab
bildung liegt. Die niederwertigen Bits der Summe, die keinen direkten Einfluß auf den resultierenden
Aktivitätswert haben, können unberücksichtigt bleiben. Damit reduziert sich die Zahl der relevanten Bits
auf das Vorzeichen, die Überlaufsinformation und die Bits 11 bis 16 der Summe. Diese werden am Ende
jeder Neuronenberechnung zwischengespeichert (11), um sie später mit Hilfe eines Select-Signals (EN)
auf einen Bus ausgeben zu können. Das Ende der laufenden Neuronenberechnung wird dabei über ein
Reset-Signal (RES) angezeigt, das auch zum Rücksetzen des Summenwertes verwendet wird.
Damit ist ein vollständiges Rechenwerk zur Berechnung der Neuronenaktivierung realisiert, das in jedem
Taktzyklus die Berechnung einer Netzverbindung ausführen kann und dabei je nach Implementierung
nur zwischen 500 und 1000 Gatteräquivalente benötigt. Durch die geringe Komplexität und mit Hilfe des
einfachen Pipelinings lassen sich dabei hohe Taktfrequenzen realisieren, womit hohe Rechenleistungen
möglich werden. Die Rechengenauigkeit ist bei der verwendeten 5-Bit Fließkommadarstellung vergleichbar
einer 8-Bit Festkommaberechnung, die im Rechenwerk mehr als die doppelte Gatterzahl benötigen würde,
da dabei eine wesentlich aufwendigere Multiplikation durchgeführt werden müßte.
Eine parallele Berechnung mehrerer Neuronen wird durch Implementierung mehrerer Rechenwerke nach
dem in Fig. 2 gezeigten Prinzip möglich. Die Berechnung erfolgt dabei erfindungsgemäß mit doppelt aus
geführten Aktivitätsspeichern (M1, M2) und einem Gewichtsspeicher (WM) für jedes Rechenwerk. Dazu
erhält jedes Rechenwerk aus dem einen Teil des Aktivitätsspeichers (M1) nacheinander die Aktivitätswer
te in einer vorgegebenen Reihenfolge. Gleichzeitig wird von dem Gewichtsspeicher der jeweils zugehörige
Gewichtswert bereitgestellt.
Bei großen Netzwerken ist der Aufwand für das Speichern der Aktivitätswerte besonders durch die doppel
te Ausführung der Aktivitätsspeicher nicht unerheblich, so daß hier eine weitere Optimierung erforderlich
ist. Da bei den meisten neuronalen Netzwerken die Neuronen einer Schicht alle die gleiche oder eine
sehr ähnliche Vernetzungsstruktur aufweisen ist es nicht notwendig, jedem Rechenwerk einen direkten
Zugriff auf einen eigenen lokalen Aktivitätsspeicher zu geben. Durch eine lineare Gruppierung mehrere
Rechenwerke (MAC1 . . 4) wird hier erreicht, daß nur das erste Rechenwerk eine direkte Verbindung mit
einem Aktivitätsspeicher benötigt. Die restlichen Rechenwerke erhalten nacheinander genau die gleichen
Aktivitätswerte durch Durchschieben der Werte durch die Gruppe mit Hilfe der Schieberegister (B1 . . 4)).
Auf diese Weise wird nur ein Aktivitätsspeicher mit relativ geringer Bandbreite für mehrere Rechenwer
ke benötigt. Die Ergebnisse der einzelnen Rechenwerke der Gruppe liegen dann jeweils um einen Takt
verzögert vor, was jedoch auf Grund der sequentiellen Bearbeitung der Ergebniswerte zu keiner Ab
laufsänderung führt. Sollte eine Netzstruktur zum Einsatz kommen, bei der die obige Strukturannahme
nicht erfüllt ist, so können jederzeit nicht vorhandene Verbindungen durch Einsetzen von Nullgewichten
aus der Verarbeitungskette ausgeblendet werden. Ähnliches gilt auch falls ein Wechsel der momentan
berechneten Netzwerksschicht nicht mit der Gruppenlänge vereinbar ist, so daß ein Teil der Rechenwerke
der Gruppe Neuronen einer Schicht und ein anderer Teil Neuronen einer anderen Schicht berechnet, da
in der neuen Schicht meist eine andere Vernetzungsstruktur vorherrscht.
Um die zu erwartende geringere Leistung bei nichtregulären Netzstrukturen oder bei Strukturunterschie
den bei Schichtwechseln zu minimieren, muß die Gruppengröße klein gehalten werden. Dies wird erfin
dungsgemäß erreicht, indem mehrere unabhängige Gruppen parallel implementiert werden. Jede dieser
Gruppen erhält dann eine eigene Kopie des Aktivitätsspeichers sowie eine eigene Steuerlogik (LSM, LAU),
die das Adressieren des Aktivitätsspeichers entsprechend der für diese Gruppe aktuell gültigen Vernet
zungsstruktur übernimmt. Die jeder Gruppe zugeordnete Steuerlogik wird dabei vorzugsweise so aus
geführt, daß unterschiedliche Netzwerkstypen und Netzstrukturen abgebildet werden können, wobei, je
nach aktuell in der Gruppe berechneten Neuronenschicht, eine unterschiedliche Strukturform gegeben sein
kann. Damit wird eine Unabhängigkeit der Gruppen untereinander erreicht, so daß ein Teil der Gruppen
mit der Berechnung der Neuronen einer Schicht beschäftigt sein kann, während andere Gruppen andere
Schichten bearbeiten. Eine bevorzugte Ausführungsform ist hierbei durch eine Gruppierung von 4 Re
chenwerken gegeben, was einen Kompromiß zwischen Speicherbedarf für die Aktivitätsspeicherung und
Effizienz bei der Netzberechnung darstellt.
Nach Beendigung der Neuronenberechnung werden die Ergebnisse der Rechenwerke sequentiell mit Hilfe
einer globalen Steuerlogik (GSM) über einen gemeinsamen Bus (1) ausgelesen und der Logik zur Berech
nung der Aktivitätsfunktion (AF) zugeführt. Die Aktivitätsfunktion kann dabei in Form einer Tabelle
oder auf Grund der geringen Bitbreiten direkt mit Logikgattern realisiert werden. Die 6 Bit der Festkom
masumme werden so direkt auf das verwendete Fließkommaformat abgebildet, wobei entsprechend der
Überlaufssignale entschieden wird, ob das Transformationsergebnis oder die entsprechenden Sättigungs
werte ausgegeben werden. Die so bestimmten neuen Aktivitäten werden durch die globale Steuerlogik
gleichzeitig in den entsprechenden Teilen aller Gruppenaktivitätsspeicher abgelegt, so daß sie für die ex
terne Auswertung sowie für die nächste Netzberechnung zur Verfügung stehen. Es lassen sich so besonders
rekurrente Netzwerke berechnen, da alle Netzverbindungen automatisch mit einer Zeitverzögerung von
einem Zeittakt behaftet sind. Das Speichern der Aktivitätswerte sowie das Einschreiben und Auslesen
der Netzein- und ausgaben über eine Logik (I/O) kann dabei parallel zur Berechnung der weiteren Akti
vitätswerte erfolgen, so daß die laufende Netzberechnung nicht unterbrochen wird. Auf diese Weise kann
die volle theoretische Rechenleistung ohne Leerlaufzeiten der Rechenwerke ausgenutzt werden.
Die globale Steuerlogik (GSM) kann auf einfache Weise so ausgelegt werden, daß eine unterschiedliche
Anzahl Rechenwerksgruppen unterstützt werden kann. Da die Rechenwerksgruppen relativ abgeschlossene
Einzelsysteme darstellen ist zur ihrer Kaskadierung nur ein geringer Verschaltungsaufwand notwendig, so
daß somit auch ein nachträgliches Kaskadieren mehrere Einzel-Chips zur variablen Leistungsanpassung
möglich ist. Die Zahl der parallel arbeitenden Rechenwerke läßt sich so, bei nahezu linearer Steigerung
der Rechenleistung, bis in den Bereich der Anzahl der zu simulierenden Neuronen steigern.
Am Ende der Netzberechnung werden die Aufgaben der Teile der Aktivitätsspeichers durch Multiplexer
(MUX) vertauscht wonach eine neue Netzberechnung beginnen kann. Durch dieses Vorgehen ist keine
direkte Kommunikation zwischen den einzelnen Rechenwerken erforderlich, so daß nahezu beliebig viele
Rechenwerke einfach kaskadiert werden können.
Zur parallelen Bereitstellung der benötigten Gewichtswerte kann der Gewichtsspeicher (WM) sowohl in
kleinen 5 Bit breiten Einheiten jedem Rechenwerk als lokaler Gewichtsspeicher zugeordnet werden oder
jedem Rechenwerk wird ein 5 Bit Teil eines externen Gewichtsspeichers mit entsprechend hoher Bitbreite
zugeordnet. Da der genaue Ablauf der Netzberechnung dabei für jedes implementierte Netz genau vor
herbestimmt werden kann, können die Gewichtswerte in der Reihenfolge im Speicher abgelegt werden, in
der sie während der laufenden Berechnung benötigt werden. Dadurch reicht ein einfacher globaler Zähler
zur Adressierung der Gewichtsspeicher aus, so daß die mögliche Zahl der Verbindungsgewichte nur von
der Wortlänge des Adreßzählers und der Speichergröße abhängt.
Es zeigt sich, daß das vorgestellte Schaltungskonzept von so großer Effizienz ist, daß eine Realisierung
mit 2 parallelen Rechenwerksgruppen mit je 4 parallelen Rechenwerken und externem Gewichtsspeicher
auf zur Zeit verfügbaren FPGAs der Firma Xilinx ausgeführt werden kann. Simulationen zeigen, daß
Netzwerke mit bis zu 511 Neuronen und mehr als 250000 Verbindungen bei Rechenleistungen im Bereich
von 100 Millionen Verbindungsberechnungen pro Sekunde (MCPS) berechnet werden können.
Bei einer VLSI-Realisierung kann zusätzlich zu einer großen Zahl paralleler Rechenwerke auch der Ge
wichtsspeicher direkt mit auf dem Chip integriert werden, so daß eine vollständige Ein-Chip-Lösung mit
geringer Chipfläche entsteht.
Claims (5)
1. Digitaler Neuroprozessor,
dadurch gekennzeichnet,
dadurch gekennzeichnet,
- - daß die Werte der Verbindungsgewichte in einem an die Berechnung neuronaler Netzwerke ange paßten Fließkommaformat geringer Bitbreite dargestellt werden.
- - daß die Fließkommadarstellung die Form (1 Bit Vorzeichen/Ev Bit Exponent/Mv Bit Man tisse) mit normalisierter Mantisse hat, wobei der vom Exponenten bestimmte Wertigkeitsbereich unsymmetrisch auf den Bereich bis mit av ≠ bv, und = av + bv - 1 verteilt ist, der Exponent also durch eine positive Binärzahl mit negativem Offset av dargestellt wird.
- - daß entweder die kleinste positive oder die kleinste negative Zahl (Ev = 0, Mv = 0, Vorzeichen = 0/1) zur eindeutigen Darstellung des Zahlenwertes Null verwendet wird.
- - daß die Werte der Neuronenaktivitäten in der gleichen Fließkomma-Zahlendarstellung (1 Bit Vor zeichen/EA Bit Exponent/MA Bit Mantisse) mit dem Exponenten-Zahlenbereich bis mit nicht notwendigerweise gleichen Parametern MA, EA, aA, bA dargestellt werden.
- - daß die zur Netzberechnung erforderliche Multiplikation der Aktivitäten mit den Gewichtswerten auf eine einfache Addition der Exponenten sowie eine Multiplikation der in der Bitanzahl stark reduzierten Mantissen zurückgeführt wird.
- - daß das Ergebnis der Exponentenaddition dazu verwendet wird, einen Multiplexer zu steuern, der das Bitmuster der Mantissenmultiplikation an einer durch den Wert der Exponentenaddition be stimmten Stelle in einem Binärwort entsprechend hoher Bitbreite plaziert.
- - daß bei Vorliegen der der Null zugeordneten Zahlendarstellung als Aktivitäts- oder Gewichtswert das Setzen des Bitmusters in dem Binärwort unterbleibt.
- - daß das sich ergebende Binärwort als Festkommazahl interpretiert wird, deren Wertebereich durch den Wertebereich der beiden Faktoren gegeben ist.
- - daß das Vorzeichen der Festkommazahl durch eine Exklusiv-Oder Verknüpfung aus den Vorzeichen der Faktoren gebildet wird.
- - daß die Summation der so gebildeten Zwischenergebnisse in einer Festkommadarstellung mit so gewählter Bitbreite erfolgt, daß das bei Netzberechnungen größte beziehungsweise kleinste zu er wartende Endergebnis ohne Überlauf darstellbar ist.
- - daß mit den höherwertigen Bits des Summationsergebnisses eine Über- und Unterlaufsinformation entsprechend der oberen und unteren Sättigung der beschränkten Aktivitätsfunktion gebildet wird.
- - daß mit der Berechnung der Aktivitätswerte durch die Aktivitätsfunktion eine implizite Zahlenum wandlung zurück in das Aktivitäts-Fließkommaformat erfolgt.
- - daß zur Berechnung der Aktivitätswerte die vorher gebildete Über- und Unterlaufsinformation sowie nur diejenigen Bits des Summationsergebnisses verwendet werden, die zum Erreichen einer für die Darstellungsgenauigkeit der Aktivitäts-Fließkommawerte in Verbindung mit der nichtlinearen Aktivitätsfunktion ausreichenden Rechengenauigkeit notwendig sind.
2. Digitaler Neuroprozessor nach Anspruch 1,
dadurch gekennzeichnet,
dadurch gekennzeichnet,
- - daß mehrere der so gebildeten Rechenwerke zu einer Rechenwerksgruppe zusammengefaßt sind, die zusätzlich zu den Rechenwerken auch einen Aktivitätsspeicher und eine Steuerlogik enthalten.
- - daß jedes Rechenwerk der Gruppe entweder einen eigenen lokalen Gewichtsspeicher besitzt oder mit einer der Bitanzahl der Gewichtswerte entsprechenden Anzahl Bits eines externen Gewichtsspeichers großer Bitbreite verbunden ist.
- - daß nur das erste Rechenwerk der Gruppe mit dem Aktivitätsspeicher verbunden ist und die übrigen Rechenwerke ihre Aktivitäten nacheinander durch Durchschieben der Aktivität durch die Rechen werksgruppe erhalten.
- - daß parallel von jedem Rechenwerk einer Rechenwerksgruppe ein anderes Neuron des neuronalen Netzwerkes berechnet wird.
3. Digitaler Neuroprozessor nach Anspruch 2,
dadurch gekennzeichnet,
dadurch gekennzeichnet,
- - daß mehrere Rechenwerksgruppen parallel geschaltet sind.
- - daß jede Rechenwerksgruppe parallel einen anderen Satz von Neuronen des neuronalen Netzwerkes verarbeitet.
- - daß die parallel anfallenden Summationsergebnisse aller Rechenwerke ohne Unterbrechung der Be rechnung seriell einer einmalig ausgeführten Logik zur Ermittlung der Aktivitätsfunktion zugeführt werden.
- - daß durch die Logik zur Ermittlung der Aktivitätsfunktion implizit die Zahlenformatwandlung zurück ins Fließkommaformat erfolgt.
- - daß die so ermittelten neuen Aktivitätswerte gleichzeitig in allen Rechenwerksgruppen in dem zur Aufnahme der neuen Aktivitätswerte bestimmten Teil des doppelten Aktivitätsspeichers abgelegt werden.
- - daß in den Zeiten, in denen keine neuen Aktivitäten zur Speicherung bereitstehen, die aktuellen Netzausgaben bei laufender Netzberechnung aus dem Aktivitätsspeicher gelesen sowie die neuen Eingabewerte eingeschrieben werden.
4. Digitaler Neuroprozessor nach einem der Ansprüche 1, 2 oder 3,
dadurch gekennzeichnet,
dadurch gekennzeichnet,
- - daß die Neuronenaktivitäten in einem doppelt ausgeführten Aktivitätsspeicher abgelegt sind.
- - daß jeweils der eine der doppelten Aktivitätsspeicher die aktuellen Aktivitätswerte für die Berech nungen bereitstellt, während in dem andere die neu errechneten Aktivitätswerte abgelegt werden.
- - daß die Aufgaben der beiden Aktivitätsspeicher durch Multiplexer wechselseitig vertauscht werden können.
- - daß vor dem Start jeder Netzberechnung die Aufgaben der Aktivitätsspeicher vertauscht werden.
5. Digitaler Neuroprozessor nach Anspruch 4,
dadurch gekennzeichnet,
dadurch gekennzeichnet,
- - daß die Gewichtswerte genau in den Teilen der lokalen oder des globalen Gewichtsspeichers und genau in der Reihenfolge abgelegt sind, wie sie während der laufenden Netzberechnung von den Rechenwerken benötigt werden.
- - daß zur Adressierung aller lokalen oder des globalen Gewichtsspeichers nur ein Zähler verwendet wird.
- - daß eine Vielzahl unterschiedlicher vorwärtsgerichteter und rekurrenter neuronale Netzwerkstypen berechnet werden können.
- - daß mehrere Neuroprozessoren einfach kaskadiert werden können.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
DE19718224A DE19718224A1 (de) | 1997-04-30 | 1997-04-30 | Digitaler Neuroprozessor |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
DE19718224A DE19718224A1 (de) | 1997-04-30 | 1997-04-30 | Digitaler Neuroprozessor |
Publications (1)
Publication Number | Publication Date |
---|---|
DE19718224A1 true DE19718224A1 (de) | 1997-11-27 |
Family
ID=7828193
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE19718224A Withdrawn DE19718224A1 (de) | 1997-04-30 | 1997-04-30 | Digitaler Neuroprozessor |
Country Status (1)
Country | Link |
---|---|
DE (1) | DE19718224A1 (de) |
Cited By (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1899847A2 (de) * | 2005-06-28 | 2008-03-19 | Neurosciences Research Foundation Inc. | Adressierungsschema für neuronale modellierung und auf dem hirn basierende einrichtungen unter verwendung eines spezialprozessors |
US8126828B2 (en) * | 2005-06-28 | 2012-02-28 | Neuroscience Research Foundation, Inc. | Special purpose processor implementing a synthetic neural model of the human brain |
CN109934331A (zh) * | 2016-04-29 | 2019-06-25 | 北京中科寒武纪科技有限公司 | 用于执行人工神经网络正向运算的装置和方法 |
US10387298B2 (en) | 2017-04-04 | 2019-08-20 | Hailo Technologies Ltd | Artificial neural network incorporating emphasis and focus techniques |
CN110895715A (zh) * | 2018-09-12 | 2020-03-20 | 辉达公司 | 存储高效的神经网络 |
CN111488976A (zh) * | 2019-01-28 | 2020-08-04 | 中科寒武纪科技股份有限公司 | 神经网络计算装置、神经网络计算方法及相关产品 |
US11221929B1 (en) | 2020-09-29 | 2022-01-11 | Hailo Technologies Ltd. | Data stream fault detection mechanism in an artificial neural network processor |
US11237894B1 (en) | 2020-09-29 | 2022-02-01 | Hailo Technologies Ltd. | Layer control unit instruction addressing safety mechanism in an artificial neural network processor |
US11238334B2 (en) | 2017-04-04 | 2022-02-01 | Hailo Technologies Ltd. | System and method of input alignment for efficient vector operations in an artificial neural network |
US11263077B1 (en) | 2020-09-29 | 2022-03-01 | Hailo Technologies Ltd. | Neural network intermediate results safety mechanism in an artificial neural network processor |
US11521047B1 (en) * | 2018-04-20 | 2022-12-06 | Brown University | Deep neural network |
US11544545B2 (en) | 2017-04-04 | 2023-01-03 | Hailo Technologies Ltd. | Structured activation based sparsity in an artificial neural network |
US11551028B2 (en) | 2017-04-04 | 2023-01-10 | Hailo Technologies Ltd. | Structured weight based sparsity in an artificial neural network |
US11615297B2 (en) | 2017-04-04 | 2023-03-28 | Hailo Technologies Ltd. | Structured weight based sparsity in an artificial neural network compiler |
US11811421B2 (en) | 2020-09-29 | 2023-11-07 | Hailo Technologies Ltd. | Weights safety mechanism in an artificial neural network processor |
-
1997
- 1997-04-30 DE DE19718224A patent/DE19718224A1/de not_active Withdrawn
Cited By (27)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1899847A2 (de) * | 2005-06-28 | 2008-03-19 | Neurosciences Research Foundation Inc. | Adressierungsschema für neuronale modellierung und auf dem hirn basierende einrichtungen unter verwendung eines spezialprozessors |
EP1899847A4 (de) * | 2005-06-28 | 2009-12-02 | Neurosciences Res Found | Adressierungsschema für neuronale modellierung und auf dem hirn basierende einrichtungen unter verwendung eines spezialprozessors |
US8126828B2 (en) * | 2005-06-28 | 2012-02-28 | Neuroscience Research Foundation, Inc. | Special purpose processor implementing a synthetic neural model of the human brain |
US8326782B2 (en) | 2005-06-28 | 2012-12-04 | Neurosciences Research Foundation, Inc. | Addressing scheme for neural modeling and brain-based devices using special purpose processor |
CN109934331A (zh) * | 2016-04-29 | 2019-06-25 | 北京中科寒武纪科技有限公司 | 用于执行人工神经网络正向运算的装置和方法 |
CN109934331B (zh) * | 2016-04-29 | 2020-06-19 | 中科寒武纪科技股份有限公司 | 用于执行人工神经网络正向运算的装置和方法 |
US11615297B2 (en) | 2017-04-04 | 2023-03-28 | Hailo Technologies Ltd. | Structured weight based sparsity in an artificial neural network compiler |
US11354563B2 (en) | 2017-04-04 | 2022-06-07 | Hallo Technologies Ltd. | Configurable and programmable sliding window based memory access in a neural network processor |
US11675693B2 (en) | 2017-04-04 | 2023-06-13 | Hailo Technologies Ltd. | Neural network processor incorporating inter-device connectivity |
US11216717B2 (en) | 2017-04-04 | 2022-01-04 | Hailo Technologies Ltd. | Neural network processor incorporating multi-level hierarchical aggregated computing and memory elements |
US11514291B2 (en) | 2017-04-04 | 2022-11-29 | Hailo Technologies Ltd. | Neural network processing element incorporating compute and local memory elements |
US11238331B2 (en) | 2017-04-04 | 2022-02-01 | Hailo Technologies Ltd. | System and method for augmenting an existing artificial neural network |
US11551028B2 (en) | 2017-04-04 | 2023-01-10 | Hailo Technologies Ltd. | Structured weight based sparsity in an artificial neural network |
US11238334B2 (en) | 2017-04-04 | 2022-02-01 | Hailo Technologies Ltd. | System and method of input alignment for efficient vector operations in an artificial neural network |
US11544545B2 (en) | 2017-04-04 | 2023-01-03 | Hailo Technologies Ltd. | Structured activation based sparsity in an artificial neural network |
US11263512B2 (en) | 2017-04-04 | 2022-03-01 | Hailo Technologies Ltd. | Neural network processor incorporating separate control and data fabric |
US10387298B2 (en) | 2017-04-04 | 2019-08-20 | Hailo Technologies Ltd | Artificial neural network incorporating emphasis and focus techniques |
US11461615B2 (en) | 2017-04-04 | 2022-10-04 | Hailo Technologies Ltd. | System and method of memory access of multi-dimensional data |
US11461614B2 (en) | 2017-04-04 | 2022-10-04 | Hailo Technologies Ltd. | Data driven quantization optimization of weights and input data in an artificial neural network |
US11521047B1 (en) * | 2018-04-20 | 2022-12-06 | Brown University | Deep neural network |
CN110895715A (zh) * | 2018-09-12 | 2020-03-20 | 辉达公司 | 存储高效的神经网络 |
CN111488976A (zh) * | 2019-01-28 | 2020-08-04 | 中科寒武纪科技股份有限公司 | 神经网络计算装置、神经网络计算方法及相关产品 |
CN111488976B (zh) * | 2019-01-28 | 2023-06-30 | 中科寒武纪科技股份有限公司 | 神经网络计算装置、神经网络计算方法及相关产品 |
US11263077B1 (en) | 2020-09-29 | 2022-03-01 | Hailo Technologies Ltd. | Neural network intermediate results safety mechanism in an artificial neural network processor |
US11237894B1 (en) | 2020-09-29 | 2022-02-01 | Hailo Technologies Ltd. | Layer control unit instruction addressing safety mechanism in an artificial neural network processor |
US11221929B1 (en) | 2020-09-29 | 2022-01-11 | Hailo Technologies Ltd. | Data stream fault detection mechanism in an artificial neural network processor |
US11811421B2 (en) | 2020-09-29 | 2023-11-07 | Hailo Technologies Ltd. | Weights safety mechanism in an artificial neural network processor |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE112019000336T5 (de) | Massiv parallele neuronale inferenz-datenverarbeitungselemente | |
DE60318494T2 (de) | Verfahren, einrichtung und system zur durchführung von kalkulationsoperationen | |
DE19718224A1 (de) | Digitaler Neuroprozessor | |
DE1956209C3 (de) | Multipliziervorrichtung | |
DE112019001799T5 (de) | Erweitertes formatieren von binären gleitkommazahlen mit geringerer genauigkeit | |
DE19540102A1 (de) | Gleitkomma-Recheneinheit mit einer Logik für eine Vierfach-Präzisions-Arithmetik | |
DE2911096C2 (de) | ||
DE4403917C2 (de) | Vorrichtung zum Berechnen einer Bit-Besetzungszählung | |
DE2803425A1 (de) | Digitaleinrichtung zur ermittlung des wertes von komplexen arithmetischen ausdruecken | |
EP3590078B1 (de) | Neuronalnetzsystem | |
DE112019000676T5 (de) | Zentraler scheduler und anweisungszuteiler für einen neuronalen inferenzprozessor | |
DE4345029C2 (de) | Schaltkreis für diskrete Kosinustransformation | |
DE102007056104A1 (de) | Verfahren und Vorrichtung zur Multiplikation von Binäroperanden | |
EP0628183B1 (de) | Schaltungsanordnung zum digitalen multiplizieren von integer-zahlen | |
DE2826773A1 (de) | Verfahren und schaltungsanordnung zum feststellen der wertigkeit von ziffern in arithmetischen operationen mit dezimalrechnern | |
DE4019646C2 (de) | Vorrichtung und Verfahren zum Multiplizieren von Datenwörtern in Zweier-Komplement-Darstellung | |
DE3936503A1 (de) | Digitales verschwommen-folgerungssystem | |
EP0629943B1 (de) | Multiplizierer für reelle und komplexe Zahlen | |
DE19635113A1 (de) | Multiplizierer | |
EP0537205B1 (de) | Anordnung zur emulation neuronaler netze und verfahren zu ihrem betrieb | |
EP0264999A2 (de) | System zum Übertragen oder Speichern von Eingangssignalen | |
DE69633479T2 (de) | ODER-Gatter mit kontrollierbarer Breite | |
DE19635111A1 (de) | Multiplizierer | |
DE19758016C2 (de) | Quadratwurzelberechnungsschaltung und Fließkomma-Quadratwurzelberechnungsvorrichtung | |
DE602004002554T2 (de) | Block Modus Aufteilung eines Multiplizier-Akkumulators |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
OAV | Applicant agreed to the publication of the unexamined application as to paragraph 31 lit. 2 z1 | ||
8122 | Nonbinding interest in granting licences declared | ||
8127 | New person/name/address of the applicant |
Owner name: WUEST, HARALD, DR., 71696 MOEGLINGEN, DE KASPAR, K |
|
8139 | Disposal/non-payment of the annual fee |