DE112017000855B4 - Energy-efficient temporally multiplexed neurosynaptic core for implementing neural networks - Google Patents
Energy-efficient temporally multiplexed neurosynaptic core for implementing neural networks Download PDFInfo
- Publication number
- DE112017000855B4 DE112017000855B4 DE112017000855.7T DE112017000855T DE112017000855B4 DE 112017000855 B4 DE112017000855 B4 DE 112017000855B4 DE 112017000855 T DE112017000855 T DE 112017000855T DE 112017000855 B4 DE112017000855 B4 DE 112017000855B4
- Authority
- DE
- Germany
- Prior art keywords
- neuron
- electronic
- core
- sub
- sets
- 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.)
- Active
Links
- 238000013528 artificial neural network Methods 0.000 title description 11
- 210000002569 neuron Anatomy 0.000 claims abstract description 373
- 210000003050 axon Anatomy 0.000 claims abstract description 174
- 230000001537 neural effect Effects 0.000 claims abstract description 118
- 230000000946 synaptic effect Effects 0.000 claims abstract description 81
- 239000012528 membrane Substances 0.000 claims abstract description 80
- 210000000225 synapse Anatomy 0.000 claims abstract description 54
- 239000000872 buffer Substances 0.000 claims abstract description 42
- 238000005192 partition Methods 0.000 claims abstract description 23
- 230000007423 decrease Effects 0.000 claims abstract description 5
- 230000002964 excitative effect Effects 0.000 claims abstract description 5
- 230000002401 inhibitory effect Effects 0.000 claims abstract description 5
- 230000015654 memory Effects 0.000 claims description 167
- 238000000034 method Methods 0.000 claims description 25
- 238000010304 firing Methods 0.000 claims description 21
- RVRCFVVLDHTFFA-UHFFFAOYSA-N heptasodium;tungsten;nonatriacontahydrate Chemical compound O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.[Na+].[Na+].[Na+].[Na+].[Na+].[Na+].[Na+].[W].[W].[W].[W].[W].[W].[W].[W].[W].[W].[W] RVRCFVVLDHTFFA-UHFFFAOYSA-N 0.000 claims description 9
- 101500023984 Drosophila melanogaster Synapsin-1 Proteins 0.000 claims description 3
- 101500023985 Drosophila melanogaster Synapsin-2 Proteins 0.000 claims description 3
- 230000001934 delay Effects 0.000 claims description 3
- 238000013507 mapping Methods 0.000 claims description 2
- 238000003860 storage Methods 0.000 description 18
- 238000012545 processing Methods 0.000 description 16
- 230000006870 function Effects 0.000 description 11
- 238000010586 diagram Methods 0.000 description 10
- 230000037361 pathway Effects 0.000 description 10
- 238000003491 array Methods 0.000 description 8
- 239000011159 matrix material Substances 0.000 description 8
- 230000005540 biological transmission Effects 0.000 description 7
- 238000005457 optimization Methods 0.000 description 7
- 230000001902 propagating effect Effects 0.000 description 6
- 238000004364 calculation method Methods 0.000 description 5
- 238000004590 computer program Methods 0.000 description 5
- 238000004891 communication Methods 0.000 description 4
- 239000004744 fabric Substances 0.000 description 4
- 238000007792 addition Methods 0.000 description 3
- 230000001419 dependent effect Effects 0.000 description 3
- 230000036961 partial effect Effects 0.000 description 3
- 230000003139 buffering effect Effects 0.000 description 2
- 210000001787 dendrite Anatomy 0.000 description 2
- 239000000835 fiber Substances 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- 238000013468 resource allocation Methods 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- RYGMFSIKBFXOCR-UHFFFAOYSA-N Copper Chemical compound [Cu] RYGMFSIKBFXOCR-UHFFFAOYSA-N 0.000 description 1
- 238000013529 biological neural network Methods 0.000 description 1
- 238000007596 consolidation process Methods 0.000 description 1
- 229910052802 copper Inorganic materials 0.000 description 1
- 239000010949 copper Substances 0.000 description 1
- 238000009826 distribution Methods 0.000 description 1
- 238000005265 energy consumption Methods 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000002441 reversible effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
Images
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/04—Architecture, e.g. interconnection topology
-
- 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
-
- 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/04—Architecture, e.g. interconnection topology
- G06N3/049—Temporal neural networks, e.g. delay elements, oscillating neurons or pulsed inputs
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Health & Medical Sciences (AREA)
- Life Sciences & Earth Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Molecular Biology (AREA)
- Mathematical Physics (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- General Health & Medical Sciences (AREA)
- Artificial Intelligence (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computational Linguistics (AREA)
- Software Systems (AREA)
- Neurology (AREA)
- Logic Circuits (AREA)
- Image Processing (AREA)
- Semiconductor Memories (AREA)
- Memory System (AREA)
- Complex Calculations (AREA)
Abstract
Gemultiplexter neuronaler Kernschaltkreis, aufweisend:T Sätze von elektronischen Neuronen, wobei T ein ganzzahliger Multiplexing-Faktor und als Wert gleich vier ist;T Sätze von elektronischen Axonen, wobei jeder Satz der T Sätze von elektronischen Axonen einem der T Sätze von elektronischen Neuronen entspricht; undein synaptisches Verbindungsnetzwerk, das eine Mehrzahl von elektronischen Synapsen aufweist, die jeweils ein einzelnes elektronisches Axon mit einem einzelnen elektronischen Neuron verbinden, wobei das Verbindungsnetzwerk jeden der T Sätze von elektronischen Axonen mit seinem entsprechenden Satz von elektronischen Neuronen verbindet; undeinen Satz von Axonpuffern, die jeweils in T Partitionen unterteilt sind, wobei jede der T Partitionen mit einem von T Unterzeitschritten eines Zeitschrittes verbunden ist, und wobei jeder der T Unterzeitschritte aufweist:einen gemeinsamen Satz von Neuronenparametern, wobei die Neuronenparameter eine Spike-Schwelle, eine Leckrate und Axontyp-Gewichte aufweisen;einen gemeinsamen Satz von Neuronen-Zielorten, die auf ein Zielaxon für jedes der elektronischen Neuronen hinweisen, undeinen anderen Satz von Neuronenmembranpotenzialen als die anderen Unterzeitschritte, wobei jeder Satz von Neuronenmembranpotenzialen ein Membranpotenzial V aufweist, das ansteigt, wenn Eingaben von quellenerregenden Neuronen empfangen werden, und das abfällt, wenn Eingaben von quellenhemmenden Neuronen empfangen werden,wobei die gemultiplexte neuronale Kernschaltung für die T Unterzeitschritte des Zeitschrittes zeitmultiplexiert ist, wobei synaptische Gewichte und die Neuronenparameter über die T Unterzeitschritte gemeinsam genutzt werden, undwobei jeder der T Unterzeitschritte einem anderen Satz von Neuronen-Zielorten und einem anderen Satz von Neuronen-Membranpotentialen als die anderen Sub-Zeitschritte zugeordnet ist, so dass die multiplexierte neuronale Kernschaltung während eines Zeitschrittes als vier Kerne arbeitet, wobei jeder der vier Kerne seine eigenen einzigartigen Neuronen-Zielorte und NeuronenMembranpotentiale hat.A multiplexed core neural circuit comprising:T sets of electronic neurons, where T is an integer multiplexing factor and is equal to four;T sets of electronic axons, each set of the T sets of electronic axons corresponding to one of the T sets of electronic neurons; anda synaptic interconnection network comprising a plurality of electronic synapses each connecting a single electronic axon to a single electronic neuron, the interconnection network connecting each of the T sets of electronic axons to its corresponding set of electronic neurons; anda set of axon buffers each divided into T partitions, each of the T partitions associated with one of T sub-time steps of a time step, and each of the T sub-time steps having:a common set of neuron parameters, the neuron parameters comprising a spike threshold, a leak rate, and axon type weights;a common set of neuron target locations indicative of a target axon for each of the electronic neurons, anda different set of neuron membrane potentials than the other sub-time steps, each set of neuron membrane potentials having a membrane potential V that increases when receiving inputs from source excitatory neurons and that decreases when receiving inputs from source inhibitory neurons,wherein the multiplexed core neural circuit is time-multiplexed for the T sub-time steps of the time step, with synaptic weights and the neuron parameters being shared across the T sub-time steps, andwherein each of the T Sub-time steps are assigned to a different set of neuron target locations and a different set of neuron membrane potentials than the other sub-time steps, so that the multiplexed neural core circuit operates as four cores during a time step, with each of the four cores having its own unique neuron target locations and neuron membrane potentials.
Description
HINTERGRUNDBACKGROUND
Die vorliegende Erfindung betrifft neurosynaptische Netzwerke, und insbesondere betrifft diese Erfindung zeitlich gemultiplexte neurosynaptische Kerne (time-division multiplexed neurosynaptic cores).The present invention relates to neurosynaptic networks, and more particularly, this invention relates to time-division multiplexed neurosynaptic cores.
Neurosynaptische Systeme auf der Grundlage von Kernen bestehen aus mehreren neurosynaptischen Kernen, wobei die neurosynaptischen Kerne so konfiguriert und verbunden sind, dass ein neurosynaptisches Netzwerk bilden. Ein einzelner neurosynaptischer Chip enthält eine feststehende Anzahl von neurosynaptischen Kernen. Beispielsweise kann ein einzelner neurosynaptischer Chip Hunderte oder Tausende von Kernen enthalten. Es können Chips mit unterschiedlicher Größe, d.h. Anzahl von Kernen, hergestellt werden. Zum Implementieren eines neurosynaptischen Systems sind ein oder mehrere Chips erforderlich. Da das Herstellen neurosynaptischer Chips kostspielig ist, ist es wünschenswert, die Anzahl von Chips, die von einem gegebenen System verwendet werden, so gering wie möglich zu halten.Core-based neurosynaptic systems consist of multiple neurosynaptic cores, where the neurosynaptic cores are configured and connected to form a neurosynaptic network. A single neurosynaptic chip contains a fixed number of neurosynaptic cores. For example, a single neurosynaptic chip may contain hundreds or thousands of cores. Chips of different sizes, i.e., number of cores, can be manufactured. One or more chips are required to implement a neurosynaptic system. Since manufacturing neurosynaptic chips is expensive, it is desirable to minimize the number of chips used by a given system.
In einigen Umgebungen kann eine große Anzahl von neurosynaptischen Kernen so programmiert werden, dass sie die gleiche Funktion ausführen. Darüber hinaus kann eine gegebene Konfiguration von neurosynaptischen Kernen mehrere Male kachelartig auf einem Chip angeordnet werden. Mit anderen Worten, eine Anordnung oder Verschaltung zwischen Kernen kann auf einem oder mehreren Chips mehrere Male wiederholt werden, so dass eine erste Gruppe von Kernen die gleiche(n) Aufgabe(n) wie eine zweite Gruppe von Kernen ausführt.In some environments, a large number of neurosynaptic cores can be programmed to perform the same function. Moreover, a given configuration of neurosynaptic cores can be tiled multiple times on a chip. In other words, an arrangement or interconnection between cores can be repeated multiple times on one or more chips, so that a first group of cores performs the same task(s) as a second group of cores.
In diesem Kontext wurden bereits einige Dokumente veröffentlicht: Das Dokument
Trotzdem gibt es auf dem Gebiet des recht jungen technischen Gebietes von neuromorphic Computing weiteres Optimierungspotenzial, um die Leistungsfähigkeit derartiger Schaltkreise zu verbessern.Nevertheless, there is still potential for further optimization in the relatively young technical field of neuromorphic computing to improve the performance of such circuits.
KURZDARSTELLUNGBRIEF DESCRIPTION
Diese Aufgabe wird durch die Gegenstände der unabhängigen Ansprüche gelöst. Weitere Ausgestaltungen ergeben sich aus den jeweils abhängigen Ansprüchen.This problem is solved by the subject matter of the independent claims. Further embodiments arise from the respective dependent claims.
Ein gemultiplexter neuronaler Kernschaltkreis (multiplexed neural core circuit) gemäß einer Ausführungsform weist bei einem ganzzahligen Multiplexfaktor T, der größer als null ist, T Sätze von elektronischen Neuronen, T Sätze von elektronischen Axonen, wobei jeder Satz der T Sätze von elektronischen Axonen einem der T Sätze von elektronischen Neuronen entspricht, und ein synaptisches Verbindungsnetzwerk mit einer Mehrzahl von elektronischen Synapsen auf, die jeweils ein einzelnes elektronisches Axon mit einem einzelnen elektronischen Neuron verbinden, wobei das Verbindungsnetzwerk jeden Satz der T Sätze von elektronischen Axonen mit seinem entsprechenden Satz von elektronischen Neuronen verbindet.A multiplexed neural core circuit according to an embodiment comprises, at an integer multiplexing factor T greater than zero, T sets of electronic neurons, T sets of electronic axons, each set of the T sets of electronic axons corresponding to one of the T sets of electronic neurons, and a synaptic interconnection network having a plurality of electronic synapses each connecting a single electronic axon to a single electronic neuron, the interconnection network connecting each set of the T sets of electronic axons to its corresponding set of electronic neurons.
Gemäß einer anderen Ausführungsform weist ein von einem Computer implementiertes Verfahren zum Multiplexen eines neuronalen Kernschaltkreises bei einem ganzzahligen Multiplexfaktor T, der größer als null ist, Konfigurieren von T Sätzen von elektronischen Neuronen, Konfigurieren von T Sätzen von elektronischen Axonen, wobei jeder Satz der T Sätze von elektronischen Axonen einem der T Sätze von elektronischen Neuronen entspricht, und Konfigurieren eines synaptischen Verbindungsnetzwerkes auf, das eine Mehrzahl von elektronischen Synapsen aufweist, die jeweils ein einzelnes elektronisches Axon mit einem einzelnen elektronischen Neuron verbinden, wobei das Verbindungsnetzwerk jeden Satz der T Sätze von elektronischen Axonen mit seinem entsprechenden Satz von elektronischen Neuronen verbindet.According to another embodiment, a computer-implemented method for multiplexing a core neural circuit at an integer multiplexing factor T greater than zero comprises configuring T sets of electronic neurons, configuring T sets of electronic axons, each set of the T sets of electronic axons corresponding to one of the T sets of electronic neurons, and configuring a synaptic interconnection network comprising a plurality of electronic synapses each connecting a single electronic axon to a single electronic neuron, the interconnection network connecting each set of the T sets of electronic axons to its corresponding set of electronic neurons.
Gemäß noch einer anderen Ausführungsform weist ein neurosynaptisches System einen neurosynaptischen Chip, ein neurosynaptisches Einzelkern-Modul (single-core neurosynaptic module) als Komponente auf einem Chip oder ein neurosynaptisches Mehrkern-Modul (multi-core neurosynaptic module) als Komponente auf einem Chip auf, das eine Mehrzahl von gemultiplexten neuronalen Kernschaltkreisen beinhaltet, die über ein chipintegriertes Netzwerk miteinander verbunden sind, wobei jeder aus der Mehrzahl von gemultiplexten neuronalen Kernschaltkreisen bei einem ganzzahligen Multiplexfaktor T, der größer als null ist, T Sätze von elektronischen Neuronen, T Sätze von elektronischen Axonen, wobei jeder Satz der T Sätze von elektronischen Axonen einem der T Sätze von elektronischen Neuronen entspricht, und ein synaptisches Verbindungsnetzwerk aufweist, das eine Mehrzahl von elektronischen Synapsen aufweist, die jeweils ein einzelnes elektronisches Axon mit einem einzelnen elektronischen Neuron verbinden, wobei das Verbindungsnetzwerk jeden Satz der T Sätze von elektronischen Axonen mit seinem entsprechenden Satz von elektronischen Neuronen verbindet.According to yet another embodiment, a neurosynaptic system comprises a neurosynaptic chip, a single-core neurosynaptic module as a component on a chip, or a multi-core neurosynaptic module as a component on a chip including a plurality of multiplexed neural core circuits interconnected via an on-chip network, each of the plurality of multiplexed neural core circuits comprising, at an integer multiplexing factor T greater than zero, T sets of electronic neurons, T sets of electronic axons, each set of the T sets of electronic axons corresponding to one of the T sets of electronic neurons, and a synaptic interconnection network comprising a plurality of electronic synapses each connecting a single electronic axon to a single electronic neuron, the interconnection network connecting each set of the T sets of electronic axons to its corresponding set of electronic neurons.
Andere Aspekte und Ausführungsformen der vorliegenden Erfindung ergeben sich aus der folgenden ausführlichen Beschreibung, die in Verbindung mit den Zeichnungen beispielhaft die Grundgedanken der Erfindung veranschaulicht.Other aspects and embodiments of the present invention will become apparent from the following detailed description, which, taken in conjunction with the drawings, illustrates by way of example the principles of the invention.
KURZDARSTELLUNG DER ZEICHNUNGENBRIEF DESCRIPTION OF THE DRAWINGS
Ausführungsformen der Erfindung werden nachfolgend beispielhaft mit Bezug auf die begleitenden Zeichnungen beschrieben, in denen:
-
1 ein Modul mit einem neurosynaptischen Kern gemäß einer Ausführungsform der Erfindung veranschaulicht. -
2 ein neurosynaptisches Netzwerk gemäß einer Ausführungsform der Erfindung veranschaulicht. -
3 einen gemultiplexten neuronalen Kernschaltkreis gemäß einer Ausführungsform der Erfindung veranschaulicht. -
4 eine Mehrzahl von möglichen Speicherkonfigurationen eines gemultiplexten neuronalen Kernschaltkreises gemäß einer Ausführungsform der Erfindung veranschaulicht. - Die
5A bis 5C die Effizienz eines gemultiplexten neurosynaptischen Kerns gemäß einer Ausführungsform der Erfindung veranschaulichen. - Die
6A bis 6B die Weiterleitung von Spike-Ereignissen zwischen gemultiplexten neurosynaptischen Kernen gemäß einer Ausführungsform der Erfindung veranschaulichen. - Die
7A bis 7B veranschaulichen die Weiterleitung von Spike-Ereignissen zwischen gemultiplexten neurosynaptischen Kernen gemäß einer Ausführungsform. -
8 veranschaulicht eine typische Hardware-Umgebung zum Konfigurieren eines gemultiplexten neurosynaptischen Kerns gemäß einer Ausführungsform.
-
1 illustrates a module with a neurosynaptic core according to an embodiment of the invention. -
2 illustrates a neurosynaptic network according to an embodiment of the invention. -
3 illustrates a multiplexed neural core circuit according to an embodiment of the invention. -
4 illustrates a plurality of possible memory configurations of a multiplexed neural core circuit according to an embodiment of the invention. - The
5A to 5C illustrate the efficiency of a multiplexed neurosynaptic core according to an embodiment of the invention. - The
6A to 6B illustrate the propagation of spike events between multiplexed neurosynaptic nuclei according to an embodiment of the invention. - The
7A to 7B illustrate the propagation of spike events between multiplexed neurosynaptic nuclei according to one embodiment. -
8th illustrates a typical hardware environment for configuring a multiplexed neurosynaptic core according to one embodiment.
AUSFÜHRLICHE BESCHREIBUNGDETAILED DESCRIPTION
Die folgende Beschreibung dient dazu, die allgemeinen Grundgedanken der vorliegenden Erfindung zu veranschaulichen, und soll die hierin beanspruchten erfindungsgemäßen Konzepte nicht einschränken. Außerdem können bestimmte hierin beschriebene Merkmale in Kombination mit anderen beschriebenen Merkmalen in jeder der verschiedenen möglichen Kombinationen und Umsetzungen verwendet werden.The following description is intended to illustrate the general principles of the present invention and is not intended to limit the inventive concepts claimed herein. Moreover, certain features described herein may be used in combination with other described features in any of various possible combinations and implementations.
Sofern nicht ausdrücklich etwas anderes angegeben ist, sollte allen Begriffen die breitest mögliche Auslegung zugestanden werden, einschließlich Bedeutungen, die sich aus der Beschreibung ergeben, sowie Bedeutungen, die von Fachleuten verstanden werden, und/oder wie sie in Lexika, Abhandlungen usw. definiert werden.Unless expressly stated otherwise, all terms should be given the broadest possible interpretation, including meanings that arise from the description, meanings understood by those skilled in the art, and/or as defined in dictionaries, treatises, etc.
Außerdem sei darauf hingewiesen, dass die Singularformen „ein(e)“ und „der/die/das“ bei Verwendung in der Beschreibung und den angehängten Ansprüchen auch die Pluralformen mit einschließen, sofern nichts anderes angegeben ist. Außerdem versteht es sich von selbst, dass die Begriffe „aufweist“ und/oder „aufweisend“ bei Verwendung in dieser Beschreibung das Vorhandensein von dargelegten Merkmalen, ganzen Zahlen, Schritten, Arbeitsgängen, Elementen und/oder Komponenten angeben, jedoch das Vorhandensein oder Hinzufügen von einem oder mehreren anderen Merkmalen, ganzen Zahlen, Schritten, Arbeitsgängen, Elementen, Komponenten und/oder Gruppen von diesen nicht ausschließen.It should also be noted that the singular forms "a" and "the" when used in the specification and the appended claims include the plural forms as well, unless otherwise indicated. It is also to be understood that the terms "comprises" and/or "comprising" when used in this specification indicate the presence of stated features, integers, steps, operations, elements and/or components. but does not exclude the presence or addition of one or more other characteristics, integers, steps, operations, elements, components and/or groups thereof.
Die folgende Beschreibung offenbart mehrere bevorzugte Ausführungsformen von Systemen, Verfahren und Computerprogrammprodukten zum Multiplexen von neurosynaptischen Kernen.The following description discloses several preferred embodiments of systems, methods, and computer program products for multiplexing neurosynaptic nuclei.
In einer allgemeinen Ausführungsform weist ein gemultiplexter neuronaler Kernschaltkreis bei einem ganzzahligen Multiplexfaktor T, der größer als null ist, auf: T Sätze von elektronischen Neuronen, T Sätze von elektronischen Axonen, wobei jeder Satz der T Sätze von elektronischen Axonen einem der T Sätze von elektronischen Neuronen entspricht, und ein synaptisches Verbindungsnetzwerk, das eine Mehrzahl von elektronischen Synapsen aufweist, die jeweils ein einzelnes elektronisches Axon mit einem einzelnen elektronischen Neuron verbinden, wobei das Verbindungsnetzwerk jeden Satz der T Sätze von elektronischen Axonen mit seinem entsprechenden Satz von elektronischen Neuronen verbindet.In a general embodiment, a multiplexed core neural circuit, at an integer multiplexing factor T greater than zero, comprises: T sets of electronic neurons, T sets of electronic axons, each set of the T sets of electronic axons corresponding to one of the T sets of electronic neurons, and a synaptic interconnection network comprising a plurality of electronic synapses each connecting a single electronic axon to a single electronic neuron, the interconnection network connecting each set of the T sets of electronic axons to its corresponding set of electronic neurons.
In einer anderen allgemeinen Ausführungsform weist ein von einem Computer implementiertes Verfahren zum Multiplexen eines neuronalen Kernschaltkreises bei einem ganzzahligen Multiplexfaktor T, der größer als null ist, auf: Konfigurieren von T Sätzen von elektronischen Neuronen, Konfigurieren von T Sätzen von elektronischen Axonen, wobei jeder Satz der T Sätze von elektronischen Axonen einem der T Sätze von elektronischen Neuronen entspricht, und Konfigurieren eines synaptischen Verbindungsnetzwerkes, das eine Mehrzahl von elektronischen Synapsen aufweist, die jeweils ein einzelnes elektronisches A-xon mit einem einzelnen elektronischen Neuron verbinden, wobei das Verbindungsnetzwerk jeden Satz der T Sätze von elektronischen Axonen mit seinem entsprechenden Satz von elektronischen Neuronen verbindet.In another general embodiment, a computer-implemented method for multiplexing a core neural circuit at an integer multiplexing factor T greater than zero comprises: configuring T sets of electronic neurons, configuring T sets of electronic axons, wherein each set of the T sets of electronic axons corresponds to one of the T sets of electronic neurons, and configuring a synaptic interconnection network comprising a plurality of electronic synapses each connecting a single electronic axon to a single electronic neuron, wherein the interconnection network connects each set of the T sets of electronic axons to its corresponding set of electronic neurons.
In einer weiteren allgemeinen Ausführungsform weist ein neurosynaptisches System einen neurosynaptischen Chip, ein neurosynaptisches Einzelkern-Modul als Komponente auf einem Chip oder ein neurosynaptisches Mehrkern-Modul als Komponente auf einem Chip auf, das eine Mehrzahl von gemultiplexten neuronalen Kernschaltkreisen beinhaltet, die über ein chipintegriertes Netzwerk miteinander verbunden sind, wobei jeder aus der Mehrzahl von gemultiplexten neuronalen Kernschaltkreisen bei einem ganzzahligen Multiplexfaktor T, der größer als null ist, T Sätze von elektronischen Neuronen, T Sätze von elektronischen Axonen, wobei jeder Satz der T Sätze von elektronischen Axonen einem der T Sätze von elektronischen Neuronen entspricht, und ein synaptisches Verbindungsnetzwerk aufweist, das eine Mehrzahl von elektronischen Synapsen aufweist, die jeweils ein einzelnes elektronisches Axon mit einem einzelnen elektronischen Neuron verbinden, wobei das Verbindungsnetzwerk jeden Satz der T Sätze von elektronischen Axonen mit seinem entsprechenden Satz von elektronischen Neuronen verbindet.In another general embodiment, a neurosynaptic system comprises a neurosynaptic chip, a single-core neurosynaptic component-on-chip module, or a multi-core neurosynaptic component-on-chip module including a plurality of multiplexed core neural circuits interconnected via an on-chip network, each of the plurality of multiplexed core neural circuits comprising, at an integer multiplexing factor T greater than zero, T sets of electronic neurons, T sets of electronic axons, each set of the T sets of electronic axons corresponding to one of the T sets of electronic neurons, and a synaptic interconnection network comprising a plurality of electronic synapses each connecting a single electronic axon to a single electronic neuron, the interconnection network connecting each set of the T sets of electronic axons to its corresponding set of electronic neurons.
Jede Synapse 31 überträgt Feuerereignisse (z.B. Spike-Ereignisse) zwischen einem Axon 15 und einem Neuron 11. Insbesondere befindet sich jede Synapse 31 an der Kreuzungspunktstelle zwischen einem Axonpfad 26 und einem Dendritenpfad 34, so dass eine Verbindung zwischen dem Axonpfad 26 und dem Dendritenpfad 34 durch die Synapse 31 erfolgt. Jedes Axon 15 ist derart mit einem Axonpfad 26 verbunden, dass das Axon 15 Spikes an den verbundenen Axonpfad 26 sendet. Jedes Neuron 11 ist derart mit einem Dendritenpfad 34 verbunden, dass das Neuron 11 Spikes aus dem verbundenen Dendritenpfad 34 empfängt.Each
Jede Synapse 31 hat ein Synapsengewicht (synaptic weight). Die Synapsengewichte der Synapsen 31 des Kerns 10 können durch eine Gewichtsmatrix (weight matrix) W dargestellt werden, wobei ein Element Wij der Matrix W ein Synapsengewicht einer Synapse 31 darstellt, die sich in einer Zeile/einem Axonpfad i und einer Spalte/einem Dendritenpfad j der Kreuzschiene 12 befindet. In einer Ausführungsform handelt es sich bei den Synapsen 31 um binäre Speichereinheiten. Zum Beispiel kann jede Synapse 31 ein Gewicht „0“ haben, wodurch angezeigt wird, dass die Synapse 31 nichtleitend ist, oder ein Gewicht „1“, wodurch angezeigt wird, dass die Synapse 31 leitend ist. Eine Lernregel wie Spikezeit-abhängige Plastizität (spike-timing dependent plasticity, STDP) kann angewendet werden, um die Synapsengewichte der Synapsen 31 zu aktualisieren.Each
Die synaptische Kreuzschiene oder das Verbindungsnetzwerk 110b kann synaptische Verbindungsinformationen für mehrere Neuronen 11 enthalten, wobei es mehrere elektronische Synapsen aufweist, die elektronische Axone des neuronalen Kernschaltkreises 100 mit den elektronischen Neuronen des neuronalen Kernschaltkreises 100 verbinden. Jede Synapse des Verbindungsnetzwerks 110b verbindet ein elektronisches Axon mit einem elektronischen Neuron.The synaptic crossbar or interconnection network 110b may contain synaptic interconnection information for multiple neurons 11, having multiple electronic synapses connecting electronic axons of the core neural circuit 100 to the electronic neurons of the core neural circuit 100. Each synapse of the interconnection network 110b connects an electronic axon to an electronic neuron.
Verschiedene zusätzliche Speicherteilkomponenten speichern Daten für den neuronalen Kernschaltkreis 100. Insbesondere enthält der Kernschaltkreis 100 einen Speicher 110a und einen Speicher 110c, von denen jeder Daten für den neuronalen Kernschaltkreis speichert. Außerdem kann der Speicher 110a in T Partitionen unterteilt sein. Jede der T Partitionen kann einem entsprechenden von T Teilzeitschritten eines Zeitschritts zugehörig sein. Der Speicher 110c speichert zusätzliche Daten für den neuronalen Kernschaltkreis 100. In einer Ausführungsform gehören zu den zusätzlichen Daten neuronale Attribute, die über zwei oder mehrere der T Teilzeitschritte des Zeitschritts gemeinsam genutzt werden. Zum Beispiel kann der Speicher 110c Neuronenparameter für die Neuronen 11 Weiterleitungsdaten für die Neuronen 11 usw. speichern, wie nachfolgend ausführlicher erläutert wird.Various additional memory subcomponents store data for the core neural circuit 100. In particular, the core circuit 100 includes a memory 110a and a memory 110c, each of which stores data for the core neural circuit. Additionally, the memory 110a may be divided into T partitions. Each of the T partitions may be associated with a corresponding one of T sub-time steps of a time step. The memory 110c stores additional data for the core neural circuit 100. In one embodiment, the additional data includes neural attributes shared across two or more of the T sub-time steps of the time step. For example, the memory 110c may store neuron parameters for the neurons 11, forwarding data for the neurons 11, etc., as discussed in more detail below.
In einer Ausführungsform kann der 110 mehrere Einträge oder Zeilen enthalten. Beispielsweise können die synaptische Kreuzschiene 110b und der Speicher 110c mehrere Einträge enthalten, wobei jeder Eintrag neuronale Attribute für ein Neuron 11 speichert. In einer Ausführungsform speichert jeder Eintrag die folgenden neuronalen Attribute für ein Neuron 11: synaptische Verbindungsinformationen (Wij), Neuronenparameter und Leitweginformationen. In einer Ausführungsform speichert ein erster Teilsatz jedes Eintrags Synapsengewichte von Synapsen 31, die ein Neuron 11 mit Axonen 15 verbinden.In one embodiment, 110 may contain multiple entries or rows. For example, synaptic crossbar 110b and memory 110c may contain multiple entries, each entry storing neuronal attributes for a neuron 11. In one embodiment, each entry stores the following neuronal attributes for a neuron 11: synaptic connection information (W ij ), neuron parameters, and routing information. In one embodiment, a first subset of each entry stores synaptic weights of
In einer Ausführungsform weist die Steuereinheit 120 eine Eingangsverarbeitungsstruktur (input processing fabric) und eine Berechnungsstruktur (computation fabric) auf. Die Verarbeitungsstruktur ist so konfiguriert, dass sie für jeden Eintrag Feuerereignisse, die für diesen Eintrag bestimmt sind, empfängt und verarbeitet. Zum Beispiel kann jedes empfangene Feuerereignis auf ein Axon 15 abzielen, mit dem ein durch den Eintrag dargestelltes Neuron 11 verbunden ist. Wie oben angegeben wird, speichert ein erster Teilsatz jedes Eintrags Synapsengewichte von Synapsen 31, die ein Neuron 11 mit Axonen 15 verbinden. Wenn die Synapse 31, die das Zielaxon 15 und das durch den Eintrag dargestellte Neuron 11 miteinander verbindet, leitend ist, kann das Feuerereignis durch die Berechnungsstruktur integriert werden. In einer Ausführungsform weist die Verarbeitungsstruktur einen Decodierer, eine Planungssteuereinheit (scheduler control unit), eine Planungseinrichtung (scheduler), ein Axontypregister (axon type register), eine Multiplexsteuereinheit und ein Skalarproduktmodul (dot product module) auf.In one embodiment, the controller 120 includes an input processing fabric and a computation fabric. The processing fabric is configured to receive and process, for each entry, firing events intended for that entry. For example, each received firing event may target an axon 15 to which a neuron 11 represented by the entry is connected. As indicated above, a first subset of each entry stores synapse weights of
In einem neuronalen Netz, das mehrere Kernschaltkreise 100 aufweist, werden Feuerereignisse zwischen Kernschaltkreisen 100 des neuronalen Netzes in Form von Spike-Ereignispaketen (spike event packets) weitergeleitet. Jedes Spike-Ereignispaket kann ein Feuerereignis oder Spike-Ereignis enthalten, das als binäre Adresse codiert ist, die ein Zielaxon 15 darstellt, wobei das Feuerereignis von einem Neuron 11 im selben Kernschaltkreis 100 oder in einem anderen Kernschaltkreis 100 erzeugt wurde. Jedes Spike-Ereignispaket kann außerdem einen Zeitschritt und einen Teilzeitschritt enthalten, der anzeigt, wann ein in dieses Spike-Ereignispaket eingebundenes Feuerereignis erzeugt wurde. Ein Decodierer jedes Kernschaltkreises 100 kann zum Empfangen und Decodieren von Spike-Ereignispaketen konfiguriert werden.In a neural network having multiple core circuits 100, firing events are passed between core circuits 100 of the neural network in the form of spike event packets. Each spike event packet may contain a firing event or spike event encoded as a binary address representing a target axon 15, where the firing event was generated by a neuron 11 in the same core circuit 100 or in a different core circuit 100. Each spike event packet may also contain a time step and a sub-time step indicating when a firing event included in that spike event packet was generated. A decoder of each core circuit 100 may be configured to receive and decode spike event packets.
In einer Ausführungsform ist die Planungseinrichtung so konfiguriert, dass sie ein Puffern von Axonen verwaltet, und der Speicher 110a enthält einen den Axonen 15 des Kernschaltkreises 100 zugehörigen Axonpuffer. Mit anderen Worten, der Speicher 110a des Kernschaltkreises 100 kann einen Satz von A Axonpuffern aufweisen, wobei A die Anzahl von Axonen des Kernschaltkreises 100 ist. Für ein bestimmtes Axon 15 kann die Planungseinrichtung empfangene Feuerereignisse, die an das Axon 15 gerichtet sind, in einem dem Axon 15 zugehörigen Puffer zwischenspeichern. Wenn jeder Zeitschritt in T Teilzeitschritte unterteilt wurde, kann der dem Axon zugehörige Puffer außerdem auf der Grundlage von T und einer Tiefe des Speichers 110a unterteilt werden, wie nachfolgend ausführlicher erläutert wird.In one embodiment, the scheduler is configured to manage buffering of axons, and the memory 110a includes an axon buffer associated with the axons 15 of the core circuit 100. In other words, the memory 110a of the core circuit 100 may include a set of A axon buffers, where A is the number of axons of the core circuit 100. For a particular axon 15, the scheduler may buffer received firing events directed to the axon 15 in a buffer associated with the axon 15. Furthermore, if each time step has been divided into T sub-time steps, the buffer associated with the axon may be divided based on T and a depth of the memory 110a, as explained in more detail below.
Zu Beginn jedes Teilzeitschritts kann die Planungseinrichtung die Feuerereignisse in die Axonpuffer verschieben. In einer Ausführungsform kann ein Vektor, der alle aktiven Axone 15 im aktuellen Teilzeitschritt anzeigt, zu Beginn jedes Teilzeitschritts aus der Planungseinrichtung lesen.At the beginning of each sub-time step, the scheduler may move the firing events into the axon buffers. In one embodiment, a vector indicating all active axons 15 in the current sub-time step may be read from the scheduler at the beginning of each sub-time step.
Der Inhalt des Speichers 110 kann einmal pro Teilzeitschritt gelesen und geschrieben werden. Insbesondere werden für jeden Teilzeitschritt Einträge des Speichers 110 unter Verwendung einer sequenziellen Abfragevorrichtung (sequential scanner) einzeln sequenziell ausgelesen. Für jeden ein Neuron 11 darstellenden Eintrag kann ein Skalarprodukt zwischen dem Vektor von aktiven Axonen 15 im aktuellen Teilzeitschritt und den im Eintrag gespeicherten synaptischen Verbindungsinformationen, d.h. den Synapsengewichten aller Synapsen 31, mit denen der Dendritenpfad 34 des Neurons 11 verbunden ist (Wj), berechnet werden.The contents of the memory 110 can be read and written once per sub-time step. In particular, for each sub-time step, entries of the memory 110 are individually read out sequentially using a sequential scanner. For each entry representing a neuron 11, a dot product can be calculated between the vector of active axons 15 in the current sub-time step and the synaptic connection information stored in the entry, ie the synapse weights of all
Für jeden Eintrag kann ein Multiplexer Informationen verwenden, um einen Neuronenparameter (d.h. Syn0, Syn1, Syn2, Lk) auszuwählen. Beispielsweise kann die im Eintrag gespeicherte Leckrate (leak rate) Lk ausgewählt werden, nachdem alle Spikes integriert wurden. Eine Additionsschaltung (adder) kann den vom Multiplexer ausgewählten Neuronenparameter zu einer Membranpotentialvariablen addieren, die von einem anderen Multiplexer ausgewählt wurde. Für jeden Eintrag kann der andere Multiplexer die im Eintrag gespeicherte Membranpotentialvariable V für die erste Addition auswählen. Für jeden Eintrag kann der andere Multiplexer eine modifizierte Membranpotentialvariable für nachfolgende Additionen auswählen, wobei die modifizierte Membranpotentialvariable eine temporäre Variable ist.For each entry, a multiplexer can use information to select a neuron parameter (i.e., Syn0, Syn1, Syn2, Lk). For example, the leak rate Lk stored in the entry can be selected after all spikes have been integrated. An adder can add the neuron parameter selected by the multiplexer to a membrane potential variable selected by another multiplexer. For each entry, the other multiplexer can select the membrane potential variable V stored in the entry for the first addition. For each entry, the other multiplexer can select a modified membrane potential variable for subsequent additions, where the modified membrane potential variable is a temporary variable.
Nachdem alle Spikes integriert wurden und die Leckrate angewandt wurde, kann ein Vergleicher für jeden Eintrag feststellen, ob die modifizierte Membranpotentialvariable einen in dem Eintrag gespeicherten Schwellenparameter Th überschreitet. Wenn der Schwellenparameter Th überschritten wird, kann der Codierer einen Spike erzeugen und den erzeugten Spike in ein Spike-Ereignispaket einbinden/codieren. Die Membranpotentialvariable V kann auf null zurückgesetzt werden, bevor sie in den Eintrag rückgeschrieben wird.After all spikes have been integrated and the leak rate has been applied, a comparator can determine for each entry whether the modified membrane potential variable exceeds a threshold parameter Th stored in the entry. If the threshold parameter Th is exceeded, the encoder can generate a spike and encode the generated spike into a spike event packet. The membrane potential variable V can be reset to zero before being written back to the entry.
In einigen Ausführungsformen, die nachfolgend veranschaulicht werden, kann der Speicher 110 so zugeordnet werden, dass der Speicher 110 einen ersten Speicher, einen zweiten Speicher, einen dritten Speicher usw. enthält. Zum Beispiel kann der Speicher 110 mehrere Speicheranordnungen enthalten, wobei eine erste Speicheranordnung synaptische Verbindungsinformationen für mehrere Neuronen 11 (d.h. eine synaptische Kreuzschiene) speichert, eine zweite Speicheranordnung Neuronenparameter für die Neuronen 11 speichert, eine dritte Speicheranordnung Axonpuffer aufweist und eine vierte Speicheranordnung Leitweginformationen für die Neuronen 11 speichert.In some embodiments, illustrated below, the memory 110 may be allocated such that the memory 110 includes a first memory, a second memory, a third memory, etc. For example, the memory 110 may include multiple memory arrays, where a first memory array stores synaptic connection information for multiple neurons 11 (i.e., a synaptic crossbar), a second memory array stores neuron parameters for the neurons 11, a third memory array includes axon buffers, and a fourth memory array stores routing information for the neurons 11.
Unter Bezugnahme auf
In einer Ausführungsform beinhaltet eine Speicherkonfiguration 500 eine synaptische Kreuzschiene 110b und einen Speicher 110c, wobei der Speicher 110c so zugeordnet wurde, dass er Neuronenparameter 512, Neuronenzielorte (neuron destination locations) 514 und Neuronenmembranpotentiale 516 enthält. Die synaptische Kreuzschiene 110b speichert die Synapsengewichte der Synapsen 31 des Kerns 10 in einer Gewichtsmatrix W. Wie oben angegeben stellt ein Element Wij der Matrix W ein Synapsengewicht einer Synapse 31 dar, die sich in einer Zeile/einem Axonpfad i und einer Spalte/einem Dendritenpfad j der Kreuzschiene befindet. Wahlweise können die Neuronenparameter 512 der Speicherkonfiguration 500 für jedes mit der synaptischen Kreuzschiene 110b verbundene Neuron 11 beinhalten: eine Spike-Schwelle (Th), eine Leckrate (Lk) und/oder Gewichte jedes möglichen Axontyps (Syn0, Syn1, Syn2). Außerdem können die Neuronenzielorte 514 der Speicherkonfiguration 500 für jedes mit der synaptischen Kreuzschiene 110b verbundene Neuron 11 ein Zielaxon des Neurons 11 beinhalten. Weiterhin können die Neuronenmembranpotentiale 516 der Speicherkonfiguration 500 für jedes mit der synaptischen Kreuzschiene 110b verbundene Neuron 11 noch eine Membranpotentialvariable (V) beinhalten, wobei das Membranpotential einen Einzel- oder Mehrbitzustand beinhaltet, der ansteigt, wenn Eingangssignale von erregenden Quellneuronen (source excitatory neurons) empfangen werden, und der abnimmt, wenn Eingangssignale von hemmenden Quellneuronen (source inhibitory neurons) empfangen werden.In one embodiment, a memory configuration 500 includes a synaptic crossbar 110b and a memory 110c, where the memory 110c has been mapped to include neuron parameters 512, neuron destination locations 514, and neuron membrane potentials 516. The synaptic crossbar 110b stores the synapse weights of the
Wie durch die Konfiguration 500 veranschaulicht wird, kann der neuronale Kernschaltkreis 100 so konfiguriert werden, dass er mit einem Zeitmultiplexfaktor von 1 (T = 1) betrieben wird, so dass jeder Zeitschritt nur einen einzigen Teilzeitschritt enthält. Mit anderen Worten, neuronale Parameter, Neuronenzielorte und Neuronenmembranpotentiale werden nicht von zwei weiteren Teilzeitschritten gemeinsam genutzt.As illustrated by configuration 500, core neural circuit 100 may be configured to operate at a time-division multiplexing factor of 1 (T=1) such that each time step contains only a single sub-time step. In other words, neural parameters, neuron target locations, and neuron membrane potentials are not shared between two other sub-time steps.
In verschiedenen Ausführungsformen kann eine Größe der synaptischen Kreuzschiene 110b und des Speichers 110c von einer Anzahl von Axonen und Neuronen im neurosynaptischen Kern (A x N) sowie von der Anzahl an gespeicherten Neuronenparametern, Neuronenzielorten und Neuronenmembranpotentialen abhängen. In einer Ausführungsform, in der der neurosynaptische Kern eine Anordnung von 256 Axonen x 256 Neuronen aufweist, kann die synaptische Kreuzschiene 110b zum Beispiel eine Speicherzuordnung von 256 Bit x 256 Bit aufweisen. In einer solchen Ausführungsform kann die Speicherkonfiguration 500 außerdem so organisiert sein, dass die Neuronenparameter 512 eine Speicheranordnung mit 256 Bit x 102 Bit aufweisen, die Neuronenzielorte 514 eine Speicheranordnung mit 256 Bit x 32 Bit aufweisen und die Neuronenmembranpotentiale 516 eine Speicheranordnung mit 256 Bit x 20 Bit aufweisen. Dementsprechend weisen die synaptische Kreuzschiene 110b und der Speicher 110c der Speicherkonfiguration 500 zusammen eine Speicheranordnung mit 256 Bit x 410 Bit auf.In various embodiments, a size of the synaptic crossbar 110b and memory 110c may depend on a number of axons and neurons in the neurosynaptic core (A x N), as well as the number of stored neuron parameters, neuron targets, and neuron membrane potentials. For example, in an embodiment where the neurosynaptic core has an array of 256 axons x 256 neurons, the synaptic crossbar 110b may have a memory allocation of 256 bits x 256 bits. In such an embodiment, the memory configuration 500 may also be organized such that the neuron parameters 512 have a 256 bits x 102 bits memory arrangement, the neuron targets 514 have a 256 bits x 32 bits memory arrangement, and the neuron membrane potentials 516 have a 256 bits x 20 bits memory arrangement. Accordingly, the synaptic crossbar 110b and the memory 110c of the memory configuration 500 together comprise a 256-bit x 410-bit memory arrangement.
In einer anderen Ausführungsform enthält eine Speicherkonfiguration 502 die synaptische Kreuzschiene 110b und den Speicher 110c, wobei der Speicher 110c so zugeordnet wurde, dass er Neuronenparameter 512, Neuronenzielorte 514 und T Sätze von Neuronenmembranpotentialen 516 enthält. Die T Sätze von Neuronenmembranpotentialen 516 weisen Neuronenmembranpotentiale für die von elektronischen Neuronen eines neuronalen Kernschaltkreises 100 auf, so dass jede der T Partitionen Neuronenmembranpotentiale für die Mehrzahl von elektronischen Neuronen für einen der T Teilzeitschritte speichert.In another embodiment, a memory configuration 502 includes the synaptic crossbar 110b and the memory 110c, where the memory 110c has been allocated to include neuron parameters 512, neuron target locations 514, and T sets of neuron membrane potentials 516. The T sets of neuron membrane potentials 516 comprise neuron membrane potentials for those of electronic neurons of a core neural circuit 100, such that each of the T partitions stores neuron membrane potentials for the plurality of electronic neurons for one of the T sub-time steps.
Wie in
Wie oben erwähnt wurde, kann die synaptische Kreuzschiene 110b in einer Ausführungsform eine Speicherzuordnung von 256 Bit x 256 Bit aufweisen. Außerdem kann die Speicherkonfiguration 502 so konfiguriert werden, dass die Neuronenparameter eine Speicheranordnung mit 256 Bit x 102 Bit aufweisen, die Neuronenzielorte 514 eine Speicheranordnung mit 256 Bit x 32 Bit aufweisen und die T Sätze von Neuronenmembranpotentialen 516 T (256 Bit x 20 Bit)- Speicheranordnungen aufweisen. Wenn T = 4, weisen die synaptische Kreuzschiene 110b und der Speicher 110c der Speicherkonfiguration 502 demzufolge zusammen eine Speicheranordnung mit 256 Bit x (256 + 102 + 32 + T(20)) Bit oder 256 Bit x 470 Bit auf. Ein neuronaler Kernschaltkreis 100, der so konfiguriert ist, dass er die Speicherkonfiguration 502 enthält, kann in einem einzigen Zeitschritt die gleiche Anzahl von Spike-Berechnungen wie vier separate neuronale Kernschaltkreise 100 mit den gleichen Synapsengewichten, Neuronenparametern und Neuronenzielorten, jedoch unterschiedlichen Neuronenmembranpotentialen ausführen, die für jeden Teilzeitschritt protokolliert werden.As mentioned above, in one embodiment, the synaptic crossbar 110b may have a memory allocation of 256 bits x 256 bits. In addition, the memory configuration 502 may be configured such that the neuron parameters have a 256 bits x 102 bits memory allocation, the neuron target locations 514 have a 256 bits x 32 bits memory allocation, and the T sets of neuron membrane potentials 516 have T (256 bits x 20 bits) memory allocations. Accordingly, when T = 4, the synaptic crossbar 110b and memory 110c of the memory configuration 502 together have a 256 bits x (256 + 102 + 32 + T(20)) bits memory allocation, or 256 bits x 470 bits. A core neural circuit 100 configured to include memory configuration 502 can perform the same number of spike calculations in a single time step as four separate core neural circuits 100 with the same synapse weights, neuron parameters, and neuron target locations, but different neuron membrane potentials logged for each sub-time step.
In noch einer anderen Ausführungsform enthält die Speicherkonfiguration 504 die synaptische Kreuzschiene 110b und den Speicher 110c, wobei der Speicher 110c so zugeordnet wurde, dass er Neuronenparameter 512, T Sätze von Neuronenzielorten 514 und T Sätze von Neuronenmembranpotentialen 516 enthält. Die T Sätze von Neuronenzielorten 514 weisen Neuronenzielorte für die Mehrzahl von elektronischen Neuronen eines neuronalen Kernschaltkreises 100 auf, so dass jede der T Partitionen Neuronenzielorte für die Mehrzahl von elektronischen Neuronen für einen der T Teilzeitschritte speichert. Außerdem weisen die T Sätze von Neuronenmembranpotentialen 516 Neuronenmembranpotentiale für die Mehrzahl von elektronischen Neuronen eines neuronalen Kernschaltkreises 100 auf, so dass jede der T Partitionen Neuronenmembranpotentiale für die Mehrzahl von elektronischen Neuronen für einen der T Teilzeitschritte speichert.In yet another embodiment, the memory configuration 504 includes the synaptic crossbar 110b and the memory 110c, where the memory 110c is allocated to Neuron parameters 512, T sets of neuron target locations 514, and T sets of neuron membrane potentials 516. The T sets of neuron target locations 514 comprise neuron target locations for the plurality of electronic neurons of a core neural circuit 100 such that each of the T partitions stores neuron target locations for the plurality of electronic neurons for one of the T sub-time steps. In addition, the T sets of neuron membrane potentials 516 comprise neuron membrane potentials for the plurality of electronic neurons of a core neural circuit 100 such that each of the T partitions stores neuron membrane potentials for the plurality of electronic neurons for one of the T sub-time steps.
Wie in
Wie oben erwähnt wurde, kann die synaptische Kreuzschiene 110b in einer Ausführungsform eine Speicherzuordnung von 256 Bit x 256 Bit aufweisen. Außerdem kann die Speicherkonfiguration 504 so konfiguriert werden, dass die Neuronenparameter 512 eine Speicheranordnung mit 256 Bit x 102 Bit aufweisen, die T Sätze von Neuronenzielorten 514 T (256 Bit x 32 Bit)- Speicheranordnungen aufweisen und die T Sätze von Neuronenmembranpotentialen 516 T (256 Bit x 20 Bit)- Speicheranordnungen aufweisen. Wenn T = 4, weisen die synaptische Kreuzschiene 110b und der Speicher 110c der Speicherkonfiguration 504 demzufolge zusammen eine Speicheranordnung mit 256 Bit x (256 + 102 + T(32 + 20)) Bit oder 256 Bit x 566 Bit auf. Ein neuronaler Kernschaltkreis 100, der so konfiguriert ist, dass er die Speicherkonfiguration 504 enthält, kann in einem einzigen Zeitschritt die gleiche Anzahl von Spike-Berechnungen wie vier separate neuronale Kernschaltkreise 100 mit den gleichen Synapsengewichten und Neuronenparametern, jedoch unterschiedlichen Neuronenzielorten und Neuronenmembranpotentialen ausführen, die für jeden Teilzeitschritt protokolliert werden.As mentioned above, in one embodiment, the synaptic crossbar 110b may have a memory allocation of 256 bits x 256 bits. Additionally, the memory configuration 504 may be configured such that the neuron parameters 512 have a 256 bits x 102 bits memory arrangement, the T sets of neuron target locations 514 have T (256 bits x 32 bits) memory arrangements, and the T sets of neuron membrane potentials 516 have T (256 bits x 20 bits) memory arrangements. Accordingly, when T = 4, the synaptic crossbar 110b and memory 110c of the memory configuration 504 together have a 256 bits x (256 + 102 + T(32 + 20)) bits memory arrangement or 256 bits x 566 bits. A core neural circuit 100 configured to include memory configuration 504 can perform the same number of spike calculations in a single time step as four separate core neural circuits 100 with the same synapse weights and neuron parameters, but different neuron target locations and neuron membrane potentials logged for each sub-time step.
In einer anderen Ausführungsform enthält eine Speicherkonfiguration 506 die synaptische Kreuzschiene 110b und den Speicher 110c, wobei der Speicher 110c so zugeordnet wurde, dass er T Sätze von Neuronenparametern 512, Neuronenzielorten 514 und T Sätze von Neuronenmembranpotentialen 516 enthält. Die T Sätze von Neuronenparametern 512 weisen Neuronenparameter für die Mehrzahl von elektronischen Neuronen eines neuronalen Kernschaltkreises 100 auf, so dass jede der T Partitionen Neuronenparameter für die Mehrzahl von elektronischen Neuronen für einen der T Teilzeitschritte speichert. Außerdem weisen die T Sätze von Neuronenmembranpotentialen 516 Neuronenmembranpotentiale für die Vielzahl von elektronischen Neuronen eines neuronalen Kernschaltkreises 100 auf, so dass jede der T Partitionen Neuronenmembranpotentiale für die Mehrzahl von elektronischen Neuronen für einen der T Teilzeitschritte speichert.In another embodiment, a memory configuration 506 includes the synaptic crossbar 110b and the memory 110c, where the memory 110c has been allocated to include T sets of neuron parameters 512, neuron target locations 514, and T sets of neuron membrane potentials 516. The T sets of neuron parameters 512 comprise neuron parameters for the plurality of electronic neurons of a core neural circuit 100 such that each of the T partitions stores neuron parameters for the plurality of electronic neurons for one of the T sub-time steps. In addition, the T sets of neuron membrane potentials 516 comprise neuron membrane potentials for the plurality of electronic neurons of a core neural circuit 100 such that each of the T partitions stores neuron membrane potentials for the plurality of electronic neurons for one of the T sub-time steps.
Wie in
Wie oben erwähnt wurde, kann die synaptische Kreuzschiene 110b in einer Ausführungsform eine Speicherzuordnung von 256 Bit x 256 Bit aufweisen. Außerdem kann die Speicherkonfiguration 506 so konfiguriert werden, dass die T Sätze von Neuronenparametern 512 T (256 Bit x 102 Bit)- Speicheranordnungen aufweisen, die Neuronenzielorte 514 eine Speicheranordnung mit 256 Bit x 32 Bit aufweisen und die T Sätze von Neuronenmembranpotentialen 516 T (256 Bit x 20 Bit)- Speicheranordnungen aufweisen. Wenn T = 4, weisen die synaptische Kreuzschiene 110b und der Speicher 110c der Speicherkonfiguration 506 demzufolge zusammen eine Speicheranordnung mit 256 Bit x (256 + 32 + T(102 + 20)) Bit oder 256 Bit x 776 Bit auf. Ein neuronaler Kernschaltkreis 100, der so konfiguriert ist, dass er die Speicherkonfiguration 506 enthält, kann in einem einzigen Zeitschritt die gleiche Anzahl von Spike-Berechnungen wie vier separate neuronale Kernschaltkreise 100 mit den gleichen Synapsengewichten und Neuronenzielorten, jedoch unterschiedlichen Neuronenparametern und unterschiedlichen Neuronenmembranpotentialen ausführen, die für jeden Teilzeitschritt protokolliert werden.As mentioned above, in one embodiment, the synaptic crossbar 110b may have a memory allocation of 256 bits x 256 bits. In addition, the memory configuration 506 may be configured such that the T sets of neuron parameters 512 comprise T (256 bits x 102 bits) memory arrays, the neuron target locations 514 comprise a 256 bits x 32 bits memory array, and the T sets of neuron membrane potentials 516 comprise T (256 bits x 20 bits) memory arrays. Accordingly, when T = 4, the synaptic crossbar 110b and memory 110c of the memory configuration 506 together comprise a 256 bits x (256 + 32 + T(102 + 20)) bits memory array, or 256 bits x 776 bits. A core neural circuit 100 configured to include memory configuration 506 can perform the same number of spike calculations in a single time step as four separate core neural circuits 100 with the same synapse weights and neuron target locations, but different neuron parameters and different neuron membrane potentials logged for each sub-time step.
In noch einer anderen Ausführungsform enthält eine Speicherkonfiguration 508 die synaptische Kreuzschiene 110b und den Speicher 110c, wobei der Speicher 110c so zugeordnet wurde, dass er T Sätze von Neuronenparametern 512, T Sätze von Neuronenzielorten 514 und T Sätze von Neuronenmembranpotentialen 516 enthält.In yet another embodiment, a memory configuration 508 includes the synaptic crossbar 110b and the memory 110c, where the memory 110c has been allocated to contain T sets of neuron parameters 512, T sets of neuron target locations 514, and T sets of neuron membrane potentials 516.
Wie in
Wie oben erwähnt wurde, kann die synaptische Kreuzschiene 110b in einer Ausführungsform eine Speicherzuordnung von 256 Bit x 256 Bit aufweisen. Außerdem kann die Speicherkonfiguration 508 so konfiguriert werden, dass die T Sätze von Neuronenparametern 512 T (256 Bit x 102 Bit)-Speicheranordnungen aufweisen, die T Sätze von Neuronenzielorten 514 T (256 Bit x 32 Bit)- Speicheranordnungen aufweisen und die T Sätze von Neuronenmembranpotentialen 516 T (256 Bit x 20 Bit)- Speicheranordnungen aufweisen. Wenn T = 4, weisen die synaptische Kreuzschiene 110b und der Speicher 110c der Speicherkonfiguration 508 demzufolge zusammen eine Speicheranordnung mit 256 x (256 + T(102 + 32 + 20)) Bit oder 256 Bit x 872 Bit auf. Ein neuronaler Kernschaltkreis 100, der so konfiguriert ist, dass er die Speicherkonfiguration 508 enthält, kann in einem einzigen Zeitschritt die gleiche Anzahl von Spike-Berechnungen wie vier separate neuronale Kernschaltkreise 100 mit den gleichen Synapsengewichten, jedoch unterschiedlichen Neuronenparametern, unterschiedlichen Neuronenzielorten und unterschiedlichen Neuronenmembranpotentialen ausführen, die für jeden Teilzeitschritt protokolliert werden.As mentioned above, in one embodiment, the synaptic crossbar 110b may have a 256-bit x 256-bit memory allocation. Additionally, the memory configuration 508 may be configured such that the T sets of neuron parameters 512 comprise T (256-bit x 102-bit) memory arrays, the T sets of neuron target locations 514 comprise T (256-bit x 32-bit) memory arrays, and the T sets of neuron membrane potentials 516 comprise T (256-bit x 20-bit) memory arrays. Accordingly, when T = 4, the synaptic crossbar 110b and memory 110c of the memory configuration 508 together comprise a 256 x (256 + T(102 + 32 + 20)) bit or 256 bit x 872 bit memory array. A core neural circuit 100 configured to include memory configuration 508 can perform the same number of spike calculations in a single time step as four separate core neural circuits 100 with the same synapse weights but different neuron parameters, different neuron target locations, and different neuron membrane potentials logged for each sub-time step.
In noch einer anderen Ausführungsform enthält eine Speicherkonfiguration 510 die synaptische Kreuzschiene 110b und den Speicher 110c, wobei der Speicher 110c so zugeordnet wurde, dass er Neuronenparameter 512 und Neuronenzielorte 514 enthält. In der Speicherkonfiguration 510 wurde der Speicher 110 so konfiguriert, dass Synapsengewichte, die Neuronenparameter 512 und Neuronenzielorte 514 über die Teilzeitschritte eines Zeitschritts gemeinsam genutzt werden und Neuronenmembranpotentiale nicht protokolliert werden. In einem neuronalen Kernschaltkreis 100, der die Speicherkonfiguration 510 implementiert, werden Neuronenmembranpotentiale nicht gespeichert. Infolgedessen können Neuronen eines solchen neuronalen Kernschaltkreises 100 jedes Mal einen Spike erzeugen, wenn auf einem verbundenen Axon ein Eingangssignal empfangen wird, ohne dass ein Membranpotential mit einem Schwellenwert verglichen wird.In yet another embodiment, a memory configuration 510 includes the synaptic crossbar 110b and the memory 110c, where the memory 110c has been allocated to include neuron parameters 512 and neuron target locations 514. In the memory configuration 510, the memory 110 has been configured such that synaptic weights, the neuron parameters 512, and neuron target locations 514 are shared across the sub-time steps of a time step and neuron membrane potentials are not logged. In a core neural circuit 100 implementing the memory configuration 510, neuron membrane potentials are not stored. As a result, neurons of such a core neural circuit 100 may generate a spike each time an input signal is received on a connected axon without a membrane potential being compared to a threshold.
Angesichts der hierin beschriebenen Speicherkonfigurationen 500 bis 510 von
Die
Unter Bezugnahme auf
Wie in
Unter Bezugnahme auf
Wie in
Unter Bezugnahme auf
Wie durch
Für eine vorgegebene Größe des Speichers 650 stehen T und max(Δ) folglich in direktem Zusammenhang. Zum Beispiel kann ein Speicher 650 mit einer Tiefe oder Höhe von 128 Zeilen so konfiguriert werden, dass T = 64 und max(Δ) = 2; T = 32 und max(Δ) = 4; T = 16 und max(Δ) = 8; T = 8 und max(Δ) = 16; T = 4 und max(Δ) = 32; T = 2 und max(Δ) = 64; oder T = 1 und max(Δ) = 128.Thus, for a given size of memory 650, T and max(Δ) are directly related. For example, a memory 650 with a depth or height of 128 rows can be configured such that T = 64 and max(Δ) = 2; T = 32 and max(Δ) = 4; T = 16 and max(Δ) = 8; T = 8 and max(Δ) = 16; T = 4 and max(Δ) = 32; T = 2 and max(Δ) = 64; or T = 1 and max(Δ) = 128.
In einer Ausführungsform kann der gemultiplexte neurosynaptische Kern 610 auf die folgende Art und Weise funktionieren. In jedem von T Teilzeitschritten (von Teilzeitschritt 0 bis Teilzeitschritt T-1) wird jedes Axon it synchron überprüft, um festzustellen, ob das Axon einen Spike hat, das übermittelt werden muss. Wenn das Axon einen Spike hat, das übermittelt werden muss, für jedes Neuron jt Aktualisieren eines Zustands des Neurons in Abhängigkeit vom Synapsengewicht sij. Nachdem jedes Axon überprüft wurde, um festzustellen, ob die Axone zu übermittelnde Spikes haben, für jedes Neuron jt Berechnen seines neuen Neuronenzustands in Abhängigkeit von seinem vorhergehenden Zustand, seiner Parameter und seiner Eingangssignale; und sodann Überprüfen, ob das Neuron einen Spike erzeugt hat. Wenn ein bestimmtes Neuron einen Spike erzeugt hat, Suchen des Zielortes des Neurons, Erzeugen eines an den Zielort adressierten Spike-Ereignispakets, Übertragen des Spike-Ereignispakets an das neurosynaptische Netzwerk und Zurücksetzen des Zustand des Neurons jt. Außerdem kann der gemultiplexte neurosynaptische Kern 610 asynchron betrieben werden, um Spike-Ereignispakete aus dem neurosynaptischen Netzwerk zu empfangen und Axonpuffer zu aktualisieren.In one embodiment, the multiplexed
In einer anderen Ausführungsform kann der gemultiplexte neurosynaptische Kern 610 auf die folgende Weise betrieben werden. In jedem von T Teilzeitschritten (von Teilzeitschritt 0 bis Teilzeitschritt T-1) für jedes Neuron j synchrones Lesen eines Zustands des Neurons j, von Neuronenparametern des Neurons j und eines Zielortes des Neurons j. Als Nächstes Addieren der Parallelsumme von synaptischen Eingangssignalen (von mit dem Neuron verbundenen Axonen) zum vorhergehenden Status, um einen neuen Neuronenzustand festzulegen. Wenn no der vorhergehende Zustand ist, ist n1 der neue Neuronenzustand, g ist die Axontyp-Kennung (axon_type_id), A ist der Axonpuffer, k ist die Anzahl von Axontypen und w ist das dem Axontyp k am Neuron j zugehörige Gewicht, welches berechnet werden kann als
Als Nächstes wird geprüft, ob der neue Neuronenzustand einen Spike auslöst. Wenn der neue Neuronenzustand einen Spike auslöst, Suchen des Zielortes des Neurons, Erzeugen eines an den Zielort adressierten Spike-Ereignispaketes, Übertragen des Spike-Ereignispaketes an das neurosynaptische Netzwerk und Zurücksetzen des Zustands des Neurons j. In einer solchen Ausführungsform kann der gemultiplexte neurosynaptische Kern 610 asynchron betrieben werden, um Spike-Ereignispakete aus dem neurosynaptischen Netzwerk zu empfangen und Axonpuffer zu aktualisieren.Next, it is checked whether the new neuron state triggers a spike. If the new neuron state triggers a spike, find the target location of the neuron, generate a spike event packet addressed to the target location, transmit the spike event packet to the neurosynaptic network, and reset the state of neuron j. In such an embodiment, the multiplexed
Durch gemeinsames Nutzen von einem oder mehreren Neuronenattributen oder -parametern können sich Netzwerke aus Neuronen und Axonen, die wiederholt auf einem neurosynaptischen Chip zu finden sind, auf einer geringeren Anzahl der Kerne auf dem Chip befinden. Infolgedessen kann eine vorgegebene Sammlung von neurosynaptischen Berechnungen weniger physischen Platz auf einem neurosynaptischen Chip und/oder weniger Energie als nichtgemultiplexte Kerne benötigen.By sharing one or more neuron attributes or parameters, networks of neurons and axons that are repeatedly found on a neurosynaptic chip can reside on a smaller number of cores on the chip. As a result, a given collection of neurosynaptic computations can require less physical space on a neurosynaptic chip and/or less power than non-multiplexed cores.
Um eine schnellere Arbeitsweise von neurosynaptischen Kernschaltkreisen zu erzielen, können Aktualisierungsvorgänge von Neuronen zum Beispiel durch spezielle Multiplikatoren parallelisiert werden. Die Axonpuffer können aufgrund von Zeitstempeln und/oder Zeitverzögerungen verwendet werden.To achieve faster operation of neurosynaptic core circuits, updating processes of neurons can be parallelized, for example by special multipliers. The axon buffers can be used due to timestamps and/or time delays.
Durch Multiplexen der neurosynaptischen Kerne eines Chips kann ein Chip in der Lage sein, die Grenze zwischen Mobilität und Skalierbarkeit auszuloten, wobei sowohl eine hochgradige Flächenausnutzung als auch Energieeffizienz erreicht werden und wobei ein ständiger Ausgleich zwischen beidem stattfindet. Außerdem stellen gemultiplexte neurosynaptische Kerne die Fähigkeit bereit, rauminvariante und raumvariante Kerne in einer homogenen Architektur zu kombinieren und abzugleichen, und zu ermöglichen, einen bestimmten Chip bei vorgegebenem Stromhaushalt zu optimieren, ohne dynamische Energie zu verschwenden, wenn keine Arbeitsgänge ausgeführt werden müssen. Wenn als Maßzahl für eine Optimierung jedoch die Arbeitsgeschwindigkeit (Durchsatz, Latenzzeit usw.) verwendet wird, kann der Chip mit minimaler Ressourcenzuordnung oder minimalen Energieverbrauch für die notwendige Geschwindigkeit optimiert werden (vorausgesetzt, die angegebene Maßzahl der Geschwindigkeit ist in einer vorgegebenen Architektur verfügbar). Für eine vorgegebene Anwendung kann der Chip außerdem für eine minimale Ressourcenzuordnung optimiert werden (falls mehrere Anwendungen nebeneinander auf demselben Chip ausgeführt werden). Außerdem können solche Optimierungsvorgänge in der Phase der Neukonfiguration des Chips (statische Optimierung/Neukonfiguration) oder unter Nutzung von Möglichkeiten zur teilweisen Rekonfiguration während der Betriebsphase (dynamische Optimierung/Neukonfiguration) ausgeführt werden. Diese Konzepte kommen nicht nur für Optimierungsvorgänge auf Chip-Ebene, sondern auch für systemweite Optimierungsvorgänge zur Anwendung.By multiplexing the neurosynaptic cores of a chip, a chip may be able to walk the line between mobility and scalability, achieving both high area utilization and energy efficiency, and constantly balancing the two. In addition, multiplexed neurosynaptic cores provide the ability to mix and match space-invariant and space-variant cores in a homogeneous architecture, and allow a given chip to be optimized for a given power budget without wasting dynamic power when no work needs to be done. However, if the metric for optimization is speed of operation (throughput, latency, etc.), the chip can be optimized for the necessary speed with minimal resource allocation or energy consumption (assuming the specified metric of speed is available in a given architecture). For a given application, the chip can also be optimized for minimal resource allocation (if multiple applications are running side by side on the same chip). In addition, such optimization operations can be performed during the reconfiguration phase of the chip (static optimization/reconfiguration) or by taking advantage of partial reconfiguration capabilities during the operational phase (dynamic optimization/reconfiguration). These concepts are applicable not only to chip-level optimization operations, but also to system-wide optimization operations.
Demzufolge kann ein neurosynaptisches Netzwerk in einigen Ausführungsformen eine Mehrzahl von gemultiplexten Kernen 610 enthalten. Außerdem werden möglicherweise nicht alle gemultiplexten Kerne 610 entsprechend dem gleichen Zeitmultiplexfaktor gemultiplext. Zum Beispiel kann ein erster gemultiplexter Kern 610 entsprechend einem ersten Zeitmultiplexfaktor (T) gemultiplext werden, wobei Neuronenparameter, Neuronenzielorte und/oder Neuronenmembranpotentiale des ersten gemultiplexten Kerns 610 über T Teilzeitschritte eines Zeitschritts gemeinsam genutzt werden. Außerdem können ein oder mehrere der Speicher, die Neuronenparameter, Neuronenzielorte und Neuronenmembranpotentiale des ersten gemultiplexten Kerns 610 speichern, in T Partitionen unterteilt werden, wobei jede der T Partitionen einem entsprechenden von T Teilzeitschritten des Zeitschritts zugehörig ist. Des Weiteren kann ein zweiter gemultiplexter Kern 610 entsprechend einem zweiten Zeitmultiplexfaktor (U) gemultiplext werden, wobei Neuronenparameter, Neuronenzielorte und/oder Neuronenmembranpotentiale des zweiten gemultiplexten Kerns 610 über U Teilzeitschritte des Zeitschritts gemeinsam genutzt werden können. Außerdem können ein oder mehrere der Speicher, die Neuronenparameter, Neuronenzielorte und/oder Neuronenmembranpotentiale des zweiten gemultiplexten Kerns 610 speichern, in U Partitionen unterteilt werden, wobei jede der U Partitionen einem entsprechenden von U Teilzeitschritten des Zeitschritts zugehörig ist. Schließlich kann T gleich, größer als oder kleiner als U sein.Accordingly, in some embodiments, a neurosynaptic network may include a plurality of multiplexed
Beispielsweise kann ein erster gemultiplexter Kern 610 bei einem Zeitmultiplexfaktor von 4 (T = 4) gemultiplext werden. Dementsprechend können Synapsengewichte, Neuronenparameter und Neuronenzielorte über die 4 Teilzeitschritte jedes Zeitschritts gemeinsam genutzt werden, jedoch kann ein Speicher, der Neuronenmembranpotentiale für den ersten gemultiplexten Kern 610 speichert, in 4 Partitionen unterteilt werden, wobei jede der 4 Partitionen einem entsprechenden von 4 Teilzeitschritten jedes Zeitschritts zugehörig ist. Mit dem ersten gemultiplexten Kern 610 ist ein zweiter gemultiplexter Kern 610 verbunden, der bei einem Zeitmultiplexfaktor von 8 (U = 8) gemultiplext wird. Für den zweiten gemultiplexten Kern 610 können Synapsengewichte, Neuronenparameter und Neuronenzielorte über die 8 Teilzeitschritte jedes Zeitschritts gemeinsam genutzt werden, jedoch kann ein Speicher, der Neuronenmembranpotentiale für den zweiten gemultiplexten Kern 610 speichert, in 8 Partitionen unterteilt werden, wobei jede der 8 Partitionen einem entsprechenden von 8 Teilzeitschritten jedes Zeitschritts zugehörig ist. Selbstverständlich können sowohl der erste gemultiplexte Kern 610 als auch der zweite gemultiplexte Kern bei einem beliebigen Zeitmultiplexfaktor (z.B., 1, 2, 4, 8, 16, 32, 64, usw.) gemultiplext werden.For example, a first multiplexed
Feuerereignisse oder Spike-Ereignisse zwischen einem ersten, bei einem ersten Zeitmultiplexfaktor gemultiplexten Kern 610 und einem zweiten, bei einem zweiten Zeitmultiplexfaktor gemultiplexten Kern 610, wobei sich der zweite vom ersten Zeitmultiplexfaktor unterscheidet, können durch Zuordnen räumlich verteilter Eingangssignale zu Teilzeitschritten überbrückt werden.Firing events or spike events between a
Insbesondere kann ein Spike-Ereignis zwischen gemultiplexten Kernen weitergeleitet werden, indem in einem ersten gemultiplexten neuronalen Kern, der in T Teilzeitschritte eines Zeitschritts gemultiplext ist, ein Paket für das Spike-Ereignis erzeugt wird. Außerdem enthält das Paket mindestens ein Adressfeld des neuronalen Kerns, den Zeitschritt, eine Axonadresse und eine Zeitskala und/oder einen Versatz (offset). Der erste gemultiplexte neuronale Kern übermittelt sodann das Spike-Ereignispaket, damit das Spike-Ereignis vom zweiten neuronalen Kern empfangen wird. Der zweite neuronale Kern kann bei einem anderen Zeitmultiplexfaktor als der erste gemultiplexte neuronale Kern gemultiplext werden. Zum Beispiel kann der zweite neuronale Kern durch U Teilzeitschritte für jeden der Zeitschritte gemultiplext werden, wobei U größer oder kleiner als T ist.In particular, a spike event may be forwarded between multiplexed cores by generating a packet for the spike event in a first multiplexed neural core multiplexed into T sub-time steps of a time step. The packet also contains at least an address field of the neural core, the time step, an axon address and a time scale and/or an offset. The first multiplexed neural core then transmits the spike event packet so that the spike event is received by the second neural core. The second neural core may be at a different time multiplexing factor than the first multiplexed neural core can be multiplexed. For example, the second neural core can be multiplexed by U sub-time steps for each of the time steps, where U is greater or less than T.
In einer Ausführungsform kann das mindestens eine Adressfeld des Pakets des neuronalen Kerns ein Feld (dx + dxt) und/oder ein Feld (dy + dyt) aufweisen. Zum Beispiel kann das mindestens eine Adressfeld des Pakets des neuronalen Kerns so formatiert sein, dass es (dx+dxt, dy+dyt) enthält. Wahlweise sind dxt und dyt jeweils ceil(log2 N) Bits. Außerdem können dxt und dyt jeweils pro Kern pro Teilzeitschritt programmiert werden. In verschiedenen Ausführungsformen stellen die Adressfelder dx und dy Versätze in Richtung der X-Koordinate bzw. der Y-Koordinate eines neuronalen Netzes bereit. Wahlweise kann ein Paket zuerst in der X-Dimension und anschließend in der Y-Dimension weitergeleitet werden. Außerdem kann die im Paket enthaltene Axonadresse eine Adresse des elektronischen Axons im neuronalen Zielkern enthalten, an den der Spike übermittelt werden muss.In one embodiment, the at least one address field of the neural core packet may comprise a field (dx + dx t ) and/or a field (dy + dy t ). For example, the at least one address field of the neural core packet may be formatted to include (dx+dx t , dy+dy t ). Optionally, d xt and d yt are each ceil(log 2 N) bits. Additionally, dx t and dy t may each be programmed per core per sub-time step. In various embodiments, the address fields dx and dy provide offsets in the X-coordinate and Y-coordinate directions of a neural network, respectively. Optionally, a packet may be forwarded first in the X-dimension and then in the Y-dimension. Additionally, the axon address included in the packet may include an address of the electronic axon in the target neural core to which the spike must be delivered.
In einer Ausführungsform enthält das Paket die Zeitskala und nicht den Versatz. Die Zeitskala kann durch eine Konstante F dargestellt werden, wobei F die Zeitmultiplexfaktor-Skala des bei geringerem Zeitmultiplexfaktor betriebenen neuronalen Kerns ist. Die Zeitskala (F) kann verwendet werden, wenn ein Spike-Ereignis von einem bei höherem Zeitmultiplexfaktor betriebenen neuronalen Kern (einem schnelleren Kern) an einen bei geringerem Zeitmultiplexfaktor betriebenen neuronalen Kern (einen langsameren Kern) übermittelt wird. Wenn die Zeitskala (F) im Paket enthalten ist, ist möglicherweise kein Versatz im Paket enthalten. Wird das Spike-Ereignispaket zum Beispiel von einem gemultiplexten Kern mit T = 8 an einen gemultiplexten Kern mit T = 4 übermittelt, so ist F = 4 und der Versatz = 0 oder nicht enthalten.In one embodiment, the packet includes the time scale and not the offset. The time scale may be represented by a constant F, where F is the time division multiplexing factor scale of the neural core operating at a lower time division multiplexing factor. The time scale (F) may be used when a spike event is communicated from a neural core operating at a higher time division multiplexing factor (a faster core) to a neural core operating at a lower time division multiplexing factor (a slower core). If the time scale (F) is included in the packet, no offset may be included in the packet. For example, if the spike event packet is communicated from a multiplexed core with T = 8 to a multiplexed core with T = 4, then F = 4 and the offset = 0 or not included.
Außerdem können die Bits dxt und dyt verwendet werden, wenn ein Spike-Ereignis von einem bei höheren Zeitmultiplexfaktor betriebenen Kern (einem schnelleren Kern) an einen bei geringerem Zeitmultiplexfaktor betriebenen Kern (einen langsameren Kern) übermittelt wird, und die Bits dxt und dyt sind möglicherweise nicht in einem Paket enthalten, das von einem langsameren Kern an einen schnelleren Kern übermittelt wird.Additionally, the dx t and dy t bits may be used when a spike event is transmitted from a core operating at a higher time division multiplex factor (a faster core) to a core operating at a lower time division multiplex factor (a slower core), and the dx t and dy t bits may not be included in a packet transmitted from a slower core to a faster core.
In einer anderen Ausführungsform enthält das Paket den Versatz und nicht die Zeitskala. Der Versatz kann durch eine Konstante C dargestellt werden, wobei C ein Versatz ist, der Spike-Ereignisse einem Teilzeitschritt eines schnelleren Kerns zuordnet. Folglich kann der Versatz (C) verwendet werden, wenn ein Spike-Ereignis von einem bei geringerem Zeitmultiplexfaktor betriebenen neuronalen Kern (einem langsameren Kern) an einen bei höherem Zeitmultiplexfaktor betriebenen neuronalen Kern (einen schnelleren Kern) übermittelt wird. Wenn C im Paket enthalten ist, kann die Zeitskalenkonstante (F) außerdem gleich 0 oder nicht im Paket enthalten sein. Auf diese Weise handelt es sich bei C und F um Konstanten, die verwendet werden können, um einen Teilzeitschritt zum Übermitteln eines Spike-Ereignisses zu definieren, wenn das Spike-Ereignis zwischen Kernen mit unterschiedlichen Zeitmultiplexfaktoren übertragen wird.In another embodiment, the packet includes the offset and not the time scale. The offset may be represented by a constant C, where C is an offset that maps spike events to a fractional time step of a faster core. Thus, the offset (C) may be used when a spike event is communicated from a neural core operating at a lower time division multiplex factor (a slower core) to a neural core operating at a higher time division multiplex factor (a faster core). Additionally, when C is included in the packet, the time scale constant (F) may be equal to 0 or not included in the packet. In this way, C and F are constants that can be used to define a fractional time step for communicating a spike event when the spike event is transmitted between cores with different time division multiplex factors.
Wenn zum Beispiel ein erster gemultiplexter neuronaler Kern durch T Teilzeitschritte für jeden Zeitschritt gemultiplext wird und ein zweiter gemultiplexter neuronaler Kern durch U Teilzeitschritte für jeden Zeitschritt gemultiplext wird und T kleiner als U ist, wird das vom langsameren Kern an den schnelleren Kern übermittelte Paket den Versatz (C) enthalten, um ein Übermitteln des Spike-Ereignisses einem geeigneten Teilzeitschritt des schnelleren Kerns zuzuordnen.For example, if a first multiplexed neural core is multiplexed by T sub-time steps for each time step and a second multiplexed neural core is multiplexed by U sub-time steps for each time step and T is less than U, the packet transmitted from the slower core to the faster core will contain the offset (C) to associate transmission of the spike event with an appropriate sub-time step of the faster core.
In einer bestimmten Ausführungsform kann das Spike-Ereignispaket formatiert werden als (dx+dxt, dy+dyt, C + (t % F), Δ, Axon_Adresse), wobei % der Modulus-Operator (modulus operator) und Δ der Zeitschritt ist. Demzufolge kann dieses Paket an einen neuronalen Kern (dx+dxt, dy+dyt) nach einer Verzögerung von Δ im Teilzeitschritt C + (t % F) an ein Axon bei Axon_Adresse übermittelt werden.In a particular embodiment, the spike event packet may be formatted as (dx+dx t , dy+dy t , C + (t % F), Δ, axon_address), where % is the modulus operator and Δ is the time step. Accordingly, this packet may be delivered to a neural core (dx+dx t , dy+dy t ) after a delay of Δ in the sub-time step C + (t % F) to an axon at axon_address.
Die
Gemäß
Um einen Datenaustausch zwischen den Kernen 702, 704, 706 und 708 und dem gemultiplexten Kern 710 zu ermöglichen, wurde demzufolge jedem der Kerne 702, 704, 706 und 708 ein anderer C-Wert zugewiesen. Bei jedem C-Wert handelt es sich um einen Teilzeitschritt-Versatz, der ein empfangenes Spike-Ereignis einem Teilzeitschritt eines schnelleren Kerns (d.h. des Kerns 710) zuordnet. Dementsprechend ist C = 0 für den Kern 702, und vom Kern 702 empfangene Spike-Ereignisse werden auf den ersten Teilzeitschritt des gemultiplexten Kerns 710 abgebildet; C = 1 für den Kern 704, und vom Kern 704 empfangene Spike-Ereignisse werden auf den zweiten Teilzeitschritt des gemultiplexten Kerns 710 abgebildet; C = 2 für den Kern 706, und vom Kern 706 empfangene Spike-Ereignisse werden auf den dritten Teilzeitschritt des gemultiplexten Kerns 710 abgebildet; und C = 3 für den Kern 708, und vom Kern 708 empfangene Spike-Ereignisse werden auf den vierten Teilzeitschritt des gemultiplexten Kerns 710 abgebildet. In beiden
Gemäß
Um einen Datenaustausch der gemultiplexten Kerne 752 und 754 mit dem gemultiplexten Kern 760 zu ermöglichen, wurde demzufolge jedem der Kerne 752 und 754 ein anderer C-Wert zugewiesen. Im Einzelnen C = 0 für den Kern 752, was dazu führt, dass die vom Kern 752 empfangenen Spike-Ereignisse auf die ersten beiden Teilzeitschritte (t = 0, t = 1) des gemultiplexten Kerns 760 abgebildet werden; und C = 2 für den Kern 754, was dazu führt, dass die vom Kern 754 empfangenen Spike-Ereignisse auf den dritten und vierten Teilzeitschritt (t = 2, t = 3) des gemultiplexten Kerns 760 abgebildet werden. Obwohl die gemultiplexten Kerne 752 und 754 während derselben Periode von zwei Teilzeitschritten jedes Zeitschritts Berechnungen ausführen können, werden die von den Kernen 752 und 754 übertragenen Spikes infolgedessen zwischengespeichert und auf eine geordnete und kollisionsfreie Weise in den gemultiplexten Kern 760 eingegeben.Accordingly, to enable data exchange of the multiplexed
Die
Gemäß
Um das zuverlässige Übertragen von Spike-Ereignissen vom gemultiplexten Kern 810 an die Kerne 802, 804, 806 und 808 zu ermöglichen, werden die Pakete vom gemultiplexten Kern 810 demzufolge so konfiguriert, dass sie einen C-Wert von 0 und einen F-Wert von 1 enthalten. Mit anderen Worten, die Zeitskala von solchen Paketen ist 1 (F = 1), was den Zeitmultiplexfaktor der langsameren Kerne 802 bis 808 wiedergibt, und C = 0, da der gemultiplexte Kern 810 schneller als die langsameren Kerne 802 bis 808 ist. Überdies wird gezeigt, dass die Spike-Ereignispakete vom gemultiplexten Kern 810 an die Kerne 802 bis 808 ein Feld dxt im Adressfeld der Pakete vom neuronalen Kern enthalten. Insbesondere ist dxt = 0 beim Spike-Ereignispaket vom gemultiplexten Kern 810 an den Kern 802, wodurch angezeigt wird, dass es auf den ersten Teilzeitschritt von jedem Δ abgebildet wird, dxt = 1 beim Spike-Ereignispaket vom gemultiplexten Kern 810 an den Kern 804, wodurch angezeigt wird, dass es auf den zweiten Teilzeitschritt von jedem Δ abgebildet wird, dxt = 2 beim Spike-Ereignispaket vom gemultiplexten Kern 810 an den Kern 806, wodurch angezeigt wird, dass es auf den dritten Teilzeitschritt von jedem Δ abgebildet wird, und dxt = 4 beim Spike-Ereignispaket vom gemultiplexten Kern 810 an den Kern 808, wodurch angezeigt wird, dass es auf den vierten Teilzeitschritt von jedem Δ abgebildet wird.Accordingly, to enable reliable transmission of spike events from the multiplexed
Wahlweise kann dyt anstelle von oder zusätzlich zu dxt verwendet werden, um eine räumliche Verteilung abzubilden. Jeder der empfangenden Kerne kann in jedem der Teilzeitschritte in Paaren (dxt, dyt) codiert werden. Die Werte von dxt und dyt können zum Beispiel von einem Programmierer festgelegt werden. Beim Satz {(dxt, dyt), t = 1, 2, ... , T} kann es sich um eine Nachbarschaft handeln.Optionally, dy t can be used instead of or in addition to dx t to represent a spatial distribution. Each of the receiving cores can be encoded in pairs (dx t , dy t ) in each of the sub-time steps. The values of dx t and dy t can be set by a programmer, for example. The set {(dx t , dy t ), t = 1, 2, ... , T} can be a neighborhood.
Gemäß
Um zuverlässiges Übertragen von Spike-Ereignissen vom gemultiplexten Kern 860 an die Kerne 852 und 854 zu ermöglichen, werden die Pakete vom gemultiplexten Kern 860 demzufolge so konfiguriert, dass sie einen C-Wert von 0 (C = 0) und einen F-Wert von 2 (F = 2) enthalten. Mit anderen Worten, die Zeitskala von solchen Paketen ist 2 (F = 2), was den Zeitmultiplexfaktor der langsameren Kerne 852 und 854 wiedergibt, die die Pakete empfangen, und C = 0, da der gemultiplexte Kern 860 schneller als die langsameren Kerne 852 und 854 ist. Überdies wird gezeigt, dass die Spike-Ereignispakete vom gemultiplexten Kern 860 an die gemultiplexten Kerne 852 und 854 ein Feld dxt im Adressfeld der Pakete des neuronalen Kerns enthalten. Insbesondere ist dxt = 0 beim Spike-Ereignispaket vom gemultiplexten Kern 860 an den gemultiplexten Kern 852, wodurch angezeigt wird, dass es auf den ersten Teilzeitschritt von jedem Δ abgebildet wird, und dxt = 1 beim Spike-Ereignispaket vom gemultiplexten Kern 860 an den gemultiplexten Kern 854, wodurch angezeigt wird, dass es auf den zweiten Teilzeitschritt von jedem Δ abgebildet wird.Accordingly, to enable reliable transmission of spike events from the multiplexed
In einer Ausführungsform kann ein gemultiplexter neuronaler Kernschaltkreis bei einem ganzzahligen Multiplexfaktor T, der größer als null ist, T Sätze von elektronischen Neuronen T Sätze von elektronischen Axonen, wobei jeder der T Sätze von elektronischen Axonen einem der T Sätze von elektronischen Neuronen entspricht, sowie ein synaptisches Verbindungsnetzwerk aufweisen, das eine Mehrzahl von elektronischen Synapsen aufweist, die jeweils ein einzelnes elektronisches Axon mit einem einzelnen elektronischen Neuron verbinden, wobei das Verbindungsnetzwerk jeden Satz der T Sätze von elektronischen Axonen mit ihrem entsprechenden Satz von elektronischen Neuronen verbindet.In one embodiment, a multiplexed core neural circuit may comprise, at an integer multiplexing factor T greater than zero, T sets of electronic neurons, T sets of electronic axons, each of the T sets of electronic axons corresponding to one of the T sets of electronic neurons, and a synaptic interconnection network comprising a plurality of electronic synapses each connecting a single electronic axon to a single electronic neuron, the interconnection network connecting each set of the T sets of electronic axons to its corresponding set of electronic neurons.
In einer Ausführungsform kann das synaptische Verbindungsnetzwerk außerdem über die T Sätze von elektronischen Neuronen gemeinsam genutzt werden. In einer anderen Ausführungsform kann eine Vielzahl von Neuronenparametern über die T Sätze von elektronischen Neuronen gemeinsam genutzt werden. In noch einer anderen Ausführungsform kann eine Vielzahl von Neuronenzielorten über die T Sätze von elektronischen Neuronen gemeinsam genutzt werden. In noch einer anderen Ausführungsform kann ein Neuronenzustand über die T Sätze von elektronischen Neuronen gemeinsam genutzt werden.In one embodiment, the synaptic connection network may also be shared across the T sets of electronic neurons. In another embodiment, a plurality of neuron parameters may be shared across the T sets of electronic neurons. In yet another embodiment, a plurality of neuron target locations may be shared across the T sets of electronic neurons. In yet another embodiment, a neuron state may be shared across the T sets of electronic neurons.
In einer Ausführungsform kann außerdem ein Betrieb des gemultiplexten neuronalen Kernschaltkreises in Bezug auf eine Mehrzahl von diskreten Zeitschritten beschrieben werden, und in einem einzelnen diskreten Zeitschritt kann jeder Satz der T Sätze von elektronischen Axonen über das synaptische Verbindungsnetzwerk mit seinem entsprechenden Satz von elektronischen Neuronen verbunden werden. In einer anderen Ausführungsform kann jeder aus der Mehrzahl von diskreten Zeitschritten in T Teilzeitschritte unterteilt werden, wobei jeder Satz der T Sätze von elektronischen Axonen und sein entsprechender Satz von elektronischen Neuronen einem der T Teilzeitschritte zugewiesen werden kann, und jeder Satz der T Sätze von elektronischen Axonen in seinem zugewiesenen der T Teilzeitschritte über das synaptische Verbindungsnetzwerk mit seinem entsprechenden Satz von elektronischen Neuronen verbunden werden kann.Additionally, in one embodiment, operation of the multiplexed core neural circuit may be described in terms of a plurality of discrete time steps, and in a single discrete time step, each set of the T sets of electronic axons may be connected to its corresponding set of electronic neurons via the synaptic interconnection network. In another embodiment, each of the plurality of discrete time steps may be divided into T sub-time steps, wherein each set of the T sets of electronic axons and its corresponding set of electronic neurons may be assigned to one of the T sub-time steps, and each set of the T sets of electronic axons may be connected to its corresponding set of electronic neurons in its assigned one of the T sub-time steps via the synaptic interconnection network.
In einer Ausführungsform kann der gemultiplexte neuronale Kernschaltkreise außerdem zwei verschiedene Speicherbänke enthalten, wobei die beiden verschiedenen Speicherbänke eine erste Speicherbank, die das synaptische Verbindungsnetzwerk, eine Mehrzahl von Neuronenparametern, eine Vielzahl von Neuronenzielorten und einen Neuronenzustand für alle elektronischen Neuronen in den T Sätzen von elektronischen Neuronen aufweist, sowie eine zweite Speicherbank enthalten können, die einen elektronischen Axonpufferspeicher aufweist. In einer anderen Ausführungsform kann der elektronische Axonpufferspeicher in T Zeilen × max(Δ) Spalten unterteilt sein, wobei max(Δ) eine Anzahl von Zeitverzögerungen ist.In one embodiment, the multiplexed core neural circuitry may further include two different memory banks, where the two different memory banks may include a first memory bank comprising the synaptic connection network, a plurality of neuron parameters, a plurality of neuron target locations, and a neuron state for all electronic neurons in the T sets of electronic neurons, and a second memory bank comprising an electronic axon buffer. In another embodiment, the electronic axon buffer may be divided into T rows × max(Δ) columns, where max(Δ) is a number of time delays.
In einer Ausführungsform kann ein neurosynaptisches System außerdem einen neurosynaptischen Chip, ein neurosynaptisches Einzelkern-Modul als Komponente auf einem Chip oder ein neurosynaptisches Mehrkern-Modul als Komponente auf einem Chip aufweisen, das eine Mehrzahl von gemultiplexten neuronalen Kernschaltkreisen enthält, die über ein chipintegriertes Netzwerk miteinander verbunden sind, wobei jeder aus der Mehrzahl von gemultiplexten neuronalen Kernschaltkreisen bei einem ganzzahligen Multiplexfaktor T, der größer als null ist, T Sätze von elektronischen Neuronen, T Sätze von elektronischen Axonen, wobei jeder Satz der T Sätze von elektronischen Axonen einem der T Sätze von elektronischen Neuronen entspricht, und ein synaptisches Verbindungsnetzwerk aufweist, das eine Mehrzahl von elektronischen Synapsen aufweist, die jeweils ein einzelnes elektronisches Axon mit einem einzelnen elektronischen Neuron verbinden, wobei das Verbindungsnetzwerk jeden Satz der T Sätze von elektronischen Axonen mit seinem entsprechenden Satz von elektronischen Neuronen verbindet.In one embodiment, a neurosynaptic system may further comprise a neurosynaptic chip, a single-core neurosynaptic module as a component on a chip, or a multi-core neurosynaptic module as a component on a chip containing a plurality of multiplexed core neural circuits interconnected via an on-chip network, each of the plurality of multiplexed core neural circuits comprising, at an integer multiplexing factor T greater than zero, T sets of electronic neurons, T sets of electronic axons, each set of the T sets of electronic axons corresponding to one of the T sets of electronic neurons, and a synaptic interconnection network comprising a plurality of electronic synapses each connecting a single electronic axon to a single electronic neuron, the interconnection network connecting each set of the T sets of electronic axons to its corresponding set of electronic neurons.
In einer Ausführungsform können der neurosynaptische Chip, das neurosynaptische Einzelkern-Modul oder das neurosynaptische Mehrkern-Modul zudem über ein außerhalb des Chips befindliches Verbindungsnetzwerk miteinander verbunden sein. In einer anderen Ausführungsform kann das chipintegrierte Netzwerk ereignisgesteuert sein. In einer anderen Ausführungsform kann das außerhalb des Chips befindliche Netzwerk ereignisgesteuert sein. In noch einer anderen Ausführungsform können ein oder mehrere aus der Mehrzahl von gemultiplexten neuronalen Kernschaltkreisen einen ganzzahligen Multiplexfaktor haben, der sich von den anderen gemultiplexten neuronalen Kernschaltkreisen aus der Mehrzahl von neuronalen Kernschaltkreisen unterscheidet.In one embodiment, the neurosynaptic chip, the single-core neurosynaptic module, or the multi-core neurosynaptic module may also be interconnected via an off-chip interconnection network. In another embodiment, the on-chip network may be event-driven. In another embodiment, the off-chip network may be event-driven. In yet another embodiment, one or more of the plurality of multiplexed core neural circuits may have an integer multiplexing factor that is different from the other multiplexed core neural circuits of the plurality of core neural circuits.
Des Weiteren kann in einer Ausführungsform ein erster Satz aus der Mehrzahl von gemultiplexten neuronalen Kernschaltkreisen einen ersten ganzzahligen Multiplexfaktor T1 haben, und der der erste Satz kann mit einem zweiten Satz von gemultiplexten neuronalen Kernschaltkreisen verbunden sein, der einen zweiten ganzzahligen Multiplexfaktor T2 hat, der sich vom ersten ganzzahligen Multiplexfaktor T1 unterscheidet. In einer anderen Ausführungsform können zwischen den Kernen übertragene Nachrichten Spike-Pakete enthalten, die eine relative Adresse eines Zielkerns, eine Zeitverzögerung eines elektronischen Axons, eine Adresse eines Satzes von elektronischen Axonen, eine Axonadresse sowie Daten enthalten, die eine Zuordnung zwischen dem ganzzahligen Multiplexfaktor Ts von Quellkernen und dem ganzzahligen Multiplexfaktor Td von Zielkernen codieren.Furthermore, in one embodiment, a first set of the plurality of multiplexed neural core circuits may have a first integer multiplexing factor T1, and the first set may be connected to a second set of multiplexed neural core circuits having a second integer multiplexing factor T2 that is different from the first integer multiplexing factor T1. In another embodiment, messages transmitted between the cores may include spike packets that include a relative address of a target core, a time delay of an electronic axon, an address of a set of electronic axons, an axon address, and data encoding a mapping between the integer multiplexing factor Ts of source cores and the integer multiplexing factor Td of target cores.
Die in
In der Arbeitsstation kann sich ein Betriebssystem, z.B. ein Microsoft Windows®-Betriebssystem (BS), ein MAC-Betriebssystem, ein UNIX-Betriebssystem usw. befinden. Es ist klar, dass eine bevorzugte Ausführungsform auch auf anderen Plattformen und Betriebssystem als den erwähnten implementiert werden kann. Eine bevorzugte Ausführungsform kann unter Verwendung der Sprache XML, C und/oder C++ oder anderen Programmiersprachen, zusammen mit einer objektorientierten Programmiermethodik, geschrieben sein. Es kann eine objektorientierte Programmierung (Object oriented programming, OOP) verwendet werden, die zum Entwickeln komplexer Anwendungen in zunehmendem Maße zum Einsatz kommt.The workstation may contain an operating system, e.g. a Microsoft Windows® operating system (OS), a MAC operating system, a UNIX operating system, etc. It will be appreciated that a preferred embodiment may be implemented on platforms and operating systems other than those mentioned. A preferred embodiment may be written using the XML language, C and/or C++ or other programming languages, together with an object-oriented programming methodology. Object oriented programming (OOP) may be used, which is increasingly used for developing complex applications.
Bei der vorliegenden Erfindung kann es sich um ein System, ein Verfahren und/oder ein Computerprogrammprodukt handeln. Das Computerprogrammprodukt kann (ein) durch einen Computer lesbare(s) Speichermedium (oder -medien) beinhalten, auf dem/denen durch einen Computer lesbare Programmanweisungen gespeichert ist/sind, um einen Prozessor dazu zu veranlassen, Aspekte der vorliegenden Erfindung auszuführen.The present invention may be a system, a method, and/or a computer program product. The computer program product may include a computer-readable storage medium(s) having stored thereon computer-readable program instructions for causing a processor to carry out aspects of the present invention.
Bei dem durch einen Computer lesbaren Speichermedium kann es sich um eine physische Einheit handeln, die Anweisungen zur Verwendung durch eine Einheit zum Ausführen von Anweisungen behalten und speichern kann. Bei dem durch einen Computer lesbaren Speichermedium kann es sich zum Beispiel um eine elektronische Speichereinheit, eine magnetische Speichereinheit, eine optische Speichereinheit, eine elektromagnetische Speichereinheit, eine Halbleiterspeichereinheit oder jede geeignete Kombination daraus handeln, ohne auf diese beschränkt zu sein. Zu einer nicht erschöpfenden Liste spezifischerer Beispiele des durch einen Computer lesbaren Speichermediums gehören die Folgenden: eine tragbare Computerdiskette, eine Festplatte, ein Direktzugriffsspeicher (RAM), ein Nur-Lese-Speicher (ROM), ein löschbarer programmierbarer Nur-Lese-Speicher (EPROM bzw. Flash-Speicher), ein statischer Direktzugriffsspeicher (SRAM), ein tragbarer Kompaktspeicherplatte-Nur-Lese-Speicher (CD-ROM), eine DVD (digital versatile disc), ein Speicher-Stick, eine Diskette, eine mechanisch kodierte Einheit wie zum Beispiel Lochkarten oder gehobene Strukturen in einer Rille, auf denen Anweisungen gespeichert sind, und jede geeignete Kombination daraus. Ein durch einen Computer lesbares Speichermedium soll in der Verwendung hierin nicht als flüchtige Signale an sich aufgefasst werden, wie zum Beispiel Funkwellen oder andere sich frei ausbreitende elektromagnetische Wellen, elektromagnetische Wellen, die sich durch einen Wellenleiter oder ein anderes Übertragungsmedium ausbreiten (z.B. durch ein Glasfaserkabel geleitete Lichtimpulse) oder durch einen Draht übertragene elektrische Signale.The computer-readable storage medium may be a physical device that can retain and store instructions for use by an instruction-executing device. The computer-readable storage medium may be, for example, but not limited to, an electronic storage device, a magnetic storage device, an optical storage device, an electromagnetic storage device, a semiconductor storage device, or any suitable combination thereof. For a non-exhaustive list of more specific examples of the computer-readable storage medium, see Computer readable storage medium includes the following: a portable computer diskette, a hard disk, a random access memory (RAM), a read only memory (ROM), an erasable programmable read only memory (EPROM or flash memory), a static random access memory (SRAM), a portable compact disc read only memory (CD-ROM), a digital versatile disc (DVD), a memory stick, a floppy disk, a mechanically encoded device such as punch cards or raised structures in a groove on which instructions are stored, and any suitable combination thereof. A computer readable storage medium, as used herein, is not intended to be construed as ephemeral signals per se, such as radio waves or other freely propagating electromagnetic waves, electromagnetic waves propagating through a waveguide or other transmission medium (e.g., pulses of light carried through a fiber optic cable), or electrical signals carried through a wire.
Hierin beschriebene, durch einen Computer lesbare Programmanweisungen können von einem durch einen Computer lesbaren Speichermedium auf jeweilige Datenverarbeitungs-/Verarbeitungseinheiten oder über ein Netzwerk wie zum Beispiel das Internet, ein lokales Netzwerk, ein Weitverkehrsnetz und/oder ein drahtloses Netzwerk auf einen externen Computer oder eine externe Speichereinheit heruntergeladen werden. Das Netzwerk kann Kupferübertragungskabel, Lichtwellenübertragungsleiter, drahtlose Übertragung, Leitwegrechner, Firewalls, Vermittlungseinheiten, Gateway-Computer und/oder Edge-Server aufweisen. Eine Netzwerkadapterkarte oder Netzwerkschnittstelle in jeder Datenverarbeitungs-/Verarbeitungseinheit empfängt durch einen Computer lesbare Programmanweisungen aus dem Netzwerk und leitet die durch einen Computer lesbaren Programmanweisungen zur Speicherung in einem durch einen Computer lesbaren Speichermedium innerhalb der entsprechenden Datenverarbeitungs-/Verarbeitungseinheit weiter.Computer readable program instructions described herein may be downloaded from a computer readable storage medium to respective computing/processing units or to an external computer or storage unit over a network such as the Internet, a local area network, a wide area network, and/or a wireless network. The network may include copper transmission cables, fiber optic transmission lines, wireless transmission, routers, firewalls, switching units, gateway computers, and/or edge servers. A network adapter card or network interface in each computing/processing unit receives computer readable program instructions from the network and forwards the computer readable program instructions for storage in a computer readable storage medium within the respective computing/processing unit.
Bei durch einen Computer lesbaren Programmanweisungen zum Ausführen von Arbeitsschritten der vorliegenden Erfindung kann es sich um Assembler-Anweisungen, ISA-Anweisungen (Instruction-Set-Architecture), Maschinenanweisungen, maschinenabhängige Anweisungen, Mikrocode, Firmware-Anweisungen, zustandssetzende Daten oder entweder Quellcode oder Objektcode handeln, die in einer beliebigen Kombination aus einer oder mehreren Programmiersprachen geschrieben werden, darunter objektorientierte Programmiersprachen wie Smalltalk, C++ o.ä. sowie herkömmliche prozedurale Programmiersprachen wie die Programmiersprache „C“ oder ähnliche Programmiersprachen. Die durch einen Computer lesbaren Programmanweisungen können vollständig auf dem Computer des Benutzers, teilweise auf dem Computer des Benutzers, als eigenständiges Software-Paket, teilweise auf dem Computer des Benutzers und teilweise auf einem entfernt angeordneten Computer oder vollständig auf dem entfernt angeordneten Computer oder Server ausgeführt werden. In letzterem Fall kann der entfernt angeordnete Computer mit dem Computer des Benutzers durch eine beliebige Art Netzwerk verbunden sein, darunter ein lokales Netzwerk (LAN) oder ein Weitverkehrsnetz (WAN), oder die Verbindung kann mit einem externen Computer hergestellt werden (zum Beispiel über das Internet unter Verwendung eines Internet-Dienstanbieters). In einigen Ausführungsformen können elektronische Schaltungen, darunter zum Beispiel programmierbare Logikschaltungen, im Feld programmierbare Gatter-Anordnungen (FPGA, field programmable gate arrays) oder programmierbare Logikanordnungen (PLA, programmable logic arrays) die durch einen Computer lesbaren Programmanweisungen ausführen, indem sie Zustandsinformationen der durch einen Computer lesbaren Programmanweisungen nutzen, um die elektronischen Schaltungen zu personalisieren, um Aspekte der vorliegenden Erfindung durchzuführen.Computer readable program instructions for carrying out operations of the present invention may be assembly language instructions, instruction set architecture (ISA) instructions, machine instructions, machine dependent instructions, microcode, firmware instructions, state-setting data, or either source code or object code written in any combination of one or more programming languages, including object-oriented programming languages such as Smalltalk, C++, or the like, as well as traditional procedural programming languages such as the "C" programming language or similar programming languages. The computer readable program instructions may execute entirely on the user's computer, partially on the user's computer, as a stand-alone software package, partially on the user's computer and partially on a remote computer, or entirely on the remote computer or server. In the latter case, the remote computer may be connected to the user's computer through any type of network, including a local area network (LAN) or a wide area network (WAN), or the connection may be made to an external computer (for example, over the Internet using an Internet service provider). In some embodiments, electronic circuits, including, for example, programmable logic circuits, field programmable gate arrays (FPGAs), or programmable logic arrays (PLAs), may execute the computer-readable program instructions by utilizing state information of the computer-readable program instructions to personalize the electronic circuits to perform aspects of the present invention.
Aspekte der vorliegenden Erfindung sind hierin unter Bezugnahme auf Ablaufpläne und/oder Blockschaltbilder bzw. Schaubilder von Verfahren, Vorrichtungen (Systemen) und Computerprogrammprodukten gemäß Ausführungsformen der Erfindung beschrieben. Es wird darauf hingewiesen, dass jeder Block der Ablaufpläne und/oder der Blockschaltbilder bzw. Schaubilder sowie Kombinationen von Blöcken in den Ablaufplänen und/oder den Blockschaltbildern bzw. Schaubildern durch durch einen Computer lesbare Programmanweisungen ausgeführt werden können.Aspects of the present invention are described herein with reference to flowcharts and/or block diagrams of methods, apparatus (systems), and computer program products according to embodiments of the invention. It is noted that each block of the flowcharts and/or block diagrams, as well as combinations of blocks in the flowcharts and/or block diagrams, may be implemented by computer readable program instructions.
Diese durch einen Computer lesbaren Programmanweisungen können einem Prozessor eines Universalcomputers, eines Spezialcomputers oder einer anderen programmierbaren Datenverarbeitungsvorrichtung bereitgestellt werden, um eine Maschine zu erzeugen, so dass die über den Prozessor des Computers bzw. der anderen programmierbaren Datenverarbeitungsvorrichtung ausgeführten Anweisungen ein Mittel zur Umsetzung der in dem Block bzw. den Blöcken der Ablaufpläne und/oder der Blockschaltbilder bzw. Schaubilder festgelegten Funktionen/Schritte erzeugen. Diese durch einen Computer lesbaren Programmanweisungen können auch auf einem durch einen Computer lesbaren Speichermedium gespeichert sein, das einen Computer, eine programmierbare Datenverarbeitungsvorrichtung und/oder andere Einheiten so steuern kann, dass sie auf eine bestimmte Art funktionieren, so dass das durch einen Computer lesbare Speichermedium, auf dem Anweisungen gespeichert sind, ein Herstellungsprodukt aufweist, darunter Anweisungen, welche Aspekte der/des in dem Block bzw. den Blöcken des Ablaufplans und/oder der Blockschaltbilder bzw. Schaubilder angegebenen Funktion/Schritts umsetzen.These computer readable program instructions may be provided to a processor of a general purpose computer, a special purpose computer, or other programmable data processing apparatus to produce a machine, such that the instructions executed by the processor of the computer or other programmable data processing apparatus produce a means for implementing the functions/steps defined in the block(s) of flowcharts and/or block diagrams. These computer readable program instructions may also be stored on a computer readable storage medium capable of controlling a computer, programmable data processing apparatus, and/or other devices to function in a particular manner, such that the computer readable storage medium on which instructions are stored is a Product of manufacture, including instructions that implement aspects of the function/step specified in the block(s) of the flowchart and/or block diagrams or charts.
Die durch einen Computer lesbaren Programmanweisungen können auch auf einen Computer, eine andere programmierbare Datenverarbeitungsvorrichtung oder eine andere Einheit geladen werden, um das Ausführen einer Reihe von Prozessschritten auf dem Computer bzw. der anderen programmierbaren Vorrichtung oder anderen Einheit zu verursachen, um einen auf einem Computer ausgeführten Prozess zu erzeugen, so dass die auf dem Computer, einer anderen programmierbaren Vorrichtung oder einer anderen Einheit ausgeführten Anweisungen die in dem Block bzw. den Blöcken der Ablaufpläne und/oder der Blockschaltbilder bzw. Schaubilder festgelegten Funktionen/Schritte umsetzen.The computer readable program instructions may also be loaded onto a computer, other programmable data processing apparatus, or other device to cause a series of process steps to be performed on the computer, other programmable apparatus, or other device to produce a computer-executable process, such that the instructions executing on the computer, other programmable apparatus, or other device implement the functions/steps set forth in the flowchart and/or block diagram block(s).
Die Ablaufpläne und die Blockschaltbilder bzw. Schaubilder in den Figuren veranschaulichen die Architektur, die Funktionalität und den Betrieb möglicher Ausführungen von Systemen, Verfahren und Computerprogrammprodukten gemäß verschiedenen Ausführungsformen der vorliegenden Erfindung. In diesem Zusammenhang kann jeder Block in den Ablaufplänen oder Blockschaltbildern bzw. Schaubildern ein Modul, ein Segment oder einen Teil von Anweisungen darstellen, die eine oder mehrere ausführbare Anweisungen zur Ausführung der bestimmten logischen Funktion(en) aufweisen. In einigen alternativen Ausführungen können die in dem Block angegebenen Funktionen in einer anderen Reihenfolge als in den Figuren gezeigt stattfinden. Zwei nacheinander gezeigte Blöcke können zum Beispiel in Wirklichkeit im Wesentlichen gleichzeitig ausgeführt werden, oder die Blöcke können manchmal je nach entsprechender Funktionalität in umgekehrter Reihenfolge ausgeführt werden. Es ist ferner anzumerken, dass jeder Block der Blockschaltbilder bzw. Schaubilder und/oder der Ablaufpläne sowie Kombinationen aus Blöcken in den Blockschaltbildern bzw. Schaubildern und/oder den Ablaufplänen durch spezielle auf Hardware beruhende Systeme umgesetzt werden können, welche die festgelegten Funktionen oder Schritte durchführen, oder Kombinationen aus Spezial-Hardware und Computeranweisungen ausführen.The flowcharts and block diagrams in the figures illustrate the architecture, functionality, and operation of possible implementations of systems, methods, and computer program products in accordance with various embodiments of the present invention. In this regard, each block in the flowcharts or block diagrams may represent a module, segment, or portion of instructions comprising one or more executable instructions for performing the particular logical function(s). In some alternative implementations, the functions indicated in the block may occur in a different order than shown in the figures. For example, two blocks shown in sequence may actually execute substantially simultaneously, or the blocks may sometimes execute in reverse order depending on the corresponding functionality. It should also be noted that each block of the block diagrams and/or flowcharts, and combinations of blocks in the block diagrams and/or flowcharts, may be implemented by special purpose hardware-based systems that perform the specified functions or steps, or execute combinations of special purpose hardware and computer instructions.
Überdies kann ein System gemäß verschiedenen Ausführungsformen einen Prozessor und eine Logik enthalten, die im Prozessor integriert und/oder von diesem ausführbar ist, wobei die Logik so konfiguriert ist, dass sie einen oder mehrere der hierin dargelegten Prozessschritte ausführt. Integriert bedeutet, dass eine Logik in Form von Hardware-Logik im Prozessor eingebettet ist, zum Beispiel ein anwendungsspezifischer integrierter Schaltkreis (application specific integrated circuit, ASIC), ein FPGA usw. Vom Prozessor ausführbar bedeutet, dass es sich bei der Logik um Hardware-Logik, Software-Logik wie Firmware, einen Teil eines Betriebssystems, einen Teil eines Anwendungsprogramms usw. oder eine Kombination aus Hardware- und Software-Logik handeln kann, auf die der Prozessor zugreifen kann und die so konfiguriert ist, dass sie den Prozessor veranlasst, beim Ausführen durch den Prozessor eine Funktionalität auszuführen. Eine Software-Logik kann in einem lokalen und/oder entfernt angeordneten Speicher eines beliebigen, nach dem Stand der Technik bekannten Speichertyps gespeichert sein. Es kann ein beliebiger, nach dem Stand der Technik bekannter Prozessor verwendet werden, z.B. ein Software-Prozessormodul und/oder ein Hardware-Prozessor wie ein ASIC, ein FPGA, eine Zentraleinheit (CPU), ein integrierter Schaltkreis (IC), eine Grafikverarbeitungseinheit (GPU) usw.Moreover, according to various embodiments, a system may include a processor and logic integrated and/or executable by the processor, the logic configured to perform one or more of the process steps set forth herein. Integrated means that logic is embedded in the processor in the form of hardware logic, for example, an application specific integrated circuit (ASIC), an FPGA, etc. Processor executable means that the logic may be hardware logic, software logic such as firmware, a portion of an operating system, a portion of an application program, etc., or a combination of hardware and software logic that is accessible to the processor and configured to cause the processor to perform functionality when executed by the processor. Software logic may be stored in local and/or remote memory of any type of memory known in the art. Any processor known in the art may be used, e.g. a software processor module and/or a hardware processor such as an ASIC, an FPGA, a central processing unit (CPU), an integrated circuit (IC), a graphics processing unit (GPU), etc.
Es ist klar, dass die verschiedenen Merkmale der vorhergehenden Systeme und/oder Methodiken auf eine beliebige Weise kombiniert werden können, wobei eine Mehrzahl von Kombinationen aus den oben dargelegten Beschreibungen erzeugt wird.It will be appreciated that the various features of the foregoing systems and/or methodologies may be combined in any manner, producing a variety of combinations from the descriptions set forth above.
Außerdem ist klar, dass Ausführungsformen der vorliegenden Erfindung in Form eines Dienstes bereitgestellt werden können, der im Auftrag eines Kunden zur Verfügung gestellt wird, um einen bedarfsorientierten Dienst anzubieten.Furthermore, it is to be understood that embodiments of the present invention may be provided in the form of a service provided on behalf of a customer to provide a service on demand.
Zwar wurden vorstehend verschiedene Ausführungsformen beschrieben, es versteht sich jedoch von selbst, dass sie lediglich beispielhaft und ohne Einschränkung dargelegt wurden. Folglich sollten die Breite und der Schutzumfang einer bevorzugten Ausführungsform nicht durch eine der oben beschriebenen beispielhaften Ausführungsformen eingeschränkt werden, sondern ausschließlich gemäß den folgenden Ansprüchen und ihren Äquivalenten definiert werden.While various embodiments have been described above, it is to be understood that they have been presented by way of example only and not limitation. Accordingly, the breadth and scope of a preferred embodiment should not be limited by any of the exemplary embodiments described above, but should be defined only in accordance with the following claims and their equivalents.
Claims (23)
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US15/087,898 US10990872B2 (en) | 2016-03-31 | 2016-03-31 | Energy-efficient time-multiplexed neurosynaptic core for implementing neural networks spanning power- and area-efficiency |
US15/087,898 | 2016-03-31 | ||
PCT/IB2017/051392 WO2017168275A1 (en) | 2016-03-31 | 2017-03-09 | Energy-efficient time-multiplexed neurosynaptic core for implementing neural networks |
Publications (2)
Publication Number | Publication Date |
---|---|
DE112017000855T5 DE112017000855T5 (en) | 2018-10-25 |
DE112017000855B4 true DE112017000855B4 (en) | 2024-05-23 |
Family
ID=59959540
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE112017000855.7T Active DE112017000855B4 (en) | 2016-03-31 | 2017-03-09 | Energy-efficient temporally multiplexed neurosynaptic core for implementing neural networks |
Country Status (5)
Country | Link |
---|---|
US (1) | US10990872B2 (en) |
JP (1) | JP6912491B2 (en) |
DE (1) | DE112017000855B4 (en) |
GB (1) | GB2557780B (en) |
WO (1) | WO2017168275A1 (en) |
Families Citing this family (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10867238B2 (en) * | 2016-12-20 | 2020-12-15 | Intel Corporation | Population-based connectivity architecture for spiking neural networks |
TWI779069B (en) | 2017-07-30 | 2022-10-01 | 埃拉德 希提 | Memory chip with a memory-based distributed processor architecture |
US11195079B2 (en) * | 2017-11-22 | 2021-12-07 | Intel Corporation | Reconfigurable neuro-synaptic cores for spiking neural network |
JP7179853B2 (en) * | 2017-12-12 | 2022-11-29 | アマゾン テクノロジーズ インコーポレイテッド | On-chip computational network |
US10803379B2 (en) | 2017-12-12 | 2020-10-13 | Amazon Technologies, Inc. | Multi-memory on-chip computational network |
US10846621B2 (en) | 2017-12-12 | 2020-11-24 | Amazon Technologies, Inc. | Fast context switching for computational networks |
CN118014031A (en) * | 2018-03-22 | 2024-05-10 | 亚马逊技术股份有限公司 | Processing for multiple input data sets |
US11366998B2 (en) * | 2018-03-27 | 2022-06-21 | Intel Corporation | Neuromorphic accelerator multitasking |
US11205125B2 (en) | 2018-06-29 | 2021-12-21 | International Business Machines Corporation | Scheduler and simulator for an area-efficient, reconfigurable, energy-efficient, speed-efficient neural network |
EP3605401A1 (en) | 2018-07-31 | 2020-02-05 | GrAl Matter Labs S.A.S. | Data processing module, data processing system and data processing method |
US20200117981A1 (en) * | 2018-10-11 | 2020-04-16 | International Business Machines Corporation | Data representation for dynamic precision in neural network cores |
CN113570049B (en) * | 2021-07-23 | 2024-05-28 | 上海新氦类脑智能科技有限公司 | Relative addressing method, device, equipment and medium for interconnection of multiple SNN chips |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20140180987A1 (en) | 2012-12-21 | 2014-06-26 | International Business Machines Corporation | Time-division multiplexed neurosynaptic module with implicit memory addressing for implementing a neural network |
US20140222740A1 (en) | 2012-11-21 | 2014-08-07 | International Business Machines Corporation | Consolidating multiple neurosynaptic cores into one memory |
US8977578B1 (en) | 2012-06-27 | 2015-03-10 | Hrl Laboratories, Llc | Synaptic time multiplexing neuromorphic network that forms subsets of connections during different time slots |
US20150324684A1 (en) | 2014-05-08 | 2015-11-12 | International Business Machines Corporation | Neuromorphic hardware for neuronal computation and non-neuronal computation |
CN105095967A (en) | 2015-07-16 | 2015-11-25 | 清华大学 | Multi-mode neural morphological network core |
Family Cites Families (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8515885B2 (en) * | 2010-10-29 | 2013-08-20 | International Business Machines Corporation | Neuromorphic and synaptronic spiking neural network with synaptic weights learned using simulation |
US8856055B2 (en) | 2011-04-08 | 2014-10-07 | International Business Machines Corporation | Reconfigurable and customizable general-purpose circuits for neural networks |
US8909576B2 (en) | 2011-09-16 | 2014-12-09 | International Business Machines Corporation | Neuromorphic event-driven neural computing architecture in a scalable neural network |
US8996430B2 (en) | 2012-01-27 | 2015-03-31 | International Business Machines Corporation | Hierarchical scalable neuromorphic synaptronic system for synaptic and structural plasticity |
US8977583B2 (en) | 2012-03-29 | 2015-03-10 | International Business Machines Corporation | Synaptic, dendritic, somatic, and axonal plasticity in a network of neural cores using a plastic multi-stage crossbar switching |
US8868477B2 (en) | 2012-03-29 | 2014-10-21 | International Business Machines Coproration | Multi-compartment neurons with neural cores |
US9275328B1 (en) * | 2012-05-03 | 2016-03-01 | Hrl Laboratories, Llc | Neuromorphic compiler |
US9159020B2 (en) | 2012-09-14 | 2015-10-13 | International Business Machines Corporation | Multiplexing physical neurons to optimize power and area |
US9087301B2 (en) | 2012-12-21 | 2015-07-21 | International Business Machines Corporation | Hardware architecture for simulating a neural network of neurons |
US9940574B1 (en) * | 2013-06-26 | 2018-04-10 | Hrl Laboratories, Llc | System and method to control a model state of a neuromorphic model of a brain |
US10115054B2 (en) | 2014-07-02 | 2018-10-30 | International Business Machines Corporation | Classifying features using a neurosynaptic system |
CN105095961B (en) | 2015-07-16 | 2017-09-29 | 清华大学 | A kind of hybrid system of artificial neural network and impulsive neural networks |
CN105095966B (en) | 2015-07-16 | 2018-08-21 | 北京灵汐科技有限公司 | The hybrid system of artificial neural network and impulsive neural networks |
CN105095965B (en) | 2015-07-16 | 2017-11-28 | 清华大学 | The mixed communication method of artificial neural network and impulsive neural networks nerve |
-
2016
- 2016-03-31 US US15/087,898 patent/US10990872B2/en active Active
-
2017
- 2017-03-09 GB GB1803975.0A patent/GB2557780B/en active Active
- 2017-03-09 JP JP2018547291A patent/JP6912491B2/en active Active
- 2017-03-09 DE DE112017000855.7T patent/DE112017000855B4/en active Active
- 2017-03-09 WO PCT/IB2017/051392 patent/WO2017168275A1/en active Application Filing
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8977578B1 (en) | 2012-06-27 | 2015-03-10 | Hrl Laboratories, Llc | Synaptic time multiplexing neuromorphic network that forms subsets of connections during different time slots |
US20140222740A1 (en) | 2012-11-21 | 2014-08-07 | International Business Machines Corporation | Consolidating multiple neurosynaptic cores into one memory |
US20140180987A1 (en) | 2012-12-21 | 2014-06-26 | International Business Machines Corporation | Time-division multiplexed neurosynaptic module with implicit memory addressing for implementing a neural network |
US20150324684A1 (en) | 2014-05-08 | 2015-11-12 | International Business Machines Corporation | Neuromorphic hardware for neuronal computation and non-neuronal computation |
CN105095967A (en) | 2015-07-16 | 2015-11-25 | 清华大学 | Multi-mode neural morphological network core |
Non-Patent Citations (7)
Title |
---|
CN 1 05 095 967 A (Maschinenübersetzung, DPMA, Übersetzung erstellt am 19.05.2022) |
CRUZ-ALBRECHT, Jose M.; DEROSIER, Timothy; SRINIVASA, Narayan: „A scalable neural chip with synaptic electronics using CMOS integrated memristors (erschienen in Nanotechnology, 2013, Vol. 24, No. 38 |
CRUZ-ALBRECHT, Jose M.; DEROSIER, Timothy; SRINIVASA, Narayan: A scalable neural chip with synaptic electronics using CMOS integrated memristors. Nanotech-nology, 2013, 24. Jg., Nr. 38, S. 384011 |
MEROLLA, Paul A. [et al.]: „A million spiking-neuron integrated circuit with a scalable communication network and interface - Supplementary Materials" (erschienen in Science, 2014, Vol. 345, No. 6197 |
MEROLLA, Paul A. [et al.]: A million spiking-neuron integrated circuit with a scalable communication network and interface – Supplementary Materials. Science, 2014, 345. Jg., Nr. 6197, S. 1-25 |
MINKOVICH, Kirill [et al.]: „Programming time-multiplexed reconfigurable hardware using a scalable neuromorphic compiler" (erschienen in IEEE transactions on neural networks and learning systems, 2012, Vol. 23, No. 6, S. 889-901 |
MINKOVICH, Kirill [et al.]: Programming time-multiplexed reconfigurable hardware using a scalable neuromorphic compiler. IEEE transactions on neural networks and learning systems, 2012, 23. Jg., Nr. 6, S. 889-901 |
Also Published As
Publication number | Publication date |
---|---|
US20170286825A1 (en) | 2017-10-05 |
WO2017168275A1 (en) | 2017-10-05 |
US10990872B2 (en) | 2021-04-27 |
GB2557780B (en) | 2022-02-09 |
GB201803975D0 (en) | 2018-04-25 |
DE112017000855T5 (en) | 2018-10-25 |
JP2019515367A (en) | 2019-06-06 |
JP6912491B2 (en) | 2021-08-04 |
GB2557780A (en) | 2018-06-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE112017000855B4 (en) | Energy-efficient temporally multiplexed neurosynaptic core for implementing neural networks | |
DE112019002981T5 (en) | PARALLEL COMPUTATION ARCHITECTURE WITH RECONFIGURABLE CORE LEVEL AND VECTOR LEVEL PARALLELITY | |
DE112018006189T5 (en) | ROBUST GRADIENT WEIGHT COMPRESSION SCHEMES FOR DEEP LEARNING APPLICATIONS | |
DE112018004223T5 (en) | Training artificial neural networks | |
DE112019000336T5 (en) | MASSIVELY PARALLEL NEURAL INFERENCE DATA PROCESSING ELEMENTS | |
DE112013003349T5 (en) | Neuronal core circuit | |
DE102016125131A1 (en) | Efficient generation of stochastic spike patterns in nuclear-based neuromorphic systems | |
DE112016002292T5 (en) | STACK PROCESSING IN A NEURONAL NETWORK PROCESSOR | |
DE112019003529T5 (en) | Data representation for dynamic accuracy in the cores of neural networks | |
DE112016002298T5 (en) | PREVIEW OF WEIGHTS FOR USE IN A NEURONAL NETWORK PROCESSOR | |
DE112016003245T5 (en) | Resistive processing unit | |
DE112016002296T5 (en) | VECTOR CONTROL UNIT IN A NEURONAL NETWORK PROCESSOR | |
DE3501272A1 (en) | ADAPTIVE, SELF-REPAIRING PROCESSOR FIELD | |
DE102021107050A1 (en) | GRADIENT COMPRESSION FOR DISTRIBUTED TRAINING | |
DE112019000676T5 (en) | CENTRAL SCHEDULER AND INSTRUCTION ASSIGNMENT FOR A NEURAL INFERENCE PROCESSOR | |
DE112020004067T5 (en) | HYBRID DATA-MODEL PARALLELITY FOR EFFICIENT DEEP LEARNING | |
DE102017128711A1 (en) | Multi-core processor and method for dynamically adjusting a supply voltage and a clock frequency | |
DE102021107509A1 (en) | MULTI-MODEL TRAINING PIPELINE IN DISTRIBUTED SYSTEMS | |
DE112020002186T5 (en) | DNN TRAINING WITH ASYMMETRIC RPU UNITS | |
DE112019005119T5 (en) | ALIGNMENT TECHNIQUES FOR ADJUSTING THE SYMMETRY POINT AS A ZERO WEIGHTING POINT IN ANALOGUE CROSSING POINT ARRANGEMENTS | |
DE102019103319A1 (en) | STOCHASTIC ROUNDING OF NUMBER VALUES | |
DE112020003055T5 (en) | REORDERING THE OPERATIONS OF A NEURAL NETWORK FOR PARALLEL EXECUTION | |
DE112017002931T5 (en) | Scalable flow synaptic supercomputer for extremely high throughput neural networks | |
DE112021004537T5 (en) | MEMORY-ORIENTED NEURAL NETWORK ACCELERATOR FOR DEPLOYABLE INFERENCE SYSTEMS | |
DE112016006015T5 (en) | Maximize network fabric performance with granular router link power management |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
R012 | Request for examination validly filed | ||
R016 | Response to examination communication | ||
R018 | Grant decision by examination section/examining division |