Réunion Projet ANR NEMESIS du 30 Mars 2015

Slides:



Advertisements
Présentations similaires
PC / Traitement numérique / Contrôle Environnement logiciel
Advertisements

A NETWORK-AWARE DISTRIBUTED STORAGE CACHE FOR DATA INTENSIVE ENVIRONMENTS Brian L. TIERNEY, Jason LEE, Brian CROWLEY, Mason HOLDING Computing Sciences.
Introduction Pour concrétiser l’enseignement assisté par ordinateur
Le Concept du programme enregistré
simulateur de réseau de machines UML connectées par WiFi mode ad-hoc
Les Compteurs A. Objectifs de la séquence:
TRANSMISSION DES DONNEES INFORMATIQUES
Présentation d’un design de carte vidéo
1 ARCHITECTURE DACCÈS la méthode générale modèle de données définitions module daccès / modules métiers construction des modèles les modules daccès, les.
Exercices sur la conception de processeurs
LANGUAGE GRAPHIQUE INITIATION
NOTE : Pour faire évoluer le diaporama, si le clic de souris ne fait rien utilisez les touches du clavier : Pg up Pg down.
Fonction COMMUNIQUER les liaisons série
Plan de développement Définition tensions alimentation et puissance associées Alimentation analogique & Alimentation numérique Définition connecteur mezzanine.
DUFOUR Joffrey BTS IRIS session
Module 2 : Préparation de l'analyse des performances du serveur
Réunion de collaboration du 9-10 Juillet 2008 J.L. Béney 1 Logiciel At  Client-Serveur Tcp/ip de la station autonome  Influence de l'architecture matérielle.
Points synthèse réunion 15_12_2014 Le réseau de neurones pourrait être entrainé de manière supervisé avec une rétro-propagation adapté à la temporalité.
Module 8 : Surveillance des performances de SQL Server
Modèle réseau de neurones TODO-> spécifier architecture -> spécifier stimulus Essayer à partir des formules d’apprentissage de faire le lien avec la formule.
Cours 5 Le modèle de référence.
Plan Analyse de l’architecture: couche L3 et L4: -> but en déduire la façon de s’interfacer avec la rétine du CEA -> comprendre comment un pseudo parallélisme.
Réunion Projet ANR NEMESIS du 15 décembre 2014
INF8505: processeurs embarqués configurables
Les Réseaux Informatiques La couche physique Laurent JEANPIERRE DEUST AMILOR.
Codage binaire A 65 Entiers positifs caractères
Les systèmes mono-puce
Mise au point de systèmes mixtes et évaluation de puissance : Un exemple d’application Anne-Marie TRULLEMANS- ANCKAERT FTFC’03 UCL-DICE, Place du Levant.
Le contenu est basé aux transparents du 7 ème édition de «Software Engineering» de Ian Sommerville«Software Engineering» de Ian Sommerville B.Shishedjiev.
Journées d'études Faible Tension Faible Consommation 14, 15, 16 mai Gwenolé CORRE, Nathalie JULIEN, Eric SENN, Eric MARTIN LESTER, Université de.
Application à la Radio Logicielle Restreinte
SURVEILLANCE VIDEO SUR RESEAU ETHERNET
Advisor Advanced IP Présentation Télémaintenance Télésurveillance.
Implantation de processeurs dans les FPGA et ASIC
Chapitre 5 : Les circuits séquentiels
Alarme et actionneur (programmés) de cafetière électrique géré par microcontrôleur Présentation PPD n°1.
Sif Cours 9 n 7. Communication série u Concepts généraux u Programmation des ports séries n Le matériel u Chapitre 10 CSA u Article dans MSDN: F.
Les réseaux de neurones à réservoir en traitement d’images
Exemple de mise en oeuvre
Institut de sciences et technologies Département d’informatique
L’Audio sur PC Comparaison Numérique vs Analogique Comparaison Audio sur PC vs Hardware dédié (DSP) Rmq: beaucoup de simulitudes avec la vidéo, mais débit.
Système slow-control au LAPP
Conception d ’ une IP d ’ un contrôleur de bus I ² C en SystemC1.0 ZHANG XUN Tuteurs du projet : Mr. P. Garda - Mr. O. Romain LISIF---Team SYEL Université.
Les FPGA « Field Programmable Gate Array »
Synthèse d’un jeu vidéo
Traitement d’obsolescence TVM 430 Emulation logicielle de 3 XPC
Les réseaux de neurones à réservoir en traitement d’images
Générateur de pattern numérique FIFOFIFO GPIOTX/RXGPIOTX/RX Addr data (32bits*2) Contrôleur Mémoire DDR Externe(TX/RX) 1 (2) DMA + UC gestion signaux ANN.
Laboratoire Intégration des Architectures Numériques (IAN)
SUNDANCE Multiprocessor Technology Ltd. Yann CLIN Stage effectué de février à juin Superviseur technique: Jocelyn SEROT Superviseur industriel: Emmanuel.

INF3500 : Conception et implémentation de systèmes numériques Pierre Langlois Flot de conception de.
Bilan réunion 17/10/2014 Voir avec le CEA le type de chip qu’ils ont fait fondre: une version 3D (rétine+réseau neurones), ou une version 2D avec rétine.
ELE6306 : Test de systèmes électroniques Adaptation d’une interface de communication pour implants en vue du test Laurent Aubray, Dominique Pâquet-Ferron.
Réunion Projet ANR NEMESIS du 13 Avril 2015 Test Processeur Neuronal-Rémi Pallas.
Simulateur de microcontrôleur Intel 80C51
Plan de développement KM3NET1 Banc de caractérisation des modules optiques de KM3NET.
Idées apprentissage couche L3: démarche ascendante ou descendante Temps du premier spike: -conception filtre à la main -apprentissage suivant une règle.
L’horloge et type de transmission
Visualisation des flots optiques en 3D
Plan Analyse de l’architecture: couche L3 et L4:
Systèmes Logiques Chapitre 5: Les registres et les compteurs
A. Lebrun. Principe de base Dans la logique combinatoire, les sorties dépendent des différentes entrées et peuvent être calculées par l’algèbre de Boole.
Les bascules et registres
Diagrammes de comportement Présentation. Diagramme de séquence  Permet de modéliser les envois de messages entre objets chronologiquement.  Modélisation.
09/09/2008Projet PMM2-N.Dumont Dayot1 Motivations Finalité du démonstrateur Partenaires Electronique frontale Travail au LAPP Conclusion Projet PMM² Photomultiplicateurs.
G. Bosson, J-L. Bouly, O. Bourrion, N. Ponchant, J-P. Richer, J-P. Scordilis.
Automates Programmables Industriels
Intervention sur un système technique Afficheur industriel « AIW »
La Voix sur IP.
Transcription de la présentation:

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

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

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

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

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 (@150MHz) Effet mémoire Cycle horloge Modulation temps saturation Rémi Pallas-LEAD

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)

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

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

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

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

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)

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

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

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

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

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

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 »

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

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

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

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

2) Conclusion analyse architecture: organigramme fonctionnement

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

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

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

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")

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)

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»

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

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

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

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

5)Encodage L2:

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

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 ?

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

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

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?)

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

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

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

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: -14 @37,5MHz -12 @150MHz -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: -16@200Mhz DDR externe 32M*16 bits Carte développement FPGA Rémi Pallas-LEAD

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

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

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

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

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

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

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