EP4226288A1 - Circuit électronique implémentant physiquement un réseau de neurones, système embarqué, procédé d'optimisation et produits associés - Google Patents

Circuit électronique implémentant physiquement un réseau de neurones, système embarqué, procédé d'optimisation et produits associés

Info

Publication number
EP4226288A1
EP4226288A1 EP21790456.4A EP21790456A EP4226288A1 EP 4226288 A1 EP4226288 A1 EP 4226288A1 EP 21790456 A EP21790456 A EP 21790456A EP 4226288 A1 EP4226288 A1 EP 4226288A1
Authority
EP
European Patent Office
Prior art keywords
electronic circuit
memories
elementary
data
transmission lines
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
EP21790456.4A
Other languages
German (de)
English (en)
Inventor
Eric Lenormand
Hadi SAOUD
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Thales SA
Original Assignee
Thales SA
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 SA filed Critical Thales SA
Publication of EP4226288A1 publication Critical patent/EP4226288A1/fr
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/06Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
    • G06N3/063Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/80Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors
    • G06F15/8046Systolic arrays
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/0464Convolutional networks [CNN, ConvNet]

Definitions

  • the present invention relates to an electronic circuit physically implementing a neural network.
  • the present invention also relates to an on-board system comprising such an electronic circuit.
  • Such a classification is often carried out by a neural network and more particularly a convolutional neural network.
  • a convolutional neural network is also called a convolutional neural network.
  • the convolutional neural network is sometimes referred to as the CNN network, the abbreviation CNN referring to the English name of “Convolutional Neural Network”.
  • the description relates to an electronic circuit physically implementing a neural network, the electronic circuit being a programmable logic circuit, the electronic circuit comprising elementary processors each comprising at least two inputs and one output, the first input receiving a weight to be applied, the second input receiving a datum to be processed, each elementary processor applying a configurable function of the weight received and of the datum received to obtain an output result.
  • the electronic circuit further comprising memories suitable for memorizing a weight to be applied, a datum to be processed or an output result, and transmission lines comprising a first portion, a second portion and an intermediate portion, the first portion being connected to a memory and the second portion being connected to an input or an output of an elementary processor.
  • the first portion is capable of being traversed by data in a first direction and the second portion is capable of being traversed by data in a second direction, the first direction being opposite to the second direction.
  • the electronic circuit comprises one or more of the following characteristics, taken separately or in all technically possible combinations:
  • each first portion of a transmission line has the same length as the second portion of the transmission line.
  • each first portion of a transmission line is parallel to the second portion of the transmission line.
  • the memories are divided into first memories suitable for storing a weight to be applied, second memories suitable for storing data to be processed and third memories suitable for storing an output result.
  • the transmission lines are divided into first transmission lines, second transmission lines and third transmission lines, the first transmission lines being connected to a respective first memory and to first inputs of elementary processors, the second transmission lines being connected to a respective second memory and to second inputs of elementary processors and the third transmission lines being connected to a respective third memory and to outputs of elementary processors.
  • each first transmission line is perpendicular to the first portion of each second transmission line and each third transmission line.
  • the electronic circuit comprises identical patterns, each pattern bringing together elementary processors, memories and transmission lines, and, in each pattern, a peripheral zone is defined, the memories being located in the peripheral zone of each pattern.
  • the configurable function of each elementary processor is a convolution operation and the electronic circuit includes a controller suitable for ensuring systolic operation of the electronic circuit.
  • the present description also relates to an on-board system comprising an electronic circuit as previously described.
  • the present description also relates to a platform comprising an on-board system as previously described. Furthermore, the description also relates to a method for optimizing an electronic circuit physically implementing a neural network, the electronic circuit being a programmable logic circuit, the electronic circuit comprising elementary processors each comprising at least two inputs and one output, the first input receiving a weight to be applied, the second input receiving a datum to be processed, each elementary processor applying a configurable function of the weight received and of the datum received to obtain an output result.
  • the electronic circuit also comprises memories capable of memorizing a weight to be applied, a datum to be processed or an output result, and transmission lines having a length and comprising a first portion, a second portion and an intermediate portion, the first portion being connected to a memory and the second portion being connected to an input or an output of an elementary processor, the first portion being capable of being traversed by data in a first direction, the second portion being capable of being traversed by data in a second direction, the first direction being opposed to the second direction.
  • the optimization method is implemented by computer and comprises the determination of the position of the memories and the elementary processors to minimize the sum of the length of the transmission lines.
  • the present description also relates to a computer program product comprising program instructions which implement a method as previously described when the computer program is executed by the data processing unit.
  • the description also relates to a readable information medium comprising program instructions which implement a method as previously described when they are executed by a data processing unit.
  • a platform 10 is represented in FIG. 1 .
  • the platform 10 is either a mobile platform, in particular an aerial platform (aeroplane, helicopter), or a fixed installation (for example a building surveillance system).
  • the platform 10 comprises at least one embedded system 12 comprising at least one electronic circuit 14 physically implementing a neural network.
  • the neural network is a convolutional neural network.
  • the electronic circuit 14 is a programmable logic circuit.
  • the electronic circuit 14 is a network of in situ programmable gates. Such an electronic circuit 14 is often designated by the name FPGA which refers to the English denomination of “field-programmable gate array”.
  • the configuration of the FPGA is defined by a program written in a hardware description language, such as VHDL, Verilog or Chisel (which is an even higher level language).
  • VHDL refers to the English denomination of "Very High Speed Integrated Circuits Hardware Description Language” which literally means “description language of very high speed integrated circuits hardware”.
  • the electronic circuit 14 is a programmable logic device (PLD) or programmable logic arrays (PLA).
  • PLD programmable logic device
  • PLA programmable logic arrays
  • the first direction D1 corresponds to a vertical direction on the board on which figure 2 is represented.
  • the direction of travel according to the first direction D1 is identified using the north N and the south S, the north N corresponding at the top of the board and the south S corresponding to the bottom of the board.
  • the first direction D1 is either traversed according to a first direction called the north N - south S direction corresponding to heading towards the bottom of the board or according to a second direction called the south S - north N direction corresponding to heading towards the top of the board. the board.
  • the second direction D2 corresponds to a horizontal direction on the board on which figure 2 is represented.
  • the direction of travel according to the second direction D2 is identified using west O and east E, west O corresponding to the left of the board and east E corresponding to the right of the board.
  • the second direction D2 is either traversed according to a first direction called west direction O - east E corresponding to heading to the right of the board or according to a second direction called east direction E - west O corresponding to heading to the left of the board.
  • the electronic circuit 14 comprises elementary processors 16, first memories 18, second memories 20, third memories 22, first transmission lines 24, second transmission lines 26, third transmission lines transmission 28 and a controller 30.
  • Each of the elements of the electronic circuit 14 is made on a support 32 in which the location of the elements is constrained due to the manufacturing process of the electronic circuit 14.
  • the elementary processors 16 are organized according to a two-dimensional matrix.
  • Such an organization makes it possible to obtain a grid of elementary processors 16 which is systolic.
  • systolic it is understood an operation similar to that of an organization of elementary processors 16 according to a completely filled two-dimensional grid in which the elementary processor 16 of coordinates (i,j) receives at each cycle of clock on the one hand a datum and a microcommand that the elementary processor 16 of coordinates (i,j-1) had received at the previous clock cycle and on the other hand a datum that the elementary processor 16 of coordinates (i-1 J) had received at the previous clock cycle.
  • i and j are two integers and an elementary processor 16 has the coordinates (i,j) when said elementary processor 16 is positioned at the intersection of the i-th row and the j-th column.
  • the two-dimensional matrix comprises rows, the rows being parallel to the second direction D2, and columns, the columns being parallel to the first direction D1.
  • Each elementary processor 16 has three inputs 16E1, 16E2, 16E3 and an output 16S.
  • the values of the various inputs 16E1, 16E2, 16E3 determine the operation of the elementary processor 16 over time.
  • the first input 16E1 of the elementary processor 16 is capable of receiving a weight to be applied.
  • the second input 16E2 of the elementary processor 16 is capable of receiving data to be processed.
  • the third input 16E3 of the elementary processor 16 is capable of receiving an instruction indicating the operation to be performed.
  • the instruction is to execute a configurable function on the data to be processed using the weight.
  • a configurable function corresponds to inference processing where a chain of operations is applied in real time to a set of data, the coefficients of which are assumed to have been defined during a prior learning phase.
  • the configurable function of each elementary processor 16 is a convolution operation, the convolution operation using the learned weight.
  • the output 16S of the elementary processor 16 is able to emit an output result.
  • the elementary processor 16 is capable of applying the configurable function of the weight received and of the datum received to obtain the output result.
  • Each memory 18, 20, 22 is suitable for storing data.
  • Each memory 18, 20, 22 is shared by elementary processors 16.
  • each first memory 18 is able to memorize at least one weight, each weight being to be applied by a respective elementary processor 16.
  • Each second memory 20 is able to memorize at least one datum to be processed, each datum to be processed being to be received by a respective elementary processor 16.
  • Each third memory 22 is capable of storing at least one output result, each output result being sent by a respective elementary processor 16.
  • each transmission line 24, 26, 28 is a conductive track.
  • Each transmission line 24, 26, 28 is thus capable of being traversed by data that the transmission line 24, 26, 28 is therefore capable of transmitting.
  • Each transmission line 24, 26, 28 comprises a first portion P1, a second portion P2 and an intermediate portion PL
  • the first portion P1 is parallel to a direction D1 or D2.
  • the first portion P1 is capable of being traversed by data in a first direction.
  • the second portion P2 is parallel to the first portion P1.
  • the second portion P2 is capable of being traversed by data in a second direction opposite to the first direction.
  • the first portion P1 and the second portion P2 have the same length.
  • the intermediate portion PI connects the first portion P1 to the second portion P2.
  • the intermediate portion PI ensures a change of direction of the course for a datum coming from the first portion P1.
  • the intermediate portion PI is a rectilinear portion perpendicular to the first portion P1 and to the second portion P2.
  • first transmission line 24 For the sake of readability, only a first transmission line 24, a second transmission line 26 and a third transmission line 28 are shown in Figure 2.
  • the electronic circuit 14 comprises a first transmission line 24 per row of the two-dimensional matrix of elementary processors 16, a second transmission line 26 per column of the matrix and a third transmission line 28 per column of the matrix.
  • Each first transmission line 24 is respectively associated with a first memory 18.
  • first portion P1 of the first transmission line 24 is connected to a first memory 18 and the second portion P2 of the first transmission line 24 is connected to the elementary processors 16 having to apply the weight stored by the first memory 18 with which the first transmission line 24 is associated.
  • the second portion P2 of the first transmission line 24 is connected to the first inputs 16E1 of the elementary processors 16 having to apply the weight.
  • the first portion P1 of the first transmission line 24 is able to be traveled in the east E - west O direction, while the second portion P2 of the second transmission line 24 is suitable to be traveled in the direction west O - east E.
  • Each second transmission line 26 is respectively associated with a second memory 20.
  • first portion P1 of the second transmission line 26 is connected to a second memory 20 and the second portion P2 of the second transmission line 26 is connected to the elementary processors 16 having to receive the data to be processed stored by the second memory 20 with which the second transmission line 26 is associated.
  • the second portion P2 of the second transmission line 26 is thus connected to the second inputs 16E2 of the elementary processors 16 having to receive the data to be processed.
  • the first portion P1 of the second transmission line 26 is capable of being traversed in the south S - north N direction while the second portion P2 of the second transmission line 26 is suitable for travel in the north N - south S direction.
  • Each third transmission line 28 is respectively associated with a third memory 22.
  • the second portion P2 of the third transmission line 28 is connected to a third memory 22 and the first portion P1 of the third transmission line 28 is connected to the elementary processors 16 emitting an output result to be memorized by the third memory 22 with which the third transmission line 28 is associated.
  • the first portion P1 of the third transmission line 28 is thus connected to the output 16S of the elementary processors 16 transmitting an output result.
  • the first portion P1 of the third transmission line 28 is able to be traveled in the south S - north N direction while the second portion P2 of the third transmission line 28 is suitable to be traveled in the direction north N - south S.
  • Controller 30 is capable of ensuring systolic operation of electronic circuit 14.
  • controller 30 can be seen as an operations sequencer or an operations scheduling module.
  • the controller 30 comprises a central unit 31 and local units 34.
  • the central unit 32 is capable of transmitting a clock to ensure synchronization of the local units.
  • the local units are associated with a respective transmission line 24, 26, 28.
  • Each local unit 34 includes a shift register.
  • a shift register is a set of synchronous flip-flops, the flip-flops of which are linked one by one, with the exception of two flip-flops which are not necessarily linked. At each clock cycle, the number represented by these flip-flops is updated.
  • the concept of shift allows to insert a data in the register, or to read it, bit by bit in series.
  • the electronic circuit 14 physically implements a convolutional neural network. More precisely, the electronic circuit 14 implements the convolution layer of such a network.
  • the electronic circuit 14 applies convolution kernels whose coefficients are the weights to a subset of pixels of an input image to obtain an output image.
  • the elementary processors 16 of the same line apply the convolution kernel to a sub-image whose first pixel is a pixel different from the image.
  • the elementary processor 16 propagates the data itself without modifying it to its immediate neighbors located to the east E and to the south S.
  • the propagation is an elementary processor 16 to elementary processor 16 propagation.
  • the elementary processor 16 recovers the data and weights from one of the transmission lines 24, 26 or 28, that is to say that the data received by the immediately neighboring elementary processor 16 which is located to the west O at the cycle clock T is available for the neighboring elementary processor 16 which is located to the east E at the clock cycle T+1.
  • the data to be processed by an elementary processor 16 comes from the immediately neighboring elementary processor 16 which is located north N.
  • the third transmission line 28 propagates the output results transmitted by the neighbors of the elementary processor 16 located to the south S of said elementary processor 16.
  • This propagation is clocked by the clock transmitted by the central unit 31 .
  • the second portions P2 of the first and second transmission lines 24, 26 are supplied by the first portions P1 of the first and second transmission lines 24, 26.
  • the second portion P2 of the third transmission line 28 whose purpose is to conveying output results to be written in the third memory 22, feeds the first portion P1 of the third transmission line 28.
  • Each datum of a second portion P2 encounters the memories 18, 20, 22 at any positions along their paths.
  • the second portion P2 of the third transmission line 28 ends up writing the output results to the correct addresses.
  • the propagation of the data relating to the initial image and to the weights guarantees that an elementary processor 16 placed at the coordinates (x, f) in the electronic circuit 14 will receive the expected triplet at each cycle, with a shift of x+f clock cycles with respect to the corresponding triplet of the initial elementary processor 16 whose coordinates are (0,0).
  • Such an electronic circuit 14 thus makes it possible to implement a convolutional neural network with relatively low power (only a few Watts) and good compactness.
  • the electronic circuit 14 can, moreover, operate at higher rates without generating errors.
  • the electronic circuit 14 is thus compatible with the constraints of an on-board system 12.
  • Such an electronic circuit 14 proposes for this a specific flow of data.
  • FIG. 3 provides a particular example of such an arrangement, in which, for the sake of clarity, the transmission lines 24, 26 and 28 are not shown.
  • the electronic circuit 14 is divided into 40 identical patterns.
  • Each pattern 40 comprises a set of memories 18, 20, 22 and elementary processors 16 located in a space delimited by ends.
  • the number of memories 18, 20, 22 of a pattern 40 is equal to 3.
  • a peripheral zone is defined for each pattern 40.
  • a peripheral zone is a zone in contact with an end, typically a zone of rectangular shape as seen in figure 3.
  • the memories 18, 20, 22 of the pattern 40 are located in the peripheral zone and the elementary processors 16 in the space delimited by the ends but outside the peripheral zone.
  • Such an arrangement is more advantageous than an arrangement where all of the memories 18, 20, 22 are located on the periphery, so that the connections (transmission lines 24, 26 and 28) are shorter.
  • the optimization method comprises determining the position of the memories 18, 20, 22 and of the elementary processors 16 to minimize the sum of the length of the transmission lines 24, 26, 28.
  • the determination is, for example, implemented by using a least square type optimization function.
  • the optimization method takes into account constraints on the positions of the memories 18, 20, 22 and of the elementary processors 16.
  • the position of the calculation zones and of the storage zones of the medium 32 is taken into account.
  • the system is an electronic computer capable of handling and/or transforming data represented as electronic or physical quantities in computer registers and/or memories into other similar data corresponding to physical data in memories, registers or other types of display, transmission or storage devices.
  • the system comprises a processor comprising a data processing unit, memories and an information carrier reader.
  • the system also includes a keyboard and a display unit.
  • the computer program product comprises a readable carrier of information.
  • a readable medium of information is a medium readable by the system, usually by the reader.
  • the readable information carrier is a medium suitable for storing electronic instructions and capable of being coupled to a bus of a computer system.
  • the readable information medium is a diskette or floppy disk (from the English name "floppy disk"), an optical disk, a CD-ROM, a magneto-optical disk, a ROM memory, a RAM memory, an EPROM memory, an EEPROM memory, a magnetic card or an optical card.
  • a computer program comprising program instructions.
  • the computer program is loadable on the data processing unit and is adapted to cause the implementation of the optimization method.

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computing Systems (AREA)
  • General Health & Medical Sciences (AREA)
  • Molecular Biology (AREA)
  • Evolutionary Computation (AREA)
  • Data Mining & Analysis (AREA)
  • Computational Linguistics (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Artificial Intelligence (AREA)
  • Computer Hardware Design (AREA)
  • Neurology (AREA)
  • Logic Circuits (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Multi Processors (AREA)

Abstract

L'invention concerne un circuit électronique (14) implémentant physiquement un réseau de neurones et comportant: - des processeurs (16) comportant une sortie (16S), une entrée (16E1) recevant un poids à appliquer et une entrée (16E2) recevant une donnée à traiter, chaque processeur (16) appliquant une fonction paramétrable du poids reçu et de la donnée reçue pour obtenir un résultat, - des mémoires (18, 20, 22), et - des lignes de transmission (24, 26, 28) comportant une première portion (P1) reliée à une mémoire (18, 20, 22) et parcourue par des données dans un premier sens ainsi qu'une deuxième portion (P2) reliée à une entrée (16E1, 16E2, 16E3) ou une sortie (16S) d'un processeur (16) et parcourue par des données dans un deuxième sens opposé au premier sens.

Description

Circuit électronique implémentant physiquement un réseau de neurones, système embarqué, procédé d’optimisation et produits associés
La présente invention concerne un circuit électronique implémentant physiquement un réseau de neurones. La présente invention se rapporte également à un système embarqué comprenant un tel circuit électronique.
Dans le domaine de la vidéosurveillance, une difficulté est l’étude de multiples images rendant leur exploitation malaisée. Il convient donc d’être capable d’éliminer rapidement un ensemble d’images non pertinentes pour n’examiner que les images les plus pertinentes.
Pour cela, il est connu d’utiliser la classification automatique d’images. Une telle classification est souvent effectuée par un réseau de neurones et plus particulièrement un réseau de neurones à convolution.
Un réseau de neurones à convolution est aussi appelé réseau de neurones convolutifs.
Le réseau de neurones à convolution est parfois désigné sous le terme réseau CNN, l’abréviation CNN renvoyant à la dénomination anglaise de « Convolutional Neural Network ».
Cependant, les implémentations physiques des réseaux de neurones à convolution impliquent de nombreuses ressources matérielles, notamment en temps et en énergie. En effet, de telles implémentations physiques impliquent des processeurs séquentiels conventionnels. Il en résulte que de telles implémentations physiques sont incompatibles avec les systèmes embarqués qui requièrent un poids, un encombrement et une puissance limités.
Il existe donc un besoin pour une implémentation physique d’un réseau de neurones qui soit compatible avec les contraintes d’utilisation dans un système embarqué.
La description porte sur un circuit électronique implémentant physiquement un réseau de neurones, le circuit électronique étant un circuit logique programmable, le circuit électronique comportant des processeurs élémentaires comportant chacun au moins deux entrées et une sortie, la première entrée recevant un poids à appliquer, la deuxième entrée recevant une donnée à traiter, chaque processeur élémentaire appliquant une fonction paramétrable du poids reçu et de la donnée reçue pour obtenir un résultat de sortie. Le circuit électronique comportant, en outre, des mémoires propres à mémoriser un poids à appliquer, une donnée à traiter ou un résultat de sortie, et des lignes de transmission comportant une première portion, une deuxième portion et une portion intermédiaire, la première portion étant reliée à une mémoire et la deuxième portion étant reliée à une entrée ou une sortie d’un processeur élémentaire. La première portion est propre à être parcourue par des données dans un premier sens et la deuxième portion est propre à être parcourue par des données dans un deuxième sens, le premier sens étant opposé au deuxième sens.
Suivant des modes de réalisation particuliers, le circuit électronique comprend une ou plusieurs des caractéristiques suivantes, prise(s) isolément ou suivant toutes les combinaisons techniquement possibles :
- chaque première portion d’une ligne de transmission présente la même longueur que la deuxième portion de la ligne de transmission.
- chaque première portion d’une ligne de transmission est parallèle à la deuxième portion de la ligne de transmission.
- les mémoires sont réparties en des premières mémoires propres à mémoriser un poids à appliquer, des deuxièmes mémoires propres à mémoriser une donnée à traiter et des troisièmes mémoires propres à mémoriser un résultat de sortie. Les lignes de transmission sont réparties en premières lignes de transmission, deuxièmes lignes de transmission et troisièmes lignes de transmission, les premières lignes de transmission étant reliées à une première mémoire respective et à des premières entrées de processeurs élémentaires, les deuxièmes lignes de transmission étant reliées à une deuxième mémoire respective et à des deuxièmes entrées de processeurs élémentaires et les troisièmes lignes de transmission étant reliées à une troisième mémoire respective et à des sorties de processeurs élémentaires.
- la première portion de chaque première ligne de transmission est perpendiculaire à la première portion de chaque deuxième ligne de transmission et de chaque troisième ligne de transmission.
- le circuit électronique comporte des motifs identiques, chaque motif rassemblant des processeurs élémentaires, des mémoires et des lignes de transmissions, et, dans chaque motif, il est défini une zone périphérique, les mémoires étant situées dans la zone périphérique de chaque motif.
- la fonction paramétrable de chaque processeur élémentaire est une opération de convolution et le circuit électronique comporte un contrôleur propre à assurer un fonctionnement systolique du circuit électronique.
La présente description concerne aussi un système embarqué comportant un circuit électronique tel que précédemment décrit.
La présente description a également pour objet une plateforme comportant un système embarqué tel que précédemment décrit. En outre, la description se rapporte aussi à un procédé d’optimisation d’un circuit électronique implémentant physiquement un réseau de neurones, le circuit électronique étant un circuit logique programmable, le circuit électronique comportant des processeurs élémentaires comportant chacun au moins deux entrées et une sortie, la première entrée recevant un poids à appliquer, la deuxième entrée recevant une donnée à traiter, chaque processeur élémentaire appliquant une fonction paramétrable du poids reçu et de la donnée reçue pour obtenir un résultat de sortie. Le circuit électronique comporte également des mémoires propres à mémoriser un poids à appliquer, une donnée à traiter ou un résultat de sortie, et des lignes de transmission présentant une longueur et comportant une première portion, une deuxième portion et une portion intermédiaire, la première portion étant reliée à une mémoire et la deuxième portion étant reliée à une entrée ou une sortie d’un processeur élémentaire, la première portion étant propre à être parcourue par des données dans un premier sens, la deuxième portion étant propre à être parcourue par des données dans un deuxième sens, le premier sens étant opposé au deuxième sens. Le procédé d’optimisation est mis en œuvre par ordinateur et comporte la détermination de la position des mémoires et des processeurs élémentaires pour minimiser la somme de la longueur des lignes de transmission.
La présente description a également pour objet un produit programme d’ordinateur comprenant des instructions de programme qui mettent en œuvre un procédé tel que précédemment décrit lorsque le programme d’ordinateur est exécuté par l’unité de traitement de données.
En outre, la description se rapporte aussi à un support lisible d’informations comprenant des instructions de programmes qui mettent en œuvre d’un procédé tel que précédemment décrit lorsqu’elles sont exécutées par une unité de traitement de données.
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 :
- figure 1, une représentation schématique d’une plateforme,
- figure 2, une représentation schématique d’un exemple de circuit électronique, et
- figure 3, une représentation schématique d’une partie d’un exemple de circuit électronique.
Une plateforme 10 est représentée sur la figure 1 .
La plateforme 10 est soit une plateforme mobile, en particulier une plateforme aérienne (avion, hélicoptère), soit une installation fixe (par exemple un système de surveillance d’un bâtiment). La plateforme 10 comporte au moins un système embarqué 12 comprenant au moins un circuit électronique 14 implémentant physiquement un réseau de neurones.
Dans l’exemple proposé, le réseau de neurones est un réseau de neurones à convolution.
Le circuit électronique 14 est un circuit logique programmable.
Selon l’exemple décrit, le circuit électronique 14 est un réseau de portes programmables in situ. Un tel circuit électronique 14 est souvent désigné sous l’appellation FPGA qui renvoie à la dénomination anglaise de « field-programmable gate array ».
Dans un tel exemple, la configuration du FPGA est définie par un programme écrit dans un langage de description matérielle, tel que le langage VHDL, le Verilog ou le Chisel (qui est un langage d’encore plus haut niveau). L’abréviation VHDL renvoie à la dénomination anglaise de « Very High Speed Integrated Circuits Hardware Description Language » qui signifie littéralement « langage de description de circuits matériel intégrés à très haute vitesse ».
En variante, le circuit électronique 14 est un dispositif logique programmable (PLD) ou des réseaux logiques programmables (PLA).
Il est défini deux directions D1 et D2 pour le circuit électronique 14.
La première direction D1 correspond à une direction verticale sur la planche sur laquelle est représentée figure 2. Dans la suite, le sens de parcours selon la première direction D1 est repéré à l’aide du nord N et du sud S, le nord N correspondant au haut de la planche et le sud S correspondant au bas de la planche. Ainsi, la première direction D1 est soit parcourue selon un premier sens appelé sens nord N - sud S correspondant à se diriger vers le bas de la planche soit selon un deuxième sens appelé sens sud S - nord N correspondant à se diriger vers le haut de la planche.
La deuxième direction D2 correspond à une direction horizontale sur la planche sur laquelle est représentée figure 2. Dans la suite, le sens de parcours selon la deuxième direction D2 est repéré à l’aide de l’ouest O et de l’est E, l’ouest O correspondant à la gauche de la planche et l’est E correspondant à la droite de la planche. Ainsi, la deuxième direction D2 est soit parcourue selon un premier sens appelé sens ouest O - est E correspondant à se diriger vers la droite de la planche soit selon un deuxième sens appelé sens est E - ouest O correspondant à se diriger vers la gauche de la planche.
Comme visible sur la figure 2, le circuit électronique 14 comporte des processeurs élémentaires 16, des premières mémoires 18, des deuxièmes mémoires 20, des troisièmes mémoires 22, des premières lignes de transmission 24, des deuxièmes lignes de transmission 26, des troisièmes lignes de transmission 28 et un contrôleur 30. Chacun des éléments du circuit électronique 14 est réalisé sur un support 32 dans lequel l’emplacement des éléments est contraint du fait du procédé de fabrication du circuit électronique 14.
Il est ainsi possible de définir sur le support 32 des zones de calcul dans lesquelles les processeurs élémentaires 16 se situent et des zones de mémorisation dans lesquelles les mémoires 18, 20, 22 sont situées.
Selon l’exemple de la figure 2, les processeurs élémentaires 16 sont organisés selon une matrice bidimensionnelle.
Une telle organisation permet d’obtenir une grille de processeurs élémentaires 16 qui est systolique.
Par le terme « systolique », il est entendu un fonctionnement similaire à celui d’une organisation de processeurs élémentaires 16 selon une grille à deux dimensions totalement remplies dans laquelle le processeur élémentaire 16 de coordonnées (i,j) reçoit à chaque cycle d’horloge d’une part une donnée et une microcommande que le processeur élémentaire 16 de coordonnées (i,j-1) avait reçues au cycle d’horloge précédent et d’autre part une donnée que le processeur élémentaire 16 de coordonnées (i-1 J) avait reçue au cycle d’horloge précédent. Dans cette notation, i et j sont deux entiers et un processeur élémentaire 16 a les coordonnées (i,j) lorsque ledit processeur élémentaire 16 est positionné au croisement de la i-ième ligne et de la j-ième colonne.
La matrice bidimensionnelle comporte des lignes, les lignes étant parallèles à la deuxième direction D2, et des colonnes, les colonnes étant parallèles à la première direction D1 .
Chaque processeur élémentaire 16 comporte trois entrées 16E1 , 16E2, 16E3 et une sortie 16S.
Les valeurs des différentes entrées 16E1 , 16E2, 16E3 déterminent le fonctionnement du processeur élémentaire 16 au cours du temps.
La première entrée 16E1 du processeur élémentaire 16 est propre à recevoir un poids à appliquer.
La deuxième entrée 16E2 du processeur élémentaire 16 est propre à recevoir une donnée à traiter.
La troisième entrée 16E3 du processeur élémentaire 16 est propre à recevoir une instruction indiquant l’opération à effectuer.
En l’espèce, l’instruction est d’exécuter une fonction paramétrable sur la donnée à traiter en utilisant le poids. Une telle fonction paramétrable correspond à un traitement d’inférence où il est appliqué en temps réel à un ensemble de données une chaîne d’opérations dont les coefficients sont supposés avoir été définis lors d’une phase d’apprentissage préalable.
Selon l’exemple décrit, la fonction paramétrable de chaque processeur élémentaire 16 est une opération de convolution, l’opération de convolution utilisant le poids appris.
La sortie 16S du processeur élémentaire 16 est propre à émettre un résultat de sortie.
Le processeur élémentaire 16 est propre à appliquer la fonction paramétrable du poids reçu et de la donnée reçue pour obtenir le résultat de sortie.
Chaque mémoire 18, 20, 22 est propre à mémoriser des données.
Chaque mémoire 18, 20, 22 est partagée par des processeurs 16 élémentaires.
Dans l’exemple, chaque première mémoire 18 est propre à mémoriser au moins un poids, chaque poids étant à appliquer par un processeur élémentaire 16 respectif.
Chaque deuxième mémoire 20 est propre à mémoriser au moins une donnée à traiter, chaque donnée à traiter étant à recevoir par un processeur élémentaire 16 respectif.
Chaque troisième mémoire 22 est propre à mémoriser au moins un résultat de sortie, chaque résultat de sortie étant émis par un processeur élémentaire 16 respectif.
Dans l’exemple proposé, chaque ligne de transmission 24, 26, 28 est une piste conductrice.
Chaque ligne de transmission 24, 26, 28 est ainsi propre à être parcourue par des données que la ligne de transmission 24, 26, 28 est de ce fait propre à transmettre.
Chaque ligne de transmission 24, 26, 28 comporte une première portion P1 , une deuxième portion P2 et une portion intermédiaire PL
La première portion P1 est parallèle à une direction D1 ou D2.
La première portion P1 est propre à être parcourue par des données dans un premier sens.
La deuxième portion P2 est parallèle à la première portion P1 .
La deuxième portion P2 est propre à être parcourue par des données dans un deuxième sens opposé au premier sens.
La première portion P1 et la deuxième portion P2 présentent la même longueur.
La portion intermédiaire PI relie la première portion P1 à la deuxième portion P2.
La portion intermédiaire PI assure un changement de sens du parcours pour une donnée provenant de la première portion P1 . Dans l’exemple proposé, la portion intermédiaire PI est une portion rectiligne perpendiculaire à la première portion P1 et à la deuxième portion P2.
Dans un souci de lisibilité, seule une première ligne de transmission 24, une deuxième ligne de transmission 26 et une troisième ligne de transmission 28 sont représentées sur la figure 2.
En réalité, le circuit électronique 14 comporte une première ligne de transmission 24 par ligne de la matrice bidimensionnelle de processeurs élémentaires 16, une deuxième ligne de transmission 26 par colonne de la matrice et une troisième ligne 28 de transmission par colonne de la matrice.
Chaque première ligne 24 de transmission est associée respectivement à une première mémoire 18.
Plus précisément, la première portion P1 de la première ligne 24 de transmission est reliée à une première mémoire 18 et la deuxième portion P2, de la première ligne de transmission 24 est reliée aux processeurs élémentaires 16 ayant à appliquer le poids mémorisé par la première mémoire 18 à laquelle la première ligne de transmission 24 est associée.
Comme visible sur la figure 2, la deuxième portion P2 de la première ligne de transmission 24 est reliée aux premières entrées 16E1 des processeurs élémentaires 16 ayant à appliquer le poids.
Selon l’exemple proposé, la première portion P1 de la première ligne de transmission 24 est propre à être parcourue dans le sens est E - ouest O alors que la deuxième portion P2 de la deuxième ligne de transmission 24 est propre à être parcourue dans le sens ouest O - est E.
Chaque deuxième ligne de transmission 26 est associée respectivement à une deuxième mémoire 20.
Plus précisément, la première portion P1 de la deuxième ligne de transmission 26 est reliée à une deuxième mémoire 20 et la deuxième portion P2 de la deuxième ligne de transmission 26 est reliée aux processeurs élémentaires 16 ayant à recevoir la donnée à traiter mémorisée par la deuxième mémoire 20 à laquelle la deuxième ligne de transmission 26 est associée.
Comme visible sur la figure 2, la deuxième portion P2 de la deuxième ligne de transmission 26 est ainsi reliée aux deuxièmes entrées 16E2 des processeurs élémentaires 16 ayant à recevoir la donnée à traiter.
Selon l’exemple proposé, la première portion P1 de la deuxième ligne de transmission 26 est propre à être parcourue dans le sens sud S - nord N alors que la deuxième portion P2 de la deuxième ligne de transmission 26 est propre à être parcourue dans le sens nord N - sud S.
Chaque troisième ligne de transmission 28 est associée respectivement à une troisième mémoire 22.
Plus précisément, la deuxième portion P2 de la troisième ligne de transmission 28 est reliée à une troisième mémoire 22 et la première portion P1 de la troisième ligne de transmission 28 est reliée aux processeurs élémentaires 16 émettant un résultat de sortie à mémoriser par la troisième mémoire 22 à laquelle la troisième ligne de transmission 28 est associée.
Comme visible sur la figure 2, la première portion P1 de la troisième ligne de transmission 28 est ainsi reliée à la sortie 16S des processeurs élémentaires 16 émettant un résultat de sortie.
Selon l’exemple proposé, la première portion P1 de la troisième ligne de transmission 28 est propre à être parcourue dans le sens sud S - nord N alors que la deuxième portion P2 de la troisième ligne de transmission 28 est propre à être parcourue dans le sens nord N - sud S.
Le contrôleur 30 est propre à assurer un fonctionnement systolique du circuit électronique 14.
En ce sens, le contrôleur 30 peut être vu comme un séquenceur des opérations ou un module d’ordonnancement des opérations.
Selon l’exemple proposé, le contrôleur 30 comporte une unité centrale 31 et des unités locales 34.
L’unité centrale 32 est propre à émettre une horloge pour assurer une synchronisation des unités locales.
Les unités locales sont associées à une ligne de transmission 24, 26, 28 respective.
Chaque unité locale 34 comporte un registre à décalage.
Un registre à décalage est un ensemble de bascules synchrones, dont les bascules sont reliées une à une, à l'exception de deux bascules qui ne sont pas forcément reliées. À chaque cycle d'horloge, le nombre représenté par ces bascules est mis à jour. Le concept de décalage permet d'insérer une donnée dans le registre, ou la lire, bit par bit en série.
Le fonctionnement du circuit électronique 14 est maintenant décrit selon deux descriptions, d’une part l’action globale du circuit électronique 14 et d’autre part les chemins suivis par les données.
De manière globale, le circuit électronique 14 implémente physiquement un réseau de neurones convolutionnel. Plus précisément, le circuit électronique 14 implémente la couche de convolution d’un tel réseau.
Cela signifie que le circuit électronique 14 applique des noyaux de convolution dont les coefficients sont les poids à un sous-ensemble de pixels d’une image d’entrée pour obtenir une image de sortie.
Comme le même noyau de convolution est appliqué à une image en la parcourant horizontalement, les processeurs élémentaires 16 d’une même ligne appliquent le noyau de convolution à une sous-image dont le premier pixel est un pixel différent de l’image.
Pour ce qui concerne le chemin des données suivi dans le présent circuit électronique 14, il peut être décrit comme suit.
Le processeur élémentaire 16 propage les données lui-même sans les modifier vers ses voisins immédiats situés à l’est E et au sud S. La propagation est une propagation processeur élémentaire 16 à processeur élémentaire 16.
Cela implique que le poids à appliquer par un processeur élémentaire 16 provient du processeur élémentaire 16 immédiatement voisin qui est situé à l’ouest O.
Plus précisément, le processeur élémentaire 16 récupère les données et poids depuis une des lignes de transmission 24, 26 ou 28, c’est-à-dire que la donnée reçue par le processeur élémentaire 16 immédiatement voisin qui est situé à ouest O au cycle d’horloge T est disponible pour le processeur élémentaire 16 voisin qui est situé à l’est E au cycle d’horloge T+1.
La donnée à traiter par un processeur élémentaire 16 provient du processeur élémentaire 16 immédiatement voisin qui est situé au nord N.
Simultanément, la troisième ligne de transmission 28 propage les résultats de sortie émis par les voisins du processeur élémentaire 16 situés au sud S dudit processeur élémentaire 16.
Cette propagation est cadencée par l’horloge émise par l’unité centrale 31 .
Une manière alternative de considérer un tel fonctionnement est la suivante.
Les deuxièmes portions P2 des premières et deuxièmes lignes de transmission 24, 26 sont alimentées par les premières portions P1 des premières et deuxièmes lignes de transmission 24, 26. Similairement, la deuxième portion P2 de la troisième ligne de transmission 28 dont le but est de véhiculer des résultats de sortie à écrire en troisième mémoire 22, alimente la première portion P1 de la troisième ligne de transmission 28. Chaque donnée d’une deuxième portion P2 rencontre les mémoires 18, 20, 22 à des positions quelconques sur leurs parcours. En fin des deuxièmes portions P2, on retrouve la même séquence de données que si les données venaient d’être lues dans un sous- ensemble de mémoires 18, 20, 22 rassemblées en périphérie Nord N et Ouest O, et la deuxième portion P2 de la troisième ligne de transmission 28 finit par écrire aux bonnes adresses les résultats de sortie.
Ainsi, en fonctionnement, la propagation des données relatives à l’image initiale et aux poids garantit qu’un processeur élémentaire 16 placé aux coordonnées (x,f) dans le circuit électronique 14 recevra à chaque cycle le triplet attendu, avec un décalage de x+f cycles d’horloge par rapport au triplet correspondant du processeur élémentaire 16 initial dont les coordonnées sont (0,0).
Un tel circuit électronique 14 permet ainsi d’implémenter un réseau de neurones convolutionnel avec une puissance relativement réduite (seulement quelques Watts) et une bonne compacité.
Le circuit électronique 14 peut, en outre, fonctionner à des cadences plus grandes sans génération d’erreurs.
Le circuit électronique 14 est ainsi compatible avec les contraintes d’un système embarqué 12.
Un tel circuit électronique 14 propose pour cela une circulation spécifique des données.
Par rapport à une circulation des données selon trois sens, à savoir sens ouest O - est E, nord N - sud S et sud S - nord N, il est obtenu des circuits électroniques présentant des chemins de données plus courts, ce qui permet d’augmenter la cadence à laquelle le circuit électronique 14 est capable de fonctionner ou du moins d’obtenir un haut rendement d’utilisation du circuit électronique 14.
La circulation spécifique des données conduit à une nouvelle architecture pour le circuit électronique 14 qui permet de mieux répartir les mémoires 18, 20, 22 sur l’ensemble du circuit électronique 14 tout en maintenant le fonctionnement systolique du circuit électronique 14.
Cela permet d’envisager des circuits électroniques dans lequel le placement des différentes mémoires 18, 20, 22 est optimisé.
La figure 3 propose un exemple particulier d’un tel agencement, dans lequel, par souci de clarté, les lignes de transmission 24, 26 et 28 ne sont pas représentées.
Dans un tel agencement, le circuit électronique 14 est divisé en motifs 40 identiques.
Chaque motif 40 comporte un ensemble de mémoires 18, 20, 22 et de processeurs élémentaires 16 situé dans un espace délimité par des extrémités.
Dans l’exemple décrit, le nombre de mémoires 18, 20, 22 d’un motif 40 est égal à 3.
Selon le cas de la figure 3, il est défini une zone périphérique pour chaque motif 40. Une zone périphérique est une zone en contact avec une extrémité, typiquement une zone de forme rectangulaire comme visible à la figure 3.
Dans l’exemple illustré, les mémoires 18, 20, 22 du motif 40 sont situées dans la zone périphérique et les processeurs élémentaires 16 dans l’espace délimité par des extrémités mais en dehors de la zone périphérique.
Un tel agencement est plus avantageux qu’un agencement où l’ensemble des mémoires 18, 20, 22 est situé en périphérie, de sorte que les connexions (lignes de transmissions 24, 26 et 28) sont plus courtes.
Il est à noter qu’un tel agencement résultant du fait que les lignes de transmissions 24, 26 et 28 permettent un positionnement des mémoires 18, 20, 22 entre les processeurs élémentaires 16 est un agencement régulier au sens où il est formé par une répétition de motifs 40.
Toutefois, dans le cas général, il est possible d’envisager des agencements avec une distribution non régulière sans formation de motifs 40.
De tels agencements, qu’ils soient sans motifs ou réguliers, présentent des chemins de données plus courts et peuvent être obtenus par mise en œuvre d’un procédé d’optimisation.
Dans un tel procédé, le procédé d’optimisation comporte la détermination de la position des mémoires 18, 20, 22 et des processeurs élémentaires 16 pour minimiser la somme de la longueur des lignes de transmission 24, 26, 28.
La détermination est, par exemple, mise en œuvre en utilisant une fonction d’optimisation de type moindre carré.
Selon des modes de réalisation plus élaborés, le procédé d’optimisation prend en compte des contraintes sur les positions des mémoires 18, 20, 22 et des processeurs élémentaires 16.
Par exemple, la position des zones de calcul et des zones de mémorisation du support 32 est prise en compte.
Un tel procédé d’optimisation est mis en œuvre par interaction d’un produit programme d’ordinateur avec le système.
Plus généralement, le système est un calculateur électronique propre à manipuler et/ou transformer des données représentées comme des quantités électroniques ou physiques dans des registres du calculateur et/ou des mémoires en d’autres données similaires correspondant à des données physiques dans des mémoires, des registres ou d’autres types de dispositifs d’affichage, de transmission ou de mémorisation. Le système comporte un processeur comprenant une unité de traitement de données, des mémoires et un lecteur de support d’informations. Le système comprend également un clavier et une unité d’affichage.
Le produit programme d’ordinateur comporte un support lisible d’informations. Un support lisible d’informations est un support lisible par le système, usuellement par le lecteur. Le support lisible d’informations est un médium adapté à mémoriser des instructions électroniques et capable d’être couplé à un bus d’un système informatique.
A titre d’exemple, le support lisible d’informations est une disquette ou disque souple (de la dénomination anglaise de « floppy disk »), un disque optique, un CD-ROM, un disque magnéto-optique, une mémoire ROM, une mémoire RAM, une mémoire EPROM, une mémoire EEPROM, une carte magnétique ou une carte optique.
Sur le support lisible d’informations est mémorisé un programme d’ordinateur comprenant des instructions de programme.
Le programme d’ordinateur est chargeable sur l’unité de traitement de données et est adapté pour entraîner la mise en œuvre du procédé d’optimisation.

Claims

REVENDICATIONS
1. Circuit électronique (14) implémentant physiquement un réseau de neurones, le circuit électronique (14) étant un circuit logique programmable, le circuit électronique (14) comportant :
- des processeurs élémentaires (16) comportant chacun au moins deux entrées (16E1 , 16E2, 16E3) et une sortie (16S), la première entrée (16E1) recevant un poids à appliquer, la deuxième entrée (16E2) recevant une donnée à traiter, chaque processeur élémentaire (16) appliquant une fonction paramétrable du poids reçu et de la donnée reçue pour obtenir un résultat de sortie,
- des mémoires (18, 20, 22) propres à mémoriser un poids à appliquer, une donnée à traiter ou un résultat de sortie, et
- des lignes de transmission (24, 26, 28) comportant une première portion (P1), une deuxième portion (P2) et une portion intermédiaire (PI), la première portion (P1 ) étant reliée à une mémoire (18, 20, 22) et la deuxième portion (P2) étant reliée à une entrée (16E1 , 16E2, 16E3) ou une sortie (16S) d’un processeur élémentaire (16), la première portion (P1) étant propre à être parcourue par des données dans un premier sens et la deuxième portion (P2) étant propre à être parcourue par des données dans un deuxième sens, le premier sens étant opposé au deuxième sens.
2. Circuit électronique selon la revendication 1 , dans lequel chaque première portion (P1) d’une ligne de transmission (24, 26, 28) présente la même longueur que la deuxième portion (P2) de la ligne de transmission (24, 26, 28).
3. Circuit électronique selon la revendication 1 ou 2, dans lequel chaque première portion (P1 ) d’une ligne de transmission (24, 26, 28) est parallèle à la deuxième portion (P2) de la ligne de transmission (24, 26, 28).
4. Circuit électronique selon l’une quelconque des revendications 1 à 3, dans lequel les mémoires (18, 20, 22) sont réparties en des premières mémoires (18) propres à mémoriser un poids à appliquer, des deuxièmes mémoires (20) propres à mémoriser une donnée à traiter et des troisièmes mémoires (22) propres à mémoriser un résultat de sortie, les lignes de transmission (24, 26, 28) étant réparties en premières lignes de transmission (24), deuxièmes lignes de transmission (26) et troisièmes lignes de transmission (28), les premières lignes de transmission (24) étant reliées à une première mémoire (18) respective et à des premières entrées (16E1) de processeurs élémentaires (16), les deuxièmes lignes de transmission (26) étant reliées à une deuxième mémoire (20) respective et à des deuxièmes entrées (16E2) de processeurs élémentaires (16) et les troisièmes lignes de transmission (28) étant reliées à une troisième mémoire (22) respective et à des sorties (16S) de processeurs élémentaires (16).
5. Circuit électronique selon la revendication 4, dans lequel la première portion (P1) de chaque première ligne de transmission (24) est perpendiculaire à la première portion (P1) de chaque deuxième ligne de transmission (26) et de chaque troisième ligne de transmission (28).
6. Circuit électronique selon l’une quelconque des revendications 1 à 5, dans lequel, le circuit électronique (14) comporte des motifs (40) identiques, chaque motif (40) rassemblant des processeurs élémentaires (16), des mémoires (18, 20, 22) et des lignes de transmissions (24, 26, 28), et, dans chaque motif (40), il est défini une zone périphérique, les mémoires (18, 20, 22) étant situées dans la zone périphérique de chaque motif (40).
7. Circuit électronique selon l’une quelconque des revendications 1 à 6, dans lequel la fonction paramétrable de chaque processeur élémentaire (16) est une opération de convolution et le circuit électronique (14) comporte un contrôleur (30) propre à assurer un fonctionnement systolique du circuit électronique (14).
8. Système embarqué (12) comportant un circuit électronique (14) selon l’une quelconque des revendications 1 à 7.
9. Plateforme (10) comportant un système embarqué (12) selon la revendication 8.
10. Procédé d’optimisation d’un circuit électronique (14) implémentant physiquement un réseau de neurones, le circuit électronique (14) étant un circuit logique programmable, le circuit électronique (14) comportant :
- des processeurs élémentaires (16) comportant chacun au moins deux entrées (16E1 , 16E2, 16E3) et une sortie (16S), la première entrée (16E1 ) recevant un poids à appliquer, la deuxième entrée (16E2) recevant une donnée à traiter, chaque processeur élémentaire (16) appliquant une fonction paramétrable du poids reçu et de la donnée reçue pour obtenir un résultat de sortie, 15
- des mémoires (18, 20, 22) propres à mémoriser un poids à appliquer, une donnée à traiter ou un résultat de sortie, et
- des lignes de transmission (24, 26, 28) présentant une longueur et comportant une première portion (P1 ), une deuxième portion (P2) et une portion intermédiaire (PI), la première portion (P1) étant reliée à une mémoire (18, 20, 22) et la deuxième portion (P2) étant reliée à une entrée (16E1 , 16E2, 16E3) ou une sortie (16S) d’un processeur élémentaire (16), la première portion (P1 ) étant propre à être parcourue par des données dans un premier sens et la deuxième portion (P2) étant propre à être parcourue par des données dans un deuxième sens, le premier sens étant opposé au deuxième sens, le procédé d’optimisation étant mis en œuvre par ordinateur et comportant la détermination de la position des mémoires (18, 20, 22) et des processeurs élémentaires (16) pour minimiser la somme de la longueur des lignes de transmission (24, 26, 28).
11. Produit programme d’ordinateur comprenant des instructions de programme qui mettent en œuvre un procédé selon la revendication 10 lorsque le programme d’ordinateur est exécuté par une unité de traitement de données.
12. Support lisible d’informations comprenant des instructions de programmes qui mettent en œuvre un procédé selon la revendication 10 lorsque les instructions de programme sont exécutées par une unité de traitement de données.
EP21790456.4A 2020-10-12 2021-10-12 Circuit électronique implémentant physiquement un réseau de neurones, système embarqué, procédé d'optimisation et produits associés Pending EP4226288A1 (fr)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
FR2010393A FR3115137B1 (fr) 2020-10-12 2020-10-12 Circuit electronique implementant physiquement un reseau de neurones, systeme embarque, procede d'optimisation et produits associes
PCT/EP2021/078109 WO2022078983A1 (fr) 2020-10-12 2021-10-12 Circuit électronique implémentant physiquement un réseau de neurones, système embarqué, procédé d'optimisation et produits associés

Publications (1)

Publication Number Publication Date
EP4226288A1 true EP4226288A1 (fr) 2023-08-16

Family

ID=74592067

Family Applications (1)

Application Number Title Priority Date Filing Date
EP21790456.4A Pending EP4226288A1 (fr) 2020-10-12 2021-10-12 Circuit électronique implémentant physiquement un réseau de neurones, système embarqué, procédé d'optimisation et produits associés

Country Status (3)

Country Link
EP (1) EP4226288A1 (fr)
FR (1) FR3115137B1 (fr)
WO (1) WO2022078983A1 (fr)

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20200175355A1 (en) * 2018-11-30 2020-06-04 Electronics And Telecommunications Research Institute Neural network accelerator with systolic array structure

Also Published As

Publication number Publication date
FR3115137A1 (fr) 2022-04-15
FR3115137B1 (fr) 2023-05-12
WO2022078983A1 (fr) 2022-04-21

Similar Documents

Publication Publication Date Title
US12218666B1 (en) Application specific integrated circuit accelerators
CN113160234B (zh) 基于超分辨率和域自适应的无监督遥感图像语义分割方法
Mao et al. Optical Gravitational Lensing Experiment OGLE 1999 BUL 32: the longest ever microlensing event–evidence for a stellar mass black hole?
Elias et al. Stellar halos in Illustris: probing the histories of Milky Way-mass galaxies
CN114863379B (zh) 多任务目标检测方法、电子设备、介质及车辆
Gray et al. STAGES: the Space Telescope A901/2 Galaxy Evolution Survey
CN110717589A (zh) 数据处理方法、设备和可读存储介质
EP0649101A1 (fr) Procédé de fonctionnement en parallèle de plusieurs unités de calcul, notamment en traitement d'images, et architecture correspondante
Neutsch et al. Inferring astrophysics and dark matter properties from 21 cm tomography using deep learning
Meena et al. An efficient method for simulating light curves of cosmological microlensing and caustic crossing events
CN113537023A (zh) 一种遥感影像语义变化检测方法
Eisert et al. ERGO-ML: comparing IllustrisTNG and HSC galaxy images via contrastive learning
Garratt et al. The SCUBA-2 Large eXtragalactic Survey: 850μm map, catalogue and the bright-end number counts of the XMM-LSS field
FR2489553A1 (fr) Appareil pour l'affichage rapide de graphiques sur un tube cathodique ou analogue
Li et al. Classification of sand using deep learning
Gural et al. Development of a very faint meteor detection system based on an EMCCD sensor and matched filter processing
More et al. Systematic comparison of neural networks used in discovering strong gravitational lenses
CN112305588B (zh) 初至波自动拾取方法及装置
EP3686874B1 (fr) Système d'affichage à résolution variable
EP4226288A1 (fr) Circuit électronique implémentant physiquement un réseau de neurones, système embarqué, procédé d'optimisation et produits associés
US20170276786A1 (en) Radar image formation within a distributed network
Gray et al. Infrared constraints on the dark mass concentration observed in the cluster Abell 1942
Martorano et al. Evolution and mass dependence of UV-to-near-IR color gradients up to z= 2.5 from the Hubble Space Telescope and the James Webb Space Telescope
FR3107127A1 (fr) Procédé et dispositif de conception d’un circuit mémoire calculatoire
CN119722454B (zh) 一种少光子低分辨图像处理方法、装置及光学探测系统

Legal Events

Date Code Title Description
STAA Information on the status of an ep patent application or granted ep patent

Free format text: STATUS: UNKNOWN

STAA Information on the status of an ep patent application or granted ep patent

Free format text: STATUS: THE INTERNATIONAL PUBLICATION HAS BEEN MADE

PUAI Public reference made under article 153(3) epc to a published international application that has entered the european phase

Free format text: ORIGINAL CODE: 0009012

STAA Information on the status of an ep patent application or granted ep patent

Free format text: STATUS: REQUEST FOR EXAMINATION WAS MADE

17P Request for examination filed

Effective date: 20230412

AK Designated contracting states

Kind code of ref document: A1

Designated state(s): AL AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HR HU IE IS IT LI LT LU LV MC MK MT NL NO PL PT RO RS SE SI SK SM TR

DAV Request for validation of the european patent (deleted)
DAX Request for extension of the european patent (deleted)