1 / 20 · Concetto
Associa i prodotti scalari agli elementi di elaborazione
Separa gli indici di riga, colonna e riduzione e calcola una piccola matrice di riferimento.
Le lezioni sono gratuite. Iscriviti per salvare i progressi.
Fissa il calcolo prima di pianificarlo
Sia A di forma M×K e B di forma K×P. Il loro prodotto C ha forma M×P. L'indice i seleziona una riga di uscita, j seleziona una colonna di uscita e k è l'indice di riduzione all'interno della somma. In tutto il corso gli indici partono da zero.
Il nostro progetto con uscite stazionarie assegna C(i,j) a PE(i,j). Quell'elemento di elaborazione mantiene la propria somma parziale mentre A si muove verso destra e B verso il basso. Il movimento consente il riuso; l'equazione specifica quali operandi possono essere moltiplicati. Definiremo separatamente la temporizzazione del clock, affinché un errore di pianificazione non possa modificare silenziosamente la matematica prevista.
Svolgi un riferimento completo
Usa A=[[1,2],[3,4]] e B=[[5,6],[7,8]]. PE(0,1) combina la riga [1,2] con la colonna [6,8]. Accumula 1×6=6 e 2×8=16 ottenendo 22. Usare invece la seconda riga di B, [7,8], dà 23, un utile indizio di un errore tra riga e colonna.
| PE | Termine k=0 | Termine k=1 | Risultato |
|---|---|---|---|
| (0,0) | 5 | 14 | 19 |
| (0,1) | 6 | 16 | 22 |
| (1,0) | 15 | 28 | 43 |
| (1,1) | 18 | 32 | 50 |
La matrice attesa è [[19,22],[43,50]]. Ogni PE esegue due MAC validi, quindi l'array esegue otto MAC. Una convenzione che conta separatamente una moltiplicazione e un'addizione riporta sedici operazioni aritmetiche. Indica sempre l'unità nel confronto del throughput.
Collega le coordinate alla memoria
Nella memorizzazione per righe, A(i,k) ha offset di elemento iK+k e B(k,j) ha offset kP+j. Per la colonna j=1 in questo esempio, B usa gli offset 1 e 3. Un'interfaccia di memoria che consegna righe contigue richiede quindi buffer o riordinamento per fornire le colonne alla parte superiore dell'array.
Costruisci il riferimento aritmetico usando interi estesi, applicando in seguito la conversione di uscita scelta. Questi piccoli ingressi positivi non verificano l'overflow. Le prove successive devono aggiungere valori negativi, l'operando più negativo e una riduzione più lunga. Una B identità deve riprodurre A, mentre una riga di A tutta a zero deve produrre una riga di C tutta a zero. Registra l'elenco dei termini k di ogni PE oltre alla somma finale: un termine mancante o ripetuto diventa così visibile anche quando due errori si compensano numericamente.
Prova tu
Per A=[[2,-1],[0,3]] e B=[[4,5],[-2,1]], trova C, il numero di MAC e l'offset di elemento per righe di B(1,0).
Leggi la spiegazione
C=[[10,9],[-6,3]]: le quattro somme sono 8+2, 10−1, 0−6 e 0+3. Ci sono 2×2×2=8 MAC. B(1,0) ha offset di elemento 1×2+0=2.