Altifigence Academy
Perangkat keras AIGratis · Lanjutan

Desain RTL: Akselerator CNN

Pelajari pengindeksan konvolusi dan kontrak numerik bilangan bulat, lalu jendela aliran, pemetaan PE, dan pembagian tile. Verifikasi acuan yang dapat dijalankan dan jalur inferensi kecil sambil memisahkan nilai, perkiraan jadwal, dan lalu lintas.

Inferensi CNNKonvolusi dan kuantisasiJendela aliranPE dan pembagian tileVerifikasi model acuan
Pembelajaran saya

Yang akan Anda pelajari

  • Menghitung bentuk dan indeks konvolusi termasuk stride, padding, dilation, dan kanal
  • Menetapkan satuan titik tetap, skala, titik nol, lebar akumulator, pembulatan, dan saturasi
  • Membandingkan konvolusi langsung dengan model acuan im2col
  • Menghasilkan jendela dengan penyangga baris dan penerimaan transfer yang mempertahankan keadaan berjeda
  • Menghitung penggunaan ulang PE, penyimpanan tile, lalu lintas, dan asumsi jadwal
  • Melaporkan hasil numerik dan batas bukti untuk jalur inferensi kecil

Sebelum memulai

Latihan di browser memakai model pembelajaran, bukan kompilasi atau eksekusi HDL. Untuk menjalankan kode sumber secara terpisah, ikuti panduan Digital Design Studio untuk sistem operasi Anda dan masuk bila tindakan tersebut memerlukannya.

Instalasi dan penggunaan pertama ↗ · Unduhan ↗

Kurikulum

  1. Kontrak inferensi
    • Inferensi dan pelatihanKonsep

      Jika hanya kanal keluaran bertambah dari tiga menjadi enam, bagaimana jumlah MAC dan jumlah bias tersimpan berubah?

    • Konvolusi dan korelasi silangKonsep

      Berapa hasil korelasi silang dan kernel terbalik untuk [1,2;4,5] dengan kernel [1,0;0,-1]?

    • Bentuk, stride, padding, dan dilationKonsep

      Untuk H=7,R=3,stride 2,padding atas 0,padding bawah 1,dilation 2, hitung Ho dan koordinat masukan untuk h=1,r=2.

    • Pemeriksaan: bentuk dan jumlah MACKuis

      Gunakan N=1,C=2,H=W=5,M=3,kernel 3×3,stride 2,padding satu di semua sisi,dilation satu. Apa bentuk keluaran dan jumlah MAC?

  2. Kontrak numerik
    • Bit dan satuan titik tetapKonsep

      Kalikan 0.5 dan −1.25 pada F=4, lalu tambahkan bias 0.25 pada F=8. Berapa kode akumulator dan nilai riilnya?

    • Skala dan titik nolKonsep

      Untuk sx=0.25,zx=128, berapa kode padding dan nilai riil q=132? Kode bias apa yang mewakili 0.75 dengan sw=0.5?

    • Lebar akumulator, pembulatan, dan saturasiKonsep

      Apakah delapan belas bit bertanda cukup untuk sembilan hasil perkalian int8 bertanda dengan bias nol?

    • Praktikum: jalankan kontrak kuantisasiPraktikum

      Kuantisasikan −40 dengan pengaturan uint8 yang sama. Berapa kode dan nilai dekuantisasinya, serta assertion mana yang akan Anda tambahkan?

  3. Operator acuan
    • Acuan konvolusi langsungKonsep

      Untuk masukan [2,3], bobot [4,−1], dan bias satu, hasil salah apa yang muncul jika bias ditambahkan sekali per iterasi kanal masukan?

    • im2col dan perkalian matriksKonsep

      Untuk H=W=4,C=1 dan kernel valid 3×3, hitung elemen masukan asli, P,K, dan elemen patch yang diperluas.

    • Menghubungkan ReLU dan max poolingKonsep

      Dengan titik nol keluaran uint8 100, terapkan ReLU dan max pooling 2×2 pada [98,103;101,97].

    • Pemeriksaan: urutan pemrosesan keluaranKuis

      Terapkan pengali 0.5,zy=0,pembulatan ke terdekat genap,saturasi int8,ReLU,dan max pooling 2×2 pada akumulator [−1,2;3,−4]. Berapa kode akhirnya?

  4. Pembentukan jendela aliran
    • Penyangga baris dan jendela 3×3Konsep

      Untuk W=8,H=6, hitung slot penyimpanan, indeks masukan diterima pertama yang valid, dan jumlah jendela.

    • Ready/valid dan keadaan tertundaKonsep

      Tahap keluaran menahan A dengan out_ready=0 sementara masukan B valid. Apa yang harus dilakukan tahap dan penghasil pada tepi berikutnya?

    • Praktikum: jendela yang bertahan saat jedaPraktikum

      Jika siklus nol,satu,dua yang dijeda dan seluruh masukan akhirnya diterima, apakah nilai atau jumlah jendela berubah? Berapa jumlah siklus total?

    • Pemeriksaan: pewaktuan jendela pertamaKuis

      Untuk masukan 4×4 berlebar empat, pembentuk 3×3 valid tidak menerima masukan dalam empat siklus pertama, lalu menerima satu piksel per siklus. Berapa indeks masukan diterima dan siklus berlalu jendela pertama, keduanya berbasis nol?

  5. Pemetaan ke PE dan memori
    • PE, aliran data, dan penggunaan ulang MACKonsep

      Petakan P=3,M=2,K=8 ke empat PE dengan keluaran menetap. Berapa siklus MAC dan utilisasi slot MAC berguna, tidak termasuk penulisan?

    • Tile, halo, dan jumlah parsialKonsep

      Untuk Th=Tw=2,Tc=1,Tm=2,kernel 3×3,stride dua,dilation satu, hitung byte masukan/bobot/jumlah 32 bit/bias dengan satu penyangga.

    • Bandwidth dan batas komputasiKonsep

      Untuk 1152 MAC dan 224 byte, gunakan delapan PE tetapi pertahankan bandwidth 0.5 byte/siklus. Berapa batas bawah dengan tumpang tindih sempurna?

    • Jadwal, bagian akhir, dan penyangga gandaKonsep

      Untuk K=10,empat keluaran,tiga PE,dan satu siklus tambahan per keluaran, hitung siklus model dan utilisasi khusus MAC.

  6. Verifikasi dan proyek akhir yang terukur
    • Model acuan dan klasifikasi kegagalanKonsep

      Acuan [37,47;67,77] berbeda dari [38,48;68,78]. Apa yang Anda periksa dahulu dan apa yang dicatat?

    • Praktikum: tantang kasus sudutPraktikum

      Dalam fixture padding, ganti setiap bobot kernel dengan satu. Berapa keluaran pertama dan mengapa pengujian hanya di tengah tidak cukup?

    • Proyek akhir: jalur inferensi kecil dan laporanPraktikum

      Pertahankan K=9,empat keluaran,dan satu siklus tambahan per keluaran tetapi gunakan tiga PE. Berapa siklus model total dan utilisasi slot khusus MAC?

    • Pemeriksaan akhir: klaim dan buktiKuis

      Eksekusi Node proyek akhir memverifikasi kesesuaian numerik, 36 MAC, model jadwal 24 siklus, dan penggunaan slot MAC 90%. Pernyataan penyelesaian mana yang akurat?

Pilihan berlaku di peramban ini. Ubah kapan saja di bagian bawah halaman.