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 30 Mars 2015

Présentations similaires


Présentation au sujet: "Réunion Projet ANR NEMESIS du 30 Mars 2015"— Transcription de la présentation:

1 Réunion Projet ANR NEMESIS du 30 Mars 2015
Test Processeur Neuronal-Rémi Pallas

2 Introduction Cette partie du projet NEMESIS sur l’accélérateur neuromorphique est duale: -concevoir un chip 3D avec un flot ASIC 130 nm -concevoir un réseau de neurons facilement implantable (bas coût) Mes contributions seront les suivantes: -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

3 Plan 1)Caractéristiques du réseau de neurones fourni par l’INRIA et le CEA et vue système 2)Architecture Hardware 3)Environnement numérique de test 4)Benchmark et modifications de l’architecture hardware 5)Concept d’encodage neural portés sur le hardware et Application: -encodage L2 -codage couche L3 -codage couche L4 -Application -configuration circuit 6)Description système d’interfaçage avec la rétine du CEA

4 L4(pleine connectivité)
1)Présentation structure du réseau de neurons: un type de perceptron à spikes(1) Scores classes Apprentissage Supervisé «hors ligne» Classifieur L4(pleine connectivité) Vecteur «features» Extracteur «Feature» L3 connectivité locale (inspiré de la connectivité des neurons bio) Image 96*128 pixels (1): dans la littérature, le tempotron est semblable excepté le modèle de neuron qui est avec fuite

5 1)Présentation structure réseau de neurons
Modèle neurons (à spike) type « integrate and fire » sans fuite Potentiel neurone spike threshold -intervalle de temps: 4 cycles d’horloge Effet mémoire Cycle horloge Modulation temps saturation Rémi Pallas-LEAD

6 1)Présentation structure réseau de neurons
L4 (64 neurons) L3 (48 neurones) Scan en parallèle des fenêtres de L2 8 pixels -L2 (on travaille sur 1 cadrant de la rétine du CEA) -on travaille sur une polarité -96*128 pixels divisés en 48 macrocellules-> 6*8*16*16 pixels 16 pixels : Limite zone de visibilité d’un neuron de L3 (chevauchement maximal)

7 1)Vue système: lien carte rétine et réseau de neurones
Mon travail de test Rétine utilisée en mode basse résolution 256*192 au lieu de 512*384 -3ème couche pour traiter les translations -Indépendance inter-cadrant?-> aucune-> pas d’effet de bord

8 1) Génération de spikes: reconnaissance de forme
128 96 - Spikes déclenchés sur une polarité Travail avec image binaire

9 2)Architecture hardware réseau neurones (couche L3)
Notations: Fin: fréquence entrée données accélérateur Fsys: fréquence horloge système (horloge rapide) Tsys: égal à 1/Fsys PPS: potentiel post-synaptique

10 2)Architecture hardware réseau neurones
Neuron+(X,Y) Balayage pour Récupérer les contributions de tous les neurons (temps élaboration couche L3) DEMUX ajouter pour limiter le nombre de pin (48*8) Neurons L4 Neurons L3 DEMUX

11 2)Architecture hardware réseau neurones (couche L3)
Pattern de scan des macrocellules et scan pixel Buffer simultanéité (9 bits) (2) B U F E R w (8 bits) PP S vers neuron 0 + RAM 0 (1) Seuil 0 (16 bits) 14 bits (macrocellule+ coordonnées (X,Y)) D E M U X B U F E R w PP S vers neuron 1 + FIFO RAM 1 Seuil 1 . PPS mis à jour tous les 9 cycles de l’horloge système Fin Fsys vers neuron 47 Contrainte: Le système admet au plus 1 donnée valide tous les 4 cycles (temps traitements DEMUX et temps lecture mémoire poids) (1): la mémoire RAM n’est pas RAZ avec le reset global (2): composant servant à mettre en œuvre le chevauchement et la simultanéité locale (lien avec l’approche de scan intra-macrocellule)

12 2)Configuration couche L3
Config_RAM L3 RS232 - Rx 8 bits 32 bits 1 bits Data_word Data_word Data_word Data_word Contrôleur MC 0 MC 47 Reg 48+1*16bits RAM 0 (32*256 bits) RAM 47 Seuil neurones L3+seuil neuron L4 à ajouter

13 2)Configuration couche L3: mapping mémoire poids synaptiques
Mémoire poids synaptiques (RAM 256*32 bits): Numérotation relative à une macrocellule: A B 2 3 4 9 8 6 1 A 5 1 6 8 bits B 7 8 9 Macrocellule principale . Une macrocellule: D C D C Adressage poids synaptiques Pixels (de bas en haut et droite vers gauche) D 16 pixels B A C 8 pixels

14 2)Architecture réseau neurones (couche L4)
Buffer synchronie (48 bits) (2) Fréquence de mise à jour du PSP tous les 48 cycles De l’horloge système Bus_spikes_L3 (48 bits) B U F E R w PP S + Seuil (1) B U F E R w PP S + . . Seuil (1): seuil commun pour l’ensemble des 64 neurons (2): le buffer de synchronie met en œuvre le scan global

15 2)Configuration couche L4
B U M P Bascule D à ajouter pour mémoriser le seuil Data_word Seuil_L4 (commun) Vers 64 neurons Data_word MC MC Mémoire 0 Mémoire 63 8bits *192 bits

16 2) Le buffer de simultanéité garantissant le parallélisme:
+ ACC + + + . . + + + W(i) Compteur Modulo 48 spike spike L3 spike w

17 2) Le buffer de simultanéité garantissant la compensation du mécanisme de synchronisation entre les 2 couches: Pour garantir la transmission des spikes via la connectique 3D: élargissement Impulsion de 3 cycles de l’horloge système Tsys afin qu’elle soit visible par La couche L4 n*Tsys 4*Tsys Logique du buffer de simultanéité permettant de réceptionner le spike: « spk_l1_mem <= spk_l1_mem or spk_l1 »

18 2) Conclusion analyse architecture:
-La couche L3 réalise des fenêtrage local et traitement entre l’image d’entrée et le détecteur de «features» -les traitement sur les fenêtrages sont effectués en parallèles au lieu de faire cela séquentiellement avec une fenêtre glissante. 7 -concernant le fenêtrage de la première couche, il y a possibilité de la réduire en 16*16 (adaptation échelle «features») 8 -coordonnées: macrocellule+ (x,y) transmises->une polarité - Scan intra-macrocellule ( « Pixel scanning approach » dans rapport, Voir «génération AER») -Mécanisme mettant en œuvre la parallélisme Sur L3: scan circulaire des macrocellules 40 47

19 2) Conclusion analyse architecture: débit
9*Tsys (mis à jour neuron 0 et 1 de L3 ) temps Neuron 0 Spike? X X X X X X X X Neuron 1 X X X X Spike? X X X X Neuron id Justifier ce choix de débit (temps décodage événement provenant de L3 et temps de mis à jour d’un PPS de neuron de L3 ) -2 données valides sur 9 *Tsys

20 2) Conclusion analyse architecture:
Modification à faire sur la vitesse de scan du buffer de simultanéité afin De permettre l’élaboration de toutes les neurons avant la mise à jour du potentiel des neurons de L4 Maj PSP neurons L4 24 *9*Tsys (temps élaboration couche L4) Justifier 24*9*Tsys (la durée de cette fenêtre doit être un multiple de 9*Tsys de façon à ne pas avoir de chevauchement entre les fenêtre d’élaboration) MAJ neuron 0 MAJ neuron 1 MAJ neuron 47 Mise à jour PSP Séquentielle neurons L3

21 2) Conclusion analyse architecture:
Impact taille fenêtrage sur la séquence d’élaboration

22 2) Conclusion analyse architecture: organigramme fonctionnement

23 Encodage coordonnées pixels
3)Environnement test: Architecture software python: partie émulation rétine et L2 ou génération configuration test synchronie Synthèse du jeu d’images (96*128) Encodage coordonnées pixels Génération AER (scan global et définition scan intra-macrocellule) VHDL Pattern test Synchronie + Configuration poids ->Code source picture_gen.py

24 3)Environnement test: Architecture software python: partie modélisation réseau neurones et configuration Lecture AER Modèle Brian Perceptron à Spikes (couches L3 et L4) Configuration poids Synaptiques L3 et L4 pour le VHDL Modifier la couche 3 pour avoir des seuils indépendants ->Code source learning_brian.py

25 4) Framework test couche L3
Software Python bench Design VHDL Couche L3 Package poids

26 4)Liste des modification à effectuer dans le design de la couche L3:
-Couche 1: -conflit dans entre un process et une constante: "top_layer1.vhd": le flag "en_zero" qui sert à affecter les entrées du composant "smlt_spk_l1" à zéro a été cablé sur une sortie de l'instance "switcher_0" du composant "wgt_muxer" (pin->"en_nrn7")

27 4)Liste des modification à effectuer dans le design pour la communication entre L3 et L4
Couche L3: -ajout d’un système afin de synchroniser l’émission des données avec la scan des buffer de synchronie locaux (9 bits) -ajout d’un flag référence pour synchroniser l’émission de données depuis L3 et l’élaboration de l’ensemble des neurons (voir slide XX) effectué par L4 --sortie « thresh_l2» à lier à la chaîne de configuration (affecter à une constante nulle dans mon cas) Couche L4: - bufferiser l’entrée «thresh_l2 » afin de récupérer la valeur de seuil pour les neurons -dans le composant «smlt_spk_l2» ajout registre de roue libre pour adapter la fréquence de scan à (2/9)*Fsys (synchronisation)

28 4) Test architecture : configuration circuit
-Dans cette partie, on teste le parallélisme qui est mis en œuvre par le composant effectuant le scan global -On considère que tous les pixels génèrent un événement La configuration de L3 est la suivante: Sans chevauchement (configuration utilisée): Avec chevauchement (à voir si compatible-> modifier ce schéma ): Adaptation Échelle «features»

29 4) Test architecture : mode d’utilisation
7 Scan global et scan intra macrocellule 8 Scan intra macrocellule (pixel scanning approach) suggéré par rapport Vx (à voir) 40 47

30 4)Modification design: prise en compte du temps d’élaboration de la couche L3 par la couche L4
-regitre roue libre

31 4)Modification design: prise en compte du temps d’élaboration de la couche L3 par la couche L4
Fenêtre élaboration L3 Scan L4

32 4)Résultats Simulation (avec FIFO synchrone):
À ajouter

33 5)Encodage L2:

34 5)Application et configuration (renommer):
-Constiution d’une base d’images à partir de 4 «features»: (à afficher) -ex images globale (à afficher) -pas de chevauchement

35 5)Logique fonctionnement test global circuit (corriger):
Jeu? Non Oui À supprimer version ultérieure ajouter plasticité L3 config L3? oui Phase apprentissage supervisé hors ligne Configurer L3 Phase de traitement en ligne Jeu de formes à reconnaître Traitement Image L3 et L4 Configurer L3 Extraction «features» et choix échelle * Sauvegarde Configurer L4 Apprentissage configuration * Chevauchement ?

36 5)Encodage neural L2-L3: -allocation d’un offset temporel par «feature» qui contient l’information d’identification Offset1=0 256 Offset2 Offset3 Offset4 Fenêtre intégration un neuron L3

37 5)Encodage neural L4: Objectif : l’identifiant de la neuron de L4 qui déclenchera la première Correspondra à une forme détectée («time to first spike», voir article) PSP neuron «B» tau . t  «B»>t  «A» PSP neuron «A» tau

38 6) Ajout plasticité L3: Modulation latence déclenchement
16*16 (dépend de la localisation Sur le cadrant ) Δt Δt Δt Δt Apprentissage à faire en dernier (possible?discrination de combient de features?)

39 Perspectives Finir de corriger hardware et simuler simultanéité globale Mettre au propre réflexions encodage neural L3 (un neuron L3 doit pouvoir reconnaître en certain nombre de «features») Simuler l’encodage fixe de L3 avec la version corrigée Faire converger le modèle brian(faire converger ce modèle, feedback VHDL concernant les temps de déclenchement) Revoir la génération de features et définir une forme d’image globale et d’autres forme afin de pouvoir entrainer un neuron de L4 (observer temps du premier spike). Passer à deux neurons. Passer à l’apprentissage sur la couche L3 Revoir l’utilisation du circuit en l’état

40 6)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

41 6)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

42 6)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

43 6)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

44 6)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

45 6)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

46 6)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

47 6)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 -nécessité pour désérialiser le flux de données -choix ISERDES car gamme de fréquences d’émission élevées(10 MHz à 100MHz) et pas de bits de signalétique comme dans les liaisons série classiques (bit start et stop) 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

48 6)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

49 6)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


Télécharger ppt "Réunion Projet ANR NEMESIS du 30 Mars 2015"

Présentations similaires


Annonces Google