Réunion Projet ANR NEMESIS du 13 Avril 2015 Test Processeur Neuronal-Rémi Pallas.

Slides:



Advertisements
Présentations similaires
Électronique de base du processeur
Advertisements

PC / Traitement numérique / Contrôle Environnement logiciel
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
LES RESEAUX DE NEURONES
Les Compteurs A. Objectifs de la séquence:
TRANSMISSION DES DONNEES INFORMATIQUES
Système de gestion de bases de données. Modélisation des traitements
Présentation d’un design de carte vidéo
Exercices sur la conception de processeurs
ADR Active and Dynamic Routing. Plan Introduction au routage Les réseaux actifs Les agents Mise à jour des matrices de routage Architecture du routage.
Cours #6 Conception d’unités de contrôle
Réalisée par :Samira RAHALI
Applications du perceptron multicouche
Guérin Julien Mézerette Marius GTR FI 2A
NOTE : Pour faire évoluer le diaporama, si le clic de souris ne fait rien utilisez les touches du clavier : Pg up Pg down.
TRANSMISSION DES DONNEES.
Transmission Séries des Données
Fonction COMMUNIQUER les liaisons série
Auto Exterior Scoop SQP PROCESSUS 24 juillet 2006 Version validée V01.
Construction de modèles visuels
Module 3 : Analyse des performances du serveur
Test de systèmes électronique
SEMINAIRE DE CONTACT novembre 2008 Outils de gestion de projet.
Mécanismes d'exécution et de communication
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é.
Processeurs et chemins des données
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.
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
Le contenu est basé aux transparents du 7 ème édition de «Software Engineering» de Ian Sommerville«Software Engineering» de Ian Sommerville B.Shishedjiev.
Régulation de débit pour MPEG-4 SVC
SURVEILLANCE VIDEO SUR RESEAU ETHERNET
Chapitre 5 : Les circuits séquentiels
J. Cardoso — C. Sibertin-Blanc — C
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.
Extrait du Referentiel BTS Systèmes numériques Options : Informatique et réseaux et Électronique et communication S1 à S9 Définition des savoirs et savoir-faire.
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
François CARCENAC,Frédéric BONIOL ONERA-DTIM Zoubir MAMMERI IRIT
Système slow-control au LAPP
Synthèse d’un jeu vidéo
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.
PS3_16 Project 3D Vision On Chip Implémentation VHDL de la «Census Transform» F. Bertrand.
Réunion Projet ANR NEMESIS du 30 Mars 2015
Simulateur de microcontrôleur Intel 80C51
Patricia Renault UPMC 2005/2006
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
Formation Cisco Partie 2 – IOS.
Plan Analyse de l’architecture: couche L3 et L4:
© Copyright-CNP-EFII-Paris-1998
Traitement d’images 420-D78-SW A15 Semaine 02.
INTRODUCTION AUX BASES DE DONNEES
Introduction Module 1.
Systèmes Logiques Chapitre 5: Les registres et les compteurs
Scénario Les scénarios permettent de modifier la position, taille … des calques au cours du temps. Son fonctionnement est très proche de celui de Macromedia.
Les bascules et registres
A.Lebrun. Principe des compteurs Les compteurs servent à mesurer le nombre d’impulsion qui arrivent sur l’entrée de comptage Les compteurs sont constitués.
PS3_16 Project 3D Vision On Chip STM Réunion Rousset – 22 Juin 2007 F. Bertrand STM Réunion Rousset – 22 Juin 2007 Implémentation VHDL de la «Census Transform»
Diagrammes de comportement Présentation. Diagramme de séquence  Permet de modéliser les envois de messages entre objets chronologiquement.  Modélisation.
G. Bosson, J-L. Bouly, O. Bourrion, N. Ponchant, J-P. Richer, J-P. Scordilis.
Transcription de la présentation:

Réunion Projet ANR NEMESIS du 13 Avril 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 -le réseau de neurons -la logique de fonctionnement 2)Architecture Hardware: composant clés et problématiques de synchronisation des spikes -faire dessin balais … 3)Environnement numérique de test: 4)Benchmark : test architecture: -test mode 16*16: -génération données: mode avec tous les pixels générant un événement et chaque neuron … -configuration testbench (horloges->bande passante, FIFO synchrone ou asynchrone?) -test communication inter couches -test mode 32*32: -configuration testbench 5)Application et encodage L2 adapté: -définir l’application et la base d’apprentissage -2 exemples d’encodage et les comparer -codage couche L3 et L4 -configuration circuit (organigramme global) 6)Description système d’interfaçage avec la rétine du CEA

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

1)Présentation structure réseau de neurons -L2 (on travaille sur 1 cadrant de la rétine du CEA): 48 macrocellules -fenêtrage de 32*32 pixels L3 (48 neurones) L4 (64 neurons) : Limite zone de visibilité d’un neuron de L3 (chevauchement maximal) 16 pixels 8 pixels … …

1)Logique de fonctionnement d’un neuron: Modèle neurons (à spike) type « integrate and fire » sans fuite spike threshold Potentiel neurone Cycle horloge 6Rémi Pallas-LEAD Effet mémoire Modulation temps saturation

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

1) 1)Vue système: lien carte rétine et réseau de neurones: Génération de spikes: Encodage L2 L2 Coordonnée macrocellule + (x,y)

1)Vue système: lien carte rétine et réseau de neurones Matrice macro processeurs MEM0 (4k*24bi ts) 24bits (2 colonnes) MEM7 (4k*24bi ts) Crossbar 24bits (2 colonnes)... 24bits Séquence lecture Paramétrable 2. la commutation se fait au rythme des bursts 24 bits Récepteur Fonctionnement système: -Le récepteur initie le transfert en mettant son flag ready à 1 - 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) ready+cs addr0 addr7 burst1burst0 valid temps sélection mémoire Valid actif Valid inactif Bidir 9 Rémi Pallas-LEAD

1)Vue système: lien carte rétine et un réseau de neurones L2 Bridge L2-reseau de neurons Réseau (couche L3 +L4) 14 bits 24 bits Bridge Nécessaire (carte applicative rétine) pour: -la dé-sérialisation des données en provenance de L2 -l’ordonnancement de événements en fct de la macrocellule -la configuration du réseau de neurones -la récupération des spikes de L4 et de L3 -la génération d’horloge pour le réseau de neurones (horloge données lente Et horloge système rapide)

2)Architecture hardware: Scan parallèle des macrocellules Balayage local (fréquence n*Fsys pour n données à récupérer en entrée) Balayage global (fréquence n*Fsys pour n données en entrée) Un domaine d’horloge (Fsys)-> émission données en parallèle Registres accumulation L3 L4 un seuil par neuron pixel 0,…,pixel 255 Macrocellule 0 Macrocellule 47

2)Architecture hardware: l’interface rétine et le réseau L3+L4 FIFO asynchrone 14 bits FsysFin Interface rétine

2)Architecture hardware: mécanisme de balayage ACC + Compteur Modulo n spike w W(i) spike w w w n entrées Log2n étages

2)Architecture hardware: le système hardware en l’état Interface rétine (1/4) Fsys(1) L L4 (1): dépend de la fréquence d’émission de données depuis la rétine Fsys Sélection Poids synaptiques Sélection Poids synaptiques Fsys Sortie AER L3 Sortie AER L4 Fsys (1/4) Fsys (1/4) Fsys

2)Architecture hardware: fréquences de mise à jour des registres potentiels et temps d’élaboration de la couche L3: Mise à jour potentiel neuron L3 9*Tsys 48*Tsys Mise à jour potentiel neuron L4 Cependant du fait du système d ’interface avec la rétine, le temps d’élaboration de L3 devrait être le suivant: … Fenêtre élaboration (contient les contribution s d’au plus 48 spikes ayant déclenchés simultanement Dans les différentes macrocellules ): (9/k)*Tsys *48 temps Élaboration neuron 0Élaboration neuron 1Élaboration neuron 47Élaboration neuron 0 … Mis à jour potentiel neuron L4

2)Architecture hardware: mode d’utilisation du balais global en tenant compte de la contrainte de l’interface rétine L L4 Fsys Sortie AER L3 Fsys Sortie AER L4 (Fsys*k)/9 Fsys k à déterminer en tenant compte la contrainte de l’interface rétine

2)Architecture hardware: Diagramme d’état: Etat repos Reset=1 Attente configuration Reset=0 Attente données événements de L2 Marqueur fin configuration reçu: 0xFFFFFFFF Traitement L3 et L4 Mise à zéro du potentiel de l’ensemble des neurons et des composants excepté les RAM des poids Reset=0 Donnée entrée valide flag «ready_in» passe à «1» Flag run à « 1» Configuration (poids ou seuils) Marqueur début trame configuration: 0xFFFFXXXX Reset=0 «1» Reset=0

2) Conclusion analyse architecture: -chaque neurone de la couche L3 travaille sur une des 48 fenêtres locales de l’image -scan circulaire des fenêtres 32*32 : 0,1………..47 mis en œuvre par le mécanisme de balayage global permet de garantir le parallélisme -fréquence scan global à diminuer du fait de la contrainte de débit de l’interface rétine (à vérifier partie test) -la contrainte de l’interface rétine est que la fréquence d’émission des données est au maximum de Fsys/4 -Programmabilité réseau de neurones: concernant le fenêtrage de la première couche, on peut envisager un mode de test en 16*16 puis un mode 32*32

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

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 ->Code source learning_brian.py Modifier la couche 3 pour avoir des seuils indépendants

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

4) Benchmark: test architecture: mode 16*16: -Programmation couche L3: pas de chevauchement des fenêtres 32*32 (on annule les poids reponsables du chevauchement) -Données émises: on travaille dans le cas où tous les événements d’une macrocellule sont activés de façon à valider le parallélisme. -Pattern d’émission: pareil au pattern de scan de macrocellules (circulaire): 0,1,2,…..,46,47 -Scan intra-macrocellule: scan des 256 pixels (droite->gauche,bas->haut) -Dans cette configuration, le temps d’élaboration d’un neuron revient au temps d’élaboration d’une macrocellule (fenêtre 16*16, pas de chevauchement) 16

4) Benchmark: test architecture: mode 16*16: 2/9 -Concernant le débit d’émission des données, il est contraint par le système d’interface rétine et la fréquence de mise à jour du potentiel de L3: -fréquence d’émission: (2/9)*Fsys<(1/4)*Fsys -afin de ne pas avoir de chevauchement entre les fenêtres d’élaboration successives, il faut contrôler la phase entre l’émission des données et la fenêtre de scan du buffer local: Neuron id temps 9*Tsys (mis à jour neuron 0 et 1 de L3 ) Spike ? XXXXXXXX XXXX XXXX Neuron 0 Neuron 1 … temps Élaboration neuron 0Élaboration neuron 1Élaboration neuron 47 Chevauchement potentiel (48/2)*9*Tsys neuron 0 9*Tsys

4) Benchmark: test architecture: mode 16*16: 1/9 -La fréquence d’émission des données est donc : Fsys/9=16,7 MHz -Le temps d’élaboration de la couche L3 et de mise à jour du potentiel d’un neuron L4 est: 48*9*6,6 ns=2,9 us -La latence de calcul est: 256*2,9=730 us … temps Élaboration neuron 0Élaboration neuron 1Élaboration neuron 47 Temps d’élaboration de L3: 48*9*Tsys Élaboration neuron 0

4) Benchmark: test architecture: mode 16*16: 1/9: comparaison solution CEA vs mine: En bleu l’émission de données (une élaboration de la couche L3) En rouge le scan à la fréquence Fsys EN bleu tirés, les spikes pris en compte MAJ potentiel neuron L4 et déclenchement potentiel neuron temps MAJ potentiel neuron L4 et déclenchement potentiel temps Neuron ID

4) Benchmark: test architecture: mode 16*16: constat: -Couche L3: -conflit 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") -sortie « thresh_l2» inutile -Couche L4: -entrée «thresh_l2» inutile -dans le composant «smlt_spk_l2» ajout registre de roue libre pour adapter la fréquence de scan à (1/9)*Fsys (synchronisation) pour permettre l’élaboration (48 spikes simultanés) de l’ensemble des neurons de la couche L3

4) Benchmark: test architecture: mode 32*32: 1/9 Dans ce cas, le temps d’élaboration d’un neuron inclut: la récupération de la contribution (potentielle) de la macrocellule associée et la contribution des macrocellules mitoyennes (au plus 8). Le temps d’élaboration de la couche L3 ne change pas, car on n’a pas plus d’information à traiter. On utilise les poids servant au chevauchement. Le temps d’élaboration est donc le même que celui de la version 16*16: -le temps d’élaboration de L3: 48*9*Tsys -la latence de calcul est: 256*2,9=730 us -un trigger est peut être nécessaire entre L3 et L4 afin de garantir l’intégrité de la transmission des données lors d’une élaboration de L3

Slides réserve

Connectique layer in->hidden 32 Possibilité d’ajouter 4 poids synaptiques issu d’événements Simultanés du fait du scan intra macrocellule

Slide fonctionnement balais local temps Spike émis mémorisé Scan macro+ son voisinage Accumulation dans le registre Du balais local Mise à jour PPS neuron L3 (Spike émis pris en compte)

Solution corrigée: sensibilité phase données par rapport à la phase du balais global On est dans la configuration suivante: -32*32 -solution avec balais global cadencé à la fréquence Fsys/9 En fonction de l’instant on l’on soumet les données au réseau de neurones, on peut se retrouver dans le cas de figure suivant: Spike émis mémorisé Scan global macrocellules temps Neuron id MAJ potentiel neuron L4 (ici 1 spike sur 2 pris en compte) En mode 32*32, les pixel sont partagés et un spike sur un pixel à une influence sur les neurons Voisins

Configuration couche L3: mapping mémoire poids synaptiques BA DC 16 pixels Une macrocellule: Mémoire poids synaptiques (RAM 256*32 bits): A B A B D C D C Numérotation relative à une macrocellule: Macrocellule principale Adressage poids synaptiques Pixels (de bas en haut et droite vers gauche) bits origine 0

4 Benchmark: test architecture: mode 32*32: 1/9: comparaison solution CEA vs mine: temps Neuron ID Effet chevauchement (influence macrocellule voisine) Interférence-> nécessité trigger MAJ potentiel PPS neuron

Balais local et balais global superposé: version corrigée 48*9*Tsys … 9*Tsys Balais activés sur le reset global