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 13 Avril 2015 Test Processeur Neuronal-Rémi Pallas.

Présentations similaires


Présentation au sujet: "Réunion Projet ANR NEMESIS du 13 Avril 2015 Test Processeur Neuronal-Rémi Pallas."— Transcription de la présentation:

1 Réunion Projet ANR NEMESIS du 13 Avril 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 -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

4 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

5 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 … …

6 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

7 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

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

9 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... 1. 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

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

11 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

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

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

14 2)Architecture hardware: le système hardware en l’état Interface rétine...... (1/4) Fsys(1) L3...... 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

15 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

16 2)Architecture hardware: mode d’utilisation du balais global en tenant compte de la contrainte de l’interface rétine...... L3...... 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

17 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

18 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

19 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

20 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

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

22 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

23 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

24 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

25 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

26 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

27 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

28 Slides réserve

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

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

31 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

32 Configuration couche L3: mapping mémoire poids synaptiques BA DC 16 pixels Une macrocellule: 789 615 234 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) 9861 8 bits origine 0

33 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

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


Télécharger ppt "Réunion Projet ANR NEMESIS du 13 Avril 2015 Test Processeur Neuronal-Rémi Pallas."

Présentations similaires


Annonces Google