Télécharger la présentation
La présentation est en train de télécharger. S'il vous plaît, attendez
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
Présentations similaires
© 2024 SlidePlayer.fr Inc.
All rights reserved.