Intelligenza artificiale, quali sono le architetture hardware dedicate

Passiamo in rassegna i vari tipi di chip necessari allo sviluppo di soluzioni di AI: il nuovo hardware deve accelerare il training e le prestazioni delle reti neurali, limitando nel contempo i problemi relativi a dimensioni, consumi energetici e costi [...]
Massimiliano Negretti

Cto Open-Eyes 

AI hardware
  1. Home
  2. Intelligenza Artificiale
  3. Intelligenza artificiale, quali sono le architetture hardware dedicate

Hardware come nucleo abilitante dell’innovazione

Con il progredire dell’utilizzo delle reti neurali si consolida la necessità di hardware dedicato poiché ogni caso d’uso ha requisiti di calcolo diversi e il continuo aumento nella complessità dei sistemi AI richiede un analogo incremento della potenza di calcolo al supporto fisico che li ospita. Assistiamo quindi a una maggiore attenzione all’architettura dell’hardware che diviene nucleo abilitante dell’innovazione.

Il nuovo hardware, progettato specificamente per l’AI, deve accelerare il training e le prestazioni delle reti neurali, limitando nel contempo i problemi relativi a dimensioni, consumi energetici e costi.

Usare hardware dedicato per l’AI non è un concetto nuovo, fortunatamente a differenza di quanto avvenne nel primo “inverno dell’intelligenza artificiale”: oggi la tecnologia è in grado di supportare efficacemente le reti neurali. Infatti, pur essendo i computer general-purpose tecnicamente capaci di eseguire gli algoritmi in questione, i limiti fisici della loro architettura iniziano a essere tangibili, diventando rapidamente colli di bottiglia.

Ora, soprattutto dopo lo stallo causato dal Covid, sorge la necessità per le aziende di abbracciare la trasformazione digitale e l’automazione intelligente dei processi, la domanda di servizi informatici è quindi destinata ad aumentare e l’introduzione di hardware più performanti rappresenterebbe un boost estremamente potente per velocizzare la ripresa dell’intero sistema.

Hardware dedicato e bilanciamento tra effort e performance

Attualmente vi è una massiccia offerta di soluzioni AI su cloud, determinata del fatto che le risorse hardware richieste per lavorare con le reti neurali sono significative.

Il cloud, rimuovendo il fardello computazionale dal singolo, rende possibile la “democratizzazione” dell’AI, permettendone l’utilizzo anche a realtà medio-piccole (se non addirittura micro) e non solo alle Big Company.

L’altro elemento che facilita la penetrazione delle applicazioni di AI è l’edge computing, in grado di fornire risposte immediate esattamente dove il dato viene raccolto, grazie all’elaborazione periferica, che proprio grazie agli acceleratori hardware di AI è sempre più performante e con costi sempre minori.

La crescente domanda di AI, nella trasformazione dei dati e per applicazioni sicure, fa sì che le aziende si rivolgano sempre più spesso agli acceleratori hardware, per la loro capacità unica di scalare queste applicazioni e funzioni.

Si assiste alla nascita di un hardware che viene definito dal software, la selezione di questi due elementi (tradizionalmente disaccoppiata) sta diventando più complessa, esisteranno algoritmi che potranno funzionare solo su supporti fisici specifici.

La comprensione delle esigenze degli sviluppatori e, in ultima analisi, degli utenti finali, è un passo fondamentale nel processo di progettazione delle nuove architetture hardware. Gli sviluppatori hanno bisogno di soluzioni flessibili che consentano loro di concentrarsi sul processo di sviluppo del software e di ridurre i tempi e gli sforzi riducendo il time-to-market a questa domanda rispondono gli acceleratori di AI, FPGA in primis.

Cosa è un hardware accelerator per intelligenza artificiale?

L’accelerazione hardware ha molti vantaggi, il principale dei quali è la velocità. Gli acceleratori riducono notevolmente il tempo necessario per addestrare ed eseguire una rete neurale, implementando compiti speciali basati sull’AI che non possono essere eseguiti su una CPU convenzionale. Nei sistemi convenzionali, i processori lavorano in modo sequenziale – le istruzioni vengono eseguite una per una, mentre gli acceleratori hardware migliorano l’esecuzione di un algoritmo specifico consentendo in generale una maggiore parallelizzazione; infatti, gran parte delle operazioni coinvolte nell’inferenza o nel training di una rete neurale possono essere svolte in parallelo, aiutando a eseguire il compito in modo più efficiente in termini di tempo e consumo di energia. L’hardware dedicato consuma minore energia rispetto ai co-processori o ai processori di calcolo generici.

Quando si parla di hardware per AI, si fa riferimento ad alcuni tipi di acceleratori (o anche NPU, Neural Processing Unit) cioè a una classe di microprocessori, o microchip, progettati per consentire una più rapida elaborazione delle applicazioni – specialmente nell’apprendimento automatico – nelle reti neurali, nella visione artificiale e algoritmi di apprendimento automatico per la robotica, l’Internet delle cose e altre applicazioni basate sull’uso dei dati.

Poiché la necessità di risorse computazionali – sia per l’addestramento che per l’inferenza di reti neurali sempre più complesse – cresce in modo esponenziale, siamo in attesa di una nuova generazione di chip che abbiano peculiari capacità:

  • più potenza di calcolo ed efficienza: le soluzioni hardware AI di nuova generazione dovranno essere più potenti e più efficienti in termini di costi e consumo energetico;
  • cloud e edge computing: le nuove architetture in silicio dovranno supportare il deep learning, le reti neurali e gli algoritmi di visione artificiale, con modelli specifici per applicazioni in cloud e in edge;
  • insight rapidi: essere in grado di fornire soluzioni di AI – sia software che hardware – alle aziende per analizzare molto più rapidamente il comportamento e le preferenze dei clienti, al fine di migliorare il servizio grazie a una user experience più coinvolgente;
  • nuovi materiali: vengono effettuate nuove ricerche per passare dal tradizionale silicio ai chip di elaborazione ottica per sviluppare sistemi ottici molto più veloci rispetto alle tradizionali CPU o GPU;
  • nuove architetture: nuovi tipi di architetture come i chip neuromorfi – ovvero che imitano le sinapsi delle cellule cerebrali.

Ai hardware

Principali tipologie di hardware accelerator per AI

Gli algoritmi di AI quindi ci chiedono di migliorare le performance e di ottimizzare tempo e costi. Pertanto, alle tradizionali unità centrali di elaborazione (CPU) è stata affiancata un’ampia gamma di acceleratori hardware, ognuno con specifiche caratteristiche.

GPU

NEWSLETTER
Cloud, Software e molto altro. Non perdere le notizie più rilevanti della Newsletter di ZeroUno
CIO
CRM

È il più comune acceleratore hardware di AI. La GPU (Graphics Processing Unit) è il circuito elettronico specializzato progettato per il rendering di grafica 2D e 3D insieme a una CPU.

Questi processori possono eseguire una varietà limitata di compiti, ma sono estremamente efficienti nella parallelizzazione, cosa che si rivela fondamentale per il deep learning.

Le GPU sono specializzate nella manipolazione di immagini. Poiché le reti neurali e la manipolazione di immagini condividono le stesse basi matematiche, le GPU sono frequentemente utilizzate per applicazioni di apprendimento automatico. Per questo motivo, i produttori di GPU hanno cominciato a incorporare hardware specifico per le reti neurali, come ad esempio i tensor core.

A differenza della CPU la logica di lavoro della GPU è parallela: ciò è possibile in quanto dal punto di vista architettonico è composta da centinaia di core: minuscoli processori in grado di gestire migliaia di istruzioni contemporaneamente.

APU

Come detto, la CPU per la gestione dell’elaborazione grafica necessita della GPU, tuttavia, la progettazione e la produzione di due unità per gestire questi dati è inefficiente. La soluzione a questo problema è l’APU (Accelerated Processing Unit), che è progettata per combinare le due unità separate (CPU e GPU) su un unico chip.

Ci si è resi conto che ridurre l’ingombro delle unità di elaborazione riduce i costi, consente di avere più spazio per altro hardware, oltre ad essere più efficiente. Inoltre, inglobare i due componenti nello stesso chip aumenta la velocità di trasferimento dei dati e riduce il consumo di energia.

ASIC

L’ASIC (Application-Specific Integrated Circuit) è un chip interamente nato e pensato per una specifica applicazione. Poiché è altamente ottimizzato per una funzione specifica, esso opera tipicamente a un livello di efficienza più elevato rispetto a CPU o APU. In sintesi gli ASIC sono veloci e consumano meno energia rispetto ad altri chip. La criticità consiste nella necessità di un notevole investimento per la progettazione e inoltre nella difficoltà ad apportarvi modifiche per perfezionare o aggiornare rapidamente le funzionalità.

Ciò fa sì che venga utilizzato da chi ha come obiettivo un alto volume di produzione e per funzionalità relativamente stabili. Negli ultimi anni, la domanda di ASIC è cresciuta per far fronte all’uso diffuso negli smartphone e nei tablet per la necessità di larghezza di banda.

TPU

La TPU (Tensor Processing Unit) non è altro che un particolare ASIC ottimizzato per le reti neurali. Google ha creato il proprio circuito integrato sviluppato appositamente per l’apprendimento automatico e personalizzato per TensorFlow, il suo framework open-source per le applicazioni di machine learning.

La TPU è da 15 a 30 volte più veloce delle GPU e delle CPU contemporanee ed è molto più efficiente dal punto di vista energetico, offrendo un miglioramento da 30 a 80 volte. Giusto per curiosità tutte le versioni di AlphaGO sono state implementate con TPU.

NNP

L’NNP (Neural Network Processor) è un altro tipo di ASIC su tecnologia SoC (System -on-Chip) per l’inferenza e il supporto per reti di grandi dimensioni, orientata alla realizzazione di server per applicazioni cloud.

Ciò che è interessante è che la tecnologia dei SoC potrebbe passare ai futuri processori, con CPU al lavoro su aree dedicate per svolgere attività di apprendimento automatico anche a livello edge, come il riconoscimento vocale e la visione artificiale sui prossimi computer portatili.

VPU

Le Vision Processing Unit (VPU), 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.

Recentemente è stata lanciata sul mercato la nuova generazione di VPU studiata per applicazioni AI in edge. Sono processori dedicati ad applicazioni multimediali, di visione artificiale e inferenza in edge: proprio in questo ambito danno il meglio di sé, risultando fino a dieci volte più veloci rispetto alla generazione precedente

FPGA

Le FPGA (Field-Programmable Gate Array) sono circuiti integrati progettati per essere configurati dopo la produzione per l’implementazione di funzioni logiche arbitrarie nell’hardware.

Dispositivi riconfigurabili come le FPGA semplificano la gestione di hardware in evoluzione rispondendo alla domanda di avere a disposizione hardware specifico per il deep learning.

Con strumenti e framework aggiuntivi come Open Computing Language (OpenCL), le FPGA permettono agli sviluppatori di software tradizionali di incorporare la logica personalizzata nell’hardware – creando efficacemente i propri specifici acceleratori hardware – ecco perché si parla di “hardware definito dal software”. Diversi fornitori di cloud, come Amazon e Microsoft, stanno già offrendo servizi cloud FPGA, definiti FPGA-as-a-service.

Le FPGA sono utilizzate per accelerare il processo di inferenza per le reti neurali artificiali (NN).

  • Le funzioni logiche sono implementate per mezzo di celle logiche configurabili;
  • Queste celle logiche sono distribuite in una struttura di griglia 2D e interconnesse utilizzando risorse di configurable routing.

Le FPGA non sono una novità, infatti esistono dagli anni ‘90 ma alcuni aspetti ne hanno impedito la diffusione:

  • difficili da programmare: si usa un linguaggio specifico (VHDL o Verilog) relativamente poco diffuso.
  • richiedono una complessa fase di testing e simulazione dell’hardware sviluppato.

La realizzazione di un acceleratore tramite FPGA consente di riprodurre architetture tipiche degli ASIC, come TPU o NNP in modo molto più flessibile (anche se meno efficiente). Se il modello NN cambia, l’acceleratore HW può essere sostituito senza cambiare chip o piattaforma.

L’FPGA è diversa dagli altri acceleratori hardware in quanto non ha alcuna funzionalità specifica quando viene prodotta. Come contenitore hardware, deve essere programmato. Ma una volta che la logica di funzionamento viene caricata, l’esecuzione di algoritmi a livello hardware può produrre ordini di grandezza nel miglioramento delle prestazioni. A differenza degli acceleratori basati su ASIC, che possono richiedere mesi per la progettazione e la produzione, gli acceleratori basati su FPGA possono essere sviluppati in poche settimane.

Forse il più grande punto di forza dell’FPGA, tuttavia, è la sua capacità di essere riprogrammato. Le sue funzionalità possono essere ulteriormente perfezionate e aggiornate sul campo, soprattutto in aree in rapida evoluzione come l’apprendimento automatico. Utilizzando la tecnologia FPGA, Microsoft – per una certa tipologia di calcolo – ha ottenuto un miglioramento fino a 150-200x della velocità di trasmissione dei dati, un miglioramento fino a 50 volte maggiore dell’efficienza energetica rispetto a una CPU e una latenza ridotta di circa il 75 per cento.

Chip neuromorfici

Sono dei processori concepiti per imitare realisticamente le interazioni tra le sinapsi.

Le SNN (Spiking Neural Networks) sono reti neurali artificiali che imitano quelle naturali. Oltre allo stato neuronale e sinaptico, le SNN incorporano nel loro modello operativo anche il concetto di tempo, ovvero la frequenza di trasmissione dei segnali (spike). La logica di funzionamento non è binaria ma analogica.

Lo scopo è quello di realizzare sistemi ad autoapprendimento. La capacità di apprendimento consente ai chip neuromorfici di svolgere più attività di computing a una velocità molto maggiore, comportando un’incredibile efficienza energetica.

Conclusioni

Paradossalmente quanto più gli algoritmi divengono eterei, diffusi e potenti, tanto più necessitano di concretezza, di “ferro per la messa a terra dell’AI”.

WEBINAR, 27 MAGGIO
AI, Machine Learning e Big Data: le chiavi per ottimizzare i processi aziendali
Big Data
Intelligenza Artificiale

Video: Intel – Dalla sabbia al silicio – Come nasce un microchip (in inglese)

FacebookTwitterLinkedIn