WO2022053502A1 - Device implementing a convolution filter of a neural network - Google Patents

Device implementing a convolution filter of a neural network Download PDF

Info

Publication number
WO2022053502A1
WO2022053502A1 PCT/EP2021/074687 EP2021074687W WO2022053502A1 WO 2022053502 A1 WO2022053502 A1 WO 2022053502A1 EP 2021074687 W EP2021074687 W EP 2021074687W WO 2022053502 A1 WO2022053502 A1 WO 2022053502A1
Authority
WO
WIPO (PCT)
Prior art keywords
convolution
frequency
neurons
input
output
Prior art date
Application number
PCT/EP2021/074687
Other languages
French (fr)
Inventor
Nathan LEROUX
Julie Grollier
Alice MIZRAHI
Danijela Markovic
Original Assignee
Thales
Centre National De La Recherche Scientifique
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 Thales, Centre National De La Recherche Scientifique filed Critical Thales
Publication of WO2022053502A1 publication Critical patent/WO2022053502A1/en

Links

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
    • G06N3/065Analogue 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
    • G06N3/045Combinations of networks

Definitions

  • the present invention relates to a device physically implementing a convolutional filter of a neural network as well as a system physically implementing a convolutional neural network comprising such a device.
  • a CPU is a processor, the acronym CPU coming from the English term “Central Processing Unit” literally meaning central processing unit while a GPU is a graphics processor, the acronym GPU coming from the English term “Graphie Processing Unit” literally meaning graphics unit treatment.
  • a neural network is generally made up of a succession of layers of neurons, each of which takes its inputs from the outputs of the previous layer. More precisely, each layer comprises neurons taking their inputs from the outputs of the neurons of the previous layer. Each layer is connected by a plurality of synapses. A synaptic weight is associated with each synapse. It is a real number, which takes both positive and negative values. For each layer, the input of a neuron is the weighted sum of the outputs of the neurons of the previous layer, the weighting being made by the synaptic weights.
  • a deep neural network is a network with more than three layers of neurons and a large number of neurons per layer.
  • the network further comprises a large number of layers capable of performing convolution operations.
  • a Von Neumann funnel problem also called Von Neumann bottleneck according to its English name
  • the implementation of a deep neural network involves use both the memory(s) and the processor while these latter elements are spatially separated. This results in congestion of the communication bus between the memory or memories and the processor.
  • CMOS Complementary Metal Oxide Semiconductor
  • CMOS Complementary Metal Oxide Semiconductor
  • CMOS designates both a manufacturing process and a component obtained by such a manufacturing process.
  • a neural network based on technologies of the optical type is also known.
  • CMOS neural networks and CMOS synapses are synapses using memristors.
  • memristor or memristance
  • the name is a portmanteau word formed from the two English words memory and resistor.
  • a memristor stores information efficiently because the value of its electrical resistance changes permanently when a current is applied.
  • each neuron occupies several tens of micrometers per side.
  • each synapse also occupies several tens of micrometers per side.
  • the number of neurons and synapses which can be integrated is limited, which results in a reduction in the performance of the neural network.
  • the present description proposes a device physically implementing a convolution filter of a neural network, the convolution filter taking as input an input table coded according to at least one input channel to obtain as output a table output coded according to at least one output channel, the input table being a set of input boxes arranged according to an input matrix, each box presenting a value specific to each input channel, a first layer of neurons physically implementing the input table, each neuron of the first layer of neurons being an oscillator, in particular a radio frequency oscillator, oscillating at a natural frequency, each neuron of the first layer of neurons corresponding in a one-to-one manner to the value of a box of an input channel, the output table being a set of output boxes arranged according to an output matrix, each box presenting a value specific to each output channel, a second layer of neurons physically implementing the output table, each neuron of
  • the device physically implements a convolution filter of a neural network, the convolution filter transforming an input table coded according to at least one input channel to obtain at output an output table coded according to at least one output channel using a set of convolution kernels, the input array and the output array being physically implemented by respective neurons of the first layer and neurons of a second layer, respectively, each neuron being an oscillator oscillating at a natural frequency, the device comprising sets of synaptic chains each formed by resonators in series, each set of synaptic chains applying a respective convolution kernel, each resonator having a frequency adjusted by a frequency adjustment unit so that the frequency of the resonator is equal to the resonant frequency to which is added a frequency shift depending on the convolution coefficient of the convolution kernel to be applied to the neuron for the set of synaptic chains to apply the convolution kernel to be implemented.
  • a device that physically implements a convolution filter of a neural network, the convolution filter being capable of applying a set of convolution coefficients to a set of input values ordered according to a first order to obtain a set of output values ordered according to a second order, the set of convolution coefficients being arranged according to a third order, the first order, the second order and the third order are each a line-to-line traversal successively for each channel of a matrix corresponding in a representation of the operation of a convolution filter in the form of a matrix operation where each matrix is a set of boxes where each box has a value specific to at least one channel.
  • the device comprises a first layer of neurons, each neuron of which is an oscillator, in particular a radiofrequency oscillator, oscillating at a natural frequency and physically implements a respective input value, the neurons being aligned on the same first column according to the first order.
  • the device also comprises a second layer of neurons, each neuron of which is an oscillator, in particular a radio frequency oscillator, oscillating at a natural frequency and physically implements a respective output value, the neurons being aligned on the same second column according to the second order, the second column being parallel to the first column.
  • the device also comprises sets of synaptic chains, each synaptic chain comprising synapses in series physically implementing a respective convolution coefficient on at least one input value, each synapse being linked to the neuron of the first layer of neurons physically implementing the value input on which the convolution coefficient of said synapse is to be applied, each synapse being a resonator, in particular a spintronic resonator, having a resonance frequency, and having a frequency adjustable by a frequency adjustment unit so that the frequency of the resonator is equal to the resonance frequency to which is added an offset in frequency depending on the respective convolution coefficient that the resonator physically implements, the resonators of the same synaptic chain being arranged according to the third order, each synaptic chain being connected to a neuron of the second layer of neurons, the synaptic chains being parallel to each other and arranged in a direction perpendicular to the two columns, the resonators physically implementing the same coefficients of the convolution filter being spatially align
  • the device comprises one or more of the following characteristics when technically possible:
  • the frequency adjustment unit is the same for the resonators of the same set of synaptic chains for which the convolution coefficient to be applied is identical.
  • the device comprising at least one amplifier positioned either at the input or at the output.
  • each frequency adjustment unit is chosen from the list consisting of a direct current applicator, a current pulse applicator and a voltage applicator.
  • the resonators are arranged in a matrix whose columns are the resonators having the same convolution coefficient to be applied.
  • the device comprises a summing of the signals coming from the neurons of the first layer of neurons.
  • the resonators are connected to at most two neurons of the first layer of neurons.
  • the synaptic chains are parallel to a line along which the neurons of the first layer of neurons are arranged.
  • each resonator is connected to a single neuron of the first layer of neurons.
  • the present description also proposes a system physically implementing a convolutional neural network comprising a device as previously described.
  • FIG. 3 a schematic representation of an example of a device forming part of the system of Figure 1, the device physically implementing the convolution filter of Figure 2;
  • FIG. 10 A system 10 physically implementing a neural network is shown in FIG.
  • the system 10 physically implements a neural network comprising a set of layers of neurons and interconnections connecting one layer of neurons to another layer of neurons.
  • system 10 includes circuits 12 implementing layers and devices 14 implementing interconnects.
  • Each layer 12 of neurons is a set of at least two neurons 16.
  • a neuron or a nerve cell
  • Neurons transmit a bioelectrical signal called a nerve impulse.
  • Neurons have two physiological properties: excitability, i.e. the ability to respond to stimulation and convert it into nerve impulses, and conductivity, i.e. the ability to transmit signals. impulses.
  • excitability i.e. the ability to respond to stimulation and convert it into nerve impulses
  • conductivity i.e. the ability to transmit signals. impulses.
  • the behavior of biological neurons is imitated by a mathematical function which has the property of being non-linear (to be able to transform the input in a useful way) and preferentially of being differentiable (to allow the gradient backpropagation learning).
  • a neuron 16 is a component performing an equivalent function.
  • the layers of neurons 12 are ordered, so that it is possible to define an index for each layer of neurons 12.
  • upstream and downstream are defined in relation in the increasing sense of this index.
  • each neuron 16 is an oscillator.
  • each oscillator is an oscillator whose frequency is between 1 MegaHertz (MHz) up to several TeraHertz (THz).
  • MHz MegaHertz
  • THz TeraHertz
  • An oscillator is a device suitable for generating oscillations having a controlled amplitude and a fixed or controlled frequency on one or more output(s).
  • the frequency of oscillation of a neuron 16 is the frequency of the oscillation presenting the greatest amplitude (the amplitude being defined in peak to peak) .
  • the neurons 16 have a respective oscillation frequency. This means that the oscillation frequencies of all the oscillators of the same layer are distinct two by two.
  • the output signal of a neuron 16 is a radiofrequency electric current, a radiofrequency electromagnetic field or a spin wave.
  • Spin waves are fluctuations in the magnetization of ferromagnetic materials around the magnetization equilibrium position.
  • the spin wave can be localized or propagate.
  • a ferromagnetic material has a spontaneous magnetization, unlike non-magnetic materials.
  • magnetization is a vector quantity that characterizes the magnetic behavior of a sample of matter on a macroscopic scale. Magnetization originates from the orbital magnetic moment and the spin magnetic moment of electrons or atoms.
  • each neuron 16 is a CMOS oscillator.
  • the oscillators are made with laser signals, and elements having a non-linear optical transmission, which would have the advantage of the high speed of information (speed of light), but also the disadvantage of the size. components, and the high energy consumption of lasers.
  • each neuron 16 is a spintronic oscillator.
  • Such an implementation reduces the size of the first implementation.
  • Antiferromagnetism is a property of certain magnetic media. Unlike ferromagnetic materials, in antiferromagnetic materials, the exchange interaction between neighboring atoms leads to an antiparallel alignment of atomic magnetic moments. The total magnetization of the material is then zero. Like ferromagnets, these materials become paramagnetic above a transition temperature called the NéeL temperature.
  • Antiferromagnetism is distinct from ferromagnetism, which designates the ability of certain bodies to become magnetized under the effect of an external magnetic field and to keep part of this magnetization.
  • spintronics spin electronics or magnetoelectronics
  • a spintronic component is a component that exploits the quantum property of the spin of electrons in order to store or process information.
  • spintronic oscillators generate harmonic signals.
  • a neuron 16 comprises, for example, a pillar with a characteristic diameter of between 3 nanometers (nm) and 1 micrometer (pm) and means for injecting a supply current through the pillar.
  • the pillar comprises a pattern consisting of several layers, superimposed along a stacking direction of the layers, namely a first layer of a ferromagnetic material, an intermediate layer of a non-magnetic material, and a second layer of a ferromagnetic material.
  • the pillar respectively comprises lower and upper layers which are arranged on either side of the pattern and constitute contacts allowing the injection of a supply current through the layers.
  • the means suitable for allowing the injection of a supply current through the pillar are a current source capable of delivering either a direct current, or an alternating current adjustable in intensity and frequency, or both, and electrodes.
  • oscillators have the disadvantage of their relatively high noise level, but the advantage of low power consumption and small size.
  • spintronic oscillators are used, such as transfer oscillators whose stack is magnetic tunnel junctions.
  • the direct current crossing the junction makes it possible to oscillate the magnetization of the upper ferromagnetic layer, and therefore to oscillate the resistance of the junction by tunnel magnetoresistance effect.
  • a direct current therefore makes it possible to generate an alternating voltage.
  • the interconnects each perform one or more specific operations.
  • the neural network is a convolutional neural network.
  • Such a neural network is capable of implementing a plurality of convolution filters.
  • the convolution filter FC takes as input an input table IE coded according to at least one input channel to obtain as output an output table IS coded according to at least one output channel.
  • the IE input array is a set of input bins arranged in an input matrix, each bin presenting a value specific to each input channel.
  • the letter "I” is used to designate the table because any table corresponds to an image, that is to say a set of pixels.
  • a specific example of such an IE input array is a color image.
  • a color image is an IE input table coded according to the values of the pixel in three colors, typically according to an RGB coding.
  • the input table IE is a first set of input boxes arranged according to an input matrix whose value is the red component of the color image, a second set of input boxes also arranged according to the input matrix having as its value the green component of the color image and a third set of boxes also arranged according to the input matrix and having as value the blue component of the color image.
  • the input matrix is a set of rows each identified by an index i and by a set of columns identified by an index j.
  • the index i is an integer whose value is between 1 and NH, NH being the total number of rows of the input matrix.
  • the index j is an integer whose value is between 1 and Nw, Nw being the total number of columns of the input matrix.
  • each element of the input matrix is identified by a couple (i, j).
  • each element of the input array IE is identified, not simply by the pair (i, j), but indeed by a triplet (i, j, c), c being the channel index which is an integer varying between 1 and Ne the number of channels of the IE input table.
  • an element of the input matrix will thus be denoted Xj,j, c and an element of the input array IE will be denoted Xij.
  • each element of the output matrix by a triplet (a, b, m), hence the notation z a ,b, m for an element of the output matrix and z a ,b for an element of the IS output image.
  • the index a is an integer whose value is between 1 and h, where h is the total number of rows of the output matrix.
  • the subscript b is an integer whose value is between 1 and I, where I is the total number of columns of the output matrix.
  • the index m is the channel index which is an integer varying between 1 and N m the number of channels of the output table IS.
  • the convolution filter FC is a set of convolution kernels NC, the set of convolution kernels NC applied to the input array IE to obtain the output image IS.
  • Each NC convolution kernel is specific to an output channel.
  • the example NC convolution kernel shown in Figure 2 is specific to output channel m.
  • Each convolution kernel NC delimits a subset presenting a size strictly lower than the size of the input matrix.
  • the total number of rows of the matrix subset is strictly less than the total number NH of rows of the input matrix and that the total number of columns of the matrix subset is strictly less than the number total Nw of columns of the input matrix.
  • the total number of rows of the matrix subset is equal to the total number NH of rows of the input matrix and/or the total number of columns of the matrix subset is equal to the total number N w of columns of the input matrix. This is particularly relevant when one-dimensional convolutions are applied successively, for example a horizontal convolution and a vertical convolution.
  • the convolution kernel NC has three rows and three columns, which means that the convolution kernel NC is square in the particular case of Figure 2.
  • the convolution kernel matrix subset NC includes a set of convolution coefficients.
  • the convolution kernel NC is a set of rows each identified by an index p and a set of columns identified by an index q.
  • the index p is an integer whose value is between 1 and HH, HH being the total number of rows of the convolution kernel NC.
  • the index q is an integer whose value is between 1 and nw, where nw is the total number of columns of the convolution kernel NC.
  • the value of the convolution coefficient also depends on the input channel and the output channel considered.
  • the application of the NC convolution kernel for the or each input channel to a matrix subset of the input matrix, a first element of which is an input box having first coordinates gives the value of a box of output having the first coordinates for the output matrix according to the output channel specific to the applied NC convolution kernel.
  • the first element of the IS output array namely zi,i,m is the result of applying the convolution kernel NC corresponding to the channel m to the nine elements Xu , xi,2, xi ,3, X2,i, X2,2, X2,3, X3,i, X3,2 and x 3,3 of the IE input table.
  • the first element of the output table IS zi ,1 , m is a weighted sum of 27 terms corresponding to the value of the aforementioned nine elements of the input image IE for channel 1 , channel 2 and channel 3.
  • the weighting is done using the convolution coefficients w p ,q, c , m of the convolution kernel NC.
  • bias weight could also be added to the overall sum.
  • Such a bias weight is specific to the output channel considered and would be denoted PB m .
  • This bias weight is neglected in the rest of the presentation and would be easily implemented by adding a voltage with a CMOS component before the input of each neuron 16.
  • Devices 14 in Figures 3-5 show physical implementations of such an FC convolution filter.
  • Devices 14 of FIGS. 3 to 5 are devices physically implementing an interconnection of FIG. 1 .
  • Each of the devices 14 corresponds to a frequency implementation of the preceding relationships.
  • Devices 14 are an interconnection between a first layer of neurons 12 and a second layer of neurons 12.
  • Each layer comprises a set of neurons 16 arranged along a line.
  • a line is defined as vertical or according to a column as being the line along which the neurons 16 of the first layer 12 are arranged.
  • the frequencies of oscillation of the neurons 16 are intended to represent the cells of the input table IE, it is possible for the case illustrated to write the frequencies of the oscillators as, in the order, fi,i,i,f -1,2,1, ⁇ , fi.Nw.-i, f2,i,2> ⁇ , fNh.Nw , f2,i,2, ... , fNh,Nw,Nc-
  • the device 14 comprises sets of synaptic chains 20 connected to voltage-current conversion circuits 18 as well as frequency adjustment units.
  • a synaptic chain 20 is a set of synapses 22 connected in series by at least one transmission line.
  • Each transmission line or field line is made by a metal track placed at a reasonably close distance above or below synapses 22 but electrically isolated from synapses 22.
  • the transmission of the signal can be done by field line, but also electrically with conventional lines. In the latter case, the transmission lines are not isolated from the synapses 22.
  • synapse designates a functional contact zone which is established between two neurons 16. Depending on its behavior, the biological synapse can excite or even inhibit the downstream neuron in response to the upstream neuron.
  • a positive synaptic weight corresponds to an excitatory synapse while a negative synaptic weight corresponds to an inhibitory synapse.
  • Biological neural networks learn by altering synaptic transmissions throughout the network.
  • formal neural networks can be trained to perform tasks by modifying synaptic weights according to a learning rule.
  • One of the most powerful learning rules today for training deep networks is gradient backpropagation.
  • a synapse 22 is a component performing a function equivalent to a synaptic weight of modifiable value.
  • synaptic chain or “chain 20” a set of synapses 22 connected in a chain, whose function is to connect all or a subset of neurons 16 from the upstream layer to the layer downstream. More specifically, the output of a synaptic chain 20 is proportional to the weighted sum of the outputs of the neurons 16 of the previous layer which are connected to the input of the chain 20, the weighting being made by the synaptic weights of the synapses 22 which constitute the chain 20.
  • Each synapse 22 is a spintronic resonator. Alternatively, each synapse 22 is realized by optical resonators if the neurons 16 are optical signals.
  • a resonator 22 is an electrical component having a resonant frequency. More precisely, the response of a resonator 22 to a radio frequency signal is higher in a certain range around the resonant frequency.
  • a spintronic resonator 22 is a magnetoresistive resonator.
  • a spintronic resonator 22 is an electrical component comprising one or more ferromagnetic layers and the magnetization of at least one of the layers of which can be put into resonant precession by a radiofrequency signal.
  • the precession of the magnetization causes a variation of the resistance of the resonator 22 by magneto-resistive effect.
  • the resonant frequency of the resonator 22 depends on the dimensions of the ferromagnetic layer, the magnetic field which is applied to the ferromagnetic layer and the ferromagnetic material or materials which form(s) the ferromagnetic layer.
  • each spintronic resonator 22 has an adjustable resonant frequency.
  • the resonators 22 are magnetic tunnel junctions (namely a ferromagnetic/insulator/ferromagnetic stack).
  • the current or the magnetic field makes the upper magnetic layer resonate, and therefore causes the resistance to oscillate thanks to the tunnel magnetoresistance effect.
  • the resonators 22 are spin valves (namely a ferromagnetic/metal/ferromagnetic stack).
  • the resonators 22 are simple lines of ferromagnetic metals
  • the Oersted field then created by the current crossing the magnetic line allows it to enter into resonance.
  • the resonators 22 are junctions with a Heavy Metal/Ferromagnetic/Insulator stack with a field line above.
  • the heavy metal is an alloy comprising one or more of the elements from the group consisting of Pt, W, Pd, Au, Ir, Ag and Bi.
  • the field line creates a radio frequency magnetic field which causes the ferromagnetic part to resonate.
  • the precession of the magnetization induces a spin current in the heavy metal part (metals with strong spin-orbit coupling, such as Pt, W, Pd%), and this spin current is converted into voltage thanks to the inverse spin Hall effect.
  • the voltage at the terminals of a resonator 22 as a function of the signal received is written according to the following formula:
  • A is a coefficient which depends in particular on the resistance of resonator 22, the magnetoresistance of resonator 22 and the impedance adaptation of resonator 22.
  • Each set of chains 20 is capable of applying a respective convolution kernel NC.
  • the number of strings 20 of the same set being equal to the number of boxes of the output table IS that the convolution kernel NC makes it possible to obtain by application on the input table IE.
  • Each chain 20 of a same set of chains 20 brings together the spintronic resonators 22 having a resonant frequency equal to the frequency of the neurons 16 implementing the values of the pixels of the matrix subset of the input matrix associated with the convolution kernel NC of the set of strings 20 and whose first element is an input pixel having respective coordinates.
  • the resonant frequency of the resonator 22 is close to the frequency of the neurons 16, which means that the frequency difference f RF - f res between the frequency of a resonator 22 and of its associated neuron 16 has an absolute value less than the term afres .
  • the first chain 20 comprises the 27 spintronic resonators 22 associated with the value of the aforementioned nine elements xi ,1 , xi, 2 , xi,3, x 2 ,i, x 2 , 2 , x 2 ,3, x 3 ,i, x 3 , 2 and x 3,3 of the IE input table for channel 1 , channel 2 and channel 3.
  • each resonator 22 has a respective frequency equal to the (“close” among the) frequencies of the neurons 16 encoding the value of the aforementioned elements.
  • each spintronic resonator 22 has a frequency adjusted by a frequency adjustment unit U so that the frequency of the resonator 22 is equal to the resonant frequency of the resonator to which is added a frequency offset depending on the convolution coefficient of the NC convolution kernel to be applied to the oscillator associated with the spintronic network.
  • the added frequency shift denoted S pqcm is such that the voltage across a resonator 22 is written: v
  • each resonator 22 This is indicated in FIG. 3 for each resonator 22 by a rectangle comprising a value corresponding to the resonance frequency and a value corresponding to the frequency shift to be applied.
  • the first chain 20 successively comprises a first resonator 22 at the frequency (fi,i,i + 5i,i,i,m), a second resonator 22 at the frequency (f-1,2,1 + 5i,2,i,m), ...., a ninth resonator 22 at the frequency (fs, 3,1 + ⁇ 3,3 ,i ,m), a tenth resonator 22 at the frequency (f 1 ,1 ,2 + 5i ,1 ,2,m), an eleventh resonator 22 at the frequency (fi ,2,2 + 5i ,2,2,m) , . . . .
  • the second chain 20 successively comprises a first resonator 22 at the frequency (fi, 2 ,i + 5i,i,i,m), a second resonator 22 at the frequency (f-1,3,1 + ôi,2 ,i, m ), a ninth resonator 22 at the frequency (fs,4,1+ ⁇ 3,3,i,m), a tenth resonator 22 at the frequency (f 1,2,2+5i,1,2, m), an eleventh resonator 22 at the frequency (fi, 3,2 + ôi, 2,2, m ), an eighteenth resonator 22 at the frequency (fs, 4, 2 + ô 3 , 3,2, m ), a nineteenth resonator 22 at the frequency (f 1 ,2,3 + 5i ,1 ,3,m) a twentieth resonator 22 at the frequency (f 1 ,3,3 + ôi ,2,3,m) , . . . . and a twenty-seven
  • the (h+1)-th chain 20 thus successively comprises a first resonator 22 at the frequency (fNa,Nt>,i +5i,i,i, m ), a second resonator 22 at the frequency (fNa,Nt>+ i,i + ôi ,2,i , m ), ⁇ ⁇ ⁇ ⁇ , a ninth resonator 22 at the frequency (fNa+2,Nb+2,i + ⁇ 3,3,i,m), a tenth resonator 22 at the frequency (fNa,Nt>,2 + ôi,i,2,m), an eleventh resonator 22 at the frequency (fNa,Nb+i ,2 + ôi ,2,2,m), ⁇ ⁇ ⁇ ⁇ , a eighteenth resonator 22 at the frequency (fNa+2,Nb+2,2 + ⁇ 3,3,2,m),
  • a frequency adjustment unit U is a direct current applicator.
  • the frequency adjustment unit U is the same for the spintronic resonators 22 of the same set of chains 20 for which the convolution coefficient to be applied is identical.
  • the frequency adjustment unit U is able to apply the same frequency shift to a rectilinear field line extending along a column, that is to say perpendicular to the direction in which the chain 20 extends.
  • the device 14 also comprises a summer 23 and an amplifier 24 placed between the first layer of neurons 12 and the input of the chains 20.
  • a summer 23 is a circuit making it possible to sum different types of signals on the same transmission channel.
  • the adder 23 is able to perform a sum of the signals from each of the neurons 16 of the first layer of neurons 12.
  • the adder 23 is, for example, produced by CMOS technology.
  • An amplifier 24 is an electronic system that increases the voltage and/or intensity of an electrical signal.
  • the amplifier 24 is able to amplify the summed signal.
  • the amplifier 24 is produced using CMOS technology.
  • Each conversion circuit 18 acts as a DC to DC converter.
  • the conversion circuit 18 comprises diodes.
  • a diode is connected to the output of each chain 20.
  • the diode is, for example, a CMOS type diode.
  • the diode makes it possible to transform the incident radiofrequency signal into a continuous signal. Any other device for performing the same function is possible.
  • a radio frequency power detector is used instead of a diode.
  • the device 14 also comprises an amplifier 26 at the output, that is to say an amplifier 26 between the conversion circuit 18 and the corresponding neuron 16 of the second layer of neurons 12.
  • the signal from neurons 16 is summed by adder 23 to obtain a summed signal.
  • Amplifier 24 amplifies the summed signal.
  • the signal thus amplified is sent to the input of each chain 20.
  • the frequency adjustment units apply the frequency shifts corresponding to the convolution coefficients to each resonator 22.
  • the first frequency adjustment unit U1 adds a first frequency offset (first weight)
  • the second frequency adjustment unit U2 adds a second frequency offset (second weight)
  • the third frequency adjustment unit U3 adds a third frequency offset (third weight)... and so on up to the twenty-seventh frequency adjustment unit U27 which adds a twenty-seventh frequency offset ( twenty-seventh weight).
  • each frequency adjustment unit U being a direct current applicator
  • a direct current is applied and passes through a field line.
  • a magnetic field is thus created.
  • the magnetic field then acts on the magnetization of a layer of the resonator 22.
  • the resonance frequency of a magnetic material evolves, in fact, in a linear manner with the applied magnetic field.
  • the signal obtained after interaction is then rectified by the resonator 22.
  • each synaptic chain 20 calculates the value of a box of the IS output table by interaction between the summed signal and each resonator 22 of the chain 20.
  • a set of strings 20 thus calculates the value of the set of cells of the output table IS for a channel.
  • Each set of chains 20 calculates an IS output table for a respective channel.
  • the device 14 of FIG. 3 thus physically realizes a convolution filter FC on an input array IE implemented by the first layer of neurons 12 and an output array IS implemented by the second layer of neurons 12.
  • the device 14 is a physical implementation of a convolution filter FC on an input array IE implemented by the first layer of neurons 12 and an output array IS implemented by the second layer of neurons 12.
  • Such a device 14 is capable of performing large matrix products in parallel with non-linear transformations. As explained previously, such a non-linearity comes from the fact that neurons 12 only oscillate above a threshold current.
  • Such a device 14 is thus compatible with a system 10 comprising a number of layers greater than 3, preferably greater than 5 and/or the number of chains 20 is greater than 9, preferably greater than 100.
  • the device 14 having memory all integrated on the same chip would drastically reduce the energy consumption, and increase the execution speed of the image recognition.
  • the device 14 is very compact since the components forming the oscillators and the resonators 22 can have dimensions of the order of 20 nm.
  • Such components are, moreover, compatible with CMOS technology, which makes their integration easy.
  • the frequency adjustment unit U is a current pulse applicator.
  • a strong magnetic field is produced.
  • Such a strong magnetic field causes the magnetization of a layer of the resonator 22. It is then possible to alternate between two different frequencies, which allows the resonator 22 to have two states depending on whether or not a current pulse by the current pulse applicator.
  • Such an example therefore corresponds to non-volatile operation but with only binary weights.
  • the frequency adjustment unit U is a voltage applicator.
  • a gate voltage applied above the resonator 22 moves oxygen atoms to the interface between the tunnel barrier (oxide) and the upper layer of the resonator 22. This makes it possible to modify the magnetic anisotropy, and therefore to modify the effective applied magnetic field.
  • Such an example therefore corresponds to analog and non-volatile operation.
  • the frequency adjustment units are according to one or more of the preceding examples.
  • the frequency adjustment units are either current pulse applicators or voltage applicators.
  • the frequency adjustment unit is thus an element suitable for adjusting the frequency of a resonator 22 by modifying one of the voltage, the current or the magnetic field applied to a resonator 22.
  • Figure 4 shows a variant of the device 14 of Figure 3.
  • the device 14 of FIG. 4 has the same elements as the device 14 of FIG. 3. For the sake of simplification, the remarks which are valid for the two devices 14 are not repeated in what follows. Only the differences are underlined.
  • the chains 20 do not extend along a line perpendicular to the line along which the neurons 16 of the first layer of neurons 12 extend.
  • the chains 20 thus extend along a column.
  • each neuron 16 is transmitted along lines of radiofrequency fields horizontal lines visible in dotted lines in FIG. 4.
  • Each signal from a neuron 16 is transmitted along a line of fields specific to it.
  • the resonators 22 associated with the same weight are not aligned along a column or a line.
  • the frequency adjustment units are then arranged to operate in a diagonal line.
  • the device 14 according to figure 4 has the same advantages as the device 14 of figure 3.
  • Figure 5 shows a variant of the device 14 of Figure 3.
  • the device 14 of FIG. 5 has the same elements as the device 14 of FIG. 3. For the sake of simplification, the remarks which are valid for the two devices 14 are not repeated in what follows. Only the differences are underlined.
  • the resonators 22 are arranged similarly to those of Figure 3.
  • Each field line transmits a signal which is specific to it, the signal being composed of at most two signals from two different neurons 16 of the first layer of neurons 12.
  • each field line is arranged to transmit all of the natural frequencies of the resonators 22 of the diagonal.
  • each field line arranged to transmit the signal to at most three resonators 22 is connected to a single neuron 16 while each field line arranged to transmit the signal to more than three resonators 22 is connected to two neurons 16.
  • the first line of fields transmits the signal coming from the neuron 16 of the first layer of neurons 12 whose frequency is fi,i,i , (a single resonator 22 on the path of the first line of fields)
  • the second line of fields transmits the signal coming from the neuron 16 of the first layer of neurons 12 whose frequency is fi, 2 ,i (two resonators 22 on the path of the second line of fields)
  • the third line of fields transmits the signal from neuron 16 of the first layer of neurons 12 whose frequency is f 1,3,1 (three resonators 22 on the path of the third line of fields)
  • the fourth line of fields transmits the signal from neuron 16 of the first layer of neurons 12 whose frequency is f 2 ,i,i and the signal of the neuron 16 of the first layer of neurons 12 whose frequency is f 1 ,4,1 and so on.
  • the convolution filter FC is adapted to apply a set of convolution coefficients to a set of input values ordered according to a first order to obtain a set of output values ordered according to a second order, the set of convolution coefficients being arranged according to a third order, the first order, the second order and the third order are each a row-by-row traversal successively for each channel of a corresponding matrix in a representation of the operation of an FC convolution filter in the form of a matrix operations where each matrix is a set of boxes where each box presents a value specific to at least one channel.
  • Each cell is thus ordered as follows: the first cell of the first row of the matrix corresponding to the first channel, ..., the last cell of the first row of the matrix corresponding to the first channel, the first cell of the second row of the matrix corresponding to the first channel, ... , the last cell of the second row of the matrix corresponding to the first channel, ... , the first cell of the last row of the matrix corresponding to the first channel, ... , the last box of the last row of the matrix corresponding to the first channel, the first box of the first row of the matrix corresponding to the second channel, ..., the last box of the first row of the matrix corresponding to the second channel, the first box of the second row of the matrix corresponding to the second channel, ...
  • the last box of the second row of the matrix corresponding to the second channel ...
  • the first box of the last row of the matrix corresponding to the second xth channel ...
  • the last cell of the last row of the matrix corresponding to the second channel > the first cell of the first row of the matrix corresponding to the last channel, ... , the last cell of the first row of the matrix corresponding to the last channel, the first cell of the second row of the matrix corresponding to the last channel, ... , the last cell of the second row of the matrix corresponding to the last channel, ... , the first cell of the last row of the matrix corresponding to the last channel, ... , the last cell of the last row of the matrix corresponding to the last channel.
  • the arrangement of device 14 is particular here.
  • the first layer of neurons 12 comprises neurons 16 which physically implement a respective input value. These neurons 16 are aligned on the same first column according to the first order.
  • the top neuron 16 implements the input value corresponding to the first box of the first line of the first channel and the one below implements the input value corresponding to the second box of the first line of the first channel and so right now.
  • the second layer of neurons 12 comprises neurons 16 which physically implement a respective output value. These neurons 16 are aligned on the same second column according to the second order.
  • the top neuron 16 implements the output value corresponding to the first box of the first line of the first channel and the one below implements the output value corresponding to the second box of the first line of the first channel and so on .
  • the second column is parallel to the first column.
  • the resonators 22 of the same synaptic chain 20 are arranged according to the third order.
  • the resonators 22 have been grouped together in the diagram of Figure 6 to illustrate this.
  • each synaptic chain 20 is connected to a neuron of the second layer of neurons 12 and each synapse 22 is connected to the neuron of the first layer of neurons 12 physically implementing the input value on which the convolution coefficient of said synapse is to be applied.
  • the synaptic chains 20 are parallel to each other and arranged in a direction perpendicular to the two columns, the resonators 22 physically implementing the same coefficients of the convolution filter FC being spatially aligned along the same line, the different lines being parallel to each other.

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

Abstract

The invention relates to a device (14) implementing a convolution filter of a neural network, wherein the convolution filter transforms an input table coded as input channels into an output table coded as output channels by using convolution kernels, the input and output tables being implemented respectively by layers of neurons (12) in which each neuron is a frequency oscillator, and wherein the device (14) comprises sets of synaptic chains (20) each formed by series resonators (22), each set applying a respective convolution kernel, and each resonator (22) having a frequency that is adjusted by an adjustment unit so as to be equal to its resonant frequency offset by a frequency offset that depends on the convolution coefficient of the convolution kernel to be applied so that the set applies the convolution kernel to be implemented.

Description

Dispositif implémentant un filtre convolutionnel d’un réseau de neurones Device implementing a convolutional filter of a neural network
La présente invention concerne un dispositif implémentant physiquement un filtre de convolution d’un réseau de neurones ainsi qu’un système implémentant physiquement un réseau de neurones convolutionnel comprenant un tel dispositif. The present invention relates to a device physically implementing a convolutional filter of a neural network as well as a system physically implementing a convolutional neural network comprising such a device.
Le développement de l’internet et des capteurs connectés conduit à permettre l’obtention de quantité considérable de données. Ce phénomène souvent désigné sous le terme de « big data » implique l’emploi d’ordinateurs pour pouvoir exploiter l’ensemble des données obtenues. Une telle exploitation peut être utilisée dans de multiples domaines, parmi lesquelles le traitement automatique de données, l’aide au diagnostic, l’analyse prédictive, les véhicules autonomes, la bioinformatique ou la surveillance. The development of the Internet and connected sensors has made it possible to obtain a considerable amount of data. This phenomenon often referred to as “big data” involves the use of computers to be able to exploit all the data obtained. Such exploitation can be used in multiple fields, including automatic data processing, diagnostic assistance, predictive analysis, autonomous vehicles, bioinformatics or monitoring.
Pour mettre en œuvre une telle exploitation, il est connu d’utiliser des algorithmes d’apprentissage automatique faisant partie de programmes pouvant être exécutés sur des processeurs tels que les CPU ou les GPU. Un CPU est un processeur, le sigle CPU provenant du terme anglais « Central Processing Unit » signifiant littéralement unité centrale de traitement tandis qu’un GPU est un processeur graphique, le sigle GPU provenant du terme anglais « Graphie Processing Unit » signifiant littéralement unité graphique de traitement. To implement such exploitation, it is known to use machine learning algorithms that are part of programs that can be executed on processors such as CPUs or GPUs. A CPU is a processor, the acronym CPU coming from the English term “Central Processing Unit” literally meaning central processing unit while a GPU is a graphics processor, the acronym GPU coming from the English term “Graphie Processing Unit” literally meaning graphics unit treatment.
Parmi les techniques de mise en œuvre d’apprentissage, l’emploi de réseaux de neurones formels, et plus spécifiquement de réseaux de neurones profonds, est de plus en plus répandu, ces structures étant considérées comme très prometteuses du fait de leurs performances pour de nombreuses tâches telles que la classification automatique de données et la reconnaissance de motifs. C’est en particulier le cas des réseaux de neurones convolutionnels. Among the techniques for implementing learning, the use of formal neural networks, and more specifically deep neural networks, is more and more widespread, these structures being considered as very promising because of their performance for many tasks such as automatic data classification and pattern recognition. This is particularly the case with convolutional neural networks.
Un réseau de neurones est en général composé d'une succession de couches de neurones dont chacune prend ses entrées sur les sorties de la couche précédente. Plus précisément, chaque couche comprend des neurones prenant leurs entrées sur les sorties des neurones de la couche précédente. Chaque couche est reliée par une pluralité de synapses. Un poids synaptique est associé à chaque synapse. C’est un nombre réel, qui prend des valeurs positives comme négatives. Pour chaque couche, l’entrée d’un neurone est la somme pondérée des sorties des neurones de la couche précédente, la pondération étant faite par les poids synaptiques. A neural network is generally made up of a succession of layers of neurons, each of which takes its inputs from the outputs of the previous layer. More precisely, each layer comprises neurons taking their inputs from the outputs of the neurons of the previous layer. Each layer is connected by a plurality of synapses. A synaptic weight is associated with each synapse. It is a real number, which takes both positive and negative values. For each layer, the input of a neuron is the weighted sum of the outputs of the neurons of the previous layer, the weighting being made by the synaptic weights.
Par définition, un réseau de neurones profond est un réseau comprenant plus de trois couches de neurones et un grand nombre de neurones par couche. By definition, a deep neural network is a network with more than three layers of neurons and a large number of neurons per layer.
Dans le cas d’un réseau de neurones convolutionnel, le réseau comporte, en outre, un grand nombre de couches propres à effectuer des opérations de convolution. Pour une implémentation d’un tel réseau dans un CPU ou un GPU, une problématique d’entonnoir de Von Neumann (également appelée Von Neumann bottleneck selon sa dénomination anglaise) apparaît du fait que l’implémentation d’un réseau de neurones profond implique d’utiliser à la fois la ou les mémoires et le processeur alors que ces derniers éléments sont séparés spatialement. Il en résulte un engorgement du bus de communication entre la ou les mémoires et le processeur. In the case of a convolutional neural network, the network further comprises a large number of layers capable of performing convolution operations. For an implementation of such a network in a CPU or a GPU, a Von Neumann funnel problem (also called Von Neumann bottleneck according to its English name) arises from the fact that the implementation of a deep neural network involves use both the memory(s) and the processor while these latter elements are spatially separated. This results in congestion of the communication bus between the memory or memories and the processor.
Il est donc souhaitable de développer des architectures matérielles dédiées, rapprochant mémoire et calcul, pour réaliser des réseaux de neurones rapides, faible consommation et capables d’apprendre en temps réel. It is therefore desirable to develop dedicated hardware architectures, bringing together memory and calculation, to create fast, low-power neural networks capable of learning in real time.
Il est connu de réaliser des réseaux de neurones sur la base d’une technologie de type CMOS. Il est entendu par le sigle « CMOS », Oxyde métallique semi-conducteur complémentaire (acronyme provenant de l’expression anglaise « Complementary Metal- Oxide-Semiconductor »). Le sigle CMOS désigne aussi bien un procédé de fabrication qu’un composant obtenu par un tel procédé de fabrication. It is known to produce neural networks based on a CMOS-type technology. It is understood by the acronym "CMOS", Complementary Metal Oxide Semiconductor (acronym from the English expression "Complementary Metal-Oxide-Semiconductor"). The acronym CMOS designates both a manufacturing process and a component obtained by such a manufacturing process.
Il est également connu un réseau de neurones reposant sur des technologies de type optique. A neural network based on technologies of the optical type is also known.
Plus précisément, trois propositions d’architecture font l’objet d’études spécifiques : les réseaux à neurones CMOS et synapses CMOS, les réseaux à neurones optiques et synapses optiques et les réseaux à neurones CMOS et synapses memristives. Des synapses memristives sont des synapses utilisant des memristors. En électronique, le memristor (ou memristance) est un composant électronique passif. Le nom est un mot- valise formé à partir des deux mots anglais memory et resistor. Un memristor mémorise efficacement l’information car la valeur de sa résistance électrique change, de façon permanente, lorsqu’un courant est appliqué. More specifically, three architectural proposals are the subject of specific studies: CMOS neural networks and CMOS synapses, optical neural networks and optical synapses and CMOS neural networks and memristive synapses. Memristive synapses are synapses using memristors. In electronics, the memristor (or memristance) is a passive electronic component. The name is a portmanteau word formed from the two English words memory and resistor. A memristor stores information efficiently because the value of its electrical resistance changes permanently when a current is applied.
Toutefois, selon chacune de ces technologies, chaque neurone occupe plusieurs dizaines de micromètres de côté. Pour les technologies CMOS et optique, chaque synapse occupe également plusieurs dizaines de micromètres de côté. Il en résulte que, sur une surface limitée correspondant par exemple à une puce électronique, le nombre de neurones et de synapses qui peuvent être intégrés est limité, ce qui résulte en une diminution des performances du réseau de neurones. However, according to each of these technologies, each neuron occupies several tens of micrometers per side. For CMOS and optical technologies, each synapse also occupies several tens of micrometers per side. As a result, on a limited surface corresponding for example to an electronic chip, the number of neurons and synapses which can be integrated is limited, which results in a reduction in the performance of the neural network.
Aucune des implémentations physiques précitées des réseaux de neurones ne sont satisfaisantes pour l’implémentation physique d’un réseau de neurones convolutionnel pour lequel les problèmes précédents sont encore plus gênants. None of the aforementioned physical implementations of neural networks are satisfactory for the physical implementation of a convolutional neural network for which the previous problems are even more troublesome.
Il existe donc un besoin pour un circuit implémentant physiquement un réseau de neurones convolutionnel ou une partie d’un tel réseau qui présentent des performances améliorées. A cet effet, la présente description propose un dispositif implémentant physiquement un filtre de convolution d’un réseau de neurones, le filtre de convolution prenant en entrée un tableau d’entrée codé selon au moins un canal d’entrée pour obtenir en sortie un tableau de sortie codé selon au moins un canal de sortie, le tableau d’entrée étant un ensemble de cases d’entrée agencées selon une matrice d’entrée, chaque case présentant une valeur propre à chaque canal d’entrée, une première couche de neurones implémentant physiquement le tableau d’entrée, chaque neurone de la première couche de neurones étant un oscillateur, notamment un oscillateur radiofréquence, oscillant à une fréquence propre, chaque neurone de la première couche de neurones correspondant de manière biunivoque à la valeur d’une case d’un canal d’entrée, le tableau de sortie étant un ensemble de cases de sortie agencées selon une matrice de sortie, chaque case présentant une valeur propre à chaque canal de sortie, une deuxième couche de neurones implémentant physiquement le tableau de sortie, chaque neurone de la deuxième couche de neurones étant un oscillateur, notamment un oscillateur radiofréquence, oscillant à une fréquence propre, chaque neurone de la deuxième couche de neurones correspondant de manière biunivoque à la valeur d’une case d’un canal de sortie, le filtre de convolution étant un ensemble de noyaux de convolution, chaque noyau de convolution étant spécifique d’un canal de sortie, chaque noyau de convolution délimitant un sous-ensemble matriciel présentant une taille strictement inférieure à la taille de la matrice d’entrée, le sous- ensemble matriciel d’un noyau de convolution comportant un ensemble de coefficients de convolution, le dispositif comprenant des ensembles de chaînes synaptiques, chaque chaîne synaptique comportant des synapses, chaque synapse étant un résonateur, notamment un résonateur spintronique, les résonateurs étant en série, chaque résonateur ayant une fréquence de résonance ajustable, chaque ensemble de chaînes synaptiques étant propre à appliquer un noyau de convolution respectif, chaque chaîne synaptique d’un même ensemble de chaînes synaptiques rassemblant les résonateurs ayant pour fréquence de résonance la fréquence des neurones implémentant les valeurs des cases du sous-ensemble matriciel de la matrice d’entrée associé au noyau de convolution de l’ensemble de chaînes synaptiques et dont le premier élément est une case d’entrée ayant des coordonnées respectives, chaque résonateur ayant une fréquence ajustée par une unité d’ajustement de fréquences pour que la fréquence du résonateur soit égale à la fréquence de résonance à laquelle est ajouté un décalage en fréquence dépendant du coefficient de convolution du noyau de convolution à appliquer au neurone, le nombre de chaînes synaptiques d’un même ensemble étant égal au nombre de cases du tableau de sortie que le noyau de convolution permet d’obtenir par application sur le tableau d’entrée. Autrement formulé, le dispositif implémente physiquement un filtre de convolution d’un réseau de neurones, le filtre de convolution transformant un tableau d’entrée codé selon au moins un canal d’entrée pour obtenir en sortie un tableau de sortie codé selon au moins un canal de sortie en utilisant un ensemble de noyaux de convolution, le tableau d’entrée et le tableau de sortie étant implémentés physiquement respectivement par des neurones respectifs de la première couche et des neurones d’une deuxième couche, chaque neurone étant un oscillateur oscillant à une fréquence propre, le dispositif comprenant des ensembles de chaînes synaptiques formées chacune par des résonateurs en série, chaque ensemble de chaînes synaptiques appliquant un noyau de convolution respectif, chaque résonateur ayant une fréquence ajustée par une unité d’ajustement de fréquences pour que la fréquence du résonateur soit égale à la fréquence de résonance à laquelle est ajouté un décalage en fréquence dépendant du coefficient de convolution du noyau de convolution à appliquer au neurone pour que l’ensemble de chaînes synaptiques applique le noyau de convolution à implémenter. There is therefore a need for a circuit physically implementing a convolutional neural network or a part of such a network which has improved performance. To this end, the present description proposes a device physically implementing a convolution filter of a neural network, the convolution filter taking as input an input table coded according to at least one input channel to obtain as output a table output coded according to at least one output channel, the input table being a set of input boxes arranged according to an input matrix, each box presenting a value specific to each input channel, a first layer of neurons physically implementing the input table, each neuron of the first layer of neurons being an oscillator, in particular a radio frequency oscillator, oscillating at a natural frequency, each neuron of the first layer of neurons corresponding in a one-to-one manner to the value of a box of an input channel, the output table being a set of output boxes arranged according to an output matrix, each box presenting a value specific to each output channel, a second layer of neurons physically implementing the output table, each neuron of the second layer of neurons being an oscillator, in particular a radio frequency oscillator, oscillating at a natural frequency, each neuron of the second layer of neurons corresponding in a one-to-one manner to the value d a cell of an output channel, the convolution filter being a set of convolution kernels, each convolution kernel being specific to an output channel, each convolution kernel delimiting a matrix subset having a strictly smaller size to the size of the input matrix, the matrix subset of a convolution kernel comprising a set of convolution coefficients, the device comprising sets of synaptic chains, each synaptic chain comprising synapses, each synapse being a resonator , in particular a spintronic resonator, the resonators being in series, each resonator having a frequency adjustable resonance, each set of synaptic chains being capable of applying a respective convolution kernel, each synaptic chain of the same set of synaptic chains bringing together the resonators having as resonance frequency the frequency of the neurons implementing the values of the boxes of the sub- matrix set of the input matrix associated with the convolution kernel of the set of synaptic chains and whose first element is an input box having respective coordinates, each resonator having a frequency adjusted by a frequency adjustment unit so that the frequency of the resonator is equal to the resonance frequency to which is added a frequency shift depending on the convolution coefficient of the convolution kernel to be applied to the neuron, the number of synaptic chains of the same set being equal to the number of squares of the output table that the convolution kernel makes it possible to obtain by application on the input table e. Otherwise formulated, the device physically implements a convolution filter of a neural network, the convolution filter transforming an input table coded according to at least one input channel to obtain at output an output table coded according to at least one output channel using a set of convolution kernels, the input array and the output array being physically implemented by respective neurons of the first layer and neurons of a second layer, respectively, each neuron being an oscillator oscillating at a natural frequency, the device comprising sets of synaptic chains each formed by resonators in series, each set of synaptic chains applying a respective convolution kernel, each resonator having a frequency adjusted by a frequency adjustment unit so that the frequency of the resonator is equal to the resonant frequency to which is added a frequency shift depending on the convolution coefficient of the convolution kernel to be applied to the neuron for the set of synaptic chains to apply the convolution kernel to be implemented.
Il est également décrit un dispositif implémentant physiquement un filtre de convolution d’un réseau de neurones, le filtre de convolution étant propre à appliquer un ensemble de coefficients de convolution à un ensemble de valeurs d’entrée ordonnées selon un premier ordre pour obtenir un ensemble de valeurs de sortie ordonnée selon un deuxième ordre, l’ensemble de coefficients de convolution étant agencé selon un troisième ordre, le premier ordre, le deuxième ordre et le troisième ordre sont chacun un parcours ligne à ligne successivement pour chaque canal d’une matrice correspondante dans une représentation du fonctionnement d’un filtre de convolution sous forme d’une opérations de matrices où chaque matrice est un ensemble de cases où chaque case présente une valeur propre à au moins un canal. Le dispositif comporte une première couche de neurones dont chaque neurone est un oscillateur, notamment un oscillateur radiofréquence, oscillant à une fréquence propre et implémente physiquement une valeur d’entrée respective, les neurones étant alignés sur une même première colonne selon le premier ordre. Le dispositif comporte également une deuxième couche de neurones dont chaque neurone est un oscillateur, notamment un oscillateur radiofréquence, oscillant à une fréquence propre et implémente physiquement une valeur de sortie respective, les neurones étant alignés sur une même deuxième colonne selon le deuxième ordre, la deuxième colonne étant parallèle à la première colonne. Le dispositif comporte aussi des ensembles de chaînes synaptiques, chaque chaîne synaptique comportant des synapses en série implémentant physiquement un coefficient de convolution respectif sur au moins une valeur d’entrée, chaque synapse étant reliée au neurone de la première couche de neurones implémentant physiquement la valeur d’entrée sur lequel le coefficient de convolution de ladite synapse est à appliquer, chaque synapse étant un résonateur, notamment un résonateur spintronique, ayant une fréquence de résonance, et présentant une fréquence ajustable par une unité d’ajustement de fréquences pour que la fréquence du résonateur soit égale à la fréquence de résonance à laquelle est ajouté un décalage en fréquence dépendant du coefficient de convolution respectif que le résonateur implémente physiquement, les résonateurs d’une même chaîne synaptique étant agencés selon le troisième ordre, chaque chaîne synaptique étant reliée à un neurone de la deuxième couche de neurones, les chaînes synaptiques étant parallèles entre elles et agencées selon une direction perpendiculaire aux deux colonnes, les résonateurs implémentant physiquement les mêmes coefficients du filtre de convolution étant spatialement alignés selon une même ligne, les différentes lignes étant parallèles les unes aux autres. A device is also described that physically implements a convolution filter of a neural network, the convolution filter being capable of applying a set of convolution coefficients to a set of input values ordered according to a first order to obtain a set of output values ordered according to a second order, the set of convolution coefficients being arranged according to a third order, the first order, the second order and the third order are each a line-to-line traversal successively for each channel of a matrix corresponding in a representation of the operation of a convolution filter in the form of a matrix operation where each matrix is a set of boxes where each box has a value specific to at least one channel. The device comprises a first layer of neurons, each neuron of which is an oscillator, in particular a radiofrequency oscillator, oscillating at a natural frequency and physically implements a respective input value, the neurons being aligned on the same first column according to the first order. The device also comprises a second layer of neurons, each neuron of which is an oscillator, in particular a radio frequency oscillator, oscillating at a natural frequency and physically implements a respective output value, the neurons being aligned on the same second column according to the second order, the second column being parallel to the first column. The device also comprises sets of synaptic chains, each synaptic chain comprising synapses in series physically implementing a respective convolution coefficient on at least one input value, each synapse being linked to the neuron of the first layer of neurons physically implementing the value input on which the convolution coefficient of said synapse is to be applied, each synapse being a resonator, in particular a spintronic resonator, having a resonance frequency, and having a frequency adjustable by a frequency adjustment unit so that the frequency of the resonator is equal to the resonance frequency to which is added an offset in frequency depending on the respective convolution coefficient that the resonator physically implements, the resonators of the same synaptic chain being arranged according to the third order, each synaptic chain being connected to a neuron of the second layer of neurons, the synaptic chains being parallel to each other and arranged in a direction perpendicular to the two columns, the resonators physically implementing the same coefficients of the convolution filter being spatially aligned along the same line, the different lines being parallel to each other.
Suivant des modes de réalisation particulier, le dispositif comprend une ou plusieurs des caractéristiques suivantes lorsque cela est techniquement possible : According to particular embodiments, the device comprises one or more of the following characteristics when technically possible:
- l’application d’un noyau de convolution pour le ou chaque canal d’entrée à un sous- ensemble matriciel de la matrice d’entrée dont le premier élément est une case d’entrée ayant des premières coordonnées donnant la valeur de la case de sortie ayant les premières coordonnées pour la matrice de sortie selon le canal de sortie spécifique au noyau de convolution appliqué. - the application of a convolution kernel for the or each input channel to a matrix subset of the input matrix whose first element is an input box having first coordinates giving the value of the box output having the first coordinates for the output matrix according to the output channel specific to the applied convolution kernel.
- l’unité d’ajustement de fréquences est la même pour les résonateurs d’un même ensemble de chaînes synaptiques pour lequel le coefficient de convolution à appliquer est identique. - the frequency adjustment unit is the same for the resonators of the same set of synaptic chains for which the convolution coefficient to be applied is identical.
- il est défini pour chaque chaîne synaptique une entrée et une sortie, le dispositif comportant au moins un amplificateur positionné soit à l’entrée soit à la sortie.- an input and an output are defined for each synaptic chain, the device comprising at least one amplifier positioned either at the input or at the output.
- chaque unité d’ajustement de fréquences est choisie dans la liste constituée d’un applicateur de courant continu, un applicateur d’impulsions de courant et un applicateur de tension. - each frequency adjustment unit is chosen from the list consisting of a direct current applicator, a current pulse applicator and a voltage applicator.
- les résonateurs sont agencés selon une matrice dont les colonnes sont les résonateurs ayant le même coefficient de convolution à appliquer. - the resonators are arranged in a matrix whose columns are the resonators having the same convolution coefficient to be applied.
- le dispositif comporte un sommateur des signaux issus des neurones de la première couche de neurones. - the device comprises a summing of the signals coming from the neurons of the first layer of neurons.
- les résonateurs sont reliés à au plus deux neurones de la première couche de neurones. - the resonators are connected to at most two neurons of the first layer of neurons.
- les chaînes synaptiques sont parallèles à une ligne selon laquelle sont agencés les neurones de la première couche de neurones. - the synaptic chains are parallel to a line along which the neurons of the first layer of neurons are arranged.
- chaque résonateur est relié à un unique neurone de la première couche de neurones. La présente description propose également un système implémentant physiquement un réseau de neurones convolutionnel comportant un dispositif tel que précédemment décrit. - each resonator is connected to a single neuron of the first layer of neurons. The present description also proposes a system physically implementing a convolutional neural network comprising a device as previously described.
D’autres caractéristiques et avantages de l’invention apparaîtront à la lecture de la description qui suit de modes de réalisation de l’invention, donnée à titre d’exemple uniquement et en référence aux dessins qui sont : Other characteristics and advantages of the invention will appear on reading the following description of embodiments of the invention, given by way of example only and with reference to the drawings which are:
- figure 1 , une représentation schématique d’un système implémentant physiquement un réseau de neurones convolutionnel ; - Figure 1, a schematic representation of a system physically implementing a convolutional neural network;
- figure 2, une représentation schématique de l’action d’un filtre de convolution ;- Figure 2, a schematic representation of the action of a convolution filter;
- figure 3, une représentation schématique d’un exemple de dispositif faisant partie du système de la figure 1 , le dispositif implémentant physiquement le filtre de convolution de la figure 2 ; - Figure 3, a schematic representation of an example of a device forming part of the system of Figure 1, the device physically implementing the convolution filter of Figure 2;
- figure 4, une représentation schématique d’un autre exemple de dispositif implémentant physiquement un filtre de convolution, et - Figure 4, a schematic representation of another example of a device physically implementing a convolution filter, and
- figure 5, une représentation schématique d’encore un autre exemple de dispositif implémentant physiquement un filtre de convolution, et - Figure 5, a schematic representation of yet another example of a device physically implementing a convolution filter, and
- figure 6, une représentation plus précise du dispositif de la figure 6. - Figure 6, a more precise representation of the device of Figure 6.
Un système 10 implémentant physiquement un réseau de neurones est représenté sur la figure 1 . A system 10 physically implementing a neural network is shown in FIG.
Le système 10 implémente physiquement un réseau de neurones comportant un ensemble de couches de neurones et des interconnexions reliant une couche de neurones à une autre couche de neurones. The system 10 physically implements a neural network comprising a set of layers of neurons and interconnections connecting one layer of neurons to another layer of neurons.
Cela signifie que le système 10 comporte des circuits 12 implémentant des couches et des dispositifs 14 implémentant des interconnexions. This means that system 10 includes circuits 12 implementing layers and devices 14 implementing interconnects.
Chaque couche 12 de neurones est un ensemble d’au moins deux neurones 16.Each layer 12 of neurons is a set of at least two neurons 16.
Par définition, en biologie, un neurone, ou une cellule nerveuse, est une cellule excitable constituant l'unité fonctionnelle de base du système nerveux. Les neurones assurent la transmission d'un signal bioélectrique appelé influx nerveux. Les neurones ont deux propriétés physiologiques : l'excitabilité, c'est-à-dire la capacité de répondre aux stimulations et de convertir celles-ci en impulsions nerveuses, et la conductivité, c'est-à- dire la capacité de transmettre les impulsions. Dans les réseaux de neurones formels, le comportement des neurones biologiques est imité par une fonction mathématique qui présente la propriété d’être non-linéaire (pour pouvoir transformer l’entrée de manière utile) et préférentiellement d’être dérivable (pour permettre l’apprentissage par rétropropagation du gradient). Dans le cadre de cette demande, un neurone 16 est un composant réalisant une fonction équivalente. Les couches de neurones 12 sont ordonnées, de sorte qu’il est possible de définir un indice pour chaque couche de neurones 12. Dans la suite de la suite de la présente demande, les termes « amont » et « aval » sont définis par rapport au sens croissant de cet indice. By definition, in biology, a neuron, or a nerve cell, is an excitable cell constituting the basic functional unit of the nervous system. Neurons transmit a bioelectrical signal called a nerve impulse. Neurons have two physiological properties: excitability, i.e. the ability to respond to stimulation and convert it into nerve impulses, and conductivity, i.e. the ability to transmit signals. impulses. In formal neural networks, the behavior of biological neurons is imitated by a mathematical function which has the property of being non-linear (to be able to transform the input in a useful way) and preferentially of being differentiable (to allow the gradient backpropagation learning). In the context of this application, a neuron 16 is a component performing an equivalent function. The layers of neurons 12 are ordered, so that it is possible to define an index for each layer of neurons 12. In the remainder of the remainder of the present application, the terms “upstream” and “downstream” are defined in relation in the increasing sense of this index.
Dans l’exemple décrit, chaque neurone 16 est un oscillateur. In the example described, each neuron 16 is an oscillator.
En outre, chaque oscillateur est un oscillateur dont la fréquence est comprise entre 1 MégaHertz (MHz) jusqu’à plusieurs TéraHertz (THz). Par la suite on utilisera le terme « radiofréquence » pour se référer à cette gamme de fréquence. In addition, each oscillator is an oscillator whose frequency is between 1 MegaHertz (MHz) up to several TeraHertz (THz). Hereafter we will use the term “radiofrequency” to refer to this frequency range.
Un oscillateur est un dispositif propre à générer des oscillations présentant une amplitude contrôlée et une fréquence fixe ou contrôlée sur une ou plusieurs sortie(s). An oscillator is a device suitable for generating oscillations having a controlled amplitude and a fixed or controlled frequency on one or more output(s).
Un oscillateur étant susceptible de présenter plusieurs fréquences d’oscillations, par définition, la fréquence d’oscillation d’un neurone 16 est la fréquence de l’oscillation présentant l’amplitude la plus importante (l’amplitude étant définie en crête à crête). An oscillator being likely to present several frequencies of oscillations, by definition, the frequency of oscillation of a neuron 16 is the frequency of the oscillation presenting the greatest amplitude (the amplitude being defined in peak to peak) .
Dans le cas de figure illustré, les neurones 16 présentent une fréquence d’oscillation respective. Cela signifie que les fréquences d’oscillation de l’ensemble des oscillateurs d’une même couche sont distinctes deux à deux. In the illustrated case, the neurons 16 have a respective oscillation frequency. This means that the oscillation frequencies of all the oscillators of the same layer are distinct two by two.
Selon les implémentations, le signal en sortie d’un neurone 16 est un courant électrique radiofréquence, un champ électromagnétique radiofréquence ou une onde de spin. Depending on the implementations, the output signal of a neuron 16 is a radiofrequency electric current, a radiofrequency electromagnetic field or a spin wave.
Les ondes de spin sont des fluctuations de l’aimantation des matériaux ferromagnétiques autour de la position d’équilibre de l’aimantation. L’onde de spin peut être localisée ou se propager. Un matériau ferromagnétique possède une aimantation spontanée, contrairement aux matériaux non-magnétiques. Spin waves are fluctuations in the magnetization of ferromagnetic materials around the magnetization equilibrium position. The spin wave can be localized or propagate. A ferromagnetic material has a spontaneous magnetization, unlike non-magnetic materials.
En physique, l’aimantation est une grandeur vectorielle qui caractérise à l'échelle macroscopique le comportement magnétique d'un échantillon de matière. L’aimantation a comme origine le moment magnétique orbital et le moment magnétique de spin des électrons ou des atomes. In physics, magnetization is a vector quantity that characterizes the magnetic behavior of a sample of matter on a macroscopic scale. Magnetization originates from the orbital magnetic moment and the spin magnetic moment of electrons or atoms.
Selon une première implémentation, chaque neurone 16 est un oscillateur CMOS.According to a first implementation, each neuron 16 is a CMOS oscillator.
La création d’un tel oscillateur repose sur la transposition de montages électroniques existants, tel l’oscillateur Colpitts, l’oscillateur Clapp, l’oscillateur à déphasage, l’oscillateur Pierce, l’oscillateur Hartley, l’oscillateur à variables d'état ou l’oscillateur à anneau (plus souvent désigné sous l’appellation anglaise de « ring oscillator »). The creation of such an oscillator is based on the transposition of existing electronic assemblies, such as the Colpitts oscillator, the Clapp oscillator, the phase shift oscillator, the Pierce oscillator, the Hartley oscillator, the variable oscillator of state or the ring oscillator (more often referred to as the “ring oscillator”).
Cela permet d’obtenir un oscillateur CMOS présentant un signal d’oscillation avec une fréquence fixe et une amplitude contrôlable. Il en résulte une forte puissance émise, et un faible bruit. Selon une deuxième implémentation, les oscillateurs sont réalisés avec des signaux lasers, et des éléments ayant une transmission optique non-linéaire, ce qui aurait pour avantage la grande rapidité de l’information (vitesse de la lumière), mais aussi pour désavantage la taille des composants, et la forte consommation énergétique des lasers. This makes it possible to obtain a CMOS oscillator presenting an oscillation signal with a fixed frequency and a controllable amplitude. This results in high emitted power and low noise. According to a second implementation, the oscillators are made with laser signals, and elements having a non-linear optical transmission, which would have the advantage of the high speed of information (speed of light), but also the disadvantage of the size. components, and the high energy consumption of lasers.
Selon une troisième implémentation qui est celle de l’exemple décrit, chaque neurone 16 est un oscillateur spintronique. According to a third implementation which is that of the example described, each neuron 16 is a spintronic oscillator.
Une telle implémentation permet de diminuer l’encombrement de la première implémentation. Such an implementation reduces the size of the first implementation.
Les oscillateurs spintroniques permettent d’obtenir des fréquences d’oscillation sur une large gamme de fréquences, entre 1 MégaHertz (MHz) et plusieurs TéraHertz (THz), notamment lorsque des matériaux antiferromagnétiques sont utilisés. Spintronic oscillators make it possible to obtain oscillation frequencies over a wide range of frequencies, between 1 MegaHertz (MHz) and several TeraHertz (THz), especially when antiferromagnetic materials are used.
L'antiferromagnétisme est une propriété de certains milieux magnétiques. Contrairement aux matériaux ferromagnétiques, dans les matériaux antiferromagnétiques, l’interaction d’échange entre les atomes voisins conduit à un alignement antiparallèle des moments magnétiques atomiques. L'aimantation totale du matériau est alors nulle. Tout comme les ferromagnétiques, ces matériaux deviennent paramagnétiques au-dessus d’une température de transition appelée température de NéeL Antiferromagnetism is a property of certain magnetic media. Unlike ferromagnetic materials, in antiferromagnetic materials, the exchange interaction between neighboring atoms leads to an antiparallel alignment of atomic magnetic moments. The total magnetization of the material is then zero. Like ferromagnets, these materials become paramagnetic above a transition temperature called the NéeL temperature.
L’antiferromagnétisme est distinct du ferromagnétisme qui désigne la capacité de certains corps de s'aimanter sous l'effet d'un champ magnétique extérieur et de garder une partie de cette aimantation Antiferromagnetism is distinct from ferromagnetism, which designates the ability of certain bodies to become magnetized under the effect of an external magnetic field and to keep part of this magnetization.
Par ailleurs, la spintronique, l’électronique de spin ou la magnétoélectronique, est une technique qui exploite la propriété quantique du spin des électrons dans le but de stocker des informations ou d’effectuer des opérations de calcul sur ces informations. Par extension, un composant spintronique est un composant qui exploite la propriété quantique du spin des électrons dans le but de stocker ou de traiter des informations. In addition, spintronics, spin electronics or magnetoelectronics, is a technique that exploits the quantum property of the spin of electrons in order to store information or perform calculation operations on this information. By extension, a spintronic component is a component that exploits the quantum property of the spin of electrons in order to store or process information.
Selon l’exemple proposé, les oscillateurs spintroniques génèrent des signaux harmoniques. According to the proposed example, spintronic oscillators generate harmonic signals.
Un neurone 16 comporte, par exemple, un pilier de diamètre caractéristique compris entre 3 nanomètres (nm) et 1 micromètre (pm) et des moyens d’injection d’un courant d’alimentation à travers le pilier. A neuron 16 comprises, for example, a pillar with a characteristic diameter of between 3 nanometers (nm) and 1 micrometer (pm) and means for injecting a supply current through the pillar.
Le pilier comporte un motif constitué de plusieurs couches, superposées le long d’une direction d’empilement des couches, à savoir d’une première couche en un matériau ferromagnétique, d’une couche intermédiaire en un matériau non magnétique, et d’une deuxième couche en un matériau ferromagnétique. A chacune de ses extrémités, le pilier comporte respectivement des couches inférieures et supérieures qui sont disposées de part et d’autre du motif et constituent des contacts permettant l’injection d’un courant d’alimentation à travers les couches. The pillar comprises a pattern consisting of several layers, superimposed along a stacking direction of the layers, namely a first layer of a ferromagnetic material, an intermediate layer of a non-magnetic material, and a second layer of a ferromagnetic material. At each of its ends, the pillar respectively comprises lower and upper layers which are arranged on either side of the pattern and constitute contacts allowing the injection of a supply current through the layers.
Les moyens propres à permettre l’injection d’un courant d’alimentation à travers le pilier sont une source de courant pouvant délivrer soit un courant continu, soit un courant alternatif réglable en intensité et en fréquence, soit les deux et des électrodes. The means suitable for allowing the injection of a supply current through the pillar are a current source capable of delivering either a direct current, or an alternating current adjustable in intensity and frequency, or both, and electrodes.
De tels oscillateurs ont pour désavantage leur niveau de bruit relativement élevé, mais pour avantage une faible consommation d’énergie et une petite taille. Such oscillators have the disadvantage of their relatively high noise level, but the advantage of low power consumption and small size.
En résumé pour le présent exemple, il est utilisé des oscillateurs spintroniques, tels que des oscillateurs à transfert dont l’empilement est des jonctions tunnels magnétiques. Le courant continu traversant la jonction permet de faire osciller l’aimantation de la couche ferromagnétique supérieure, et donc de faire osciller la résistance de la jonction par effet de magnétorésistance tunnel. Un courant continu permet donc de générer une tension alternative. In summary for the present example, spintronic oscillators are used, such as transfer oscillators whose stack is magnetic tunnel junctions. The direct current crossing the junction makes it possible to oscillate the magnetization of the upper ferromagnetic layer, and therefore to oscillate the resistance of the junction by tunnel magnetoresistance effect. A direct current therefore makes it possible to generate an alternating voltage.
Les interconnexions effectuent chacun une ou plusieurs opérations spécifiques.The interconnects each perform one or more specific operations.
En l’espèce, le réseau de neurones est un réseau de neurones convolutionnel.In this case, the neural network is a convolutional neural network.
Un tel réseau de neurones est propre à mettre en œuvre une pluralité de filtres de convolution. Such a neural network is capable of implementing a plurality of convolution filters.
Le nombre de filtres utilisés augmentant avec la profondeur du réseau, le nombre de filtres est parfois très important. The number of filters used increasing with the depth of the network, the number of filters is sometimes very important.
Un exemple de fonctionnement d’un tel filtre de convolution FC est illustré par la figure 2. An example of the operation of such a convolution filter FC is shown in Figure 2.
Le filtre de convolution FC prend en entrée un tableau d’entrée IE codé selon au moins un canal d’entrée pour obtenir en sortie un tableau de sortie IS codé selon au moins un canal de sortie. The convolution filter FC takes as input an input table IE coded according to at least one input channel to obtain as output an output table IS coded according to at least one output channel.
Le tableau d’entrée IE est un ensemble de cases d’entrée agencées selon une matrice d’entrée, chaque case présentant une valeur propre à chaque canal d’entrée. The IE input array is a set of input bins arranged in an input matrix, each bin presenting a value specific to each input channel.
Dans la notation « IE », il est utilisé la lettre « I » pour désigner le tableau du fait que tout tableau correspond à une image, c’est-à-dire un ensemble de pixels. In the "IE" notation, the letter "I" is used to designate the table because any table corresponds to an image, that is to say a set of pixels.
Un exemple spécifique de tel tableau d’entrée IE est une image en couleurs. A specific example of such an IE input array is a color image.
Une image en couleurs est un tableau d’entrée IE codée selon les valeurs du pixel en trois couleurs, typiquement selon un codage RGB. Dans un tel exemple, le tableau d’entrée IE est un premier ensemble de cases d’entrée agencées selon une matrice d’entrée ayant pour valeur la composante rouge de l’image en couleurs, un deuxième ensemble de cases d’entrée agencées également selon la matrice d’entrée ayant pour valeur la composante verte de l’image en couleurs et un troisième ensemble de cases agencées également selon la matrice d’entrée et ayant pour valeur la composante bleue de l’image en couleurs. A color image is an IE input table coded according to the values of the pixel in three colors, typically according to an RGB coding. In such an example, the input table IE is a first set of input boxes arranged according to an input matrix whose value is the red component of the color image, a second set of input boxes also arranged according to the input matrix having as its value the green component of the color image and a third set of boxes also arranged according to the input matrix and having as value the blue component of the color image.
Dans la représentation de la figure 2, la matrice d’entrée est un ensemble de lignes repérées chacune par un indice i et par un ensemble de colonnes repérées par un indice j. In the representation of Figure 2, the input matrix is a set of rows each identified by an index i and by a set of columns identified by an index j.
L’indice i est un nombre entier dont la valeur est comprise entre 1 et NH, NH étant le nombre total de lignes de la matrice d’entrée. The index i is an integer whose value is between 1 and NH, NH being the total number of rows of the input matrix.
L’indice j est un nombre entier dont la valeur est comprise entre 1 et Nw, Nw étant le nombre total de colonnes de la matrice d’entrée. The index j is an integer whose value is between 1 and Nw, Nw being the total number of columns of the input matrix.
Ainsi, chaque élément de la matrice d’entrée est repéré par un couple (i, j). Thus, each element of the input matrix is identified by a couple (i, j).
En outre, comme chaque élément de la matrice d’entrée a une valeur différente selon le canal d’entrée considéré, chaque élément du tableau d’entrée IE est repéré, non simplement par le couple (i, j), mais bien par un triplet (i, j, c), c étant l’indice de canal qui est un entier variant entre 1 et Ne le nombre de canaux du tableau d’entrée IE. Furthermore, as each element of the input matrix has a different value depending on the input channel considered, each element of the input array IE is identified, not simply by the pair (i, j), but indeed by a triplet (i, j, c), c being the channel index which is an integer varying between 1 and Ne the number of channels of the IE input table.
Pour la suite, un élément de la matrice d’entrée sera ainsi noté Xj,j,c et un élément du tableau d’entrée IE sera noté Xij. Subsequently, an element of the input matrix will thus be denoted Xj,j, c and an element of the input array IE will be denoted Xij.
Similairement, il est possible de repérer chaque élément de la matrice de sortie par un triplet (a, b, m), d’où la notation za,b,m pour un élément de la matrice de sortie et za,b pour un élément de l’image de sortie IS. Similarly, it is possible to locate each element of the output matrix by a triplet (a, b, m), hence the notation z a ,b, m for an element of the output matrix and z a ,b for an element of the IS output image.
L’indice a est un nombre entier dont la valeur est comprise entre 1 et h, h étant le nombre total de lignes de la matrice de sortie. The index a is an integer whose value is between 1 and h, where h is the total number of rows of the output matrix.
L’indice b est un nombre entier dont la valeur est comprise entre 1 et I, I étant le nombre total de colonnes de la matrice de sortie. The subscript b is an integer whose value is between 1 and I, where I is the total number of columns of the output matrix.
L’indice m est l’indice de canal qui est un entier variant entre 1 et Nm le nombre de canaux du tableau de sortie IS. The index m is the channel index which is an integer varying between 1 and N m the number of channels of the output table IS.
Le filtre de convolution FC est un ensemble de noyaux de convolution NC, l’ensemble de noyaux de convolution NC appliqué au tableau d’entrée IE permettant d’obtenir l’image de sortie IS. The convolution filter FC is a set of convolution kernels NC, the set of convolution kernels NC applied to the input array IE to obtain the output image IS.
Chaque noyau de convolution NC est spécifique d’un canal de sortie. Each NC convolution kernel is specific to an output channel.
L’exemple de noyau de convolution NC représenté sur la figure 2 est spécifique au canal de sortie m. The example NC convolution kernel shown in Figure 2 is specific to output channel m.
Chaque noyau de convolution NC délimite un sous-ensemble présentant une taille strictement inférieure à la taille de la matrice d’entrée. Each convolution kernel NC delimits a subset presenting a size strictly lower than the size of the input matrix.
Cela signifie que, dans cet exemple, le nombre total de lignes du sous-ensemble matriciel est strictement inférieur au nombre total NH de lignes de la matrice d’entrée et que le nombre total de colonnes du sous-ensemble matriciel est strictement inférieur au nombre total Nw de colonnes de la matrice d’entrée. Toutefois, il est possible d’envisager des cas où le nombre total de lignes du sous- ensemble matriciel est égal au nombre total NH de lignes de la matrice d’entrée et/ou que le nombre total de colonnes du sous-ensemble matriciel est égal au nombre total Nw de colonnes de la matrice d’entrée. C’est notamment pertinent lorsque des convolutions unidimensionnelles sont appliquées successivement, par exemple une convolution horizontale et une convolution verticale. This means that, in this example, the total number of rows of the matrix subset is strictly less than the total number NH of rows of the input matrix and that the total number of columns of the matrix subset is strictly less than the number total Nw of columns of the input matrix. However, it is possible to envisage cases where the total number of rows of the matrix subset is equal to the total number NH of rows of the input matrix and/or the total number of columns of the matrix subset is equal to the total number N w of columns of the input matrix. This is particularly relevant when one-dimensional convolutions are applied successively, for example a horizontal convolution and a vertical convolution.
En l’espèce, le noyau de convolution NC comporte trois lignes et trois colonnes, ce qui signifie que le noyau de convolution NC est carré dans le cas particulier de la figure 2. In this case, the convolution kernel NC has three rows and three columns, which means that the convolution kernel NC is square in the particular case of Figure 2.
Le sous-ensemble matriciel du noyau de convolution NC comporte un ensemble de coefficients de convolution. The convolution kernel matrix subset NC includes a set of convolution coefficients.
Dans la représentation de la figure 2, le noyau de convolution NC est un ensemble de lignes repérées chacune par un indice p et un ensemble de colonnes repérées par un indice q. In the representation of FIG. 2, the convolution kernel NC is a set of rows each identified by an index p and a set of columns identified by an index q.
L’indice p est un nombre entier dont la valeur est comprise entre 1 et HH, HH étant le nombre total de lignes du noyau de convolution NC. The index p is an integer whose value is between 1 and HH, HH being the total number of rows of the convolution kernel NC.
L’indice q est un nombre entier dont la valeur est comprise entre 1 et nw, nw étant le nombre total de colonnes du noyau de convolution NC. The index q is an integer whose value is between 1 and nw, where nw is the total number of columns of the convolution kernel NC.
Dans le cas représenté, n = nw = 3. In the case shown, n = n w = 3.
Par ailleurs, la valeur du coefficient de convolution dépend également du canal d’entrée et du canal de sortie considéré. Moreover, the value of the convolution coefficient also depends on the input channel and the output channel considered.
Cela signifie qu’un élément du noyau de convolution NC est repéré non plus par un triplet comme le cas des images d’entrée et de sortie mais par un quadruplet (p, q, c, m). This means that an element of the NC convolution kernel is no longer identified by a triplet as in the case of the input and output images but by a quadruplet (p, q, c, m).
Un élément du noyau de convolution NC sera ainsi noté wp,q,c,m ou alternativement w™q c selon les notations de la figure 3. An element of the convolution kernel NC will thus be denoted w p ,q, c , m or alternatively w™ qc according to the notations of figure 3.
L’application du noyau de convolution NC pour le ou chaque canal d’entrée à un sous-ensemble matriciel de la matrice d’entrée dont un premier élément est une case d’entrée ayant des premières coordonnées donne la valeur d’une case de sortie ayant les premières coordonnées pour la matrice de sortie selon le canal de sortie spécifique au noyau de convolution NC appliqué. The application of the NC convolution kernel for the or each input channel to a matrix subset of the input matrix, a first element of which is an input box having first coordinates gives the value of a box of output having the first coordinates for the output matrix according to the output channel specific to the applied NC convolution kernel.
Plus précisément, cela signifie que le noyau de convolution NC est appliqué à chaque élément de la matrice d’entrée compris spatialement dans le sous-ensemble matriciel positionné à la case d’entrée avec les premières coordonnées et ce, sur tous les canaux possibles. More precisely, this means that the convolution kernel NC is applied to each element of the input matrix spatially included in the matrix subset positioned at the input box with the first coordinates and this, on all possible channels.
En l’espèce, cela signifie que le premier élément du tableau de sortie IS, à savoir zi,i,m est le résultat de l’application du noyau de convolution NC correspondant au canal m aux neufs éléments Xu , xi,2, xi,3, X2,i, X2,2, X2,3, X3,i, X3,2 et x 3,3 du tableau d’entrée IE. Plus précisément, cela implique que le premier élément du tableau de sortie IS zi ,1 ,m est une somme pondérée de 27 termes correspondants à la valeur des neufs éléments précités de l’image d’entrée IE pour le canal 1 , le canal 2 et le canal 3. La pondération est faite à l’aide des coefficients de convolution wp,q,c,m du noyau de convolution NC. In this case, this means that the first element of the IS output array, namely zi,i,m is the result of applying the convolution kernel NC corresponding to the channel m to the nine elements Xu , xi,2, xi ,3, X2,i, X2,2, X2,3, X3,i, X3,2 and x 3,3 of the IE input table. More precisely, this implies that the first element of the output table IS zi ,1 , m is a weighted sum of 27 terms corresponding to the value of the aforementioned nine elements of the input image IE for channel 1 , channel 2 and channel 3. The weighting is done using the convolution coefficients w p ,q, c , m of the convolution kernel NC.
Mathématiquement, cela s’écrit :
Figure imgf000014_0001
Mathematically, this is written:
Figure imgf000014_0001
Les considérations précédentes montrent que le premier terme Xu de la somme a les mêmes coordonnées que l’élément z-i,i . The previous considerations show that the first term Xu of the sum has the same coordinates as the element z-i,i .
La généralisation de la formule précédente donne la formule suivante :
Figure imgf000014_0002
The generalization of the previous formula gives the following formula:
Figure imgf000014_0002
En toute généralité, un poids de biais pourrait également être ajouté à l’ensemble de la somme. Un tel poids de biais est spécifique du canal de sortie considéré et serait notée PBm. In general, a bias weight could also be added to the overall sum. Such a bias weight is specific to the output channel considered and would be denoted PB m .
Ce poids de biais est négligé dans la suite de l’exposé et serait aisément implémenté en ajoutant une tension avec un composant CMOS avant l’entrée de chaque neurone 16. This bias weight is neglected in the rest of the presentation and would be easily implemented by adding a voltage with a CMOS component before the input of each neuron 16.
La formulation précédente montre bien que le coefficient de convolution wi J:C m est à interpréter comme un poids synaptique. The previous formulation clearly shows that the convolution coefficient w i J:C m is to be interpreted as a synaptic weight.
Les dispositifs 14 des figures 3 à 5 présentent des implémentations physiques d’un tel filtre de convolution FC. Devices 14 in Figures 3-5 show physical implementations of such an FC convolution filter.
Les dispositifs 14 des figures 3 à 5 sont des dispositifs implémentant physiquement une interconnexion de la figure 1 . Devices 14 of FIGS. 3 to 5 are devices physically implementing an interconnection of FIG. 1 .
Chacun des dispositifs 14 correspond à une implémentation fréquentielle des relations précédentes. Each of the devices 14 corresponds to a frequency implementation of the preceding relationships.
Les dispositifs 14 sont une interconnexion entre une première couche de neurones 12 et une deuxième couche de neurones 12. Devices 14 are an interconnection between a first layer of neurons 12 and a second layer of neurons 12.
Chaque couche comporte un ensemble de neurones 16 agencés selon une ligne.Each layer comprises a set of neurons 16 arranged along a line.
Il est défini une ligne comme verticale ou selon une colonne comme étant la ligne selon laquelle sont agencés les neurones 16 de la première couche 12. A line is defined as vertical or according to a column as being the line along which the neurons 16 of the first layer 12 are arranged.
Comme les fréquences d’oscillation des neurones 16 sont destinées à représenter les cases du tableau d’entrée IE, il est possible pour le cas illustré d’écrire les fréquences des oscillateurs comme, dans l’ordre, fi,i,i, f-1,2,1, ■■■ , fi.Nw.-i, f2,i,2> ■■■ , fNh.Nw , f2,i,2, ... , fNh,Nw,Nc- Dans chacun des cas, le dispositif 14 comprend des ensembles de chaînes synaptiques 20 reliées à des circuits de conversion tension-courant 18 ainsi que des unités d’ajustement de fréquences. As the frequencies of oscillation of the neurons 16 are intended to represent the cells of the input table IE, it is possible for the case illustrated to write the frequencies of the oscillators as, in the order, fi,i,i,f -1,2,1, ■■■ , fi.Nw.-i, f2,i,2> ■■■ , fNh.Nw , f2,i,2, ... , fNh,Nw,Nc- In each case, the device 14 comprises sets of synaptic chains 20 connected to voltage-current conversion circuits 18 as well as frequency adjustment units.
Une chaîne synaptique 20 est un ensemble de synapses 22 reliées en série par au moins une ligne de transmission. A synaptic chain 20 is a set of synapses 22 connected in series by at least one transmission line.
Chaque ligne de transmission ou ligne de champs est réalisée par une piste métallique placée à une distance raisonnablement proche au-dessus ou au-dessous des synapses 22 mais isolée électriquement des synapses 22. Each transmission line or field line is made by a metal track placed at a reasonably close distance above or below synapses 22 but electrically isolated from synapses 22.
Il est à noter que, pour le mode de réalisation correspondant à la figure 3, la transmission du signal peut être faite par ligne de champs, mais aussi électriquement avec des lignes classiques. Dans ce dernier cas, les lignes de transmission ne sont pas isolées des synapses 22. It should be noted that, for the embodiment corresponding to FIG. 3, the transmission of the signal can be done by field line, but also electrically with conventional lines. In the latter case, the transmission lines are not isolated from the synapses 22.
La même implémentation est possible pour les lignes de champs servant à modifier les fréquences des synapses 22 qui seront décrites ultérieurement en référence aux unités d’ajustement de fréquences. The same implementation is possible for the field lines used to modify the frequencies of the synapses 22 which will be described later with reference to the frequency adjustment units.
En biologie, la synapse désigne une zone de contact fonctionnelle qui s'établit entre deux neurones 16. Suivant son comportement, la synapse biologique peut exciter ou encore inhiber le neurone aval en réponse au neurone amont. Dans les réseaux de neurones formels, un poids synaptique positif correspond à une synapse excitatrice tandis qu’un poids synaptique négatif correspond à une synapse inhibitrice. Les réseaux de neurones biologiques apprennent par la modification des transmissions synaptiques dans l’ensemble réseau. De même, les réseaux de neurones formels peuvent être entraînés à réaliser des tâches en modifiant les poids synaptiques selon une règle d’apprentissage. Une des règles d’apprentissage les plus performantes aujourd’hui pour l’entrainement des réseaux profonds est la rétro-propagation du gradient (backpropagation en anglais). Dans le cadre de cette demande, une synapse 22 est un composant réalisant une fonction équivalente à un poids synaptique de valeur modifiable. In biology, the synapse designates a functional contact zone which is established between two neurons 16. Depending on its behavior, the biological synapse can excite or even inhibit the downstream neuron in response to the upstream neuron. In formal neural networks, a positive synaptic weight corresponds to an excitatory synapse while a negative synaptic weight corresponds to an inhibitory synapse. Biological neural networks learn by altering synaptic transmissions throughout the network. Similarly, formal neural networks can be trained to perform tasks by modifying synaptic weights according to a learning rule. One of the most powerful learning rules today for training deep networks is gradient backpropagation. In the context of this application, a synapse 22 is a component performing a function equivalent to a synaptic weight of modifiable value.
Par ailleurs, dans la suite, nous appellerons « chaîne synaptique» ou « chaîne 20 » un ensemble de synapses 22 reliées en chaîne, dont la fonction est de connecter la totalité ou un sous-ensemble de neurones 16 de la couche amont à la couche aval. Plus précisément, la sortie d’une chaîne 20 synaptique est proportionnelle à la somme pondérée des sorties des neurones 16 de la couche précédente qui sont connectés en entrée de la chaîne 20, la pondération étant faite par les poids synaptiques des synapses 22 qui constituent la chaîne 20. Furthermore, in what follows, we will call “synaptic chain” or “chain 20” a set of synapses 22 connected in a chain, whose function is to connect all or a subset of neurons 16 from the upstream layer to the layer downstream. More specifically, the output of a synaptic chain 20 is proportional to the weighted sum of the outputs of the neurons 16 of the previous layer which are connected to the input of the chain 20, the weighting being made by the synaptic weights of the synapses 22 which constitute the chain 20.
Chaque synapse 22 est un résonateur spintronique. En variante, chaque synapse 22 est réalisée par des résonateurs optiques si les neurones 16 sont des signaux optiques. Each synapse 22 is a spintronic resonator. Alternatively, each synapse 22 is realized by optical resonators if the neurons 16 are optical signals.
Un résonateur 22 est un composant électrique présentant une fréquence de résonance. Plus précisément la réponse d’un résonateur 22 à un signal radiofréquence est plus élevée dans une certaine gamme autour de la fréquence de résonance. A resonator 22 is an electrical component having a resonant frequency. More precisely, the response of a resonator 22 to a radio frequency signal is higher in a certain range around the resonant frequency.
Un résonateur spintronique 22 est un résonateur magnéto-résistif. A spintronic resonator 22 is a magnetoresistive resonator.
Plus précisément, un résonateur spintronique 22 est un composant électrique comportant une ou plusieurs couches ferromagnétiques et dont l’aimantation de l’une au moins des couches peut être mise en précession résonante par un signal radiofréquence. La précession de l’aimantation entraîne une variation de la résistance du résonateur 22 par effet magnéto-résistif. La fréquence de résonance du résonateur 22 dépend des dimensions de la couche ferromagnétique, du champ magnétique qui est appliqué sur la couche ferromagnétique et du ou des matériaux ferromagnétiques qui forme(nt) la couche ferromagnétique. More specifically, a spintronic resonator 22 is an electrical component comprising one or more ferromagnetic layers and the magnetization of at least one of the layers of which can be put into resonant precession by a radiofrequency signal. The precession of the magnetization causes a variation of the resistance of the resonator 22 by magneto-resistive effect. The resonant frequency of the resonator 22 depends on the dimensions of the ferromagnetic layer, the magnetic field which is applied to the ferromagnetic layer and the ferromagnetic material or materials which form(s) the ferromagnetic layer.
En outre, chaque résonateur spintronique 22 présente une fréquence de résonance ajustable. Furthermore, each spintronic resonator 22 has an adjustable resonant frequency.
Ainsi, selon un premier exemple, les résonateurs 22 sont des jonctions tunnels magnétiques (à savoir un empilement ferromagnétique / isolant / ferromagnétique). Thus, according to a first example, the resonators 22 are magnetic tunnel junctions (namely a ferromagnetic/insulator/ferromagnetic stack).
Le courant ou le champ magnétique permet de faire résonner la couche magnétique supérieure, et donc de faire osciller la résistance grâce à l’effet de magnétorésistance tunnel. The current or the magnetic field makes the upper magnetic layer resonate, and therefore causes the resistance to oscillate thanks to the tunnel magnetoresistance effect.
Selon un deuxième exemple, les résonateurs 22 sont des vannes de spin (à savoir un empilement ferromagnétique / métal / ferromagnétique). According to a second example, the resonators 22 are spin valves (namely a ferromagnetic/metal/ferromagnetic stack).
Selon un troisième exemple, les résonateurs 22 sont de simples lignes de métaux ferromagnétiques According to a third example, the resonators 22 are simple lines of ferromagnetic metals
Le champ d’Oersted créé alors par le courant traversant la ligne magnétique permet de la faire entrer en résonance. La résistance oscille grâce à l’effet d’anisotropie de magnétorésistance (effet plus faible que celui de magnétorésistance géante). The Oersted field then created by the current crossing the magnetic line allows it to enter into resonance. The resistance oscillates thanks to the anisotropy effect of magnetoresistance (weaker effect than that of giant magnetoresistance).
Selon un quatrième exemple, les résonateurs 22 sont des jonctions avec un empilement Métal lourd / Ferromagnétique / Isolant avec une ligne de champs au-dessus. Un métal lourd présentant un fort effet Hall de spin inverse. En l’espèce, le métal lourd est un alliage comprenant un ou plusieurs des éléments parmi le groupe constitué de Pt, W, Pd, Au, Ir, Ag et Bi. According to a fourth example, the resonators 22 are junctions with a Heavy Metal/Ferromagnetic/Insulator stack with a field line above. A heavy metal exhibiting a strong reverse-spin Hall effect. In this case, the heavy metal is an alloy comprising one or more of the elements from the group consisting of Pt, W, Pd, Au, Ir, Ag and Bi.
La ligne de champs crée un champ magnétique radiofréquence qui fait résonner la partie ferromagnétique. La précession de l’aimantation induit un courant de spin dans le partie métal lourd (métaux à fort couplage spin-orbite, tel que Pt, W, Pd...), et ce courant de spin est converti en tension grâce à l’effet Hall de spin inverse. The field line creates a radio frequency magnetic field which causes the ferromagnetic part to resonate. The precession of the magnetization induces a spin current in the heavy metal part (metals with strong spin-orbit coupling, such as Pt, W, Pd...), and this spin current is converted into voltage thanks to the inverse spin Hall effect.
Dans l’exemple où les résonateurs 22 sont des jonctions tunnels magnétiques, la tension aux bornes d’un résonateur 22 en fonction du signal reçu s’écrit selon la formule suivante :
Figure imgf000017_0001
In the example where the resonators 22 are magnetic tunnel junctions, the voltage at the terminals of a resonator 22 as a function of the signal received is written according to the following formula:
Figure imgf000017_0001
Où : Or :
• PRF est la puissance du signal reçu, • P RF is the power of the received signal,
• fRF est la fréquence du signal reçu, • f RF is the frequency of the received signal,
• fres est la fréquence de résonance du résonateur 22, • f res is the resonance frequency of the resonator 22,
• a est le coefficient d’amortissement magnétique du résonateur 22, et• a is the magnetic damping coefficient of resonator 22, and
• A est un coefficient qui dépend notamment de la résistance du résonateur 22, de la magnétorésistance du résonateur 22 et de l’adaptation d’impédance du résonateur 22. • A is a coefficient which depends in particular on the resistance of resonator 22, the magnetoresistance of resonator 22 and the impedance adaptation of resonator 22.
Chaque ensemble de chaînes 20 est propre à appliquer un noyau de convolution NC respectif. Each set of chains 20 is capable of applying a respective convolution kernel NC.
Le nombre de chaînes 20 d’un même ensemble étant égal au nombre de cases du tableau de sortie IS que le noyau de convolution NC permet d’obtenir par application sur le tableau d’entrée IE. The number of strings 20 of the same set being equal to the number of boxes of the output table IS that the convolution kernel NC makes it possible to obtain by application on the input table IE.
Chaque chaîne 20 d’un même ensemble de chaînes 20 rassemble les résonateurs spintroniques 22 ayant une fréquence de résonance égale à la fréquence des neurones 16 implémentant les valeurs des pixels du sous-ensemble matriciel de la matrice d’entrée associé au noyau de convolution NC de l’ensemble de chaînes 20 et dont le premier élément est un pixel d’entrée ayant des coordonnées respectives. Each chain 20 of a same set of chains 20 brings together the spintronic resonators 22 having a resonant frequency equal to the frequency of the neurons 16 implementing the values of the pixels of the matrix subset of the input matrix associated with the convolution kernel NC of the set of strings 20 and whose first element is an input pixel having respective coordinates.
Par l’égalité dans ce contexte, il est entendu que la fréquence de résonance du résonateur 22 est proche de la fréquence des neurones 16, ce qui veut dire que la différence de fréquence fRF - fres entre la fréquence d’un résonateur 22 et de son neurone 16 associé est de valeur absolue inférieure au terme afres. By equality in this context, it is understood that the resonant frequency of the resonator 22 is close to the frequency of the neurons 16, which means that the frequency difference f RF - f res between the frequency of a resonator 22 and of its associated neuron 16 has an absolute value less than the term afres .
Dans l’exemple proposé, cela signifie que la première chaîne 20 comporte les 27 résonateurs spintroniques 22 associés à la valeur des neufs éléments précités xi ,1 , xi,2, xi,3, x2,i, x2,2, x2,3, x3,i, x3,2 et x 3,3 du tableau d’entrée IE pour le canal 1 , le canal 2 et le canal 3. Par le terme « associé » dans ce contexte, il est entendu que chaque résonateur 22 présente une fréquence respective égale aux (« proche » parmi les) fréquences des neurones 16 codant la valeur des éléments précités. In the example given, this means that the first chain 20 comprises the 27 spintronic resonators 22 associated with the value of the aforementioned nine elements xi ,1 , xi, 2 , xi,3, x 2 ,i, x 2 , 2 , x 2 ,3, x 3 ,i, x 3 , 2 and x 3,3 of the IE input table for channel 1 , channel 2 and channel 3. By the term “associated” in this context, it is understood that each resonator 22 has a respective frequency equal to the (“close” among the) frequencies of the neurons 16 encoding the value of the aforementioned elements.
En fonctionnement, chaque résonateur spintronique 22 présente une fréquence ajustée par une unité d’ajustement de fréquences U pour que la fréquence du résonateur 22 soit égale à la fréquence de résonance du résonateur à laquelle est ajouté un décalage en fréquence dépendant du coefficient de convolution du noyau de convolution NC à appliquer à l’oscillateur associé au réseau spintronique. Le décalage en fréquence ajouté noté Sp q c m est tel que la tension aux bornes d’un résonateur 22 s’écrit : v In operation, each spintronic resonator 22 has a frequency adjusted by a frequency adjustment unit U so that the frequency of the resonator 22 is equal to the resonant frequency of the resonator to which is added a frequency offset depending on the convolution coefficient of the NC convolution kernel to be applied to the oscillator associated with the spintronic network. The added frequency shift denoted S pqcm is such that the voltage across a resonator 22 is written: v
Donc afin qu
Figure imgf000018_0002
So so that
Figure imgf000018_0002
Le décalage en fréquence a pour valeur 5v a c m =
Figure imgf000018_0001
— - .
The frequency offset has the value 5 vacm =
Figure imgf000018_0001
— - .
2wp,q,c,m ' 2w p,q,c,m
Cela est indiqué dans la figure 3 pour chaque résonateur 22 par un rectangle comportant une valeur correspondant à la fréquence de résonance et une valeur correspondant au décalage en fréquence à appliquer. This is indicated in FIG. 3 for each resonator 22 by a rectangle comprising a value corresponding to the resonance frequency and a value corresponding to the frequency shift to be applied.
Plus précisément, dans l’exemple proposé en supposant que le canal de sortie concerné est le canal m, la première chaîne 20 comporte successivement un premier résonateur 22 à la fréquence (fi,i,i + 5i,i,i,m), un deuxième résonateur 22 à la fréquence (f-1,2,1 + 5i,2,i,m), ...., un neuvième résonateur 22 à la fréquence (fs, 3,1 + ô3,3,i,m), un dixième résonateur 22 à la fréquence (f 1 ,1 ,2 + 5i ,1 ,2,m), un onzième résonateur 22 à la fréquence (fi ,2,2 + 5i ,2,2,m) , . . . . , un dix-huitième résonateur 22 à la fréquence (fs, 3, 2 + ô3,3,2,m) , un dix-neuvième résonateur 22 à la fréquence (f 1 ,1 ,3 + 5i ,1 ,3,m) un vingtième résonateur 22 à la fréquence (f 1 ,2,3 + ôi ,2,3,m) , . . . . et un vingt-septième résonateur 22 à la fréquence (fs, 3, 3 + Ô3,3,3,m). More precisely, in the example proposed, assuming that the output channel concerned is channel m, the first chain 20 successively comprises a first resonator 22 at the frequency (fi,i,i + 5i,i,i,m), a second resonator 22 at the frequency (f-1,2,1 + 5i,2,i,m), ...., a ninth resonator 22 at the frequency (fs, 3,1 + δ 3,3 ,i ,m), a tenth resonator 22 at the frequency (f 1 ,1 ,2 + 5i ,1 ,2,m), an eleventh resonator 22 at the frequency (fi ,2,2 + 5i ,2,2,m) , . . . . , an eighteenth resonator 22 at the frequency (fs, 3, 2 + o 3,3,2 ,m), an eighteenth resonator 22 at the frequency (f 1,1,3 + 5i,1,3, m) a twentieth resonator 22 at the frequency (f 1 ,2,3 + ôi ,2,3,m), . . . . and a twenty-seventh resonator 22 at the frequency (fs, 3, 3 + Ô3,3,3,m).
Similairement, la deuxième chaîne 20 comporte successivement un premier résonateur 22 à la fréquence (fi,2,i + 5i,i,i,m), un deuxième résonateur 22 à la fréquence (f-1,3,1 + ôi,2,i,m), un neuvième résonateur 22 à la fréquence (fs, 4,1 + Ô3,3,i,m), un dixième résonateur 22 à la fréquence (f 1 ,2,2 + 5i ,1 ,2,m), un onzième résonateur 22 à la fréquence (fi ,3,2 + ôi ,2,2,m) , un dix-huitième résonateur 22 à la fréquence (fs, 4, 2 + ô3,3,2,m) , un dix-neuvième résonateur 22 à la fréquence (f 1 ,2,3 + 5i ,1 ,3,m) un vingtième résonateur 22 à la fréquence (f 1 ,3,3 + ôi ,2,3,m) , . . . . et un vingt-septième résonateur 22 à la fréquence (fs, 4, 3 + Ô3,3,3,m). Similarly, the second chain 20 successively comprises a first resonator 22 at the frequency (fi, 2 ,i + 5i,i,i,m), a second resonator 22 at the frequency (f-1,3,1 + ôi,2 ,i, m ), a ninth resonator 22 at the frequency (fs,4,1+Ô3,3,i,m), a tenth resonator 22 at the frequency (f 1,2,2+5i,1,2, m), an eleventh resonator 22 at the frequency (fi, 3,2 + ôi, 2,2, m ), an eighteenth resonator 22 at the frequency (fs, 4, 2 + ô 3 , 3,2, m ), a nineteenth resonator 22 at the frequency (f 1 ,2,3 + 5i ,1 ,3,m) a twentieth resonator 22 at the frequency (f 1 ,3,3 + ôi ,2,3,m) , . . . . and a twenty-seventh resonator 22 at the frequency (fs,4,3+Ô3,3,3,m).
Et ainsi de suite pour parcourir l’ensemble des valeurs possibles pour les indices a et b. La (h+l)-ième chaîne 20 comporte ainsi successivement un premier résonateur 22 à la fréquence (fNa,Nt>,i + 5i ,i ,i ,m) , un deuxième résonateur 22 à la fréquence (fNa,Nt>+i,i + ôi ,2,i ,m) , ■ ■ ■ ■ , un neuvième résonateur 22 à la fréquence (fNa+2,Nb+2,i + Ô3,3,i,m), un dixième résonateur 22 à la fréquence (fNa,Nt>,2 + ôi,i,2,m), un onzième résonateur 22 à la fréquence (fNa,Nb+i ,2 + ôi ,2,2,m) , ■ ■ ■ ■ , un dix-huitième résonateur 22 à la fréquence (fNa+2,Nb+2,2 + Ô3,3,2,m) , un dix-neuvième résonateur 22 à la fréquence (fNa,Nb,3 + 5i ,1 ,3,m) un vingtième résonateur 22 à la fréquence (fNa,Nb+i,3 + ôi,2,3,m), .... et un vingt-septième résonateur 22 à la fréquence (fNa+2,Nb+2,3 + Ô3,3,3,m). And so on to browse the set of possible values for the indices a and b. The (h+1)-th chain 20 thus successively comprises a first resonator 22 at the frequency (fNa,Nt>,i +5i,i,i, m ), a second resonator 22 at the frequency (fNa,Nt>+ i,i + ôi ,2,i , m ), ■ ■ ■ ■ , a ninth resonator 22 at the frequency (fNa+2,Nb+2,i + Ô3,3,i,m), a tenth resonator 22 at the frequency (fNa,Nt>,2 + ôi,i,2,m), an eleventh resonator 22 at the frequency (fNa,Nb+i ,2 + ôi ,2,2,m), ■ ■ ■ ■ , a eighteenth resonator 22 at the frequency (fNa+2,Nb+2,2 + Ô3,3,2,m), an eighteenth resonator 22 at the frequency (fNa,Nb,3+5i,1,3, m) a twentieth resonator 22 at the frequency (fNa,Nb+i,3 + ôi,2,3, m ), .... and a twenty-seventh resonator 22 at the frequency (fNa+2,Nb+2, 3 + Ô3,3,3,m).
Cela donne un ensemble de h*l chaînes 20. This gives a set of h*l strings 20.
Selon l’exemple de la figure 3, une unité d’ajustement de fréquences U est un applicateur de courant continu. According to the example of Figure 3, a frequency adjustment unit U is a direct current applicator.
Dans l’exemple de la figure 3, le même décalage en fréquence est appliqué à chacun des i-ièmes résonateurs 22. In the example of Figure 3, the same frequency shift is applied to each of the i-th resonators 22.
Dans un tel cas, l’unité d’ajustement de fréquences U est la même pour les résonateurs spintroniques 22 d’un même ensemble de chaînes 20 pour lesquels le coefficient de convolution à appliquer est identique. In such a case, the frequency adjustment unit U is the same for the spintronic resonators 22 of the same set of chains 20 for which the convolution coefficient to be applied is identical.
Cela signifie que c’est la même unité d’ajustement de fréquences U pour chacun des i-ièmes résonateurs 22 de l’ensemble décrit à la figure 3. This means that it is the same frequency adjustment unit U for each of the i-th resonators 22 of the assembly described in FIG. 3.
En outre, en agençant les résonateurs 22 selon une matrice dont les colonnes sont les i-ièmes résonateurs 22, l’unité d’ajustement de fréquences U est propre à appliquer le même décalage en fréquence sur une ligne de champ rectiligne s’étendant selon une colonne, c’est-à-dire perpendiculairement à la direction selon laquelle s’étend la chaîne 20. Furthermore, by arranging the resonators 22 according to a matrix whose columns are the i-th resonators 22, the frequency adjustment unit U is able to apply the same frequency shift to a rectilinear field line extending along a column, that is to say perpendicular to the direction in which the chain 20 extends.
Dans l’exemple de la figure 3, le dispositif 14 comprend, en outre, un sommateur 23 et un amplificateur 24 placés entre la première couche de neurones 12 et l’entrée des chaînes 20. In the example of figure 3, the device 14 also comprises a summer 23 and an amplifier 24 placed between the first layer of neurons 12 and the input of the chains 20.
Un sommateur 23 est un circuit permettant de sommer sur une même voie de transmission différents types de signaux. A summer 23 is a circuit making it possible to sum different types of signals on the same transmission channel.
En l’espèce, le sommateur 23 est propre à effectuer une somme des signaux issus de chacun des neurones 16 de la première couche de neurones 12. In this case, the adder 23 is able to perform a sum of the signals from each of the neurons 16 of the first layer of neurons 12.
Le sommateur 23 est, par exemple, réalisé par une technologie CMOS. The adder 23 is, for example, produced by CMOS technology.
Un amplificateur 24 est un système électronique augmentant la tension et/ou l’intensité d’un signal électrique. An amplifier 24 is an electronic system that increases the voltage and/or intensity of an electrical signal.
Ici, l’amplificateur 24 est propre à amplifier le signal sommé. Here, the amplifier 24 is able to amplify the summed signal.
A titre d’exemple, l’amplificateur 24 est réalisé à l’aide d’une technologie CMOS.By way of example, the amplifier 24 is produced using CMOS technology.
Chaque circuit de conversion 18 joue le rôle d’un convertisseur de tension continue en courant continu. Selon l’exemple proposé, le circuit de conversion 18 comprend des diodes. Each conversion circuit 18 acts as a DC to DC converter. According to the example proposed, the conversion circuit 18 comprises diodes.
Une diode est connectée à la sortie de chaque chaîne 20. A diode is connected to the output of each chain 20.
La diode est, par exemple, une diode de type CMOS. The diode is, for example, a CMOS type diode.
La diode permet de transformer le signal radiofréquence incident en signal continu. Tout autre dispositif permettant d’effectuer la même fonction est envisageable.The diode makes it possible to transform the incident radiofrequency signal into a continuous signal. Any other device for performing the same function is possible.
A titre d’exemple, au lieu d’une diode, un détecteur de puissance radiofréquence est utilisé. As an example, instead of a diode, a radio frequency power detector is used.
Le dispositif 14 comporte également un amplificateur 26 en sortie, c’est-à-dire un amplificateur 26 entre le circuit de conversion 18 et le neurone 16 correspondant de la deuxième couche de neurones 12. The device 14 also comprises an amplifier 26 at the output, that is to say an amplifier 26 between the conversion circuit 18 and the corresponding neuron 16 of the second layer of neurons 12.
Le fonctionnement du dispositif 14 de la figure 3 est maintenant décrit. The operation of the device 14 of FIG. 3 is now described.
Le signal des neurones 16 est sommé par le sommateur 23 pour obtenir un signal sommé. The signal from neurons 16 is summed by adder 23 to obtain a summed signal.
L’amplificateur 24 amplifie le signal sommé. Amplifier 24 amplifies the summed signal.
Le signal ainsi amplifié est envoyé en entrée de chaque chaîne 20. The signal thus amplified is sent to the input of each chain 20.
En parallèle, les unités d’ajustement de fréquences appliquent les décalages en fréquence correspondants aux coefficients de convolution à chaque résonateur 22. In parallel, the frequency adjustment units apply the frequency shifts corresponding to the convolution coefficients to each resonator 22.
Plus précisément, dans chaque ensemble de chaîne 20, la première unité d’ajustement de fréquences U1 ajoute un premier décalage en fréquence (premier poids), la deuxième unité d’ajustement de fréquences U2 ajoute un deuxième décalage en fréquence (deuxième poids), la troisième unité d’ajustement de fréquences U3 ajoute un troisième décalage en fréquence (troisième poids)... et ainsi de suite jusqu’à la vingt- septième unité d’ajustement de fréquences U27 qui ajoute un vingt-septième décalage en fréquence (vingt-septième poids). More precisely, in each set of chain 20, the first frequency adjustment unit U1 adds a first frequency offset (first weight), the second frequency adjustment unit U2 adds a second frequency offset (second weight), the third frequency adjustment unit U3 adds a third frequency offset (third weight)... and so on up to the twenty-seventh frequency adjustment unit U27 which adds a twenty-seventh frequency offset ( twenty-seventh weight).
Pour cela, chaque unité d’ajustement de fréquences U étant un applicateur de courant continu, un courant continu est appliqué et passe par une ligne de champs. Un champ magnétique est ainsi créé. Le champ magnétique agit alors sur l’aimantation d’une couche du résonateur 22. La fréquence de résonance d’un matériau magnétique évolue, en effet, de manière linéaire avec le champ magnétique appliqué. For this, each frequency adjustment unit U being a direct current applicator, a direct current is applied and passes through a field line. A magnetic field is thus created. The magnetic field then acts on the magnetization of a layer of the resonator 22. The resonance frequency of a magnetic material evolves, in fact, in a linear manner with the applied magnetic field.
Puis, une interaction entre le signal sommé et chaque résonateur 22 de la chaîne 20 a lieu. Then, an interaction between the summed signal and each resonator 22 of the chain 20 takes place.
Le signal obtenu après interaction est ensuite redressé par le résonateur 22. The signal obtained after interaction is then rectified by the resonator 22.
Il est ainsi obtenu la valeur d’une case du tableau de sortie IS. The value of a cell of the IS output table is thus obtained.
Autrement formulé, chaque chaîne 20 synaptique calcule la valeur d’une case du tableau de sortie IS par interaction entre le signal sommé et chaque résonateur 22 de la chaîne 20. Un ensemble de chaînes 20 calcule ainsi la valeur de l’ensemble des cases du tableau de sortie IS pour un canal. Otherwise formulated, each synaptic chain 20 calculates the value of a box of the IS output table by interaction between the summed signal and each resonator 22 of the chain 20. A set of strings 20 thus calculates the value of the set of cells of the output table IS for a channel.
Chaque ensemble de chaînes 20 calcule un tableau de sortie IS pour un canal respectif. Each set of chains 20 calculates an IS output table for a respective channel.
Ce principe illustré pour le filtre de convolution FC de la figure 2 peut s’appliquer pour un cas général. De ce fait, c’est dans ce cas de figure que la figure 3 a été réalisée avec des nombres quelconques pour les indices. This principle illustrated for the convolution filter FC of figure 2 can be applied for a general case. As a result, it is in this case that Figure 3 has been produced with any numbers for the indices.
Le dispositif 14 de la figure 3 réalise ainsi physiquement un filtre de convolution FC sur un tableau d’entrée IE implémenté par la première couche de neurones 12 et un tableau de sortie IS implémenté par la deuxième couche de neurones 12. The device 14 of FIG. 3 thus physically realizes a convolution filter FC on an input array IE implemented by the first layer of neurons 12 and an output array IS implemented by the second layer of neurons 12.
Autrement formulé, cela signifie que le dispositif 14 est une implémentation physique d’un filtre de convolution FC sur un tableau d’entrée IE implémenté par la première couche de neurones 12 et un tableau de sortie IS implémenté par la deuxième couche de neurones 12. In other words, this means that the device 14 is a physical implementation of a convolution filter FC on an input array IE implemented by the first layer of neurons 12 and an output array IS implemented by the second layer of neurons 12.
Un tel dispositif 14 est capable d’effectuer de larges produits matriciels en parallèle avec des transformations non-linéaires. Comme expliqué précédemment, une telle non- linéarité provient du fait que les neurones 12 n’oscillent qu’au-dessus d’un courant de seuil. Such a device 14 is capable of performing large matrix products in parallel with non-linear transformations. As explained previously, such a non-linearity comes from the fact that neurons 12 only oscillate above a threshold current.
Un tel dispositif 14 est ainsi compatible avec un système 10 comportant un nombre de couches supérieur à 3, de préférence supérieur à 5 et/ou le nombre de chaînes 20 est supérieur à 9, de préférence supérieur à 100. Such a device 14 is thus compatible with a system 10 comprising a number of layers greater than 3, preferably greater than 5 and/or the number of chains 20 is greater than 9, preferably greater than 100.
En outre, le dispositif 14 ayant de la mémoire le tout intégré sur une même puce permettrait de réduire drastiquement la consommation d’énergie, et d’augmenter la vitesse d’exécution de la reconnaissance d’image. In addition, the device 14 having memory all integrated on the same chip would drastically reduce the energy consumption, and increase the execution speed of the image recognition.
Cette augmentation de vitesse est d’autant plus sensible que le dispositif 14 n’implique aucun multiplexage temporel. This increase in speed is all the more significant since the device 14 does not involve any time-division multiplexing.
De plus, le dispositif 14 est très compact puisque les composants formant les oscillateurs et les résonateurs 22 peuvent présenter des dimensions de l’ordre de 20 nm. In addition, the device 14 is very compact since the components forming the oscillators and the resonators 22 can have dimensions of the order of 20 nm.
De tels composants sont, en outre, compatibles avec la technologie CMOS, ce qui rend leur intégration aisée. Such components are, moreover, compatible with CMOS technology, which makes their integration easy.
Par ailleurs, il est proposé de modifier les poids synaptiques de manière simultanée à l’aide d’une unité d’ajustement de fréquences U communes à plusieurs résonateurs 22, ce qui fait gagner beaucoup de temps en écriture. Furthermore, it is proposed to modify the synaptic weights simultaneously using a frequency adjustment unit U common to several resonators 22, which saves a lot of writing time.
Ainsi, l’emploi d’un applicateur de courant pour l’unité d’ajustement de fréquences U permet un contrôle aisé des poids synaptiques grâce à un contrôle analogique. Thus, the use of a current applicator for the frequency adjustment unit U allows easy control of synaptic weights through analog control.
Néanmoins, du fait qu’il faut appliquer en permanence le courant continu, un tel mode de réalisation correspond à un fonctionnement volatile : Selon un autre exemple, l’unité d’ajustement de fréquences U est un applicateur d’impulsions de courant. However, because the direct current must be applied continuously, such an embodiment corresponds to volatile operation: According to another example, the frequency adjustment unit U is a current pulse applicator.
En fonctionnement, lorsqu’une impulsion de courant passe par une ligne de champ, un fort champ magnétique est produit. Un tel fort champ magnétique provoque l’aimantation d’une couche du résonateur 22. Il est alors possible d’alterner entre deux fréquences différentes, ce qui permet que le résonateur 22 présente deux états en fonction de l’application ou non d’une impulsion de courant par l’applicateur d’impulsions de courant. In operation, when a current pulse passes through a field line, a strong magnetic field is produced. Such a strong magnetic field causes the magnetization of a layer of the resonator 22. It is then possible to alternate between two different frequencies, which allows the resonator 22 to have two states depending on whether or not a current pulse by the current pulse applicator.
Un tel exemple correspond donc à un fonctionnement non-volatile mais avec des poids uniquement binaires. Such an example therefore corresponds to non-volatile operation but with only binary weights.
Selon encore un autre exemple, l’unité d’ajustement de fréquences U est un applicateur de tension. According to yet another example, the frequency adjustment unit U is a voltage applicator.
Une tension de grille appliquée au-dessus du résonateur 22 déplace des atomes d’oxygène à l’interface entre la barrière tunnel (oxyde) et la couche supérieure du résonateur 22. Cela permet de modifier l’anisotropie magnétique, et donc de modifier le champ magnétique effectif appliqué. A gate voltage applied above the resonator 22 moves oxygen atoms to the interface between the tunnel barrier (oxide) and the upper layer of the resonator 22. This makes it possible to modify the magnetic anisotropy, and therefore to modify the effective applied magnetic field.
Un tel exemple correspond donc à un fonctionnement analogique et non-volatile.Such an example therefore corresponds to analog and non-volatile operation.
Selon les besoins, les unités d’ajustement de fréquences sont selon un ou plusieurs des exemples précédents. Depending on the needs, the frequency adjustment units are according to one or more of the preceding examples.
Par exemple, dans une partie du réseau de neurones où il est imposé que les poids soient binaires, l’emploi d’un applicateur d’impulsions de courant est indiqué mais dans une partie du réseau de neurones où les poids sont quelconques, l’emploi d’un applicateur de tension est indiqué. Dans un tel exemple, les unités d’ajustement de fréquences sont soit des applicateurs d’impulsions de courant soit des applicateurs de tension. For example, in a part of the neural network where the weights are imposed to be binary, the use of a current pulse applicator is indicated, but in a part of the neural network where the weights are arbitrary, the use of a voltage applicator is indicated. In such an example, the frequency adjustment units are either current pulse applicators or voltage applicators.
L’unité d’ajustement des fréquences est ainsi un élément propre à ajuster la fréquence d’un résonateur 22 par modification de l’un parmi la tension, le courant ou le champ magnétique appliquée à un résonateur 22. The frequency adjustment unit is thus an element suitable for adjusting the frequency of a resonator 22 by modifying one of the voltage, the current or the magnetic field applied to a resonator 22.
La figure 4 présente une variante du dispositif 14 de la figure 3. Figure 4 shows a variant of the device 14 of Figure 3.
Le dispositif 14 de la figure 4 présente les mêmes éléments que le dispositif 14 de la figure 3. Dans un souci de simplification, les remarques qui sont valables pour les deux dispositifs 14 ne sont pas répétées dans ce qui suit. Seules les différences sont soulignées. The device 14 of FIG. 4 has the same elements as the device 14 of FIG. 3. For the sake of simplification, the remarks which are valid for the two devices 14 are not repeated in what follows. Only the differences are underlined.
Dans un tel dispositif 14, les chaînes 20 ne s’étendent pas selon une ligne perpendiculaire à la ligne selon laquelle s’étendent les neurones 16 de la première couche de neurones 12. In such a device 14, the chains 20 do not extend along a line perpendicular to the line along which the neurons 16 of the first layer of neurons 12 extend.
Les chaînes 20 s’étendent ainsi selon une colonne. The chains 20 thus extend along a column.
Par ailleurs, au lieu d’utiliser un sommateur 23 et un amplificateur 24, les signaux de chaque neurone 16 sont transmis selon des lignes de champs radiofréquences horizontales visibles en pointillés sur la figure 4. Chaque signal d’un neurone 16 est transmis selon une ligne de champs qui lui est propre. Furthermore, instead of using a summer 23 and an amplifier 24, the signals from each neuron 16 are transmitted along lines of radiofrequency fields horizontal lines visible in dotted lines in FIG. 4. Each signal from a neuron 16 is transmitted along a line of fields specific to it.
De ce fait, les résonateurs 22 associés au même poids (ou à la même addition de fréquence) ne sont pas alignés selon une colonne ou une ligne. As a result, the resonators 22 associated with the same weight (or the same frequency addition) are not aligned along a column or a line.
Les unités d’ajustement de fréquences sont alors agencées pour opérer selon une ligne en diagonale. The frequency adjustment units are then arranged to operate in a diagonal line.
Le dispositif 14 selon la figure 4 présente les mêmes avantages que le dispositif 14 de la figure 3. The device 14 according to figure 4 has the same advantages as the device 14 of figure 3.
La figure 5 présente une variante du dispositif 14 de la figure 3. Figure 5 shows a variant of the device 14 of Figure 3.
Le dispositif 14 de la figure 5 présente les mêmes éléments que le dispositif 14 de la figure 3. Dans un souci de simplification, les remarques qui sont valables pour les deux dispositifs 14 ne sont pas répétées dans ce qui suit. Seules les différences sont soulignées. The device 14 of FIG. 5 has the same elements as the device 14 of FIG. 3. For the sake of simplification, the remarks which are valid for the two devices 14 are not repeated in what follows. Only the differences are underlined.
Les résonateurs 22 sont agencés de manière similaire à ceux de la figure 3. The resonators 22 are arranged similarly to those of Figure 3.
Toutefois, au lieu d’utiliser un sommateur 23 et un amplificateur 24, les signaux de chaque neurone 16 sont transmis selon des lignes de champs radiofréquences diagonales visibles en pointillés sur la figure 5. However, instead of using a summer 23 and an amplifier 24, the signals from each neuron 16 are transmitted along diagonal radiofrequency field lines visible in dotted lines in Figure 5.
Chaque ligne de champs transmet un signal qui lui est propre, le signal étant composé d’au plus deux signaux de deux neurones 16 différents de la première couche de neurones 12. Each field line transmits a signal which is specific to it, the signal being composed of at most two signals from two different neurons 16 of the first layer of neurons 12.
Plus précisément, chaque ligne de champs est agencée pour transmettre l’ensemble des fréquences propres des résonateurs 22 de la diagonale. More specifically, each field line is arranged to transmit all of the natural frequencies of the resonators 22 of the diagonal.
Cela signifie que chaque ligne de champs agencée pour transmettre le signal à au plus trois résonateurs 22 est reliée à un seul neurone 16 alors que chaque ligne de champs agencée pour transmettre le signal à plus de trois résonateurs 22 est reliée à deux neurones 16. This means that each field line arranged to transmit the signal to at most three resonators 22 is connected to a single neuron 16 while each field line arranged to transmit the signal to more than three resonators 22 is connected to two neurons 16.
Selon l’exemple proposé, la première ligne de champs transmet le signal provenant du neurone 16 de la première couche de neurones 12 dont la fréquence est fi,i,i , (un seul résonateur 22 sur le trajet de la première ligne de champs) la deuxième ligne de champs transmet le signal provenant du neurone 16 de la première couche de neurones 12 dont la fréquence est fi,2,i (deux résonateurs 22 sur le trajet de la deuxième ligne de champs), la troisième ligne de champs transmet le signal du neurone 16 de la première couche de neurones 12 dont la fréquence est f 1,3,1 (trois résonateurs 22 sur le trajet de la troisième ligne de champs), la quatrième ligne de champs transmet le signal du neurone 16 de la première couche de neurones 12 dont la fréquence est f2,i,i et le signal du neurone 16 de la première couche de neurones 12 dont la fréquence est f 1 ,4,1 et ainsi de suite. Cela décrit uniquement fonctionnement le dispositif 14 sans préciser les connexions qui apparaissent mieux sur la figure 6 qui peut être décrite comme suit en utilisant un formalisme un peu modifié. According to the proposed example, the first line of fields transmits the signal coming from the neuron 16 of the first layer of neurons 12 whose frequency is fi,i,i , (a single resonator 22 on the path of the first line of fields) the second line of fields transmits the signal coming from the neuron 16 of the first layer of neurons 12 whose frequency is fi, 2 ,i (two resonators 22 on the path of the second line of fields), the third line of fields transmits the signal from neuron 16 of the first layer of neurons 12 whose frequency is f 1,3,1 (three resonators 22 on the path of the third line of fields), the fourth line of fields transmits the signal from neuron 16 of the first layer of neurons 12 whose frequency is f 2 ,i,i and the signal of the neuron 16 of the first layer of neurons 12 whose frequency is f 1 ,4,1 and so on. This only describes the operation of the device 14 without specifying the connections which appear better in figure 6 which can be described as follows using a slightly modified formalism.
Le filtre de convolution FC est propre à appliquer un ensemble de coefficients de convolution à un ensemble de valeurs d’entrée ordonnées selon un premier ordre pour obtenir un ensemble de valeurs de sortie ordonnée selon un deuxième ordre, l’ensemble de coefficients de convolution étant agencé selon un troisième ordre, le premier ordre, le deuxième ordre et le troisième ordre sont chacun un parcours ligne à ligne successivement pour chaque canal d’une matrice correspondante dans une représentation du fonctionnement d’un filtre de convolution FC sous forme d’une opérations de matrices où chaque matrice est un ensemble de cases où chaque case présente une valeur propre à au moins un canal. The convolution filter FC is adapted to apply a set of convolution coefficients to a set of input values ordered according to a first order to obtain a set of output values ordered according to a second order, the set of convolution coefficients being arranged according to a third order, the first order, the second order and the third order are each a row-by-row traversal successively for each channel of a corresponding matrix in a representation of the operation of an FC convolution filter in the form of a matrix operations where each matrix is a set of boxes where each box presents a value specific to at least one channel.
Ces ordres de parcours ligne à ligne sont visibles schématiquement sur la figure 2 pour un canal. On comprend bien que la même opération a lieu pour le canal suivant et ainsi de suite jusqu’au dernier canal. These line-to-line traversal orders are visible schematically in FIG. 2 for a channel. We understand that the same operation takes place for the next channel and so on until the last channel.
Chaque case est ainsi ordonnée comme suit la première case de la première ligne de la matrice correspondant au premier canal, ... , la dernière case de la première ligne de la matrice correspondant au premier canal, la première case de la deuxième ligne de la matrice correspondant au premier canal, ... , la dernière case de la deuxième ligne de la matrice correspondant au premier canal, ... , la première case de la dernière ligne de la matrice correspondant au premier canal, ... , la dernière case de la dernière ligne de la matrice correspondant au premier canal, la première case de la première ligne de la matrice correspondant au deuxième canal, ... , la dernière case de la première ligne de la matrice correspondant au deuxième canal, la première case de la deuxième ligne de la matrice correspondant au deuxième canal, ... , la dernière case de la deuxième ligne de la matrice correspondant au deuxième canal, ... , la première case de la dernière ligne de la matrice correspondant au deuxième canal, ... , la dernière case de la dernière ligne de la matrice correspondant au deuxième canal > la première case de la première ligne de la matrice correspondant au dernier canal, ... , la dernière case de la première ligne de la matrice correspondant au dernier canal, la première case de la deuxième ligne de la matrice correspondant au dernier canal, ... , la dernière case de la deuxième ligne de la matrice correspondant au dernier canal, ... , la première case de la dernière ligne de la matrice correspondant au dernier canal, ... , la dernière case de la dernière ligne de la matrice correspondant au dernier canal. Each cell is thus ordered as follows: the first cell of the first row of the matrix corresponding to the first channel, ..., the last cell of the first row of the matrix corresponding to the first channel, the first cell of the second row of the matrix corresponding to the first channel, ... , the last cell of the second row of the matrix corresponding to the first channel, ... , the first cell of the last row of the matrix corresponding to the first channel, ... , the last box of the last row of the matrix corresponding to the first channel, the first box of the first row of the matrix corresponding to the second channel, ..., the last box of the first row of the matrix corresponding to the second channel, the first box of the second row of the matrix corresponding to the second channel, ... , the last box of the second row of the matrix corresponding to the second channel, ... , the first box of the last row of the matrix corresponding to the second xth channel, ... , the last cell of the last row of the matrix corresponding to the second channel > the first cell of the first row of the matrix corresponding to the last channel, ... , the last cell of the first row of the matrix corresponding to the last channel, the first cell of the second row of the matrix corresponding to the last channel, ... , the last cell of the second row of the matrix corresponding to the last channel, ... , the first cell of the last row of the matrix corresponding to the last channel, ... , the last cell of the last row of the matrix corresponding to the last channel.
L’agencement du dispositif 14 est ici particulier. La première couche de neurones 12 comporte des neurones 16 qui implémentent physiquement une valeur d’entrée respective. Ces neurones 16 sont alignés sur une même première colonne selon le premier ordre. Le neurone 16 du haut implémente la valeur d’entrée correspondant à la première case de la première ligne du premier canal et celui d’en-dessous implémente la valeur d’entrée correspondant à la deuxième case de la première ligne du premier canal et ainsi de suite. The arrangement of device 14 is particular here. The first layer of neurons 12 comprises neurons 16 which physically implement a respective input value. These neurons 16 are aligned on the same first column according to the first order. The top neuron 16 implements the input value corresponding to the first box of the first line of the first channel and the one below implements the input value corresponding to the second box of the first line of the first channel and so right now.
La deuxième couche de neurones 12 comporte des neurones 16 qui implémentent physiquement une valeur de sortie respective. Ces neurones 16 sont alignés sur une même deuxième colonne selon le deuxième ordre. Le neurone 16 du haut implémente la valeur de sortie correspondant à la première case de la première ligne du premier canal et celui d’en-dessous implémente la valeur de sortie correspondant à la deuxième case de la première ligne du premier canal et ainsi de suite. La deuxième colonne est parallèle à la première colonne. The second layer of neurons 12 comprises neurons 16 which physically implement a respective output value. These neurons 16 are aligned on the same second column according to the second order. The top neuron 16 implements the output value corresponding to the first box of the first line of the first channel and the one below implements the output value corresponding to the second box of the first line of the first channel and so on . The second column is parallel to the first column.
Les résonateurs 22 d’une même chaîne synaptique 20 sont agencés selon le troisième ordre. Les résonateurs 22 ont été groupés dans le schéma de la figure 6 pour illustrer cela. The resonators 22 of the same synaptic chain 20 are arranged according to the third order. The resonators 22 have been grouped together in the diagram of Figure 6 to illustrate this.
Comme le montre les connexions sur la figure 6, chaque chaîne synaptique 20 est reliée à un neurone de la deuxième couche de neurones 12 et chaque synapse 22 est reliée au neurone de la première couche de neurones 12 implémentant physiquement la valeur d’entrée sur lequel le coefficient de convolution de ladite synapse est à appliquer. As shown in the connections in Figure 6, each synaptic chain 20 is connected to a neuron of the second layer of neurons 12 and each synapse 22 is connected to the neuron of the first layer of neurons 12 physically implementing the input value on which the convolution coefficient of said synapse is to be applied.
Les chaînes synaptiques 20 sont parallèles entre elles et agencées selon une direction perpendiculaire aux deux colonnes, les résonateurs 22 implémentant physiquement les mêmes coefficients du filtre de convolution FC étant spatialement alignés selon une même ligne, les différentes lignes étant parallèles les unes aux autres. The synaptic chains 20 are parallel to each other and arranged in a direction perpendicular to the two columns, the resonators 22 physically implementing the same coefficients of the convolution filter FC being spatially aligned along the same line, the different lines being parallel to each other.
Un tel agencement permet d’obtenir la même compacité que le dispositif 14 de la figure 3 en se passant de l’utilisation d’un sommateur 23 grâce à un emploi astucieux des récurrences propres aux réseaux de neurones convolutionels. Such an arrangement makes it possible to obtain the same compactness as the device 14 of FIG. 3 by dispensing with the use of an adder 23 thanks to a clever use of the recurrences specific to convolutional neural networks.
En outre, un tel agencement permet qu’aucune connexion ne se croise. In addition, such an arrangement allows no connection to cross.
D’autres modes de réalisation sont envisageables en combinant les modes de réalisation précités lorsque cela est techniquement possible. Other embodiments can be envisaged by combining the aforementioned embodiments when technically possible.

Claims

24 REVENDICATIONS 24 CLAIMS
1. Dispositif (14) implémentant physiquement un filtre de convolution (FC) d’un réseau de neurones, le filtre de convolution (FC) prenant en entrée un tableau d’entrée (IE) codé selon au moins un canal d’entrée pour obtenir en sortie un tableau de sortie (IS) codé selon au moins un canal de sortie, le tableau d’entrée (IE) étant un ensemble de cases d’entrée agencées selon une matrice d’entrée, chaque case présentant une valeur propre à chaque canal d’entrée, une première couche de neurones (12) implémentant physiquement le tableau d’entrée (IE), chaque neurone (16) de la première couche de neurones (12) étant un oscillateur, notamment un oscillateur radiofréquence, oscillant à une fréquence propre, chaque neurone (16) de la première couche de neurones (12) correspondant de manière biunivoque à la valeur d’une case d’un canal d’entrée, le tableau de sortie (IS) étant un ensemble de cases de sortie agencées selon une matrice de sortie, chaque case présentant une valeur propre à chaque canal de sortie, une deuxième couche de neurones (12) implémentant physiquement le tableau de sortie (IS), chaque neurone (16) de la deuxième couche de neurones (12) étant un oscillateur, notamment un oscillateur radiofréquence, oscillant à une fréquence propre, chaque neurone (16) de la deuxième couche de neurones (12) correspondant de manière biunivoque à la valeur d’une case d’un canal de sortie, le filtre de convolution (FC) étant un ensemble de noyaux de convolution (NC), chaque noyau de convolution (NC) étant spécifique d’un canal de sortie, chaque noyau de convolution (NC) délimitant un sous-ensemble matriciel présentant une taille strictement inférieure à la taille de la matrice d’entrée, le sous-ensemble matriciel d’un noyau de convolution (NC) comportant un ensemble de coefficients de convolution, le dispositif (14) comprenant des ensembles de chaînes synaptiques (20), chaque chaîne synaptique (20) comportant des synapses (22), chaque synapse (22) étant un résonateur (22), notamment un résonateur spintronique, les résonateurs (22) étant en série, chaque résonateur (22) ayant une fréquence de résonance ajustable, chaque ensemble de chaînes synaptiques (20) étant propre à appliquer un noyau de convolution (NC) respectif, chaque chaîne synaptique (20) d’un même ensemble de chaînes synaptiques (20) rassemblant les résonateurs (22) ayant pour fréquence de résonance la fréquence des neurones (16) implémentant les valeurs des cases du sous-ensemble matriciel de la matrice d’entrée associé au noyau de convolution (NC) de l’ensemble de chaînes synaptiques (20) et dont le premier élément est une case d’entrée ayant des coordonnées respectives, chaque résonateur (22) ayant une fréquence ajustée par une unité d’ajustement de fréquences (U1 , U2, U3) pour que la fréquence du résonateur (22) soit égale à la fréquence de résonance à laquelle est ajouté un décalage en fréquence dépendant du coefficient de convolution du noyau de convolution (NC) à appliquer au neurone (16), le nombre de chaînes synaptiques (20) d’un même ensemble étant égal au nombre de cases du tableau de sortie (IS) que le noyau de convolution (NC) permet d’obtenir par application sur le tableau d’entrée (IE). 1. Device (14) physically implementing a convolution filter (FC) of a neural network, the convolution filter (FC) taking as input an input table (IE) coded according to at least one input channel for obtain at output an output table (IS) coded according to at least one output channel, the input table (IE) being a set of input boxes arranged according to an input matrix, each box presenting a value specific to each input channel, a first layer of neurons (12) physically implementing the input array (IE), each neuron (16) of the first layer of neurons (12) being an oscillator, in particular a radiofrequency oscillator, oscillating at a natural frequency, each neuron (16) of the first layer of neurons (12) corresponding in a one-to-one manner to the value of a box of an input channel, the output table (IS) being a set of boxes of output arranged according to an output matrix, each box presenting a value specific to each c output channel, a second layer of neurons (12) physically implementing the output array (IS), each neuron (16) of the second layer of neurons (12) being an oscillator, in particular a radiofrequency oscillator, oscillating at a natural frequency , each neuron (16) of the second layer of neurons (12) corresponding one-to-one to the value of a box of an output channel, the convolution filter (FC) being a set of convolution kernels (NC) , each convolution kernel (NC) being specific to an output channel, each convolution kernel (NC) delimiting a matrix subset having a size strictly less than the size of the input matrix, the matrix subset a convolution nucleus (NC) comprising a set of convolution coefficients, the device (14) comprising sets of synaptic chains (20), each synaptic chain (20) comprising synapses (22), each synapse (22) being a resonator (22), not ment a spintronic resonator, the resonators (22) being in series, each resonator (22) having an adjustable resonant frequency, each set of synaptic chains (20) being capable of applying a respective convolution nucleus (NC), each synaptic chain (20) of the same set of synaptic chains (20) bringing together the resonators (22) whose resonance frequency is the frequency of the neurons (16) implementing the values of the cells of the matrix subset of the input matrix associated with the convolution kernel (NC) of the set of synaptic chains (20) and whose first element is an entry box having respective coordinates, each resonator (22) having a frequency adjusted by a frequency adjustment unit (U1, U2, U3) so that the frequency of the resonator (22) is equal to the resonance frequency to which is added a frequency shift depending on the convolution coefficient of the convolution kernel (NC) to be applied to the neuron (16), the number of synaptic chains (20) of a same set being equal to the number of cells of the output table (IS) that the convolution kernel (NC) makes it possible to obtain by application to the input table (IE).
2. Dispositif selon la revendication 1 , dans lequel l’unité d’ajustement de fréquences (U1 , U2, U3) est la même pour les résonateurs (22) d’un même ensemble de chaînes synaptiques (20) pour lequel le coefficient de convolution à appliquer est identique. 2. Device according to claim 1, in which the frequency adjustment unit (U1, U2, U3) is the same for the resonators (22) of the same set of synaptic chains (20) for which the coefficient of convolution to be applied is identical.
3. Dispositif selon la revendication 1 ou 2, dans lequel il est défini pour chaque chaîne synaptique (20) une entrée et une sortie, le dispositif (14) comportant au moins un amplificateur (24, 26) positionné soit à l’entrée soit à la sortie. 3. Device according to claim 1 or 2, in which there is defined for each synaptic chain (20) an input and an output, the device (14) comprising at least one amplifier (24, 26) positioned either at the input or to the output.
4. Dispositif selon l’une quelconque des revendications 1 à 3, dans lequel chaque unité d’ajustement de fréquences (UU1 , U2, U3) est choisie dans la liste constituée d’un applicateur de courant continu, un applicateur d’impulsions de courant et un applicateur de tension. 4. Device according to any one of claims 1 to 3, wherein each frequency adjustment unit (UU1, U2, U3) is chosen from the list consisting of a direct current applicator, a pulse applicator of current and a voltage applicator.
5. Dispositif selon l’une quelconque des revendications 1 à 4, dans lequel les résonateurs (22) sont agencés selon une matrice dont les colonnes sont les résonateurs (22) ayant le même coefficient de convolution à appliquer. 5. Device according to any one of claims 1 to 4, wherein the resonators (22) are arranged in a matrix whose columns are the resonators (22) having the same convolution coefficient to be applied.
6. Dispositif selon l’une quelconque des revendications 1 à 5, dans lequel le dispositif (14) comporte un sommateur (23) des signaux issus des neurones (16) de la première couche de neurones (12). 6. Device according to any one of claims 1 to 5, wherein the device (14) comprises a summer (23) of the signals from the neurons (16) of the first layer of neurons (12).
7. Dispositif (14) implémentant physiquement un filtre de convolution (FC) d’un réseau de neurones, le filtre de convolution (FC) étant propre à appliquer un ensemble de coefficients de convolution à un ensemble de valeurs d’entrée ordonnées selon un premier ordre pour obtenir un ensemble de valeurs de sortie ordonnée selon un deuxième ordre, l’ensemble de coefficients de convolution étant agencé selon un troisième ordre, le premier ordre, le deuxième ordre et le troisième ordre sont chacun un parcours ligne à ligne successivement pour chaque canal d’une matrice correspondante dans une représentation du fonctionnement d’un filtre de convolution (FC) sous forme d’une opérations de matrices où chaque matrice est un ensemble de cases où chaque case présente une valeur propre à au moins un canal, le dispositif (14) comportant : 7. Device (14) physically implementing a convolution filter (FC) of a neural network, the convolution filter (FC) being capable of applying a set of convolution coefficients to a set of input values ordered according to a first order to obtain a set of output values ordered according to a second order, the set of convolution coefficients being arranged according to a third order, the first order, the second order and the third order are each a row-to-row traversal successively for each channel of a corresponding matrix in a representation of the operation of a convolution filter (CF) as a matrix operation where each matrix is a set of bins where each bin has a value specific to at least one channel, the device (14) comprising:
- une première couche de neurones (12) dont chaque neurone (16) est un oscillateur, notamment un oscillateur radiofréquence, oscillant à une fréquence propre et implémente physiquement une valeur d’entrée respective, les neurones (16) étant alignés sur une même première colonne selon le premier ordre,- a first layer of neurons (12) in which each neuron (16) is an oscillator, in particular a radiofrequency oscillator, oscillating at a natural frequency and physically implements a respective input value, the neurons (16) being aligned on a same first column according to the first order,
- une deuxième couche de neurones (12) dont chaque neurone (16) est un oscillateur, notamment un oscillateur radiofréquence, oscillant à une fréquence propre et implémente physiquement une valeur de sortie respective, les neurones (16) étant alignés sur une même deuxième colonne selon le deuxième ordre, la deuxième colonne étant parallèle à la première colonne, - a second layer of neurons (12) of which each neuron (16) is an oscillator, in particular a radiofrequency oscillator, oscillating at a natural frequency and physically implements a respective output value, the neurons (16) being aligned on the same second column according to the second order, the second column being parallel to the first column,
- des ensembles de chaînes synaptiques (20), chaque chaîne synaptique (20) comportant des synapses (22) en série implémentant physiquement un coefficient de convolution respectif sur au moins une valeur d’entrée, chaque synapse (22) étant reliée au neurone de la première couche de neurones (12) implémentant physiquement la valeur d’entrée sur lequel le coefficient de convolution de ladite synapse est à appliquer, chaque synapse (22) étant un résonateur (22), notamment un résonateur spintronique, ayant une fréquence de résonance, et présentant une fréquence ajustable par une unité d’ajustement de fréquences (U1 , U2, U3) pour que la fréquence du résonateur (22) soit égale à la fréquence de résonance à laquelle est ajouté un décalage en fréquence dépendant du coefficient de convolution respectif que le résonateur (22) implémente physiquement, les résonateurs (22) d’une même chaîne synaptique (20) étant agencés selon le troisième ordre, chaque chaîne synaptique (20) étant reliée à un neurone de la deuxième couche de neurones (12), les chaînes synaptiques (20) étant parallèles entre elles et agencées selon une direction perpendiculaire aux deux colonnes, les résonateurs (22) implémentant physiquement les mêmes coefficients du filtre de convolution (FC) étant spatialement alignés selon une même ligne, les différentes lignes étant parallèles les unes aux autres. - sets of synaptic chains (20), each synaptic chain (20) comprising synapses (22) in series physically implementing a respective convolution coefficient on at least one input value, each synapse (22) being connected to the neuron of the first layer of neurons (12) physically implementing the input value to which the convolution coefficient of said synapse is to be applied, each synapse (22) being a resonator (22), in particular a spintronic resonator, having a resonant frequency , and having a frequency adjustable by a frequency adjustment unit (U1, U2, U3) so that the frequency of the resonator (22) is equal to the resonant frequency to which is added a frequency offset depending on the convolution coefficient respective that the resonator (22) physically implements, the resonators (22) of the same synaptic chain (20) being arranged according to the third order, each synaptic chain (20) being connected to a neur one of the second layer of neurons (12), the synaptic chains (20) being parallel to each other and arranged in a direction perpendicular to the two columns, the resonators (22) physically implementing the same coefficients of the convolution filter (FC) being spatially aligned along the same line, the different lines being parallel to each other.
8. Système (10) implémentant physiquement un réseau de neurones convolutionnel comportant un dispositif (14) selon l’une quelconque des revendications 1 à 7. 8. System (10) physically implementing a convolutional neural network comprising a device (14) according to any one of claims 1 to 7.
PCT/EP2021/074687 2020-09-08 2021-09-08 Device implementing a convolution filter of a neural network WO2022053502A1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
FRFR2009081 2020-09-08
FR2009081A FR3113971B1 (en) 2020-09-08 2020-09-08 device implementing a convolutional filter of a neural network

Publications (1)

Publication Number Publication Date
WO2022053502A1 true WO2022053502A1 (en) 2022-03-17

Family

ID=74125323

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/EP2021/074687 WO2022053502A1 (en) 2020-09-08 2021-09-08 Device implementing a convolution filter of a neural network

Country Status (2)

Country Link
FR (1) FR3113971B1 (en)
WO (1) WO2022053502A1 (en)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR3025344A1 (en) * 2014-08-28 2016-03-04 Commissariat Energie Atomique NETWORK OF CONVOLUTIONAL NEURONS
US20180013439A1 (en) * 2016-07-06 2018-01-11 Hrl Laboratories, Llc Method to perform convolutions between arbitrary vectors using clusters of weakly coupled oscillators
WO2020021004A1 (en) * 2018-07-26 2020-01-30 Thales Neural network comprising spintronic resonators

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR3025344A1 (en) * 2014-08-28 2016-03-04 Commissariat Energie Atomique NETWORK OF CONVOLUTIONAL NEURONS
US20180013439A1 (en) * 2016-07-06 2018-01-11 Hrl Laboratories, Llc Method to perform convolutions between arbitrary vectors using clusters of weakly coupled oscillators
WO2020021004A1 (en) * 2018-07-26 2020-01-30 Thales Neural network comprising spintronic resonators

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
LEROUX N ET AL: "Radio-Frequency Multiply-And-Accumulate Operations with Spintronic Synapses", ARXIV.ORG, CORNELL UNIVERSITY LIBRARY, 201 OLIN LIBRARY CORNELL UNIVERSITY ITHACA, NY 14853, 16 November 2020 (2020-11-16), XP081815249 *
NATHAN LEROUX ET AL: "Hardware realization of the multiply and accumulate operation on radio-frequency signals with magnetic tunnel junctions", ARXIV.ORG, CORNELL UNIVERSITY LIBRARY, 201 OLIN LIBRARY CORNELL UNIVERSITY ITHACA, NY 14853, 22 March 2021 (2021-03-22), XP081914838 *

Also Published As

Publication number Publication date
FR3113971A1 (en) 2022-03-11
FR3113971B1 (en) 2023-11-03

Similar Documents

Publication Publication Date Title
Li et al. Analogue signal and image processing with large memristor crossbars
Cui et al. Ferroelectric photosensor network: an advanced hardware solution to real-time machine vision
Wang et al. Networking retinomorphic sensor with memristive crossbar for brain-inspired visual perception
Wang et al. Scalable massively parallel computing using continuous-time data representation in nanoscale crossbar array
Hansen et al. Unsupervised Hebbian learning experimentally realized with analogue memristive crossbar arrays
EP2965269B1 (en) Artificial neuron and memristor
Corti et al. Coupled VO2 oscillators circuit as analog first layer filter in convolutional neural networks
Lee et al. In-sensor image memorization and encoding via optical neurons for bio-stimulus domain reduction toward visual cognitive processing
EP3827377A1 (en) Neural network comprising spintronic resonators
FR3025344A1 (en) NETWORK OF CONVOLUTIONAL NEURONS
EP3827379A1 (en) Synaptic chain comprising spintronic resonators based on the spin diode effect, and neural network comprising such a synaptic chain
Ross et al. Multilayer spintronic neural networks with radiofrequency connections
FR2621757A1 (en) PROGRAMMABLE NEURONAL NETWORK WITH FERROELECTRIC POLYMER
Hoffmann et al. Quantum materials for energy-efficient neuromorphic computing: Opportunities and challenges
EP3138050B1 (en) Single-component artificial neuron made from mott insulators, network of artificial neurons, and method for making said artificial neurons
Leroux et al. Convolutional neural networks with radio-frequency spintronic nano-devices
Cai et al. Molecular ferroelectric/semiconductor interfacial memristors for artificial synapses
Mennel et al. A photosensor employing data-driven binning for ultrafast image recognition
Nitta et al. Optical learning neurochip with internal analog memory
Bae et al. Hetero‐integrated InGaAs photodiode and oxide memristor‐based artificial optical nerve for in‐sensor NIR image processing
WO2022053502A1 (en) Device implementing a convolution filter of a neural network
FR3126252A1 (en) Neuromorphic circuit based on 2T2R RRAM cells
WO2020021086A1 (en) Synaptic chain comprising spintronic resonators based on the inverse spin hall effect and neural network comprising such a synaptic chain
FR2946788A1 (en) DEVICE WITH ADJUSTABLE RESISTANCE.
WO2018100325A1 (en) Modulation device and method, artificial synapse comprising said modulation device, short-term plasticity method in an artificial neural network comprising said artificial synapse

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 21773571

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE