Architetture neuromorfiche, GPU, TPU. L’Intelligenza Artificiale dalla specializzazione al cloud

L’intelligenza artificiale (ri)entra nell’era dell’accelerazione hardware. L’AI accelerata ormai sta diventando sempre più comune, ed è oramai accessibile a tutte le scale, dal cloud a IoT.

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.

Coprocessore matematico Intel del 1987

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 AI accelerata con hardware dedicato. 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.

Confronto in efficienza tra architetture cluster “tradizionali” e GPU

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.

Radeon Instinct vs NVIDIA

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 ecc. 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.

Image result for tpu

NNP

Anche Intel si è gettata a capofitto nel mercato ASIC per AI accelerata e 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 sotto).

Intel Nervana NNP Shown Off More Details Released

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. Il termine indica dei sistemi integrati, contenenti anche circuiti analogici capaci di 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).

SNN – Spiking Neural Network

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.

Scheda madre SyNAPSE, con 16 chip 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 accelerata 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 AI accelerata 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).

Tesla V100 per NVLINK

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.

Schede Google TPU 3.0 (alto a sinistra e a destra), e TPU 2.0 (in basso a sinistra)

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.

Concept di SageMaker

Anche le architetture con AI accelerata 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.

ReInvent_HA_P3_EDITORIAL

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 per AI accelerata.

Arduino vs Raspberry Pi

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.

Jetson TX2 (al centro) montato sulla sua development board

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

Deep Learning Hardware Limbo

CPU vs GPU vs TPU

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 Chips

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)