Altifigence Academy
Hardware per l'IAGratuito · Avanzato

Progettazione RTL: acceleratori CNN

Impara l'indicizzazione della convoluzione e i contratti numerici interi, poi le finestre in streaming, l'associazione ai PE e la suddivisione in blocchi. Verifica un riferimento eseguibile e un piccolo percorso di inferenza separando valori, stime della pianificazione e traffico.

Inferenza CNNConvoluzione e quantizzazioneFinestre in streamingPE e suddivisione in blocchiVerifica con modello di riferimento
Il mio apprendimento

Che cosa imparerai

  • Calcolare forme e indici della convoluzione inclusi passo, riempimento, dilatazione e canali
  • Specificare unità a virgola fissa, scale, punti zero, larghezza dell'accumulatore, arrotondamento e saturazione
  • Confrontare la convoluzione diretta con un modello di riferimento im2col
  • Generare finestre con buffer di riga e accettazione dei trasferimenti che conservi lo stato in pausa
  • Calcolare riuso dei PE, memoria dei blocchi, traffico e ipotesi di pianificazione
  • Riportare risultati numerici e limiti delle prove per un piccolo percorso di inferenza

Prima di iniziare

Gli esercizi nel browser usano modelli didattici e non compilano né eseguono HDL. Per eseguire il codice separatamente, segui la guida Digital Design Studio del tuo sistema operativo e accedi quando l’operazione lo richiede.

Installazione e primo avvio ↗ · Download ↗

Programma

  1. Il contratto di inferenza
    • Inferenza e addestramentoConcetto

      Se soltanto i canali di uscita aumentano da tre a sei, come cambiano il conteggio MAC e il numero di bias memorizzati?

    • Convoluzione e correlazione incrociataConcetto

      Quali sono i risultati di correlazione incrociata e kernel invertito per [1,2;4,5] con kernel [1,0;0,-1]?

    • Forme, passo, riempimento e dilatazioneConcetto

      Per H=7,R=3,passo 2,riempimento superiore 0,inferiore 1,dilatazione 2, calcola Ho e la coordinata di ingresso per h=1,r=2.

    • Verifica: forma e conteggio MACVerifica

      Usa N=1,C=2,H=W=5,M=3,un kernel 3×3,passo 2,riempimento uno su tutti i lati,dilatazione uno. Quali sono forma di uscita e conteggio MAC?

  2. Il contratto numerico
    • Bit e unità della virgola fissaConcetto

      Moltiplica 0.5 e −1.25 con F=4, poi aggiungi bias 0.25 con F=8. Quali sono codice dell'accumulatore e valore reale?

    • Scala e punto zeroConcetto

      Per sx=0.25,zx=128, quali sono il codice di riempimento e il valore reale di q=132? Quale codice del bias rappresenta 0.75 con sw=0.5?

    • Larghezza dell'accumulatore, arrotondamento e saturazioneConcetto

      Diciotto bit con segno sono sufficienti per nove prodotti int8 con segno e bias zero?

    • Laboratorio: esegui il contratto di quantizzazioneEsercitazione

      Quantizza −40 con le stesse impostazioni uint8. Quali sono il suo codice e il valore dequantizzato e quale asserzione aggiungeresti?

  3. Operatori di riferimento
    • Riferimento di convoluzione direttaConcetto

      Per ingressi [2,3], pesi [4,−1] e bias uno, quale risultato errato si ottiene se il bias viene aggiunto a ogni iterazione dei canali di ingresso?

    • im2col e moltiplicazione di matriciConcetto

      Per H=W=4,C=1 e un kernel 3×3 senza riempimento, calcola elementi di ingresso originali, P,K ed elementi delle patch espanse.

    • Collegare ReLU e max poolingConcetto

      Con punto zero di uscita uint8 100, applica ReLU e max pooling 2×2 a [98,103;101,97].

    • Verifica: ordine di elaborazione dell'uscitaVerifica

      Applica moltiplicatore 0.5,zy=0,arrotondamento al pari,saturazione int8,ReLU e max pooling 2×2 agli accumulatori [−1,2;3,−4]. Qual è il codice finale?

  4. Generazione di finestre in streaming
    • Buffer di riga e finestre 3×3Concetto

      Per W=8,H=6, calcola posizioni di memoria, indice del primo ingresso accettato valido e numero totale di finestre.

    • Ready/valid e stato in stalloConcetto

      Lo stadio di uscita mantiene A con out_ready=0 mentre l'ingresso B è valido. Che cosa devono fare stadio e produttore al fronte successivo?

    • Laboratorio: finestre che resistono alle pauseEsercitazione

      Se invece i cicli zero,uno,due sono in pausa e tutti gli ingressi vengono infine accettati, cambiano valori o numero delle finestre? Qual è il conteggio totale dei cicli?

    • Verifica: temporizzazione della prima finestraVerifica

      Un generatore 4×4, di larghezza quattro e finestre 3×3 senza riempimento non accetta ingressi nei primi quattro cicli, poi un pixel per ciclo. Quali sono indice di ingresso accettato e ciclo trascorso della prima finestra, entrambi da zero?

  5. Associazione ai PE e alla memoria
    • PE, flusso dei dati e riuso dei MACConcetto

      Associa P=3,M=2,K=8 a quattro PE con uscite stazionarie. Quali sono cicli MAC e utilizzo utile delle posizioni MAC, escludendo le scritture?

    • Blocchi, aloni e somme parzialiConcetto

      Per Th=Tw=2,Tc=1,Tm=2,un kernel 3×3,passo due,dilatazione uno, calcola i byte con buffer singolo di ingresso/pesi/somme a 32 bit/bias.

    • Banda e limiti di calcoloConcetto

      Per 1152 MAC e 224 byte, usa otto PE ma mantieni la banda a 0.5 byte/ciclo. Qual è il limite inferiore con sovrapposizione perfetta?

    • Pianificazioni, code finali e doppio bufferingConcetto

      Per K=10,quattro uscite,tre PE e un ciclo aggiuntivo per uscita, calcola cicli modellati e utilizzo dei soli MAC.

  6. Verifica e progetto finale misurabile
    • Modelli di riferimento e classificazione degli erroriConcetto

      Il riferimento [37,47;67,77] differisce da [38,48;68,78]. Che cosa esamineresti prima e che cosa registreresti?

    • Laboratorio: metti alla prova i casi limiteEsercitazione

      Nel caso di riempimento, sostituisci ogni peso del kernel con uno. Qual è la prima uscita e perché un test soltanto al centro è insufficiente?

    • Progetto finale: piccolo percorso di inferenza e rapportoEsercitazione

      Mantieni K=9,quattro uscite e un ciclo aggiuntivo per uscita ma usa tre PE. Quali sono cicli totali modellati e utilizzo delle posizioni dei soli MAC?

    • Verifica finale: affermazioni e proveVerifica

      L'esecuzione Node del progetto finale verifica accordo numerico, 36 MAC, un modello di pianificazione di 24 cicli e utilizzo delle posizioni MAC del 90%. Quale dichiarazione di completamento è accurata?

La scelta vale per questo browser. Puoi modificarla in qualsiasi momento dal piè di pagina.