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.
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
- 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?
- 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?
- 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?
- 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?
- 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.
- 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?