Architetture neuromorfiche, GPU, TPU: l’Intelligenza Artificiale dalla specializzazione al cloud
Lavorare e sperimentare con le reti neurali è (ancora) possibile con qualsiasi genere di hardware, ma per farlo in modo efficiente, ovvero con tempistiche che siano ragionevoli occorre hardware dedicato.
Usare hardware dedicato per Intelligenza Artificiale non è un concetto nuovo, e risale agli anni ’80 con le macchine LISP. L’idea, che sembrava interessante all’epoca, finì poi per scivolare nel dimenticatoio con la rivoluzione dei microcomputer commerciali, quando desktop alla portata di tutti si mostrarono in grado di eseguire LISP come e persino più velocemente delle macchine dedicate.

L’arrivo poi del primo “Inverno dell’Intelligenza Artificiale” decretò la fine dei sistemi esperti; anche le reti neurali, all’epoca promettenti, finirono in soffitta per insufficiente capacità dell’hardware. In sostanza, i sistemi esperti si rivelarono un buco nell’acqua, mentre per le reti neurali non c’era ancora la tecnologia in grado di supportarli.
Hardware accelerato: reprise
Oggi lo scenario dell’hardware dedicato sembra ripresentarsi: i computer general-purpose sono tecnicamente in grado di eseguire tutti o quasi i tipi di algoritmi, ma si sta arrivando velocemente ai limiti fisici dell’architettura. Per chi se li ricorda, è interessante notare il curioso parallelo con i coprocessori matematici in voga fino ai primi anni ’90, poi progressivamente scomparsi a causa dell’abbassamento dei costi per integrare le funzioni matematiche nelle CPU.
.jpg)
Algoritmi come PageRank per esempio, coordinati da piattaforme come Hadoop e Spark, richiedono anche migliaia di server in cluster, e la necessità di incrementare costantemente i nodi per gestire in tempi ragionevoli l’immensa quantità di dati inizia a diventare un problema in termini di spazio, energia, e quindi anche costi.
La soluzione sembra ripercorrere gli stessi scenari di allora, con l’adozione di hardware accelerato per AI, con la differenza sostanziale che oggi la tecnologia sembra riuscire a stare al passo con le esigenze.
GPU
Lo scenario più comune oggi è utilizzare le GPU, vale a dire i processori tipici delle schede grafiche attuali. Questi processori infatti, seppure limitati nella varietà di compiti che possono eseguire, sono estremamente efficienti nella parallelizzazione, cosa che si rivela fondamentale per il deep learning.

NVIDIA è stata una delle prime a investire pesantemente nello sviluppo di GPU ottimizzate per le reti neurali, e prodotti come le schede Tesla sembrano essere lo stato dell’arte a riguardo. Anche AMD non si è fatta attendere, ed è sul mercato con la propria Radeon Instinct.

Rispetto alle sopracitate macchine LISP, le GPU sono ancora in qualche modo delle architetture nate per altri scopi (applicazioni grafiche), poi riscoperte e adattate ad applicazioni come reti neurali, bitcoin mining etc. Vedendo lo scenario in questa prospettiva non c’è troppo da stupirsi della nascita (o riscoperta) degli ASIC, ovvero di architetture e circuiti interamente nati e pensati per una specifica applicazione.
TPU
In questo contesto, forse la prima a sviluppare ASIC per reti neurali è stata (guardacaso) Google, con la sua architettura TPU, la cui terza generazione è stata annunciata al Google I/O Keynote dello scorso 8 maggio. Tutte le versioni di AlphaGO, da AlphaGo Fan ad AlphaZero sono state implementate con TPU.
NNP
Anche Intel si è gettata a capofitto nel mercato ASIC per AI, ed ha recentemente annunciato Nervana, il proprio Neural Network Processor (NNP). Il lancio sembra previsto per il 2019, e ad oggi ancora molto poco è dato sapere sull’architettura (vedi articolo).
VPU
Le Vision Processing Unit (VPU appunto), sono architetture specializzate per la Machine Vision. La differenza fondamentale tra GPU e VPU è che le prime sono pensate soprattutto per il rendering, mentre le seconde implementano reti neurali ottimizzate per il riconoscimento in immagini e video. Sono soprattutto utilizzate in droni, smart car, realtà aumentata e virtuale.
Intel è entrata nel mercato con l’acquisizione di Myriad, la cui famiglia di chip viene usata ad esempio nei droni DJI e nel progetto Tango di Google. Myriad X (sotto) rappresenta l’ultima generazione.
Chip Neuromorfici
Sebbene la nomenclatura suoni decisamente fantascientifica, il concetto di sistemi neuromorfici fu coniato da C. Mead in un noto articolo del 1990. Con questo termine indicava dei sistemi integrati, contenenti anche circuiti analogici che potessero emulare il comportamento delle architetture neuro-biologiche presenti nel Sistema Nervoso Centrale.
Queste architetture sono basate su reti neurali particolari, chiamate “Spiking Neural Networks“, che simulano il funzionamento dei neuroni reali. In poche parole, invece di trasmettere segnali binari, i “pacchetti” possono assumere differenti valori, e la trasmissione si attiva solo quando l’integrazione dei segnali in arrivo supera una certa soglia. A differenza delle reti neurali classiche, in queste funzioni viene introdotto anche il fattore tempo, ovvero la frequenza di trasmissione dei segnali (spike).

Uno dei progetti più noti è SyNAPSE, lanciato da DARPA nel 2008, per la costruzione appunto di un computer neuromorfico con un’architettura simile a quella dei mammiferi. Dei partecipanti l’unico rimasto è IBM, con la realizzazione di TrueNorth.

Recentemente, Intel ha annunciato la propria architettura neuromorfica, chiamata Loihi, che nelle parole della stessa Intel rappresenterebbe nientemeno che “il futuro dell’Intelligenza Artificiale e dei Computer” (sotto).
La tecnologia è senz’altro affascinante, tuttavia c’è chi obbietta che è ancora acerba, e che mancano ancora applicazioni in cui superi la performance di macchine non dedicate.
AI sulle nuvole
Date le risorse hardware richieste per lavorare con le reti neurali oggi, sembra perfettamente ragionevole aspettarsi una massiccia offerta di servizi AI su cloud, cosa che infatti sta avvenendo. AI su cloud dovrebbe trarre grande beneficio da architetture di Hyperscale, un concetto che si sta diffondendo sempre di più da un paio d’anni ormai si sta diffondendo sempre di più. Si tratta di un insieme di tecnologie, architetture e best-practice che consentono di scalare rapidamente e adattarsi a incrementi di carico. I punti forti di Hyperscale sono standardizzazione, automazione, ridondanza, high-performance (HPC) e alta disponibilità (HA)
Project Olympus: Open Source Hardware per l’AI su cloud
Nel 2016 Microsoft ha introdotto Olympus nella community di Open Source Compute. Si tratta di un’architettura rack open source disegnata per il cloud. Lo scopo dichiarato è quello di far diventare questa architettura lo standard di riferimento, e di fatto assumere nell’ambito cloud il ruolo che l’architettura ATX ha avuto nello sviluppo delle schede madri dei personal computer per decenni.

HGX-1 da NVIDIA e Microsoft
Proprio in questo ambito lo scorso anno Microsoft e NVIDIA avevano annunciato la nuova architettura di riferimento HGX-1, un’architettura di accelerazione AI appositamente disegnata per cloud, che dovrebbe incorporare fino a 8 Tesla V100 che comunicano tramite NVLink (c’è anche una versione workstation per PCIe, con minori features).

Big Sur, l’open source di Facebook
Anche Facebook ha presentato la propria architettura cloud accelerata per AI, pensata per 8 GPU Tesla M40.

Google TPU 3.0
Come già detto, allo scorso Keynote Google ha presentato l’ultima generazione di TPU, hyperscale appositamente ingegnerizzata per il cloud. Ad oggi infatti, la versione beta di Cloud TPU è l’unica offerta di TPU al pubblico: non esiste infatti in commercio alcuna versione “workstation” dell’hardware Google.

AWS
Amazon oramai è sinonimo di cloud, e fornisce da tempo web services orientati al Machine Learning, come Rekognition per il riconoscimento di video e immagini, Lex per i chatbot, e servizi orientati al linguaggio come Translate, Comprehend (analytics su testo), Transcribe (speech recognition) e Polly (text-to-speech).
Oltre a questi servizi di base, sono disponibili SageMaker, che altro non è che un servizio di orchestrazione dei “mattoncini” sopraelencati, e Deep Learning AMI, ovvero di macchine virtuali preconfigurate con i maggiori framework di ML, e i tool necessari.

Anche le architetture AI di Amazon fanno uso di hardware specializzato ovviamente, e proprio lo scorso ottobre ha annunciato la disponibilità delle P3, le istanze accelerate GPU (si tratta delle Tesla V100 di NVIDIA) della famiglia EC2.
Da notare che alcune indiscrezioni riportano Amazon al lavoro per sviluppare il proprio chip AI, che andrebbe a potenziare Alexa. Considerando che Alexa è già integrato nel cloud, non è impensabile che questi Amazon stia pensando di portarsi in casa anche questo pezzo, rimpiazzando l’attuale hardware di NVIDIA.
Embedded AI
L’embedded computing è stato fin’ora dominato da Arduino e Raspberry Pi. Mentre c’è poco da aggiungere su questi due componenti general-purpose che non sia già stato detto, vale la pena notare che anche in questo ambito, vista la diffusione incredibile di applicazioni AI nella vita di tutti i giorni, si sta facendo largo l’impiego di hardware accelerato per AI.

Jetson TX2
Recentemente NVIDIA ha presentato Jetson TX2, la new entry per embedded computer vision, con caratteristiche degne di nota, che tra le altre cose includono una GPU NVIDIA Pascal a 256 core, 8 GB di RAM LPDDR4 e 32 GB di storage.

Pensato per supportare l’implementazione di computer vision in robots e droni, sembra superare di gran lunga le performance di Raspberry Pi nel campo.
Intel Movidius Neural Compute Stick
Oggi bassi consumi energetici sono fondamentali per qualsiasi dispositivo IoT. Per implementare applicazioni deep learning in questa categoria, Intel ha presentato la new entry della famiglia Movidius, ovvero il Neural Compute Stick (NCS), un dispositivo USB economico (costa attorno ai 100 €) e a basso consumo, con a bordo la VPU Myriad 2. L’apparecchio tra le altre cose supporta la profilazione di reti neurali convolute (CNN), e inferenza in real-time sul device (connettività a internet non necessaria)
Beninteso, NCS non è una GPU, e non è adatto ad essere utilizzato per il training delle reti neurali, ma solo per profilazione, compilazione e prototipazione. NCS viene fornito con il proprio SDK, che ad oggi supporta TensorFlow e Caffe come framework, ed è stato testato per essere installato su Virtual Machine, Docker e Python Virtualenv.
Il risultato è che con questo dispositivo è possibile eseguire algoritmi complessi come AlexNet, SqueezeNet e GoogLeNet, e anche Yolo (ne abbiamo parlato qui), e di fatto usufruire di un processore specializzato a costi molto contenuti. Oltretutto NCS è stato pensato per essere scalabile, ed è possibile migliorarne le performance semplicemente aggiungendo altri stick (vedi sotto).
GTX G-Assist, tecnologia di… primavera
E sempre a proposito di USB stick, non poteva farsi attendere la risposta di NVIDIA. GTX G-Assist implementa un sofisticato algoritmo di rete neurale ottimizzato per il gaming, che sfruttando la GPU installata sul PC è in grado di eseguire funzioni a dir poco strabilianti. Prima su tutte la Ghostplay, che è in grado di… imparare il nostro stile e skill di gioco e di emularlo in completa autonomia per ben 3 minuti. Tradotto in parole semplici significa che possiamo assentarci dal gioco online per bere, mangiare o altro, e per 3 minuti nessuno sarà in grado di accorgersi della nostra assenza!
Un’altra funzione incredibile è la BossBoost, che una volta per partita è in grado di “capire” la strategia migliore per sconfiggere un boss particolarmente ostico, e sconfiggerlo per noi, registrando le scene migliori con Shadowplay.
Si tratta della tecnologia gaming più rivoluzionaria di tutti i tempi!
Beh… non proprio, in realtà è solo un pesce d’aprile, e la G-Assist non è altro che una comunissima penna USB a 64 GB, a forma di scheda video. Ma è stato architettato bene, la risposta del pubblico pare sia stata clamorosa, e… è stato comunque divertente.
LINK
A list of ICs and IPs for AI, Machine Learning and Deep Learning
Chip Neuromorfici
C. Mead: Neuromorphic Electronic Systems – Proceedings of the IEEE. 78 (10): 1629–1636. doi:10.1109/5.58356
C. D. Schuman, et al: A Survey of Neuromorphic Computing and Neural Networks in Hardware – arXiv:1705.06963v1.
S.B. Furber et al: The SpiNNaker Project – Proceedings of the IEEE. 102 (5): 654-665. doi:10.1109/JPROC.2014.2304638
Neuromorphic Chips Are Destined for Deep Learning—or Obscurity
Neuromorphic computing mimics important brain feature
NEUROMORPHIC CHIPS – FUTURE OF MANKIND
IBM scientists imitate the functionality of neurons with a phase-change device
Intel® Nervana™ Neural Network Processor: Architecture Update
Intel Pioneers New Technologies to Advance Artificial Intelligence
Intel® Nervana™ Neural Network Processor: Architecture Update
2018 CES: Intel Advances Quantum and Neuromorphic Computing Research
Intel’s New Self-Learning Chip Promises to Accelerate Artificial Intelligence
Cloud
Nvidia Shares Recipe to Accelerate AI Cloud Adoption
Google Announces Expensive Cloud TPU Availability
Meet TPU 3.0: Google teases the world with latest math coprocessor for AI
Microsoft Brings Open Hardware Design To New Heights – Announcing Project Olympus
Nvidia, Microsoft announce new HGX-1 hyperscale GPU accelerator for AI workloads
Should NVIDIA Be Concerned About Amazon’s Custom AI Chip?
Google Announces 8x Faster TPU 3.0 For AI, Machine Learning
Amazon Is Becoming an AI Chip Maker, Speeding Alexa Responses
Embedded
https://movidius.github.io/ncsdk/ncs.html
https://www.movidius.com/myriad2
Forrest N. Iandola et al: SqueezeNet: AlexNet-level accuracy with 50x fewer parameters and <0.5MB model size – arXiv:1602.07360v4
C. Szegedy et al: Going Deeper with Convolutions – arXiv:1409.4842v1
A. Krizhevsky, I. Sutskever, Geoffrey E Hinton: ImageNet Classification with Deep Convolutional Neural Networks – Advances in Neural Information Processing Systems 2012 (pp. 1097-1105)
Andrea lavora nel campo dell’IT da quasi 20 anni coprendo un po’ tutto, da sviluppo a business analysis, alla gestione di progetti.
Oggi possiamo dire che è uno gnomo spensierato, appassionato di Neuroscienze, Intelligenza Artificiale e fotografia.