WO2022078983A1 - Electronic circuit physically implementing a neural network, on-board system, optimisation method and associated products - Google Patents

Electronic circuit physically implementing a neural network, on-board system, optimisation method and associated products Download PDF

Info

Publication number
WO2022078983A1
WO2022078983A1 PCT/EP2021/078109 EP2021078109W WO2022078983A1 WO 2022078983 A1 WO2022078983 A1 WO 2022078983A1 EP 2021078109 W EP2021078109 W EP 2021078109W WO 2022078983 A1 WO2022078983 A1 WO 2022078983A1
Authority
WO
WIPO (PCT)
Prior art keywords
electronic circuit
memories
elementary
data
transmission lines
Prior art date
Application number
PCT/EP2021/078109
Other languages
French (fr)
Inventor
Eric Lenormand
Hadi SAOUD
Original Assignee
Thales
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 filed Critical Thales
Priority to EP21790456.4A priority Critical patent/EP4226288A1/en
Publication of WO2022078983A1 publication Critical patent/WO2022078983A1/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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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; 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 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

The invention relates to an electronic circuit (14) physically implementing a neural network and comprising: - processors (16) comprising an output (16S), an input (16E1) receiving a weight to be applied and an input (16E2) receiving data to be processed, each processor (16) applying a parametrisable function of the weight and data received to produce a result, - memories (18, 20, 22), and - transmission lines (24, 26, 28) comprising a first portion (P1) which is connected to a memory (18, 20, 22) and through which data travel in a first direction, and a second portion (P2) which is connected to an input (16E1, 16E2, 16E3) or an output (16S) of a processor (16) and through which data travel in a second direction opposite to the first direction.

Description

Circuit électronique implémentant physiquement un réseau de neurones, système embarqué, procédé d’optimisation et produits associés Electronic circuit physically implementing a neural network, embedded system, optimization process and associated products
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. 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.
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. In the field of video surveillance, a difficulty is the study of multiple images making their exploitation difficult. It is therefore necessary to be able to quickly eliminate a set of irrelevant images to examine only the most relevant images.
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. For this, it is known to use automatic image classification. Such a classification is often carried out by a neural network and more particularly a convolutional neural network.
Un réseau de neurones à convolution est aussi appelé réseau de neurones convolutifs. A convolutional neural network is also called a convolutional neural network.
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 ». The convolutional neural network is sometimes referred to as the CNN network, the abbreviation CNN referring to the English name of “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. However, physical implementations of convolutional neural networks involve many hardware resources, especially time and energy. Indeed, such physical implementations involve conventional sequential processors. As a result, such physical implementations are incompatible with embedded systems which require limited weight, size and power.
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é. There is therefore a need for a physical implementation of a neural network that is compatible with the constraints of use in an embedded system.
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. 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.
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 : According to particular embodiments, the electronic circuit comprises one or more of the following characteristics, taken separately or in all technically possible combinations:
- 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. - each first portion of a transmission line has the same length as the second portion of the transmission line.
- chaque première portion d’une ligne de transmission est parallèle à la deuxième portion de la ligne de transmission. - each first portion of a transmission line is parallel to the second portion of the transmission line.
- 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. 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.
- 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. - The first portion of each first transmission line is perpendicular to the first portion of each second transmission line and each third transmission line.
- 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. - 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.
- 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. - 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.
La présente description concerne aussi un système embarqué comportant un circuit électronique tel que précédemment décrit. The present description also relates to an on-board system comprising an electronic circuit as previously described.
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. 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.
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. 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.
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. In addition, 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.
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’une plateforme, - Figure 1, a schematic representation of a platform,
- figure 2, une représentation schématique d’un exemple de circuit électronique, et- Figure 2, a schematic representation of an example of an electronic circuit, and
- figure 3, une représentation schématique d’une partie d’un exemple de circuit électronique. - Figure 3, a schematic representation of part of an example of an electronic circuit.
Une plateforme 10 est représentée sur la figure 1 . A platform 10 is represented in FIG. 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. 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.
Dans l’exemple proposé, le réseau de neurones est un réseau de neurones à convolution. In the proposed example, the neural network is a convolutional neural network.
Le circuit électronique 14 est un circuit logique programmable. The electronic circuit 14 is a programmable logic circuit.
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 ». According to the example described, 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”.
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 ». In such an example, 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). The abbreviation 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".
En variante, le circuit électronique 14 est un dispositif logique programmable (PLD) ou des réseaux logiques programmables (PLA). Alternatively, the electronic circuit 14 is a programmable logic device (PLD) or programmable logic arrays (PLA).
Il est défini deux directions D1 et D2 pour le circuit électronique 14. Two directions D1 and D2 are defined for the electronic circuit 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. The first direction D1 corresponds to a vertical direction on the board on which figure 2 is represented. In the following, 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. Thus, 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.
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. The second direction D2 corresponds to a horizontal direction on the board on which figure 2 is represented. In the following, 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. Thus, 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.
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. As visible in FIG. 2, 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.
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. It is thus possible to define on the support 32 calculation areas in which the elementary processors 16 are located and storage areas in which the memories 18, 20, 22 are located.
Selon l’exemple de la figure 2, les processeurs élémentaires 16 sont organisés selon une matrice bidimensionnelle. According to the example of FIG. 2, the elementary processors 16 are organized according to a two-dimensional matrix.
Une telle organisation permet d’obtenir une grille de processeurs élémentaires 16 qui est systolique. Such an organization makes it possible to obtain a grid of elementary processors 16 which is systolic.
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. By the term “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. In this notation, 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.
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 . 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.
Chaque processeur élémentaire 16 comporte trois entrées 16E1 , 16E2, 16E3 et une sortie 16S. Each elementary processor 16 has three inputs 16E1, 16E2, 16E3 and an output 16S.
Les valeurs des différentes entrées 16E1 , 16E2, 16E3 déterminent le fonctionnement du processeur élémentaire 16 au cours du temps. The values of the various inputs 16E1, 16E2, 16E3 determine the operation of the elementary processor 16 over time.
La première entrée 16E1 du processeur élémentaire 16 est propre à recevoir un poids à appliquer. The first input 16E1 of the elementary processor 16 is capable of receiving a weight to be applied.
La deuxième entrée 16E2 du processeur élémentaire 16 est propre à recevoir une donnée à traiter. The second input 16E2 of the elementary processor 16 is capable of receiving data to be processed.
La troisième entrée 16E3 du processeur élémentaire 16 est propre à recevoir une instruction indiquant l’opération à effectuer. The third input 16E3 of the elementary processor 16 is capable of receiving an instruction indicating the operation to be performed.
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. In this case, the instruction is to execute a configurable function on the data to be processed using the weight. Such 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.
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. According to the example described, the configurable function of each elementary processor 16 is a convolution operation, the convolution operation using the learned weight.
La sortie 16S du processeur élémentaire 16 est propre à émettre un résultat de sortie. The output 16S of the elementary processor 16 is able to emit an output result.
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. 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.
Chaque mémoire 18, 20, 22 est propre à mémoriser des données. Each memory 18, 20, 22 is suitable for storing data.
Chaque mémoire 18, 20, 22 est partagée par des processeurs 16 élémentaires.Each memory 18, 20, 22 is shared by elementary processors 16.
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. In the example, each first memory 18 is able to memorize at least one weight, each weight being to be applied by a respective elementary processor 16.
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. 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.
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. Each third memory 22 is capable of storing at least one output result, each output result being sent by a respective elementary processor 16.
Dans l’exemple proposé, chaque ligne de transmission 24, 26, 28 est une piste conductrice. In the proposed example, each transmission line 24, 26, 28 is a conductive track.
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. 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.
Chaque ligne de transmission 24, 26, 28 comporte une première portion P1 , une deuxième portion P2 et une portion intermédiaire PL Each transmission line 24, 26, 28 comprises a first portion P1, a second portion P2 and an intermediate portion PL
La première portion P1 est parallèle à une direction D1 ou D2. The first portion P1 is parallel to a direction D1 or D2.
La première portion P1 est propre à être parcourue par des données dans un premier sens. The first portion P1 is capable of being traversed by data in a first direction.
La deuxième portion P2 est parallèle à la première portion P1 . The second portion P2 is parallel to the first portion P1.
La deuxième portion P2 est propre à être parcourue par des données dans un deuxième sens opposé au premier sens. The second portion P2 is capable of being traversed by data in a second direction opposite to the first direction.
La première portion P1 et la deuxième portion P2 présentent la même longueur.The first portion P1 and the second portion P2 have the same length.
La portion intermédiaire PI relie la première portion P1 à la deuxième portion P2.The intermediate portion PI connects the first portion P1 to the second 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. The intermediate portion PI ensures a change of direction of the course for a datum coming from the first portion P1. In the example proposed, the intermediate portion PI is a rectilinear portion perpendicular to the first portion P1 and to the second 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. 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.
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. In reality, 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.
Chaque première ligne 24 de transmission est associée respectivement à une première mémoire 18. Each first transmission line 24 is respectively associated with a first memory 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. More specifically, the 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.
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. As visible in FIG. 2, 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.
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. According to the proposed example, 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.
Chaque deuxième ligne de transmission 26 est associée respectivement à une deuxième mémoire 20. Each second transmission line 26 is respectively associated with a second memory 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. More specifically, the 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.
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. As visible in FIG. 2, 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.
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. According to the proposed example, 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.
Chaque troisième ligne de transmission 28 est associée respectivement à une troisième mémoire 22. Each third transmission line 28 is respectively associated with a third memory 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. More precisely, 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.
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. As visible in FIG. 2, 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.
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. According to the proposed example, 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.
Le contrôleur 30 est propre à assurer un fonctionnement systolique du circuit électronique 14. Controller 30 is capable of ensuring systolic operation of electronic circuit 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. In this sense, the controller 30 can be seen as an operations sequencer or an operations scheduling module.
Selon l’exemple proposé, le contrôleur 30 comporte une unité centrale 31 et des unités locales 34. According to the example proposed, the controller 30 comprises a central unit 31 and local units 34.
L’unité centrale 32 est propre à émettre une horloge pour assurer une synchronisation des unités locales. The central unit 32 is capable of transmitting a clock to ensure synchronization of the local units.
Les unités locales sont associées à une ligne de transmission 24, 26, 28 respective.The local units are associated with a respective transmission line 24, 26, 28.
Chaque unité locale 34 comporte un registre à décalage. Each local unit 34 includes a shift register.
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. 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.
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. The operation of the electronic circuit 14 is now described according to two descriptions, on the one hand the overall action of the electronic circuit 14 and on the other hand the paths followed by the data.
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. Overall, the electronic circuit 14 physically implements a convolutional neural network. More precisely, the electronic circuit 14 implements the convolution layer of such a network.
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. This means that 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.
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. As the same convolution kernel is applied to an image by traversing it horizontally, 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.
Pour ce qui concerne le chemin des données suivi dans le présent circuit électronique 14, il peut être décrit comme suit. As for the data path followed in the present electronic circuit 14, it can be described as follows.
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. 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.
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. This implies that the weight to be applied by an elementary processor 16 comes from the immediately neighboring elementary processor 16 which is located to the west 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. More precisely, 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.
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. The data to be processed by an elementary processor 16 comes from the immediately neighboring elementary processor 16 which is located north 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. Simultaneously, 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.
Cette propagation est cadencée par l’horloge émise par l’unité centrale 31 . This propagation is clocked by the clock transmitted by the central unit 31 .
Une manière alternative de considérer un tel fonctionnement est la suivante. An alternative way of considering such operation is as follows.
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. 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. Similarly, 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. At the end of the second portions P2, there is the same sequence of data as if the data had just been read in a subset of memories 18, 20, 22 gathered at the North N and West O periphery, and the second portion P2 of the third transmission line 28 ends up writing the output results to the correct addresses.
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). Thus, in operation, 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).
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é. 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.
Le circuit électronique 14 peut, en outre, fonctionner à des cadences plus grandes sans génération d’erreurs. The electronic circuit 14 can, moreover, operate at higher rates without generating errors.
Le circuit électronique 14 est ainsi compatible avec les contraintes d’un système embarqué 12. The electronic circuit 14 is thus compatible with the constraints of an on-board system 12.
Un tel circuit électronique 14 propose pour cela une circulation spécifique des données. Such an electronic circuit 14 proposes for this a specific flow of data.
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. Compared to a circulation of data in three directions, namely west O - east E, north N - south S and south S - north N, electronic circuits are obtained having shorter data paths, which makes it possible to increase the rate at which the electronic circuit 14 is able to operate or at least to obtain a high efficiency of use of the electronic circuit 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. The specific circulation of data leads to a new architecture for the electronic circuit 14 which makes it possible to better distribute the memories 18, 20, 22 over the whole of the electronic circuit 14 while maintaining the systolic operation of the electronic circuit 14.
Cela permet d’envisager des circuits électroniques dans lequel le placement des différentes mémoires 18, 20, 22 est optimisé. This makes it possible to envisage electronic circuits in which the placement of the various memories 18, 20, 22 is optimized.
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. Figure 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.
Dans un tel agencement, le circuit électronique 14 est divisé en motifs 40 identiques. In such an arrangement, the electronic circuit 14 is divided into 40 identical patterns.
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. Each pattern 40 comprises a set of memories 18, 20, 22 and elementary processors 16 located in a space delimited by ends.
Dans l’exemple décrit, le nombre de mémoires 18, 20, 22 d’un motif 40 est égal à 3. In the example described, the number of memories 18, 20, 22 of a pattern 40 is equal to 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. According to the case of FIG. 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.
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. In the example illustrated, 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.
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. 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.
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. It should be noted that such an arrangement resulting from the fact that the transmission lines 24, 26 and 28 allow the memories 18, 20, 22 to be positioned between the elementary processors 16 is a regular arrangement in the sense that it is formed by a repetition of 40 patterns.
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. However, in the general case, it is possible to envisage arrangements with a non-regular distribution without the formation of patterns 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. Such arrangements, whether patternless or regular, have shorter data paths and can be obtained by implementing an optimization process.
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. In such a method, 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.
La détermination est, par exemple, mise en œuvre en utilisant une fonction d’optimisation de type moindre carré. The determination is, for example, implemented by using a least square type optimization function.
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. According to more elaborate embodiments, the optimization method takes into account constraints on the positions of the memories 18, 20, 22 and of the elementary processors 16.
Par exemple, la position des zones de calcul et des zones de mémorisation du support 32 est prise en compte. For example, the position of the calculation zones and of the storage zones of the medium 32 is taken into account.
Un tel procédé d’optimisation est mis en œuvre par interaction d’un produit programme d’ordinateur avec le système. Such an optimization process is implemented by interaction of a computer program product with the system.
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. More generally, 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.
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. 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.
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. By way of example, 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.
Sur le support lisible d’informations est mémorisé un programme d’ordinateur comprenant des instructions de programme. On the readable information carrier is stored a computer program comprising program instructions.
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. The computer program is loadable on the data processing unit and is adapted to cause the implementation of the optimization method.

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 : 1. Electronic circuit (14) physically implementing a neural network, the electronic circuit (14) being a programmable logic circuit, the electronic circuit (14) comprising:
- 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, - elementary processors (16) each comprising at least two inputs (16E1, 16E2, 16E3) and an output (16S), the first input (16E1) receiving a weight to be applied, the second input (16E2) receiving data to be processed , each elementary processor (16) applying a configurable function of the weight received and of the data received to obtain an output result,
- des mémoires (18, 20, 22) propres à mémoriser un poids à appliquer, une donnée à traiter ou un résultat de sortie, et - memories (18, 20, 22) capable of storing a weight to be applied, a datum to be processed or an output result, and
- 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. - transmission lines (24, 26, 28) comprising a first portion (P1), a second portion (P2) and an intermediate portion (PI), the first portion (P1) being connected to a memory (18, 20, 22) and the second portion (P2) being connected to an input (16E1, 16E2, 16E3) or an output (16S) of an elementary processor (16), the first portion (P1) being able to be traversed by data in a first direction and the second portion (P2) being able to be traversed by data in a second direction, the first direction being opposite to the second direction.
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). 2. Electronic circuit according to claim 1, wherein each first portion (P1) of a transmission line (24, 26, 28) has the same length as the second portion (P2) of the transmission line (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). 3. Electronic circuit according to claim 1 or 2, wherein each first portion (P1) of a transmission line (24, 26, 28) is parallel to the second portion (P2) of the transmission line (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). 4. Electronic circuit according to any one of claims 1 to 3, in which the memories (18, 20, 22) are divided into first memories (18) suitable for storing a weight to be applied, second memories (20) suitable to memorize a datum to be processed and third memories (22) capable of memorizing an output result, the transmission lines (24, 26, 28) being divided into first transmission lines (24), second transmission lines (26) and third transmission lines (28), the first transmission lines (24) being connected to a first respective memory (18) and to first inputs (16E1) of elementary processors (16), the second transmission lines (26) being connected to a respective second memory (20) and to second inputs (16E2) of elementary processors ( 16) and the third transmission lines (28) being connected to a respective third memory (22) and to outputs (16S) of elementary processors (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). 5. Electronic circuit according to claim 4, in which the first portion (P1) of each first transmission line (24) is perpendicular to the first portion (P1) of each second transmission line (26) and of each third transmission line. 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). 6. Electronic circuit according to any one of claims 1 to 5, in which the electronic circuit (14) comprises identical patterns (40), each pattern (40) bringing together elementary processors (16), memories (18, 20, 22) and transmission lines (24, 26, 28), and, in each pattern (40), a peripheral zone is defined, the memories (18, 20, 22) being located in the peripheral zone of each pattern (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). 7. Electronic circuit according to any one of claims 1 to 6, in which the configurable function of each elementary processor (16) is a convolution operation and the electronic circuit (14) comprises a controller (30) capable of systolic of the electronic circuit (14).
8. Système embarqué (12) comportant un circuit électronique (14) selon l’une quelconque des revendications 1 à 7. 8. Embedded system (12) comprising an electronic circuit (14) according to any one of claims 1 to 7.
9. Plateforme (10) comportant un système embarqué (12) selon la revendication 8. 9. Platform (10) comprising an on-board system (12) according to claim 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 : 10. Method for optimizing an electronic circuit (14) physically implementing a neural network, the electronic circuit (14) being a programmable logic circuit, the electronic circuit (14) comprising:
- 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 - elementary processors (16) each comprising at least two inputs (16E1, 16E2, 16E3) and an output (16S), the first input (16E1) receiving a weight to be applied, the second input (16E2) receiving data to be processed , each elementary processor (16) applying a configurable function of the weight received and of the data received to obtain an output result, 15
- des mémoires (18, 20, 22) propres à mémoriser un poids à appliquer, une donnée à traiter ou un résultat de sortie, et - memories (18, 20, 22) capable of storing a weight to be applied, a datum to be processed or an output result, and
- 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). - transmission lines (24, 26, 28) having a length and comprising a first portion (P1), a second portion (P2) and an intermediate portion (PI), the first portion (P1) being connected to a memory ( 18, 20, 22) and the second portion (P2) being connected to an input (16E1, 16E2, 16E3) or an output (16S) of an elementary processor (16), the first portion (P1) being able to be traversed by data in a first direction and the second portion (P2) being capable of being traversed by data in a second direction, the first direction being opposite to the second direction, the optimization method being implemented by computer and comprising determining the position of the memories (18, 20, 22) and the elementary processors (16) to minimize the sum of the length of the transmission lines (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. 11. Computer program product comprising program instructions which implement a method according to claim 10 when the computer program is executed by a data processing unit.
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. 12. Readable information medium comprising program instructions which implement a method according to claim 10 when the program instructions are executed by a data processing unit.
PCT/EP2021/078109 2020-10-12 2021-10-12 Electronic circuit physically implementing a neural network, on-board system, optimisation method and associated products WO2022078983A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
EP21790456.4A EP4226288A1 (en) 2020-10-12 2021-10-12 Electronic circuit physically implementing a neural network, on-board system, optimisation method and associated products

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
FR2010393A FR3115137B1 (en) 2020-10-12 2020-10-12 ELECTRONIC CIRCUIT PHYSICALLY IMPLEMENTING A NEURON NETWORK, ON-BOARD SYSTEM, OPTIMIZATION METHOD AND ASSOCIATED PRODUCTS
FRFR2010393 2020-10-12

Publications (1)

Publication Number Publication Date
WO2022078983A1 true WO2022078983A1 (en) 2022-04-21

Family

ID=74592067

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/EP2021/078109 WO2022078983A1 (en) 2020-10-12 2021-10-12 Electronic circuit physically implementing a neural network, on-board system, optimisation method and associated products

Country Status (3)

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

Citations (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

Patent Citations (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

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
GUDAPARTHI SUMANTH SGUDAPAR@CS UTAH EDU ET AL: "Wire-Aware Architecture and Dataflow for CNN Accelerators", PROCEEDINGS OF THE 52ND ANNUAL IEEE/ACM INTERNATIONAL SYMPOSIUM ON MICROARCHITECTURE, MICRO '52, ACM PRESS, NEW YORK, NEW YORK, USA, 12 October 2019 (2019-10-12), pages 1 - 13, XP058476989, ISBN: 978-1-4503-6938-1, DOI: 10.1145/3352460.3358316 *

Also Published As

Publication number Publication date
EP4226288A1 (en) 2023-08-16
FR3115137A1 (en) 2022-04-15
FR3115137B1 (en) 2023-05-12

Similar Documents

Publication Publication Date Title
CN113160234B (en) Unsupervised remote sensing image semantic segmentation method based on super-resolution and domain self-adaptation
Elias et al. Stellar halos in Illustris: probing the histories of Milky Way-mass galaxies
CN106125086A (en) For the system and method using the transition time of single exposure to measure
Straubhaar et al. Multiple-point statistics using multi-resolution images
CN110717589A (en) Data processing method, device and readable storage medium
FR2489553A1 (en) APPARATUS FOR QUICK DISPLAY OF GRAPHICS ON A CATHODE-RAY TUBE OR THE LIKE
Larsen et al. The search for distant objects in the solar system using Spacewatch
Neutsch et al. Inferring astrophysics and dark matter properties from 21 cm tomography using deep learning
US4845767A (en) Image signal processor
WO2022078983A1 (en) Electronic circuit physically implementing a neural network, on-board system, optimisation method and associated products
FR2920243A1 (en) METHODS AND DEVICES FOR REAL-TIME GENERATION OF MAPPING FUNDS
US20170276786A1 (en) Radar image formation within a distributed network
EP0762285B1 (en) Electronic testable system
Garratt et al. The SCUBA-2 Large eXtragalactic Survey: 850μm map, catalogue and the bright-end number counts of the XMM-LSS field
Gural et al. Development of a very faint meteor detection system based on an EMCCD sensor and matched filter processing
EP0344052B1 (en) Modular memory
EP2553655B1 (en) Data stream processing architecture enabling extension of neighborhood mask
EP3686874A1 (en) Display system with variable resolution
CN105068084A (en) Laser imaging detection method based on image processing
CN105137449A (en) Laser imaging detection platform based on image processing
George et al. Two rest-frame wavelength measurements of galaxy sizes at z< 1: the evolutionary effects of emerging bulges and quenched newcomers
CN109143338A (en) A kind of method and device that seismic data merges
Zhu et al. Fault Detection by Using Instance Segmentation
EP4242855B1 (en) Address generator for a computer having a single instruction multiple data architecture
Yang et al. Three-dimensional lunar surface reconstruction based on remote sensing imagery from Chang E-2

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: 21790456

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

ENP Entry into the national phase

Ref document number: 2021790456

Country of ref document: EP

Effective date: 20230512