Come funziona l'utilizzo dell'ASIC per l'accelerazione dell'IA?


9

Sulla pagina di Wikipedia possiamo leggere che Google ha creato un chip ASIC personalizzato per l'apprendimento automatico e personalizzato per TensorFlow che aiuta ad accelerare l'IA.

Poiché i chip ASIC sono appositamente personalizzati per un uso particolare senza la possibilità di modificare il suo circuito, deve essere invocato un algoritmo fisso.

Quindi, come funziona esattamente l'accelerazione dell'intelligenza artificiale utilizzando i chip ASIC se il suo algoritmo non può essere modificato? Quale parte di essa sta esattamente accelerando?


1
Nessuna tecnica di intelligenza artificiale di cui sono a conoscenza richiede la modifica dell'algoritmo , sebbene la maggior parte dipenda dalla capacità di modificare i dati (punti di forza della connessione, membri della popolazione) ecc.
NietzscheanAI

Quindi l'unica parte dinamica come lo stato della rete è mantenuta su qualche memoria flash o unità?
Kenorb,

Secondo en.wikipedia.org/wiki/Application-specific_integrated_circuit , i moderni ASIC possono avere RAM ...
NietzscheanAI

Risposte:


4

Operazioni tensore

Il lavoro principale nella maggior parte delle applicazioni ML è semplicemente un insieme di operazioni tensore (molto grandi), ad esempio la moltiplicazione della matrice. Si può fare che facilmente in un ASIC, e tutti gli altri algoritmi può semplicemente eseguire in cima a quello.


1
Un punto importante è che il TPU utilizza una moltiplicazione a 8 bit, che può essere implementata in modo molto più efficiente rispetto a una più ampia moltiplicazione offerta dalla CPU. Una precisione così bassa è sufficiente e consente di imballare molte migliaia di tali moltiplicatori su un singolo chip.
maaartino

3

Penso che l'algoritmo sia cambiato minimamente, ma l'hardware necessario è stato tagliato fino all'osso.

Il numero di transizioni gate è ridotto (forse anche operazioni di float e precisione), così come il numero di operazioni di spostamento dei dati, risparmiando così energia e tempo di esecuzione. Google suggerisce che il loro TPU ottiene un risparmio di 10 volte per ottenere lo stesso lavoro.

https://cloudplatform.googleblog.com/2016/05/Google-supercharges-machine-learning-tasks-with-custom-chip.html


1

ASIC - È l'acronimo di Application Specific IC. Fondamentalmente scrivi programmi per progettare un chip in HDL . Prenderò casi di come funzionano i computer moderni per spiegare il mio punto:

  • CPU : le CPU sono fondamentalmente un microprocessore con molti circuiti integrati di supporto che svolgono compiti specifici. In un microprocessore esiste solo una singola unità di elaborazione aritmetica (termine composto) denominata accumulatore in cui deve essere memorizzato un valore, poiché i calcoli vengono eseguiti solo e solo i valori memorizzati nell'accumulatore. Quindi ogni istruzione, ogni operazione, ogni operazione R / W deve essere eseguita attraverso l'accumulatore (ecco perché i computer più vecchi erano soliti congelare quando scrivevi da un file su un dispositivo, anche se al giorno d'oggi il processo è stato perfezionato e potrebbe non richiedere l'accumulatore entrare nel mezzo specifico DMA). Ora negli algoritmi ML è necessario eseguire moltiplicazioni di matrice che possono essere facilmente parallelizzate, ma nel nostro è presente un'unica unità di elaborazione e così sono arrivate le GPU.
  • GPU - Le GPU hanno centinaia di unità di elaborazione ma mancano delle funzionalità multiuso di una CPU. Quindi sono utili per calcoli parallelizzabili. Poiché non vi è alcuna sovrapposizione di memoria (stessa parte della memoria manipolata da 2 processi) nella moltiplicazione di matrici, le GPU funzioneranno molto bene. Sebbene la GPU non sia multifunzionale, funzionerà solo velocemente come una CPU alimenta i dati nella sua memoria.
  • ASIC - ASIC può essere qualsiasi cosa sia una GPU, una CPU o un processore di tua progettazione, con qualsiasi quantità di memoria che vuoi dargli. Supponiamo che tu voglia progettare il tuo processore ML specializzato, progettare un processore su ASIC. Vuoi un numero FP a 256 bit? Crea un processore a 256 bit. Vuoi che la tua somma sia veloce? Implementare il sommatore parallelo fino a un numero maggiore di bit rispetto ai processori convenzionali? Tu vuoinnumero di core? Nessun problema. Vuoi definire il flusso di dati da diverse unità di elaborazione verso luoghi diversi? Puoi farlo. Inoltre, con un'attenta pianificazione è possibile ottenere un compromesso tra area ASIC vs potenza vs velocità. L'unico problema è che per tutto ciò è necessario creare i propri standard. Generalmente alcuni standard ben definiti sono seguiti nella progettazione di processori, come il numero di pin e la loro funzionalità, lo standard IEEE 754 per la rappresentazione in virgola mobile, ecc. Che sono stati elaborati dopo molte prove ed errori. Quindi, se riesci a superare tutti questi, puoi facilmente creare il tuo ASIC.

Non so cosa stiano facendo i google con i loro TPU ma a quanto pare hanno progettato una sorta di Integer e FP standard per i loro core a 8 bit a seconda dei requisiti a portata di mano. Probabilmente lo stanno implementando su ASIC per considerazioni su potenza, area e velocità.


0

La bassa precisione consente un elevato calcolo del parallelismo negli strati Convo e FC. Architettura fissa per CPU e GPU, ma ASIC / FPGA può essere progettato sulla base dell'architettura di rete neurale

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.