DE102019214010A1 - Data storage and method of operating the data storage - Google Patents

Data storage and method of operating the data storage Download PDF

Info

Publication number
DE102019214010A1
DE102019214010A1 DE102019214010.6A DE102019214010A DE102019214010A1 DE 102019214010 A1 DE102019214010 A1 DE 102019214010A1 DE 102019214010 A DE102019214010 A DE 102019214010A DE 102019214010 A1 DE102019214010 A1 DE 102019214010A1
Authority
DE
Germany
Prior art keywords
memory
areas
memory module
module
area
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
DE102019214010.6A
Other languages
German (de)
Inventor
Thomas Pfeil
Volker Fischer
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Robert Bosch GmbH
Original Assignee
Robert Bosch GmbH
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Robert Bosch GmbH filed Critical Robert Bosch GmbH
Priority to DE102019214010.6A priority Critical patent/DE102019214010A1/en
Publication of DE102019214010A1 publication Critical patent/DE102019214010A1/en
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/06Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
    • G06N3/063Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology

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)
  • General Health & Medical Sciences (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • Computational Linguistics (AREA)
  • Molecular Biology (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Artificial Intelligence (AREA)
  • Neurology (AREA)
  • Image Analysis (AREA)

Abstract

Die Erfindung betrifft ein Datenspeicher zum Hinterlegen von Zwischengrößen eines maschinellen Lernsystems. Der Datenspeicher umfasst zwei Speichermodule (11a,11b), die jeweils eine Mehrzahl von Speicherbereichen (13a,13b) aufweisen. Die Speicherbereiche der zwei Speichermodule sind jeweils nach einer vorgebbaren Reihenfolge von Speicherbereichen angeordnet und die Speicherbereiche der zwei Speichermodule sind jeweils mit zumindest einem aus der Reihenfolge vorhergehenden Speicherbereich des anderen Speichermoduls verschaltet. Ferner betrifft die Erfindung ein Verfahren zum Betreiben des Datenspeichers.The invention relates to a data memory for storing intermediate variables of a machine learning system. The data memory comprises two memory modules (11a, 11b), each of which has a plurality of memory areas (13a, 13b). The memory areas of the two memory modules are each arranged according to a predeterminable sequence of memory areas and the memory areas of the two memory modules are each interconnected with at least one memory area of the other memory module that precedes the sequence. The invention also relates to a method for operating the data memory.

Description

Technisches GebietTechnical area

Die Erfindung betrifft einen Datenspeicher zum Hinterlegen von Zwischengrößen eines maschinellen Lernsystems. Ebenso betrifft die Erfindung ein Verfahren zum Betreiben des Datenspeichers und ein Computerprogramm, das eingerichtet ist, das Verfahren auszuführen.The invention relates to a data memory for storing intermediate variables of a machine learning system. The invention also relates to a method for operating the data memory and a computer program which is set up to carry out the method.

Stand der TechnikState of the art

Künstliche neuronale Netze führen sequentiell ihre Berechnungen durch. D.h. um eine Ausgangsgröße am Ausgang des künstlichen neuronalen Netzes zu erhalten, müssen alle Berechnungen der Schichten nacheinander ausgeführt werden. Folglich ist die Dauer des Propagierens einer Eingangsgröße durch das künstliche neuronale Netz abhängig von der Summe der einzelnen Berechnungsdauern aller Schichten.Artificial neural networks carry out their calculations sequentially. In other words, in order to obtain an output variable at the output of the artificial neural network, all calculations of the layers must be carried out one after the other. Consequently, the duration of the propagation of an input variable through the artificial neural network depends on the sum of the individual calculation times of all layers.

Es ist bekannt, Schichten der künstlichen neuronalen Netze vollständig parallelisiert auszuführen, wie gezeigt von den Autoren Fischer, V., Köhler, J. und Pfeil, T. in der Veröffentlichung „The streaming rollout of deep networkstowards fully model-parallel execution“, Advances in Neural Information Processing Systems (pp. 4043-4054) , https://arxiv.org/pdf/1806.04965.pdf, sowie gezeigt in der DE 20 2018 104 373 U1 .It is known to make layers of the artificial neural networks completely parallelized, as shown by the authors Fischer, V., Köhler, J. and Pfeil, T. in the publication "The streaming rollout of deep networkstowards fully model-parallel execution", Advances in Neural Information Processing Systems (pp. 4043-4054) , https://arxiv.org/pdf/1806.04965.pdf, as well as shown in the DE 20 2018 104 373 U1 .

Vorteile der ErfindungAdvantages of the invention

Es wird ein Datenspeicher, insbesondere eine Speicherarchitektur, vorgeschlagen, auf welcher künstliche neuronale Netze sowohl effizient Angelernt als auch effizient Betrieben werden können. Denn der Datenspeicher erlaubt ein parallelisiertes Ausführen der Schichten oder Neuronen des künstlichen neuronalen Netzes, wobei im idealen Fall (bei einem streaming rollout) die max. Rechendauer nicht mehr von der Summe der einzelnen Rechendauern der Schichten abhängt, sondern nur noch von derjenigen Schicht, welche die längst Rechendauer aufweist. Dieser Vorteil ist skalierbar mit der Anzahl der Schichten des künstlichen neuronalen Netzes.A data memory, in particular a memory architecture, is proposed on which artificial neural networks can be both efficiently learned and efficiently operated. This is because the data memory allows the layers or neurons of the artificial neural network to be executed in parallel, whereby in the ideal case (with a streaming rollout) the maximum computing time no longer depends on the sum of the individual computing times of the layers, but only on the layer which which has a long computation time. This advantage is scalable with the number of layers of the artificial neural network.

Ein weiterer Vorteil ist, dass dieser Datenspeicher ein beliebig ausgeprägtes paralleles Betreiben der Schichten oder der Neuronen des künstlichen neuronalen Netzes erlaubt. Daher kann flexibel gesteuert werden, ob das künstliche neuronale Netz vollständig parallel, teilweise oder gar sequenziell ausgeführt werden soll.A further advantage is that this data memory allows any desired parallel operation of the layers or the neurons of the artificial neural network. It is therefore possible to flexibly control whether the artificial neural network should be executed completely in parallel, partially or even sequentially.

Ein weiterer Vorteil ist, dass dieser Datenspeicher unabhängig von einer Architektur des künstlichen neuronalen Netzes ist. D.h. dieser Datenspeicher kann neben vorwärtsgerichteten künstlichen neuronalen Netze (engl. feedforward neuronal network) auch für rekurrente künstliche neuronale Netze oder faltende neuronale Netze (engl. convolution neuronal network) verwendet werden. Der Datenspeicher ist besonders effizient bei einer Verarbeitung von Zeitreihen (wie Sequenzen von Bildern).Another advantage is that this data memory is independent of an architecture of the artificial neural network. This means that this data memory can also be used for recurrent artificial neural networks or convolution neural networks in addition to forward-directed artificial neural networks. The data memory is particularly efficient when processing time series (such as sequences of images).

Offenbarung der ErfindungDisclosure of the invention

In einem ersten Aspekt betrifft die Erfindung einen Datenspeicher zum Hinterlegen von Zwischengrößen eines maschinellen Lernsystems, wie z.B. eines künstlichen neuronalen Netzes. Der Datenspeicher umfasst gemäß den Merkmalen des Anspruchs 1 zwei Speichermodule, die jeweils eine Mehrzahl von Speicherbereichen aufweisen.In a first aspect, the invention relates to a data memory for storing intermediate variables of a machine learning system, such as an artificial neural network. According to the features of claim 1, the data memory comprises two memory modules, each of which has a plurality of memory areas.

Es wird vorgeschlagen, dass die Speicherbereiche der zwei Speichermodule jeweils nach einer vorgebbaren Reihenfolge von ausgeführten Berechnungen des maschinellen Lernsystems angeordnet sind. Die Speicherbereiche der zwei Speichermodule können jeweils mit zumindest einem aus der Reihenfolge unmittelbare nachfolgenden Speicherbereich des anderen Speichermoduls verschaltet sein. Also Speicherbereiche des ersten Speichermoduls sind jeweils mit zumindest einem gemäß der Reihenfolge unmittelbar nachfolgenden Speicherbereich des zweiten Speichermoduls und die Speicherbereiche des zweiten Speichermoduls sind jeweils mit zumindest einem gemäß der Reihenfolge unmittelbar nachfolgenden Speicherbereich des ersten Speichermoduls verschaltet.It is proposed that the memory areas of the two memory modules are each arranged according to a predeterminable sequence of calculations carried out by the machine learning system. The memory areas of the two memory modules can each be interconnected with at least one memory area of the other memory module immediately following from the sequence. So memory areas of the first memory module are each connected to at least one immediately following memory area of the second memory module according to the sequence and the memory areas of the second memory module are each connected to at least one immediately following memory area of the first memory module according to the sequence.

Es kann gesagt werden, dass der Speicherbereich des ersten Speichermoduls mit seiner Position in der Reihenfolge der Speicherbereiche des ersten Speichermoduls mit dem Speicherbereich des zweiten Speichermoduls, der eine unmittelbar nachfolgende Position dieser Position in der Reihenfolge der Speicherbereiche des zweiten Speichermoduls hat, verschaltet ist. Das gleiche gilt für die Speicherbereiche des zweiten Speichermoduls. Es sei angemerkt, dass dadurch eine „Überkreuz“-Verbindung der Speicherbereiche zwischen den Speichermodulen entsteht.It can be said that the memory area of the first memory module is connected with its position in the order of the memory areas of the first memory module with the memory area of the second memory module, which has an immediately following position of this position in the order of the memory areas of the second memory module. The same applies to the memory areas of the second memory module. It should be noted that this creates a “crossover” connection of the memory areas between the memory modules.

Die vorgebbare Reihenfolge der Speicherbereiche kann einer Abfolge von Schichten des maschinellen Lernsystems, besonders bevorzugt der Abfolge von Schichten des künstlichen neuronalen Netzes, entsprechen.The predeterminable sequence of the memory areas can correspond to a sequence of layers of the machine learning system, particularly preferably the sequence of layers of the artificial neural network.

Es sei angemerkt, dass die zwei Speichermodule für jede, insbesondere komplette, Zwischengröße jeweils einen Speicherbereich aufweisen.It should be noted that the two memory modules each have a memory area for each, in particular complete, intermediate size.

Die Speicherbereiche können derart miteinander verschaltet sein, dass hinterlegte Zwischengrößen einer der Speicherbereiche eines der Speichermodule in zumindest einem aus der Reihenfolge nachfolgenden Speicherbereich des anderen Speichermodules hinterlegbar sind. D.h. die Speicherbereiche des ersten Speichermoduls können mit den Speicherbereichen des zweiten Speichermoduls derart verschalten sein, dass hinterlegte Zwischengrößen aus zumindest einem Speicherbereich des ersten Speichermoduls geladen werden und daraufhin in einem gemäß der Reihenfolge nachfolgendem Speicherbereich des zweiten Speichermoduls hinterlegbar sind. Das gleiche gilt auch für die Speicherbereiche des zweiten Speichermoduls. Es kann daher gesagt werden, dass die Speicherbereiche des ersten Speichermoduls nicht gemäß der Reihenfolge mit ihren nachfolgenden Speicherbereichen des ersten Speichermoduls verschaltet sind und damit keine Daten innerhalb der Speicherbereiche des ersten Speichermoduls übertragen werden können. Das gleiche gilt auch für die Speicherbereiche des zweiten Speichermoduls. D.h. die Speicherbereiche sind mit den Speicherbereichen des anderen Speichermoduls derart miteinander verschaltet, dass Zwischengrößen alternierend aus dem ersten Speichermodul geladen, verarbeitet und in dem zweiten Speichermodul geschrieben werden. Unter alternierend kann verstanden werden, dass abwechselnd die Zwischengrößen aus einem ersten Speichermodul geladen werden und daraufhin in dem zweiten Speichermodul hinterlegt werden, wobei dann die Zwischengrößen aus dem zweiten Speichermodul geladen werden und daraufhin im ersten Speichermodul hinterlegt werden.The memory areas can be interconnected in such a way that stored Intermediate sizes of one of the memory areas of one of the memory modules can be stored in at least one memory area of the other memory module that follows from the sequence. That is, the memory areas of the first memory module can be interconnected with the memory areas of the second memory module in such a way that stored intermediate sizes are loaded from at least one memory area of the first memory module and can then be stored in a memory area of the second memory module that follows the sequence. The same also applies to the memory areas of the second memory module. It can therefore be said that the memory areas of the first memory module are not interconnected in accordance with the sequence with their subsequent memory areas of the first memory module and thus no data can be transmitted within the memory areas of the first memory module. The same also applies to the memory areas of the second memory module. That is to say, the memory areas are interconnected with the memory areas of the other memory module in such a way that intermediate variables are alternately loaded from the first memory module, processed and written to the second memory module. Alternating can be understood to mean that the intermediate sizes are alternately loaded from a first storage module and then stored in the second storage module, the intermediate sizes then being loaded from the second storage module and then stored in the first storage module.

Der Vorteil des Datenspeichers ist, dass die Zwischengrößen durch diese Art der Verschaltung der Speicherbereiche, insbesondere durch die „überkreuzte“-Verschaltung der Speicherbereiche, alternierend in den zwei Speichermodulen gelesen und gespeichert werden. Damit erlaubt dieser Datenspeicher besonders effizient das maschinelle Lernsystem unter Verwendung eines strömenden Steuerungsmusters (engl. streaming rollout) auszuführen.The advantage of the data memory is that the intermediate values are read and stored alternately in the two memory modules through this type of interconnection of the memory areas, in particular through the “crossed” interconnection of the memory areas. This data memory thus allows the machine learning system to be carried out particularly efficiently using a streaming control pattern.

Vorzugsweise sind die zwei Speichermodule identisch.The two memory modules are preferably identical.

Die Speichermodule sind vorzugsweise Register oder Pufferspeicher (engl. Cache) zumindest einer Recheneinheit (z.B. einer CPU/GPU), und/oder sind Arbeitsspeicher (RAM). Alternativ können die Speichermodule Massenspeicher, wie eine Festplatte, sein.The memory modules are preferably registers or buffer memories (cache) of at least one processing unit (e.g. a CPU / GPU), and / or are working memories (RAM). Alternatively, the memory modules can be mass storage devices, such as a hard disk.

Unter Zwischengrößen können Eingangsgrößen der Schichten des maschinellen Lernsystems oder die ermittelten Ausgangsgrößen der Schichten, die einer oder mehreren nachfolgenden Schichten wiederum als Eingangsgröße bereitgestellt werden, also Zwischenergebnisse des maschinellen Lernsystems, verstanden werden.Intermediate variables can be understood to mean input variables of the layers of the machine learning system or the determined output variables of the layers, which in turn are provided to one or more subsequent layers as input variables, that is to say intermediate results of the machine learning system.

Denkbar ist, dass die Speicherbereiche angrenzend nebeneinander auf einem Chip angeordnet sind. Alternativ können die Speicherbereiche nicht zueinander angrenzend auf dem Chip verteilt sein, wobei die Speicherbereiche dann virtuell zum dem Speichermodul angeordnet sind. Bspw. können die Speicherbereiche eines Speichermoduls, insbesondere gleichmäßig, verteilt um die Recheneinheit angeordnet sein.It is conceivable that the memory areas are arranged adjacent to one another on a chip. Alternatively, the memory areas cannot be distributed on the chip adjacent to one another, the memory areas then being arranged virtually in relation to the memory module. For example, the memory areas of a memory module can be arranged, in particular evenly, distributed around the computing unit.

Vorzugsweise sind die zwei Speichermodule, insbesondere Speicherbereiche, symmetrisch zueinander angeordnet. Der Vorteil dieses speziellen Aufbaus ist, dass eine bessere Gesamtperformance durch kürzere Datenpfade erzielt wird. Also ein hoher Datendurchsatz (engl. throughput) und kurze Verzögerung (engl. latency) werden beim Ausführen von Berechnungen des maschinellen Lernsystem unter Verwendung des vorgeschlagenen Datenspeichers erzielt, da die Zwischengrößen besonders schnell alternierend geladen und gespeichert werden können.The two memory modules, in particular memory areas, are preferably arranged symmetrically to one another. The advantage of this special structure is that better overall performance is achieved through shorter data paths. In other words, a high throughput and a short latency are achieved when performing calculations of the machine learning system using the proposed data memory, since the intermediate values can be loaded and stored alternately particularly quickly.

Weiterhin wird vorgeschlagen, dass jedem Speicherbereich jeweils einer Schicht oder zumindest einem Neuron des maschinellen Lernsystems/künstlichen neuronalen Netzes zugeordnet ist, und die Speicherbereiche jeweils eingerichtet sind, die Zwischengrößen der jeweiligen zugeordneten Schicht zu hinterlegen. Vorzugsweise weisen die Speicherbereiche zumindest so viel Speicherplatz auf, wie benötigt wird, um die jeweilige Zwischengröße komplett zu hinterlegen. Bspw. für eine Zwischengröße einer faltenden Schicht (engl. convolutional layer) weist der zugehörige Speicherbereich mehr Speicherplatz auf als ein Speicherbereich für einen schwach vermaschte Schicht nahe am Ausgang des künstlichen neuronalen Netzes.It is further proposed that each memory area is assigned to a layer or at least one neuron of the machine learning system / artificial neural network, and the memory areas are each set up to store the intermediate values of the respective assigned layer. The memory areas preferably have at least as much memory space as is required to completely store the respective intermediate size. For example, for an intermediate size of a convolutional layer, the associated storage area has more storage space than a storage area for a weakly meshed layer close to the exit of the artificial neural network.

Weiterhin wird vorgeschlagen, dass die Verschaltung der Speicherbereiche über Verbindungen erfolgt, die jeweils eingerichtet sind, mathematische Operationen ausführen. Vorzugsweise entsprechen die mathematischen Operationen der Verbindungen denjenigen mathematischen Operationen, die die Schichten des jeweils zugeordneten Speicherbereichs durchführt. Denkbar ist, dass die Verbindungen in Hardware implementierte mathematische Operationen sind. Die mathematischen Operationen können Additionen (bspw. von einzelnen Elementen der Zwischengröße) und/oder Multiplikationen (bspw. von einzelnen Elementen der Zwischengröße oder mit einem Multiplikanden) sein. Zusätzlich oder alternativ können die mathematischen Operationen auch eine Faltung mit einem vorgebbaren Filter und/oder Pooling sein.It is also proposed that the interconnection of the memory areas take place via connections which are each set up to carry out mathematical operations. The mathematical operations of the connections preferably correspond to those mathematical operations carried out by the layers of the respectively assigned memory area. It is conceivable that the connections are mathematical operations implemented in hardware. The mathematical operations can be additions (for example of individual elements of the intermediate size) and / or multiplications (for example of individual elements of the intermediate size or with a multiplicand). Additionally or alternatively, the mathematical operations can also be a convolution with a predefinable filter and / or pooling.

Weiterhin wird vorgeschlagen, dass die Verbindungen die Speicherbereiche durch zumindest eine Recheneinheit verschalten sind und die Recheneinheit eingerichtet ist, die math. Operatoren auf die hinterlegbaren Zwischengrößen in dem jeweiligen Speicherbereich auszuführen. D.h. die Verbindung verbindet die Recheneinheit mit den zugehörigen Speicherbereichen, aus welchem die Zwischengröße geladen wird und in welche das die verarbeitete Zwischengröße durch die Recheneinheit hinterlegt werden soll. D.h. die Verbindung ist eingerichtet, die Zwischengrößen zu laden und zu speichern. Vorzugsweise ist die Verbindung ein Datenbus.It is also proposed that the connections, the memory areas are interconnected by at least one arithmetic unit and the arithmetic unit is set up to do math. Execute operators on the storable intermediate sizes in the respective memory area. This means that the connection connects the processing unit with the associated memory areas from which the intermediate variable is loaded and in which the processed intermediate variable is to be stored by the processing unit. This means that the connection is set up to load and save the intermediate sizes. The connection is preferably a data bus.

Vorzugsweise ist die Recheneinheit eingerichtet, Berechnungen der Schichten, insbesondere der Neuronen parallel auszuführen. Besonders bevorzugt ist die Recheneinheit eingerichtet abhängig von einem Steuerungsmuster (engl. rollout pattern), welches dem maschinellen Lernsystem zugeordnet ist, die Berechnungen der Schichten gleichzeitig/parallel auszuführen. Alternativ kann die Recheneinheit eingerichtet sein, jeweils einen Rechenkern für jeden Speicherbereich bereitzustellen. Vorzugsweise sind den Speicherbereichen der zwei Speichermodulen, die an der gleichen Position in der Reihenfolge liegen, die gleiche Recheneinheit zugeordnet. Vorteilhaft ist hierbei, dass ein beliebig ausgeprägtes paralleles Ausführen des maschinellen Lernsystems durch den vorgeschlagenen Datenspeicher ermöglicht wird. Vorzugsweise führt die Recheneinheiten die Berechnungen abhängig von dem Steuerungsmuster, welches dem neuronalen Netz zugeordnet ist, aus. Das Steuerungsmuster charakterisiert min. eine Reihenfolge von, insbesondere sequenziellen, Berechnungen, nach welcher die Schichten oder Neuronen des tiefen neuronalen Netzes ihre Zwischengrößen ermitteln. Das Steuerungsmuster kann auch mehrere Reihenfolgen charakterisieren, welche dann beim Betreiben des tiefen neuronalen Netzes abhängig von dem Steuerungsmuster parallel ausgeführt werden können.The computing unit is preferably set up to perform calculations of the layers, in particular of the neurons, in parallel. The computing unit is particularly preferably set up as a function of a control pattern (rollout pattern) which is assigned to the machine learning system to carry out the calculations of the layers simultaneously / in parallel. Alternatively, the computing unit can be set up to provide a computing core for each memory area. The same processing unit is preferably assigned to the memory areas of the two memory modules which are in the same position in the sequence. It is advantageous here that any parallel execution of the machine learning system is made possible by the proposed data memory. The computing units preferably carry out the calculations as a function of the control pattern which is assigned to the neural network. The control pattern characterizes at least a sequence of, in particular sequential, calculations according to which the layers or neurons of the deep neural network determine their intermediate variables. The control pattern can also characterize several sequences which can then be executed in parallel when the deep neural network is operated depending on the control pattern.

Zusätzlich kann die Recheneinheit mit einem weiteren Speicher verschaltet sein, in welchem Parameter oder eine Parametrisierung des maschinellen Lernsystems hinterlegt sind und abhängig von den Parateren die Zwischengrößen zu ermitteln. Die Parameter sind bspw. Gewichte, Schwellwerte (engl. bias) und/oder Filter.In addition, the computing unit can be connected to a further memory in which parameters or a parameterization of the machine learning system are stored and in which the intermediate variables can be determined as a function of the parameters. The parameters are, for example, weights, threshold values (bias) and / or filters.

Weiterhin wird vorgeschlagen, dass zumindest jeweils einer der Speicherbereiche der zwei Speichermodule mit dem Speicherbereich an der gleichen Position der Reihenfolge des anderen Speichermoduls verschaltet ist. Also der Speicherbereich des ersten Speichermoduls ist mit dem Speicherbereich des zweiten Speichermoduls bidirektional verschaltet, die beide an der gleichen Position der Reihenfolge liegen. Dadurch wird eine Verbindung des maschinellen Lernsystems, welches eine Schicht auf sich selbst referenziert, abgebildet. Es wird ferner vorgeschlagen, dass jeweils einer der Speicherbereiche der zwei Speichermodule zusätzlich mit einem weiteren Speicherbereich des anderen Speichermoduls verschaltet ist, das nicht unmittelbar nachfolgend in der Reihenfolge angeordnet ist. Also die Speicherbereiche der beiden Speichermodule, die jeweils an der gleichen Position in der Reihenfolge liegen, sind jeweils zusätzlich mit zumindest einem weiteren Speicherbereich des anderen Speichermoduls verschaltet. Dadurch wird eine Überbrückungsverbindung des maschinellen Lernsystems abgebildet. Der Datenspeicher erlaubt dadurch ein besonders effizientes Verarbeiten von Zeitreihen.It is further proposed that at least one of the memory areas of the two memory modules is connected to the memory area at the same position in the sequence of the other memory module. The memory area of the first memory module is thus interconnected bidirectionally with the memory area of the second memory module, both of which are in the same position in the sequence. As a result, a connection of the machine learning system, which references a layer to itself, is mapped. It is further proposed that in each case one of the memory areas of the two memory modules is additionally interconnected with a further memory area of the other memory module, which is not arranged immediately afterwards in the sequence. That is, the memory areas of the two memory modules, which are each in the same position in the sequence, are each additionally interconnected with at least one further memory area of the other memory module. As a result, a bridging connection of the machine learning system is mapped. The data memory allows particularly efficient processing of time series.

Weiterhin wird vorgeschlagen, dass ein letzter Speicherbereich der Reihenfolge der Speichermodule, seine hinterlegte Zwischengröße als Ausgangsgröße des maschinellen Lernsystems bereitstellt, wobei in einem ersten Speicherbereich der Reihenfolge eine Eingangsgröße des maschinellen Lernsystems hinterlegbar ist.It is also proposed that a last memory area in the sequence of the memory modules provides its stored intermediate variable as the output variable of the machine learning system, an input variable of the machine learning system being able to be stored in a first memory area of the sequence.

In einem zweiten Aspekt der Erfindung wird eine Vorrichtung zum Ausführen des maschinellen Lernsystems vorgeschlagen. Diese Vorrichtung umfasst einen ersten Speicher, in welchem Parameter des maschinellen Lernsystems hinterlegbar sind. Ferner umfasst diese Vorrichtung einen zweiten Speicher, welcher der Datenspeicher des ersten Aspektes der Erfindung ist. Ferner umfasst diese Vorrichtung eine Recheneinheit, die eingerichtet ist, Parameter aus dem ersten Speicher und die Zwischengröße aus dem zweiten Speicher zu laden, und die Recheneinheit ist ferner eingerichtet, abhängig von den geladenen Zwischengrößen des ersten Speicherbereichs und den Parametern aktualisierte Zwischengrößen zu berechnen und in den zweiten Speicher zu hinterlegen.In a second aspect of the invention, a device for executing the machine learning system is proposed. This device comprises a first memory in which parameters of the machine learning system can be stored. This device further comprises a second memory, which is the data memory of the first aspect of the invention. Furthermore, this device comprises a computing unit which is set up to load parameters from the first memory and the intermediate variable from the second memory, and the computing unit is furthermore set up to calculate updated intermediate variables as a function of the loaded intermediate variables of the first memory area and the parameters and to use them in to store the second memory.

In einem dritten Aspekt der Erfindung wird ein Verfahren zum Betreiben des Datenspeichers gemäß dem ersten Aspekt der Erfindung vorgeschlagen. Das Verfahren umfasst die Schritte: Laden einer Zwischengröße aus einem Speicherbereich eines der Speichermodule. Daraufhin folgt ein Ermitteln einer neuen Zwischengröße abhängig von der geladenen Zwischengröße mittels einer vorgebbaren, insbesondere parametrisierbaren, Funktion. Daraufhin folgt ein Hinterlegen der neuen Zwischengröße in einem nachfolgenden Speicherbereich des anderen Speichermoduls. Unter einem nachfolgenden Speicherbereich kann der Speicherbereich in der Reihenfolge der (unmittelbar) nach diesem Speicherbereich folgt, entsprechen. Vorzugsweise werden die Schritte mehrmals wiederholt, bis die Ausgangsgröße des maschinellen Lernsystems ermittelt ist.In a third aspect of the invention, a method for operating the data memory according to the first aspect of the invention is proposed. The method comprises the steps of: loading an intermediate size from a memory area of one of the memory modules. This is followed by a determination of a new intermediate variable as a function of the loaded intermediate variable by means of a predeterminable, in particular parameterizable, function. This is followed by the storage of the new intermediate size in a subsequent memory area of the other memory module. The memory area can correspond to a subsequent memory area in the order that follows (immediately) after this memory area. The steps are preferably repeated several times until the output variable of the machine learning system has been determined.

Es wird vorgeschlagen, dass zum jedem Zeitschritt die Schichten eine Zwischengröße ermitteln, insbesondere das maschinelle Lernsystem gemäß dem strömenden Steuerungsmuster (engl. streaming rollout) ausgeführt wird. Die Zwischengrößen werden alternierend in einem der zwei Speicherbereich des zweiten Speichermoduls ausgelesen und hinterlegt. Vorzugsweise werden die Schritte für alle Speicherbereiche parallel ausgeführt. Dadurch werden alle Zwischengrößen abwechselnd aus dem ersten Speicherbereich ausgelesen, in dem zweiten Speicherbereich hinterlegt und dananch aus dem zweiten Speicherbereich gelesen und in dem in dem ersten Speicherbereich hinterlegt,It is proposed that the layers determine an intermediate variable for each time step, in particular that the machine learning system is carried out according to the streaming control pattern (streaming rollout). The intermediate sizes are read out and stored alternately in one of the two memory areas of the second memory module. The steps are preferably carried out in parallel for all memory areas. As a result, all intermediate sizes are alternately read out from the first memory area, stored in the second memory area and then read from the second memory area and stored in the first memory area,

Der Vorteil hierbei ist, dass eine max. Auslastung des Speichers erreicht wird. Vorteilhaft ist ferner, dass Zwischengrößen, die nicht mehr benötigt werden, einfach durch neue Zwischengrößen überschrieben werden, da die Speicherbereiche beider Speichermodule alternierend gelesen und beschrieben werden. Dies resultiert in einer besonders effizienten Speicherverwaltung.The advantage here is that a maximum utilization of the memory is achieved. It is also advantageous that intermediate sizes that are no longer required are simply overwritten by new intermediate sizes, since the memory areas of both memory modules are read and written alternately. This results in particularly efficient memory management.

Weiterhin wird vorgeschlagen, dass dann, wenn das maschinelle Lernsystem eine Verbindung aufweist, die abhängig vom dem Steuerungsmuster Informationen über einen Lese-und Schreib-Zyklus überbrückt, dann wird der Inhalt des Speicherbereichs, der derjenigen Schicht zugeordnet ist, bei welcher diese Verbindung beginnt, verzögert um die Anzahl der überbrückten Lese-und Schreib-Zyklen an den Speicherbereich weitergeleitet, welcher derjenigen Schicht zugeordnet ist, an welcher diese Verbindung endet.It is also proposed that if the machine learning system has a connection which, depending on the control pattern, bridges information via a read and write cycle, then the content of the memory area assigned to the layer at which this connection begins is delayed by the number of bridged read and write cycles, forwarded to the memory area which is assigned to the layer at which this connection ends.

Weiterhin wird vorgeschlagen, dass dann, wenn das maschinelle Lernsystem eine Überbrückungsverbindung aufweist und diese abhängig vom dem Steuerungsmuster Informationen über einen Lese-und Schreib-Zyklus überbrückt, dann wird der Inhalt des Speicherbereichs, der derjenigen Schicht zugeordnet ist, bei welcher die Überbrückungsverbindung beginnt, verzögert um die Anzahl der überbrückten Lese-und Schreib-Zyklen an den Speicherbereich weitergeleitet, welcher derjenigen Schicht zugeordnet ist, an welcher die Überbrückungsverbindung endet.It is further proposed that if the machine learning system has a bridging connection and this bridges information via a read and write cycle depending on the control pattern, then the content of the memory area assigned to the layer at which the bridging connection begins is delayed by the number of bridged read and write cycles, forwarded to the memory area which is assigned to the layer at which the bridging connection ends.

Ein Lese-und Schreib-Zyklus kann die Lese-Operationen der Zwischengröße in dem ersten Speichermodul, der Verarbeitung der Zwischengröße, z.B. durch die Recheneinheit, und die Schreib-Operation der verarbeiteten Zwischengröße in dem anderen Speichermodul umfassen.A read and write cycle can include the read operations of the intermediate variable in the first memory module, the processing of the intermediate variable, e.g. by the arithmetic unit, and the write operation of the processed intermediate variable in the other memory module.

Weiterhin wird vorgeschlagen, dass beim Anlernen des NN, dieses beim Propagieren der Trainingseingangsgrößen gemäß dem Verfahren betrieben wird, wobei die Zwischengrößen in einem weiteren Speicher hinterlegt werden, um beim Ermitteln der Gradienten, diese wiederverwenden zu können.It is also proposed that when teaching the NN, it is operated according to the method when the training input variables are propagated, the intermediate variables being stored in a further memory in order to be able to reuse them when determining the gradients.

In einem weiteren Aspekt wird ein Computerprogramm vorgeschlagen. Das Computerprogramm ist eingerichtet, eines der vorherigen genannten Verfahren des dritten Aspektes der Erfindung auszuführen. Das Computerprogramm umfasst Anweisungen, die einen Computer veranlassen, eines dieser genannten Verfahren mit all seinen Schritten auszuführen, wenn das Computerprogramm auf dem Computer abläuft. Ferner wird ein maschinenlesbares Speichermodul vorgeschlagen, auf welchem das Computerprogramm gespeichert ist.In a further aspect, a computer program is proposed. The computer program is set up to carry out one of the aforementioned methods of the third aspect of the invention. The computer program comprises instructions which cause a computer to carry out one of these named methods with all of its steps when the computer program runs on the computer. Furthermore, a machine-readable memory module is proposed on which the computer program is stored.

Ausführungsbeispiele der oben genannten Aspekte sind in den beiliegenden Zeichnungen dargestellt und in der nachfolgenden Beschreibung näher erläutert. Dabei zeigen:Exemplary embodiments of the above-mentioned aspects are shown in the accompanying drawings and explained in more detail in the description below. Show:

FigurenlisteFigure list

  • 1 schematisch einen Datenspeicher; 1 schematically a data memory;
  • 2 schematisch ein Flussdiagramm eines Verfahrens zum Betreiben des Datenspeichers. 2 schematically, a flow diagram of a method for operating the data memory.

1 zeigt eine schematische Darstellung eines Datenspeichers welcher zwei Speichermodule (11a,11b) aufweist. Die Speichermodule (11a,11b) umfassen jeweils eine Mehrzahl von Speicherbereichen (13a,13b). Die Speicherbereiche (13a,13b) sind vorzugsweise eingerichtet, Zwischengrößen eines maschinellen Lernsystems, wie zum Beispiel eines künstlichen neuronalen Netzes, zu speichern. Vorzugsweise sind die Speicherbereiche beider Speichermodule (11a,11b) jeweils einer Schicht des maschinellen Lernsystems, insbesondere einer Schicht des künstlichen neuronalen Netzes, zugeordnet. Alternativ kann jeder Speicherbereich einem Neuron des künstlichen neuronalen Netzes zugeordnet sein. In dem Ausführungsbeispiel der 1 sind die Speicherbereiche beider Speichermodule (11a,11b) nach einer Reihenfolge der Schichten des maschinellen Lernsystems angeordnet. Die Speicherbereiche des ersten und zweiten Speichermoduls, die an der gleichen Position gemäß der Reihenfolge angeordnet sind, sind der gleichen Schicht zugeordnet. D.h. jede Schicht ist einem Speicherbereich des ersten und einem Speicherbereich des zweiten Speichermoduls zugeordnet. 1 shows a schematic representation of a data memory which has two memory modules ( 11a , 11b ) having. The memory modules ( 11a , 11b ) each comprise a plurality of memory areas ( 13a , 13b ). The memory areas ( 13a , 13b ) are preferably set up to store intermediate variables of a machine learning system, such as an artificial neural network, for example. The memory areas of both memory modules ( 11a , 11b ) each assigned to a layer of the machine learning system, in particular a layer of the artificial neural network. Alternatively, each memory area can be assigned to a neuron of the artificial neural network. In the embodiment of 1 are the memory areas of both memory modules ( 11a , 11b ) arranged according to an order of the layers of the machine learning system. The memory areas of the first and second memory modules, which are arranged in the same position according to the order, are assigned to the same layer. In other words, each layer is assigned to a memory area of the first and a memory area of the second memory module.

Die Speicherbereiche des ersten Speichermoduls (11a) sind jeweils über Verbindungen (12) mit jeweils einem gemäß der Reihenfolge nachfolgenden Speicherbereich des zweiten Speichermoduls (11b) verschaltet, die derjenigen Schicht zugeordnet sind, die der Schicht folgt, welcher dem jeweiligen Speicherbereich des ersten Speichermoduls (IIa) zugeordnet ist. Es sei angemerkt, dass diese Verbindungen in 1 nicht dargestellt sind. Ebenso sind die Speicherbereiche (13b) des zweiten Speichermoduls (11b) mit den nachfolgenden Bereichen (13a) mittels Verbindungen (12) verschaltet.The memory areas of the first memory module ( 11a) are each via connections ( 12th ) each with a memory area of the second memory module following the sequence ( 11b) interconnected, which are assigned to that layer which follows the layer which is assigned to the respective memory area of the first memory module (IIa). It should be noted that these connections are in 1 are not shown. So are they Memory areas ( 13b) of the second memory module ( 11b) with the following areas ( 13a) by means of connections ( 12th ) interconnected.

Vorzugsweise sind die Speicherbereiche der Speichermodule durch die Verbindung (12) über zumindest eine Recheneinheit (141) verschaltet. Die Recheneinheit (141) ist eingerichtet, die in dem jeweiligen Speicherbereich (13b) hinterlegte Zwischengröße zu verarbeiten, und in dem nachfolgenden Speicherbereich des anderen Speichermoduls zu hinterlegen. Die Recheneinheit (141) kann eingerichtet sein, die Rechenoperationen bzw. Berechnungen derjenigen Schicht durchzuführen, die in der Abfolge der Schichten des künstlichen neuronalen Netzes derjenigen Schicht folgt, welche dem nachfolgenden Speicherbereich zugeordnet ist.The memory areas of the memory modules are preferably connected through the connection ( 12th ) via at least one processing unit ( 141 ) interconnected. The arithmetic unit ( 141 ) is set up in the respective memory area ( 13b) to process the stored intermediate size, and to store it in the subsequent memory area of the other memory module. The arithmetic unit ( 141 ) can be set up to carry out the arithmetic operations or calculations of that layer which, in the sequence of layers of the artificial neural network, follows that layer which is assigned to the subsequent memory area.

Die Speicherbereiche (13a, 13b), welche an der gleichen Position der Reihenfolge der Speicherbereich der Speichermodule liegen, können jeweils mit der gleichen Recheneinheit (141) verschaltet sein.The memory areas ( 13a , 13b) , which are in the same position in the sequence of the memory area of the memory modules, can each with the same processing unit ( 141 ) be interconnected.

Denkbar ist, dass die Recheneinheit Zugriff auf einen weiteren Speicher (P) hat, in welchem Parameter der Schichten des maschinellen Lernsystems hinterlegt sind. Die Recheneinheit kann ferner eingerichtet sein, abhängig von den Parametern und der bereitgestellten Zwischengröße, diese gemäß der jeweiligen Schicht des maschinellen Lernsystems zu verarbeiten. Die Parameter können z.B. eine math. Funktion parametrisieren, die durch die Recheneinheit ausgeführt wird.It is conceivable that the processing unit has access to a further memory (P) in which parameters of the layers of the machine learning system are stored. The computing unit can also be set up, depending on the parameters and the provided intermediate variable, to process them according to the respective layer of the machine learning system. The parameters can e.g. be a math. Parameterize the function that is carried out by the processing unit.

Wird zum Beispiel eine Eingangsgröße durch ein sequenziell betriebenes künstliches neuronales Netz propagiert, kann die Eingangsgröße in einem ersten Speicherbereich (13b) des zweiten Speichermoduls (11b) hinterlegt werden. Daraufhin wird über die Verbindung (12) die Eingangsgröße der Recheneinheit (141) bereitgestellt, die die Eingangsgröße verarbeitet, entsprechend den Berechnungen, die die erste Schicht des künstlichen neuronalen Netzes durchführt. Daraufhin wird die verarbeitete Eingangsgröße, die als Zwischengröße bezeichnet werden kann, in dem zweiten Speicherbereich des ersten Speichermoduls (IIa) hinterlegt. Daraufhin wird die Zwischengröße aus dem zweiten Speicherbereich geladen und mittels der Recheneinheit (141) oder mittels einer weiteren Recheneinheit (142) verarbeitet und in dem dritten Speicherbereich des zweiten Speichermoduls (11b) hinterlegt. Dieses alternierende Laden und Speichern zwischen dem ersten und zweiten Speichermodul (11a,11b) wird dann solange ausgeführt, bis die Zwischengröße im letzten Speicherbereich eines der beiden Speichermodule (IIa, 11b) hinterlegt ist und als Ausgangsgröße des künstlichen neuronalen Netzes ausgegeben werden kann.For example, if an input variable is propagated through a sequentially operated artificial neural network, the input variable can be stored in a first memory area ( 13b) of the second memory module ( 11b) be deposited. The connection ( 12th ) the input variable of the arithmetic unit ( 141 ) which processes the input variable according to the calculations carried out by the first layer of the artificial neural network. The processed input variable, which can be referred to as the intermediate variable, is then stored in the second memory area of the first memory module (IIa). Thereupon the intermediate variable is loaded from the second memory area and by means of the arithmetic unit ( 141 ) or by means of another processing unit ( 142 ) processed and stored in the third memory area of the second memory module ( 11b) deposited. This alternating loading and saving between the first and second memory module ( 11a , 11b ) is then carried out until the intermediate variable is stored in the last memory area of one of the two memory modules (IIa, 11b) and can be output as the output variable of the artificial neural network.

In einer weiteren Ausführungsform kann das künstliche neuronale Netz unter Verwendung eines Steuerungsmusters betrieben werden. D.h. den Schichten des künstlichen neuronalen Netzes wird eine Steuergröße zugeordnet, die eine Reihenfolge von Berechnungen charakterisiert, nach welcher die Schicht entweder abhängig oder unabhängig von dieser Reihenfolge ihre Berechnungen durchführen. Für weitere Details über das Steuerungsmuster wird auf das eingangs genannte Dokument der Autoren Fischer et al. verwiesen. In dieser Ausführungsform können die Recheneinheiten (141,142) abhängig von dem Steuerungsmuster ihre Berechnungen parallel durchführen, insbesondere dann, wenn das Steuerungsmuster charakterisiert, dass die Schichten unabhängig von der Reihenfolge betrieben werden.In a further embodiment, the artificial neural network can be operated using a control pattern. In other words, the layers of the artificial neural network are assigned a control variable which characterizes a sequence of calculations according to which the layer carries out its calculations either as a function of or independently of this sequence. For further details on the control pattern, please refer to the authors' document mentioned at the beginning Fischer et al. referenced. In this embodiment, the arithmetic units (141, 142) perform their calculations in parallel depending on the control pattern, in particular if the control pattern characterizes that the layers are operated independently of the sequence.

Für den Fall, dass das künstliche neuronale Netz gemäß einem strömenden Steuerungsmuster gesteuert wird, also wenn alle Schichten des künstlichen neuronalen Netzes unabhängig von der Reihenfolge betrieben werden, werden alle Recheneinheiten (141,142) gleichzeitig betrieben. Die Recheneinheiten (141,142) verarbeiten dann zu jedem Verarbeitungsschritt alle Zwischengrößen der Speicherbereiche eines der Speichermodule (IIa) und hinterlegen die verarbeiteten Zwischengrößen in den jeweils nachfolgenden Speicherbereichen des anderen Speichermoduls (IIb). D.h. alle Zwischengrößen werden aus einem der Speicherbereiche geladen und alle verarbeiteten Zwischengrößen werden dann in dem anderen Speicherbereich hinterlegt. Dies geschieht dann alternierend zwischen den zwei Speicherbereichen.In the event that the artificial neural network is controlled according to a flowing control pattern, i.e. when all layers of the artificial neural network are operated independently of the sequence, all computing units ( 141 , 142 ) operated simultaneously. The arithmetic units ( 141 , 142 ) then process all intermediate sizes of the storage areas of one of the storage modules (IIa) for each processing step and store the processed intermediate sizes in the respective subsequent storage areas of the other storage module (IIb). In other words, all intermediate sizes are loaded from one of the memory areas and all processed intermediate sizes are then stored in the other memory area. This then takes place alternately between the two memory areas.

2 zeigt schematisch ein Flussdiagramm eines Verfahrens (30) zum Betreiben des Datenspeichers nach 1. 2 shows schematically a flow diagram of a method ( 30th ) to operate the data memory 1 .

Das Verfahren (30) beginnt mit Schritt 31. Hierin wird dem Datenspeicher aus 1 eine Eingangsgröße des künstlichen neuronalen Netzes bereitgestellt. Die Eingangsgröße wird in einem ersten Speicherbereich (13a,13b) eines der beiden Speichermodule (IIa, 11b) hinterlegt.The procedure ( 30th ) starts with step 31 . This is where the data store is made 1 an input variable of the artificial neural network is provided. The input variable is stored in a first memory area ( 13a , 13b ) one of the two memory modules (IIa, 11b) is deposited.

Im nachfolgenden Schritt 32 werden die Recheneinheiten (141,142) abhängig von dem Steuerungsmuster, welches dem künstlichen neuronalen Netz zugeordnet ist, betrieben. Hierbei laden die Recheneinheit die Zwischengröße, dann, wenn sie gemäß dem Steuerungsmuster die Zwischengröße verarbeiten müssen, aus dem jeweiligen Speicherbereich, verarbeiten diese Zwischengröße und hinterlegen diese in dem nachfolgenden Speicherbereich des anderen Speichermoduls.In the next step 32 the arithmetic units ( 141 , 142 ) operated depending on the control pattern that is assigned to the artificial neural network. In this case, the arithmetic unit loads the intermediate variable from the respective memory area when it has to process the intermediate variable in accordance with the control pattern, process this intermediate variable and store it in the subsequent memory area of the other memory module.

Der Schritt 32 wird solange ausgeführt, bis die Eingangsgröße vollständig durch das künstliche neuronale Netz propagiert wurde.The step 32 is carried out until the input variable has been completely propagated through the artificial neural network.

Nachdem Schritt 32 beendet wurde, folgt Schritt 33. Hierin wird der Inhalt des letzten Speicherbereichs ausgegeben, in welchem die Ausgangsgröße des künstlichen neuronalen Netzes hinterlegt ist.After step 32 is finished, step follows 33 . The content of the last memory area in which the output variable of the artificial neural network is stored is output here.

Denkbar ist auch, dass dann, wenn das künstliche neuronale Netz eine Sequenz von Eingangsgrößen verarbeitet, die Schritte 31 und 32 so oft wiederholt wird, bis die Sequenz vollständig durch das künstliche neuronale Netz propagiert wurde.It is also conceivable that when the artificial neural network processes a sequence of input variables, the steps 31 and 32 is repeated until the sequence has been completely propagated through the artificial neural network.

ZITATE ENTHALTEN IN DER BESCHREIBUNGQUOTES INCLUDED IN THE DESCRIPTION

Diese Liste der vom Anmelder aufgeführten Dokumente wurde automatisiert erzeugt und ist ausschließlich zur besseren Information des Lesers aufgenommen. Die Liste ist nicht Bestandteil der deutschen Patent- bzw. Gebrauchsmusteranmeldung. Das DPMA übernimmt keinerlei Haftung für etwaige Fehler oder Auslassungen.This list of the documents listed by the applicant was generated automatically and is included solely for the better information of the reader. The list is not part of the German patent or utility model application. The DPMA assumes no liability for any errors or omissions.

Zitierte PatentliteraturPatent literature cited

  • DE 202018104373 U1 [0003]DE 202018104373 U1 [0003]

Zitierte Nicht-PatentliteraturNon-patent literature cited

  • Fischer, V., Köhler, J. und Pfeil, T. in der Veröffentlichung „The streaming rollout of deep networkstowards fully model-parallel execution“, Advances in Neural Information Processing Systems (pp. 4043-4054) [0003]Fischer, V., Köhler, J. and Pfeil, T. in the publication "The streaming rollout of deep networkstowards fully model-parallel execution", Advances in Neural Information Processing Systems (pp. 4043-4054) [0003]
  • Fischer et al. verwiesen. In dieser Ausführungsform können die Recheneinheiten (141,142) [0042]Fischer et al. referenced. In this embodiment, the computing units (141, 142) [0042]

Claims (10)

Datenspeicher zum Hinterlegen von Zwischengrößen eines maschinellen Lernsystems, insbesondere eines künstlichen neuronalen Netzes, umfassend ein erstes und zweites Speichermodul (11a,11b), die jeweils eingerichtet sind, die Zwischengrößen des maschinellen Lernsystems zu speichern, wobei die zwei Speichermodule (11a,11b) für jede Zwischengröße jeweils einen Speicherbereich (13a,13b) aufweisen, wobei die Speicherbereiche (13a) des ersten Speichermoduls (IIa) mit jeweils einem Speicherbereich (13b) des zweiten Speichermoduls (11b) und die Speicherbereiche (13a) des zweiten Speichermoduls (11b) mit jeweils einem Speicherbereich (13b) des ersten Speichermoduls (11a) verschaltet sind, sodass die Zwischengrößen aus den Speicherbereichen der zwei Speichermodule auslesbar und diese, insbesondere verarbeiteten, Zwischengrößen in den verbundenen Speicherbereichen des jeweils anderen Speichermoduls hinterlegbar sind.Data memory for storing intermediate values of a machine learning system, in particular an artificial neural network, comprising a first and a second memory module (11a, 11b) which are each set up to store the intermediate variables of the machine learning system, wherein the two memory modules (11a, 11b) each have a memory area (13a, 13b) for each intermediate size, wherein the memory areas (13a) of the first memory module (IIa) each with a memory area (13b) of the second memory module (11b) and the memory areas (13a) of the second memory module (11b) each with a memory area (13b) of the first memory module (11a) are interconnected so that the intermediate variables can be read out from the memory areas of the two memory modules and these, in particular processed, intermediate variables can be stored in the connected memory areas of the respective other memory module. Datenspeicher nach Anspruch 1, wobei die Speicherbereiche (13a,13b) des ersten und des zweiten Speichermoduls (11a,11b) gemäß einer Reihenfolge von Berechnungen der Zwischengrößen, insbesondere nach der Reihenfolge der Berechnungen der Schichten des maschinellen Lernsystems, angeordnet sind, wobei die Speicherbereiche (13a) des ersten Speichermoduls (11a) jeweils mit zumindest einem gemäß der Reihenfolge unmittelbar nachfolgenden Speicherbereich des zweiten Speichermoduls (11b) und die Speicherbereiche (13b) des zweiten Speichermoduls (11b) jeweils mit zumindest einem gemäß der Reihenfolge unmittelbar nachfolgenden Speicherbereich des ersten Speichermoduls (11a) verschaltet sind.Data storage after Claim 1 , wherein the memory areas (13a, 13b) of the first and the second memory module (11a, 11b) are arranged according to a sequence of calculations of the intermediate variables, in particular according to the sequence of calculations of the layers of the machine learning system, the memory areas (13a) of the first memory module (11a) each with at least one immediately following memory area of the second memory module (11b) and the memory areas (13b) of the second memory module (11b) each with at least one immediately following memory area of the first memory module (11a) according to the order are. Datenspeicher nach Anspruch 2, wobei jeweils einer der Speicherbereiche beider Speichermodule (11a,11b) zusätzlich mit demjenigen Speicherbereich des anderen Speichermoduls verschaltet ist, der an einer gleichen Position der Reihenfolge liegt, und/oder wobei jeweils einer der Speicherbereiche der zwei Speichermodule zusätzlich mit einem nicht unmittelbar nachfolgenden Speicherbereich des anderen Speichermoduls verschaltet ist.Data storage after Claim 2 , with one of the memory areas of both memory modules (11a, 11b) additionally interconnected with that memory area of the other memory module that is in the same position in the sequence, and / or with one of the memory areas of the two memory modules additionally with a memory area that is not immediately following of the other memory module is interconnected. Datenspeicher nach einem der vorhergehenden Ansprüche, wobei die Speicherbereiche der zwei Speichermodule durch zumindest eine Recheneinheit verschaltet sind, und wobei die Recheneinheit eingerichtet ist, mathematische Operatoren auf die ausgelesenen Zwischengrößen auszuführen.Data memory according to one of the preceding claims, wherein the memory areas of the two memory modules are interconnected by at least one processing unit, and wherein the arithmetic unit is set up to execute mathematical operators on the intermediate variables that have been read out. Verfahren zum Betreiben des Datenspeichers nach einem der vorhergehenden Ansprüche, umfassend die Schritte: Laden einer Zwischengröße aus einem Speicherbereich eines der Speichermodule; Ermitteln einer neuen Zwischengröße abhängig von der geladenen Zwischengröße mittels einer vorgebbaren, insbesondere parametrisierbaren, Funktion; und Hinterlegen der neuen Zwischengröße in einem, insbesondere nachfolgenden, Speicherbereich des anderen Speichermoduls.Method for operating the data memory according to one of the preceding claims, comprising the steps: Loading an intermediate size from a memory area of one of the memory modules; Determining a new intermediate variable as a function of the loaded intermediate variable by means of a predeterminable, in particular parameterizable, function; and Storing the new intermediate size in a, in particular a subsequent, memory area of the other memory module. Verfahren nach Anspruch 5, wobei die Schritte des Ladens und des Ermittelns und des Hinterlegens abhängig von einem Steuerungsmuster (engl. rollout pattern) ausgeführt wird, wobei die Zwischengrößen alternierend in den Speicherbereichen der Speichermodule ausgelesen und hinterlegt werden.Procedure according to Claim 5 , wherein the steps of loading and determining and storing is carried out as a function of a control pattern (rollout pattern), the intermediate variables being read out and stored alternately in the memory areas of the memory modules. Verfahren nach Anspruch 6, wobei das Steuerungsmuster einem strömenden Steuerungsmuster (engl. streaming rollout) entspricht, und wobei beim Schritt des Ermittelns alle neuen Zwischengrößen gleichzeitig ermittelt werden.Procedure according to Claim 6 , wherein the control pattern corresponds to a streaming control pattern (English. Streaming rollout), and in the step of determining all new intermediate variables are determined simultaneously. Verfahren nach Anspruch 6 oder 7, wobei dann, wenn das maschinelle Lernsystem eine Überbrückungsverbindung aufweist, die abhängig vom dem Steuerungsmuster Zwischengrößen über mehr als einen Lese-und Schreib-Zyklus überbrückt, dann wird die Zwischengröße des Speicherbereichs verzögert für den Schritt des Ermittelns bereitgestellt.Procedure according to Claim 6 or 7th If the machine learning system has a bridging connection which, depending on the control pattern, bridges intermediate variables over more than one read and write cycle, then the intermediate size of the memory area is provided with a delay for the step of determining. Computerprogramm, welches Befehle umfasst, die eingerichtet sind, beim Ausführen dieser auf einem Computer, den Computer zu veranlassen, das Verfahren nach einem der Ansprüche 5 bis 8 auszuführen.Computer program which comprises instructions which are set up, when they are executed on a computer, to cause the computer to carry out the method according to one of the Claims 5 to 8th to execute. Maschinenlesbares Speicherelement auf welchem das Computerprogramm nach Anspruch 9 hinterlegt ist.Machine-readable memory element on which the computer program is based Claim 9 is deposited.
DE102019214010.6A 2019-09-13 2019-09-13 Data storage and method of operating the data storage Pending DE102019214010A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
DE102019214010.6A DE102019214010A1 (en) 2019-09-13 2019-09-13 Data storage and method of operating the data storage

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE102019214010.6A DE102019214010A1 (en) 2019-09-13 2019-09-13 Data storage and method of operating the data storage

Publications (1)

Publication Number Publication Date
DE102019214010A1 true DE102019214010A1 (en) 2021-03-18

Family

ID=74686493

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102019214010.6A Pending DE102019214010A1 (en) 2019-09-13 2019-09-13 Data storage and method of operating the data storage

Country Status (1)

Country Link
DE (1) DE102019214010A1 (en)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040073764A1 (en) * 2002-07-31 2004-04-15 Bea Systems, Inc. System and method for reinforcement learning and memory management
US20160239706A1 (en) * 2015-02-13 2016-08-18 Qualcomm Incorporated Convolution matrix multiply with callback for deep tiling for deep convolutional neural networks
US10346093B1 (en) * 2018-03-16 2019-07-09 Xilinx, Inc. Memory arrangement for tensor data

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040073764A1 (en) * 2002-07-31 2004-04-15 Bea Systems, Inc. System and method for reinforcement learning and memory management
US20160239706A1 (en) * 2015-02-13 2016-08-18 Qualcomm Incorporated Convolution matrix multiply with callback for deep tiling for deep convolutional neural networks
US10346093B1 (en) * 2018-03-16 2019-07-09 Xilinx, Inc. Memory arrangement for tensor data

Similar Documents

Publication Publication Date Title
DE102017120588A1 (en) Instruction set architecture for neural networks
DE3883192T2 (en) Neural network circuit and structure.
EP0894304B2 (en) Process for automatic diagnosis of technical systems taking into consideration efficient knowledge acquisition and efficient processing in relation to operational time
EP3701433B1 (en) Method, device and computer program for developing a deep neural network
WO2013170843A1 (en) Method for training an artificial neural network
DE102010028259A1 (en) A microcontroller having a computing unit and a logic circuit and method for performing calculations by a microcontroller for control or in-vehicle control
EP2799983B1 (en) Flexible distribution of I/O channels of a hardware component
DE112019000676T5 (en) CENTRAL SCHEDULER AND INSTRUCTION ASSIGNMENT FOR A NEURAL INFERENCE PROCESSOR
EP4000010A1 (en) Device and computer-implemented method for the processing of digital sensor data and training method for same
DE102014225039A1 (en) Method and apparatus for providing sparse Gaussian process models for calculation in an engine control unit
DE69416615T2 (en) Mechanism for filtering production rules and inference machine for expert system with such a mechanism
EP3786853A1 (en) Compression of a deep neural network
EP3785178B1 (en) Method and device for determining a network-configuration of a neural network
EP2363809A1 (en) Method for optimizing a control program for actuators
WO2020207786A1 (en) Method, device, and computer program for operating a deep neural network
DE102019112186A1 (en) Double load command
DE102019214010A1 (en) Data storage and method of operating the data storage
DE102019214436A1 (en) Method, device and computer program for operating an artificial neural network
DE102019206541A1 (en) Method for performing computer-aided XiL simulations
DE102015208513A1 (en) Method and apparatus for calculating a data-based multi-output functional model
DE102013114508A1 (en) Block-based signal processing
DE102012102373A1 (en) A method of estimating a resource consumption when generating a controller program code
DE102019132624A1 (en) Method, device, computer program and computer-readable storage medium for creating a motion cueing algorithm
DE102019211829A1 (en) Computing unit, method and computer program for multiplication
DE102014208379A1 (en) Method and device for determining a function value of a data-based function model inverted relative to an input variable

Legal Events

Date Code Title Description
R163 Identified publications notified