DE102019214010A1 - Data storage and method of operating the data storage - Google Patents
Data storage and method of operating the data storage Download PDFInfo
- 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
Links
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/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
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
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.
Die Speicherbereiche des ersten Speichermoduls (
Vorzugsweise sind die Speicherbereiche der Speichermodule durch die Verbindung (
Die Speicherbereiche (
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 (
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
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 (
Das Verfahren (
Im nachfolgenden Schritt
Der Schritt
Nachdem Schritt
Denkbar ist auch, dass dann, wenn das künstliche neuronale Netz eine Sequenz von Eingangsgrößen verarbeitet, die Schritte
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)
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)
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 |
-
2019
- 2019-09-13 DE DE102019214010.6A patent/DE102019214010A1/en active Pending
Patent Citations (3)
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 |