La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

Réunion Projet ANR NEMESIS du 15 décembre 2014

Présentations similaires


Présentation au sujet: "Réunion Projet ANR NEMESIS du 15 décembre 2014"— Transcription de la présentation:

1 Réunion Projet ANR NEMESIS du 15 décembre 2014
Test Processeur Neuronal-Rémi Pallas

2 Contributions sur le projet
Mise en œuvre des tests du processeur neuronal conçu par le CEA LETI et INRIA: Reverse engineering sur le code VHDL RTL et définition d’une application de classification de caractères pour le test du code Définition d’une architecture matérielle à base de FPGA pour le test ‘hardware’ d’un processeur neuronal Rémi Pallas-LEAD

3 Schéma carte rétine Rétine divisée en quatre cadrant
Version 2D du circuit visible mais en fonderie, on a un chip 3D avec 2 couches et 1 layer de neurone par couche Jaune: partie configuration des mémoires des poids synaptiques ainsi que des bias -vert couche rétine comportant la couche capteur, et la couche microprocesseur Rémi Pallas-LEAD

4 Caractéristiques et fonctionnement du réseau de neurones
Les caractéristiques du réseau de neurones à entraîner sont: -Réseau de neurones « feedforward » (perceptron multicouches): -3 couches->(in:12288*, hidden:48,out:64) -connections entre couches: -in->hidden: zone d’influence de 32*32 pixels et pas d’effets de bord -hidden->out: connexion pleine -Réseau de neurones à ‘spikes’ -Mis à jour des poids synaptiques «offline» *: 12288=48*256 -> égal au nombre de pixels d’un cadrant de la rétine Rémi Pallas-LEAD

5 Fonctionnement réseau de neurones
8 macro cellules . Connexion suivant la topologie Du cadrant . 48->1 6 64 neurones -scan des cellules de la rétine de haut en bas de gauche à droite -couplage spatial entre la L1 et le réseau de neurones Une macro-cellule (16*16 pixels) Pixels sont scannés Séquentiellement Par macro cellule Une neurone (48 au total) Couche out -> classification Couche hidden -> détection forme d’une zone du cadrant de la rétine Couche in =1 cadrant rétine Rémi Pallas-LEAD

6 Connectique layer in->hidden
Au milieu d’un cadrant de la rétine Bordure (pas d’effets de bord) 32 -middle: 1024->1 Coin (pas d’effets de bord ) 8 16 -coin: ( )->1 -bordure: ( )->1

7 Implémentation matérielle couche in
Ratio Fréquence *4: (max) -bus 8 bits L2 Sortie macro cellule 0 Slot temporel coordonnées spike MHz) Coordonnées Spikes Macro cellule 47 Coordonnées Spikes Macro cellule 47 -ratio fréquence *4 ->latence lecture mémoire -scan L1->sérialisation au niveau de chaque macro cellule -découplage temporel entre la L1 et le processeur neuronal (L3) avec la L2 -séquencement spikes arbitraire ci-dessus, à définir avec la programmation de L2 Ordre dans l’émission des coordonnées des spikes vers l’accélérateur matériel 8 bits Sortie macro cellule 47 Rémi Pallas-LEAD

8 Implémentation matérielle->Couche hidden
Sélection Poids neurone 0 et Neurones voisines Sommation Poids neurone 0 (9 poids au max ) Accumulation Poids neurones + Comparaison Coordonée spike Spike neurone 0 Mémoire Poids 256*(4*8) Mémoire Bias (48*16 bits) Définition liaison Synaptiques suivant la topologie rétine* -schéma synoptique layer 1 -ordre émission Coordonnées spikes (round robin sur les macro cellule pour reproduire le parallélisme du scan de la rétine) -DEMUX-> Contrainte due à la rétine? -Ratio fréquence?-> traitements dans l’accélérateur nécessitant un speed-up de 4? -Chaque macro cellule (16*16 pixels) de la rétine émet 1 pixel par cycle-> l’entrée du processeur neuronal est parallélisée par 48 (correspond au nombre de macro cellules) -sommation de 9 poids synaptiques sélectionné car une neurone est influencé par les pixels provenant de 9 macro cellules -L’entité neurone qui effectue la génération de spike met aussi en œuvre l’étirement d’impulsion -1 image sera traitée en 256* cycles (horloge d’entrée) -concernant le fonctionnement du registre potentiel du neurone, il est mis *: voir slide connectique Layer in->hidden Sélection Poids neurone 47 Liaisons Synaptiques entre les couches in et hidden Couche in Couche hidden Rémi Pallas-LEAD

9 Logique de fonctionnement neurone couche hidden et out
Modèle neurones type « integrate and fire » Potentiel neurone spike threshold -intervalle de temps: 4 cycles d’horloge Cycle horloge Rémi Pallas-LEAD

10 Implémentation VHDL RTL->Layer 2
Bus spikes Sélection et Sommation 47 Poids Neurone 0 Accumulation Poids neurones + Comparaison Sortie Spike neurone 0 Mémoire Poids 64* Threshold commun -connection pleine dans le layer 2 Liaisons Synaptiques entre les couches hidden et out Sélection Poids neurone 63 Couche out Couche hidden Rémi Pallas-LEAD

11 Application

12 Méthode d’apprentissage offline
-Le réseau de neurones devra identifier le caractère sur l’image -Méthode entraînement utilisant un algorithme d’apprentissage: STDP, ou autre….* -application d’identification du caractère «A» -l’algorithme STDP va permettre de régler les poids synaptiques en fonction de -en sortie de la couche hidden en aura la séquence d’activation des neurones permettant d’identifier un caractère A *: Question ouverte à Mr Thorpe? Rémi Pallas-LEAD

13 Architecture matérielle de test du processeur neuronal
-Un prototype à base de spartan6LX16 faisant office de générateur de pattern numérique -Un bridge permettant d’interfacer la carte rétine avec le réseau de neurones Rémi Pallas-LEAD

14 Plateforme FPGA utilisée
PC -FPGA spartan6 LX16 -bridge USB-Uart via -connecteur FMC -headers (J1,J8,J6) J1 Carte Chip Ann MXP->J1 J8 et J6 J8 J6 Rémi Pallas-LEAD

15 Générateur de pattern numérique
PC U A R T 1 (1) Circuit reset G P I O T X / R ANN Addr U A R T (4) Bridge USB/ RS232 1Mbit/s data (32bits*2) Trigger DMA+init ANN r/w DMA + UC gestion signaux ANN Contrôleur Mémoire DDR Externe(TX/RX) 1 (2) Circuit Horloge (3) Débit: -mémoire tampon entre PC <->DDR<->ANN -goulot entranglement RS232 mais possibilité de tripler le débit avec du >SPI -la récupération de données sera faite en déclenchantl’acquisition par rapport au premier spike entrant ou en faisant la même chose par horodatage Débit: DDR externe 32M*16 bits Carte développement FPGA Rémi Pallas-LEAD

16 Formatage données à stocker dans la mémoire
16 bits Coordonnées spike macrocellule 0 Coordonnées spike macrocellule n . . 1bancs mémoire= 42 scans de rétine Coordonnées spike macrocellule 47 Coordonnées spike macrocellule 0 . . 1 banc mémoire= 42 scans Complet de rétine Organisation mémoire DDR: 4 bancs de 8192 *1024*16bits Rémi Pallas-LEAD

17 Fonctionnement global générateur pattern
Principe de fonctionnement: Le PC sert de maître et va via le bridge USB/RS232 commander le générateur de pattern numérique Les phases différentes phases sont: -initialisation réseau de neurones ANN via les UART0 et UART1 (1Mbits/s) -Remplissage de la mémoire DDR avec les coordonnées des spikes. -Déclenchement DMA et émission des données vers le réseau de neurones -Emission et Réception simultanée des résultats du réseau de neurones -Lecture des données de la DDR via UART0 Rémi Pallas-LEAD

18 Capacité IO carte Accélérateur matériel: -14 bits données entrée
-2*6 bits données sortie -2 signaux RS232 -5 signaux de contrôle -3 horloges Total besoin: 36 IO single ended? Carte Avnet: Extension MXP: 19 I/0s single ended (J1) Extension MXP: 8 I/Os différentielles Header J8 et J6: 2*8 I/0s single ended Total: 35 IO single ended + 8 différentielles Rémi Pallas-LEAD

19 Travail à effectuer sur le prototype de générateur de pattern
-achat alim 12V pour avoir accès aux extensions -codage du design: comprenant UART+DMA+contrôleur DDR+gestion GPIO -réalisation carte d’extension pour le réseau de neurones: package DIP à définir. Rémi Pallas-LEAD

20 Bridge rétine-réseau de neurones
Capacité banc IO? Déclenchement SERDES? ->différentiel ou single-ended (standard?) Système reset U A R T 1 G P I O T X Trigger DMA (réseau ANN et rétine OK) 24 I S E R D (1->8, 1->4) BUFFER 24 coordonnées de spikes (2*8 bits) A N 2*12 liaisons série DMA + UC gestion signaux ANN Circuit Horloge ANN ready? Stratégie: on initialise les seuils, on initialise les poids synaptiques (UARTs) , on les stocke, puis on émet les événements 1 à 1 au réseau ANN -On complète le design du générateur de pattern -Le principe de ce schéma est la mémoire tampon horloge/4 ou horloge/8 (si diff) Signaux contrôle+ horloge maître design r/w addr 32 bits GPIO RX Contrôleur Mémoire DDR Externe(TX/RX) 1 (2) GPIO TX1 UART U A R T ANN ready CS Rémi Pallas-LEAD

21 Protocole de communication L2 ->ANN
Fonctionnement système: -Le récepteur initie le transfert en mettant son flag ready à 1 -la séquence de commutation du mux est définie par le programmeur de la couche L2 -Il faudrait définir une séquence de lecture de façon à ce que le récepteur récupère ¼ du flux - Le crossbar est paramétrable et peut-être paramétrée soit pour envoyer des données des mémoires vers la matrice (ou l’inverse) soit vers le récepteur (ou l’inverse) Matrice macro processeurs Bidir . . . 24bits (2 colonnes) 24bits (2 colonnes) 1. Séquence lecture Paramétrable 2. la commutation se fait au rythme des bursts Crossbar 24bits 24bits Récepteur MEM0 (4k*24bits) MEM7 (4k*24bits) addr7 addr0 . . . 24 bits burst1 temps sélection mémoire burst0 ready+cs Valid actif Valid inactif Valid actif valid Rémi Pallas-LEAD

22 Evaluation besoin connecteur FMC
Besoin application -24 bits de données -4 bits de contrôle Capacité carte Avnet -33 lignes données différentielles -2 lignes d’horloge différentielles S6LX16 Board supports all FMC LA Bus connections available on the FMC LPC connector, (LA[00:33]) along with all available FMC M2C clock pairs Nombres d’ISERDES/OSERDES disponibles: chaque entrée/sortie dispose de ses ISERDES/OSERDES Rémi Pallas-LEAD

23 Travail à effectuer sur le prototype bridge rétine
-Développement d’une carte d’extension FMC pour la connectique avec la carte rétine. -Ajout design ISERDES par rapport à la version générateur de pattern numérique -programmation de la couche rétine Rémi Pallas-LEAD

24 Rémi Pallas -LEAD


Télécharger ppt "Réunion Projet ANR NEMESIS du 15 décembre 2014"

Présentations similaires


Annonces Google