Inserire software neurale su chip programmabili per risolvere i colli di bottiglia delle architetture tradizionali è la versione aggiornata di un classico problema nato insieme ai chip. Ma l’entità del problema, considerata la dimensione dei data center, è oggi decisamente più rilevante.
E altrettanto rilevanti possono essere i risultati, com’è stato per il Project Catapult di Microsoft.
Cosa è Project Catapult
Alla fine del 2012 Doug Burger, un ricercatore specializzato nel design di nuovi chip, propose al Ceo Ballmer il suo progetto: lo sviluppo in Microsoft di chip specializzati per determinati compiti integrandovi software di reti neurali, riprogrammabili per aggiornamento e quindi con una durata relativamente lunga. La strada era difficile, perché Microsoft non aveva le competenze per sviluppare e programmare dei chip, quand’anche delle Fpga, tanto meno per compiti di quel tipo e dimensioni.
Cos’è FPGA
Fpga, acronimo di Field Programmable Gate Array, è un circuito integrato programmabile via software, così da implementare funzioni logiche anche molto complesse.
Bing Vs. Google
Secondo Burger, però, per Microsoft sarebbe stato un problema non costruire il proprio hardware. Anche Qi Lu, il direttore di Bing, era d’accordo: anzi, erano anni che i due ne parlavano. La competizione guardava direttamente a Google, che da sempre ha avuto un particolare approccio all’hardware non standard. Tuttavia Google ha scelto per sé la strada della progettazione di più tradizionali chip, le Tpu (Tensor processing units).
Oggi le Fpga di Microsoft esistono e spingono le prestazioni di Bing, Azure e a breve anche di Office 365. Successivamente potrebbero essere estese ad altri servizi.
Cpu e Fpga
I tradizionali microprocessori o Cpu, benché innestati con altre unità, in particolare le Gpu per il calcolo intensivo, non erogano le prestazioni specifiche necessarie per tenere il ritmo con le nuove necessità. Servono reti neurali che eseguano algoritmi di intelligenza artificiale, che adattano i risultati nel tempo. Per implementarli in hardware si possono seguire due diverse possibilità: sviluppare dei veri e propri chip, ovvero usare delle matrici riprogrammabili dette Fpga (field-programmable gate arrays).
Gli Fpga sono tutt’altro che una nuova scoperta, anzi esistono da sempre. Vengono usati per sviluppare nuovi circuiti hardware, dal compito specifico ad un intero microprocessore, senza dover affrontare i costi d’una vera produzione industriale. Una singola Fpga costa tra centinaia e migliaia di dollari, contro i 10-50 dollari tipici d’un chip complesso, ma i costi iniziali di sviluppo sono alcune centinaia di migliaia di dollari per la Fpga contro gli svariati milioni per il chip. Inoltre il chip è immutabile, mentra la Fpga può essere riprogrammata senza doverla sostituire.
Le Fpga di Amazon e Baidu
L’innovazione consiste nel riuscire a mettere in hardware del vero software su rete neurale. Tutti i giganti lo stanno facendo: anche Amazon e Baidu hanno scelto le Fpga. La impiegano anche altri erogatori di servizi, dalla finanza alla blockchain, per il salto prestazionale rispetto alle architetture tradizionali. E anche i produttori di chip tradizionali si stanno organizzando: secondo Diane Bryant, Vp Esecutivo Intel, entro il 2020 un terzo dei server delle principali aziende di cloud useranno le Fpga.
E non è difficile comprendere come mai proprio Intel abbia deciso di acquisire Altera un anno fa.
Le Fpga di Microsoft
Oggi l’hardware di Catapult costa il 30% dell’hardware totale del server, consuma il 10% della corrente e raddoppia la potenza complessiva. Ma siamo appena agli inizi.
Microsoft ha una struttura superiore: NexT, New Experiences and Technologies, voluta da Nadella. Project Catapult ne è l’alfiere.
Per almeno un decennio le Fpga espanderanno l’elaborazione tradizionale verso una nuova forma di supercomputing. Poi potrebbe toccare al quantum computing.