14 / 20 · Concetto
Banda e utilizzo utile
Separa la capacità MAC di picco dai costi di riempimento, completamento del transito, padding e memoria.
Le lezioni sono gratuite. Iscriviti per salvare i progressi.
Definisci intervallo e unità
Una griglia N×N raggiunge un picco di N² MAC per fronte di avanzamento. Riempimento e completamento del transito riducono l'utilizzo per un lavoro isolato. Nel nostro modello senza stalli, con blocco completo e inoltro di un fronte, il lavoro utile è N²K e le posizioni disponibili sono N²(K+2N−2), dando un utilizzo nell'intervallo di calcolo K/(K+2N−2).
Per N=4, K=16, la griglia esegue 256 MAC in ventidue fronti di avanzamento. L'utilizzo è 256/352=8/11, circa 72.73%. A una frequenza ipotizzata di 100MHz, la capacità di picco è 1.6 GMAC/s e il throughput nell'intervallo di calcolo isolato è circa 1.164 GMAC/s. Contare separatamente moltiplicazione e addizione raddoppia il numero di operazioni. Sono stime a una frequenza ipotizzata, non risultati misurati di sintesi.
Calcola il traffico a ogni confine
Inserire A e B richiede 2NK valori: 128 byte per operandi a otto bit. I PE consumano 512 valori di operandi, mostrando un riuso quadruplo di ogni ingresso al confine. L'intervallo di inserimento sovrapposto può richiedere otto byte per fronte, cioè 0.8GB/s a 100MHz. La domanda di alimentazione di picco differisce da quella media durante riempimento e completamento del transito.
Supponi che sedici risultati usino posizioni di memoria a trentadue bit, nonostante la larghezza dell'accumulatore di venti bit. Le scritture dei risultati aggiungono sessantaquattro byte, quindi il traffico esterno totalizza 192 byte senza riuso tra blocchi, costo dei comandi o spreco di allineamento. L'intensità aritmetica è 256/192=4/3 MAC per byte.
A 0.4GB/s, il solo trasferimento richiede almeno 480ns; il calcolo richiede 220ns. Anche una sovrapposizione perfetta non può superare l'intervallo più lungo, limitando il throughput a circa 0.533 GMAC/s. È un limite superiore, non una prestazione garantita. Senza sovrapposizione, il caricamento richiede trentadue fronti, il calcolo ventidue e la memorizzazione sedici, totalizzando settanta fronti e circa 0.366 GMAC/s prima dell'inizializzazione o di altre attese.
L'esempio 3×3 con riempimento su N=2 ha ventisette MAC utili in ottanta posizioni PE: utilizzo utile 33.75%. Contare invece i MAC con zeri di riempimento dà 60%, una misura diversa. L'articolo TPU di Jouppi et al. è un riferimento di ricerca per separare capacità di picco dell'acceleratore e prestazioni del carico; i nostri esempi numerici derivano dalla nostra pianificazione.
Prova tu
Per un blocco completo N=2, K=8, trova MAC, fronti di calcolo, utilizzo e byte degli ingressi al confine a otto bit.
Leggi la spiegazione
Ci sono 32 MAC, dieci fronti di calcolo e quaranta posizioni PE, quindi l'utilizzo è 80%. L'ingresso al confine è 2×2×8=32 byte. L'utilizzo di calcolo esclude caricamento e scritture dei risultati.