Un team di ingegneri della Stanford University, guidati dal professore Kwabena Boahen, ha sviluppato Neurogrid: un sistema neuromorfico che consente di simulare per la prima volta in real-time una struttura da un milione di neuroni e miliardi di connessioni sinaptiche con un consumo di potenza di soli 3 Watt.
Neurogrid è un sistema elettronico neuromorfico, costituito da 16 chip Neurocore, ciascuno dei quali emula il funzionamento di 65.536 (216) neuroni, nato dall’esigenza di realizzare simulazioni real-time di modelli neurali su larga scala limitando il dispendio energetico.
Perché non utilizzare dei computer e realizzare le simulazioni direttamente via software?
La risposta è semplice: un computer non può garantire le prestazioni richieste.
A tal proposito, Boahen spiega nell’articolo “Neurogrid, A Mixed-Analog-Digital Multichip System for Large Scale Neural Simulations” che un computer riesce a simulare il modello di corteccia cerebrale di un topo (ordine di 2.5 x 106 neuroni) con una velocità 9000 volte inferiore a quella a cui opera il vero cervello del topo e dissipando una potenza 40000 volte superiore: 400 W contro i 10 mW del cervello del topo.
Per simulare il modello di corteccia cerebrale di un uomo (ordine di 2 x 1010 neuroni), è stato stimato che sarebbe necessario un supercomputer, dell’ordine di 1018 flip-flop, che dissiperebbe una potenza di circa ½ GW!
Dinanzi a tali inefficienze energetiche si comprende quanto il potenziale della modellazione neurale su larga scala sia stato, ad oggi, a malapena sfruttato: per questi motivi ha preso piede la ricerca nel campo della progettazione di sistemi neuromorfici che rappresentano attualmente l’unica alternativa in grado di garantire contemporaneamente efficienza e prestazioni elevate. Vediamo dunque cosa sono i sistemi neuromorfici e su quali elementi si basa la loro architettura.
Architettura di un sistema neuromorfico
Un sistema neuromorfico è un circuito elettronico che replica le funzioni di sistemi biologici neurali emulandone la struttura. In generale, i sistemi neuromorfici si basano su unità funzionali che emulano la struttura di un vero neurone: sono presenti, infatti, gli equivalenti elettronici dei quattro elementi principali di cui esso è costituito, ovvero assone, sinapsi, dendriti e soma.
Nel design di sistemi neuromorfici complessi, cioè composti da un elevato numero di unità funzionali, bisogna affrontare tre principali scelte progettuali:
- Come emulare i quattro elementi neurali (assone, sinapsi, dendriti e soma)?
- Circuiti dedicati
- Circuiti condivisi
- Come realizzare i circuiti elettronici?
- All-Analog
- All-Digital
- Hybrid
- Come interconnettere gli array di questi neuroni in silicio?
- Rete a griglia (mesh)
- Rete ad albero
Le scelte fatte dal team di Boahen per la realizzazione delle unità funzionali che compongono i Neurocore sono state:
- emulazione di tutti gli elementi neurali con circuiti condivisi per massimizzare le connessioni sinaptiche, ad eccezione del soma, implementato con un circuito dedicato;
- realizzazione ibrida: realizzare solo l’assone per via digitale e tutti gli altri elementi con circuiti analogici per massimizzare l’efficienza energetica;
- interconnessione degli array di neuroni con una rete ad albero binario per minimizzare la latenza di trasmissione dati e massimizzare il throughput.
La combinazione di queste tre scelte ha consentito di simulare per la prima volta in tempo reale un sistema di un milione di neuroni con miliardi di connessioni sinaptiche utilizzando 16 Neurocores integrati su una board che consuma solo 3 Watt!
In figura 1.(a) si può osservare la più semplice realizzazione totalmente analogica di un neurone:
Assone e dendrite sono realizzati con dei semplici conduttori elettrici (ognuno con la propria capacità parassita), il soma con un comparatore, e la sinapsi con un generatore di corrente ed un interruttore controllato in tensione. La tensione di lavoro del generatore di corrente, che determina la potenza elettrica dell’impulso trasmesso sul dendrite, rappresenta l’equivalente elettrico del peso sinaptico e può essere memorizzata per via analogica o per via digitale (ad esempio con una piccola memoria, nel qual caso è necessario utilizzare un DAC).
La sinapsi funziona effettivamente come collegamento tra due neuroni: viene attivata dall’impulso trasmesso dal primo neurone sull’assone che controlla il suo interruttore e in risposta connette il suo generatore di corrente sul dendrite del secondo neurone, provocando la generazione di un impulso diretto verso il soma. Gli impulsi diretti al soma vengono integrati dalla capacità parassita del dendrite (filtro integratore passa-basso), ottenendo un segnale di tensione la cui evoluzione temporale segue una dinamica crescente con il numero di impulsi generati dalla sinapsi nell’unità di tempo. Tale segnale viene comparato con una tensione di soglia, che rappresenta proprio la soglia di attivazione del potenziale di azione, al superamento della quale il comparatore genera l’impulso di uscita sull’assone del secondo neurone. A questo punto la capacità del dendrite viene scaricata (operazione analoga ad un reset o al ritorno allo stato di quiete) e il ciclo ricomincia.
In figura 1.(b), invece, si può osservare la più semplice realizzazione totalmente digitale di un neurone:
L’assone viene realizzato con una wordline, la sinapsi con una piccola memoria RAM, il dendrite con un contatore connesso alla sinapsi tramite una bitline e il soma con un comparatore digitale.
Ogni volta che una word sull’assone entrante seleziona un ‘1‘ logico in uscita alla memoria RAM della sinapsi, il contatore del dendrite incrementa il valore del suo conteggio, il comparatore lo confronta con una soglia digitale, al superamento della quale, genera un impulso in uscita sull’assone. A questo punto il contatore viene resettato e il ciclo ricomincia.
Neuroni di Neurogrid
Gli schemi illustrati in precedenza sono piuttosto indicativi: i neuroni di Neurogrid hanno in realtà una struttura più complessa che presenta non solo i circuiti che emulano la sinapsi, ma anche i circuiti che emulano i canali ionici (denominati Gating Variable circuits), come è possibile vedere dall’immagine sottostante:
La profonda differenza nell’approccio alla computazione di Neurogrid rispetto ai classici computers è l’uso del MOSFET, non come interruttore logico, ma come canale di conduzione che simula i canali ionici dei neuroni!
Considerando che la conduttività dei canali ionici non è così elevata, in quanto gli ioni possono passare solo uno alla volta, bisogna porre il MOSFET in condizioni di debole inversione, per far sì che la conduzione sia affidata alla sola corrente di diffusione, come accade nei canali ionici. Le ridottissime dimensioni dei MOS a cui è pervenuta l’attuale tecnologia consentirebbero addirittura il passaggio in contemporanea di soli 12 elettroni attraverso il canale, sempre in condizioni di debole inversione, e potrebbero dunque emulare il comportamento dinamico di un gruppo di 12 canali ionici.
N
eurocores
Un Neurocore è realizzato con una matrice di 256 x 256 neuroni circondata da un ricevitore e un trasmettitore di impulsi, che emulano l’interazione con altri neuroni, un router che gestisce lo scambio dati e due blocchi di RAM, una per la configurazione delle interconnessioni neurali, l’altra per la selezione del peso sinaptico.
Architettura di Neurogrid
Neurogrid si compone di un lato hardware, dedicato alla simulazione real-time, e di un lato software che consente una visualizzazione interattiva per la diretta programmazione dell’hardware.
Software
- User Interface (UI): consente all’utente di specificare i modelli delle reti neurali oggetto della simulazione, interagisce con la simulazione e visualizza i risultati in tempo reale.
- Hardware Abstraction Layer (HAL): sintetizza la descrizione del modello analizzato con i circuiti elettronici di Neurogrid, realizzando una mappa di programmazione per l’hardware.
- Driver: converte i dati (ricevuti dal HAL) da Neurogrid packets (formato comprensibile dai Neurocore e dal software) in dati USB e trasmette la mappa di programmazione all’hardware; converte in real-time i dati USB, trasmessi dalla board durante la simulazione, in Neurogrid packets per consentire all’utente di visualizzare i risultati attraverso l’interfaccia grafica.
Hardware
- Microcontrollore USB (Cypress FX2): trascrive la mappa di programmazione sull’hardware.
- CPLD (Lattice): converte i dati USB di nuovo in Neurogrid packets e li trasmette ai Neurocores.
- Daughterboard: realizzata con un FPGA (Xilinx Spartan) e otto blocchi da 4 MB di SRAM, implementa i collegamenti elementari degli assoni neuronali.
Nel seguente video alcuni membri del team, Boahen compreso, spiegano la loro visione del progetto e delle prospettive future.
Aspetti da migliorare
A questo punto si potrebbe pensare che i risultati di questa ricerca siano stati sbalorditivi, e in parte è sicuramente così, ma ci sono alcuni aspetti fondamentali di cui non si è parlato, per i quali questo progetto non è riuscito ancora ad avere dei risultati veramente soddisfacenti.
Recenti sviluppi
Ad ogni modo, questi aspetti da migliorare limitano drasticamente la platea di possibili utilizzatori del sistema Neurogrid, che invece ha delle potenzialità applicative che vanno ben oltre le simulazioni dell’attività cerebrale: il team di Boahen si è già spinto oltre le dimostrazioni scientifiche, realizzando interessanti applicazioni, e ha ricevuto dei grossi fondi per lo sviluppo e l’ottimizzazione del progetto, come spiega lui stesso in questa breve intervista rilasciata all’ EETimes:
Abbiamo ricevuto un fondo di 10 milioni di dollari per utilizzare i chip neuromorfici come sistemi di elaborazione a bassissimo consumo di energia, di cui 5 milioni per un Pioneer Award del National Institute of Health (NIH), che mira in 5 anni ad impiantare un chip all’interno del cervello per controllare un arto robotico, e 5 milioni dall’Office of Naval Research (ONR) per realizzare in 5 anni uno scaling del progetto dall’attuale tecnologia a 180 nanometri ad una più moderna tecnologia a 28 nanometri, che consenta di realizzare diversi milioni di neuroni su un singolo chip per arrivare a controllare un drone.”
[…] Per gli uomini la Natura è sempre servita da modello e da fonte di ispirazione per migliorare la qualità della vita. La Natura, per mezzo dell’evoluzione, dona infatti agli esseri viventi soluzioni “sperimentate” che combinano una grande efficacia ad un minimo dispendio di risorse. Il cervello umano ad esempio, con i suoi pochi watt di fabbisogno energetico, compete in molti ambiti con i più potenti e moderni supercomputer, questi ultimi alimentati da una potenza milioni di volte superiore (per saperne di più, leggete il precedente articolo Neurogrid: il circuito elettronico che replica il cervello umano). […]