Réunion Comics 09/07/2013

Résultats P2N : MOSINAS, aleachips en attente

Présentation d’Adrien : stage M2 MTJ et synapses

14h45-17h s119

Présents : Phi, Miguel, Rania, Arnaud, Guénolé, Truong, Salim, Sy, JSM, Adrien, Anes, Jérôme L., Damien.

Résultat des P2N

Ca vient de sortir. MOSINAS accepté ! Aleachips 2ème en complémentaire.

Présentation d’Adrien (.ppt)

On lutte encore au niveau ordinateur sur la reconnaissance de caractères, de voix… En peu de temps, sans consommer trop d’énergie… Un modèle neuromorphique c’est séduisant, mais pas pour du calcul « standard ».

Synapse = un composant utile, pour faire le lien avec les unités de calcul (neurones) incluant un effet mémoire (conduction dépendant de son histoire).

Deux grandes familles d’approches :

  • supervisées -> apprentissage pour s’adapter d’abord à bien répondre, sur des données étiquetées,
  • non supervisées -> apprentissage avec des données « naturelles », non étiquetées.

Phi : qu’y a-t-il dans les logiciels de reconnaissance vocaux standard ? Sy : a priori pas des réseaux de neurones, de l’algorithmique, cf. LIMSI. Damien+Sy : même si on revient aux idées de réseaux de neurones.

Variabilité : un rôle clé -> pour l’apprentissage non supervisée, sélectionner des chemins préexistants parmi plein de chemins possibles.

Des jonctions tunnel magnétiques (MTJ), connectées en réseau crossbar par exemple. Le basculement de leur état résistif a un comportement stochastique en fonction de la durée de l’impulsion d’écriture (cf. figure IEF de Thibaut Devolder).

Modélisation ? Modèle macrospin (un unique moment magnétique par couche) + équation Landau-Lifschitz-Gilbert-Slonczewski pour avoir la dynamique de l’aimantation en fonction des actionneurs : champ externe et effets d’anisotropie (champ effectif), agitation thermique, couple de transfert de spin… Avec un terme d’amortissement ou de « damping » (facteur a, de l’ordre de 0,01). Résolution sous Python en fonction de la géométrie des électrodes, du moment magnétique à saturation et de a. Le signe du courant d’écriture permet de définir le sens parallèle ou antiparallèle de l’aimantation de la couche libre par rapport à celle de la couche fix(é)e.

Agitation thermique -> terme déterminé à partir d’une loi normale de distribution.

Polarisation du courant liée à la magnétorésistance tunnel (variations relatives de résistance tunnel entre les états parallèles et antiparallèle), suivant le modèle de Jullière. Adrien considère une TMR de 150% (MTJ « française »).

Voir par exemple la thèse de Nicolas Locatelli pour les problématiques de renversement.

Démonstration dans différentes configurations.

A chaque pas de temps de la résolution, tirages au sort pour connaître la composante aléatoire induite par l’agitation thermique.

Courbe du temps de commutation moyen en fonction de l’intensité de l’impulsion. 1 premier régime de décroissance exponentielle lié au mouvement brownien (pas assez de courant, activation thermique). A plus fort courant, 1 autre avec une décroissance plus lente. Entre les deux une zone pas claire. Faut trouver la bonne expression pour le raccord (de classe C1, pas les mêmes contraintes de dérivabilité que pour un modèle courant-tension)… Pour passer à la modélisation compacte. Mélange entre exp et polynôme. Mais pas ultra robuste : fit délicat sur certaines géométries.

Procédure de fit ? Mise en place par Adrien.

Statistiques des temps de commutation. Varie d’une loi exponentielle à une loi normale en fonction du courant… Adrien sauvé par la loi G(k). Qui pour certains k devient exponentielle.

Simul électrique avec modélisation des neurones par un RC. Evolution des tensions en fonction de la corrélation entre deux impulsions, à l’entrée et à la sortie.

Optimisation de l’énergie requise par impulsion. Grâce à des fonctions de Python.

Optimisation également du temps de calcul… Avec C++ en plus de Python. Salim : pourquoi ne pas faire directement de la programmation C/C++ ? Pour les facilités de prototypage, d’affichage… Salim : on peut entrelacer C++ et Matlab.

Débat de spécialistes entre les versions de Python… Y a-t-il un gain entre 2.7 et 3 ? Ou subit-on le poids de l’histoire ?

Perspectives : debugage C++ en cours, trouver des données expérimentales pour des comparaisons…

Laisser un commentaire