21.01.2013 Views

thesis

thesis

thesis

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

2.6 Simulation des modèles impulsionnels 73<br />

run(1 * second)<br />

a. State update<br />

b. Threshold<br />

spikes = [ 2, 5, 6 ]<br />

c. Propagate d. Reset<br />

exc.<br />

inh.<br />

0<br />

1<br />

2<br />

3<br />

4<br />

5<br />

6<br />

7<br />

+<br />

=<br />

0 1 2 3 4 5 6 7<br />

0 1 2 3 4 5 6 7<br />

0 1 2 3 4 5 6 7<br />

Figure 2.9 – Fonctionnement du simulateur Brian. La simulation de chaque pas de<br />

temps fait intervenir quatre étapes. a. Mise à jour de la matrice d’état S. b. Détection des<br />

neurones émettant un potentiel d’action. c. Propagation des potentiels d’action dans le réseau.<br />

d. Réinitialisation (Goodman et Brette 2008).<br />

Python (Goodman 2010). La compilation se fait aussi à la volée à l’aide de la<br />

bibliothèque Weave, inclue dans Scipy (Jones et al. 2001). Le gain en performance<br />

peut être significatif, surtout pour de longues durées de simulation (un gain de<br />

performance de 40 a été constaté dans Goodman (2010)).<br />

Implémentation sur GPU<br />

Les mêmes techniques permettent de générer du code C adapté pour être<br />

compilé sur carte graphique, à l’aide de la bibliothèque CUDA, développée<br />

par la société NVIDIA (Nickolls et al. 2008). Ces composants informatiques bon<br />

marché, développés initialement pour le marché du jeu vidéo, sont spécialisés dans<br />

le calcul parallèle haute performance. Ils peuvent contenir des centaines d’unités<br />

arithmétiques et logiques (ALU) fonctionnant en parallèle au sein de la même carte<br />

et partageant plusieurs niveaux de mémoire. Ces composants offrent aujourd’hui<br />

une puissance maximale de calcul de l’ordre du téraflop (10 12 opérations en virgule<br />

flottante par seconde) pour quelques centaines de dollars, puissance équivalente à<br />

celle des superordinateurs de la fin des années 1990.<br />

La programmation sur ces architectures est très spécifique et fait intervenir<br />

le modèle de parallélisme SIMD : une même fonction écrite en C est exécutée en<br />

parallèle sur de nombreux processeurs et effectuent chacune la même opération sur<br />

des valeurs scalaires différentes. La structure des données stockées en mémoire doit<br />

respecter certaines contraintes de localité pour atteindre une efficacité maximale<br />

(accès coalescent) (Ueng et al. 2008).

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!