Tiny-TPU è un prototipo open source che ricostruisce il funzionamento di un TPU Google per inferenza e training tramite un acceleratore toy basato su array sistolico.
Un TPU è un ASIC specializzato in moltiplicazioni matriciali, sfruttando Processing Elements che eseguono operazioni di multiply-accumulate in ogni ciclo di clock.
Il design comprende pipeline separate per moltiplicazione matriciale, aggiunta del bias e applicazione di Leaky ReLU, con propagazione di segnali di start per l’efficienza.
Il double buffering permette di caricare nuovi pesi durante il calcolo senza fermare l’array, massimizzando l’utilizzo dei PE.
Una unified buffer dual-port funge da scratchpad per memorizzare input, pesi, bias e attivazioni, garantendo costante alimentazione dell’array sistolico.
Il training è implementato sfruttando lo stesso hardware del forward pass, con VPU (Vector Processing Unit) per il calcolo delle derivate e moltiplicazioni matriciali per i gradienti.
Un’ISA custom a 94 bit controlla carico pesi, start, switch, accept e abilitazioni dei moduli, orchestrando pipeline e moduli per inferenza e retropropagazione.
Get notified when new stories are published for "Hacker News 🇮🇹 Italiano"