1 / 20 · Konsep
Petakan hasil kali titik ke elemen pemrosesan
Pisahkan indeks baris, kolom, dan reduksi serta hitung matriks acuan kecil.
Pelajaran dapat dibaca gratis. Daftar untuk menyimpan progres.
Tetapkan perhitungan sebelum menjadwalkannya
Misalkan A memiliki bentuk M×K dan B memiliki bentuk K×P. Hasil kali C memiliki bentuk M×P. Indeks i memilih baris keluaran, j memilih kolom keluaran, dan k adalah indeks reduksi di dalam penjumlahan. Indeks dimulai dari nol sepanjang kursus ini.
Desain dengan keluaran menetap kita menugaskan C(i,j) ke PE(i,j). Elemen pemrosesan tersebut mempertahankan jumlah parsialnya sementara A bergerak ke kanan dan B ke bawah. Pergerakan memungkinkan penggunaan ulang; persamaan menentukan operand mana yang boleh dikalikan. Kita akan mendefinisikan pewaktuan clock secara terpisah agar kesalahan penjadwalan tidak diam-diam mengubah matematika yang dimaksud.
Kerjakan acuan lengkap
Gunakan A=[[1,2],[3,4]] dan B=[[5,6],[7,8]]. PE(0,1) menggabungkan baris [1,2] dengan kolom [6,8]. Elemen itu mengakumulasikan 1×6=6 dan 2×8=16 untuk memperoleh 22. Menggunakan baris kedua B, yaitu [7,8], justru menghasilkan 23, ciri yang berguna untuk mengenali kesalahan baris/kolom.
| PE | Suku k=0 | Suku k=1 | Hasil |
|---|---|---|---|
| (0,0) | 5 | 14 | 19 |
| (0,1) | 6 | 16 | 22 |
| (1,0) | 15 | 28 | 43 |
| (1,1) | 18 | 32 | 50 |
Matriks yang diharapkan adalah [[19,22],[43,50]]. Setiap PE melakukan dua MAC valid, sehingga larik melakukan delapan MAC. Konvensi yang menghitung satu perkalian dan satu penjumlahan secara terpisah melaporkan enam belas operasi aritmetika. Selalu beri label satuan saat membandingkan laju keluaran.
Hubungkan koordinat dengan penyimpanan
Dalam penyimpanan berurutan per baris, A(i,k) memiliki offset elemen iK+k dan B(k,j) memiliki offset kP+j. Untuk kolom j=1 dalam contoh ini, B menggunakan offset 1 dan 3. Karena itu, antarmuka memori yang mengirim baris berurutan memerlukan penyangga atau penataan ulang untuk memasok kolom ke bagian atas larik.
Bangun acuan aritmetika menggunakan bilangan bulat lebar, lalu terapkan konversi keluaran yang dipilih sesudahnya. Masukan positif kecil ini tidak menguji overflow. Pengujian berikutnya harus menambahkan nilai negatif, operand paling negatif, dan reduksi lebih panjang. B berupa matriks identitas seharusnya menghasilkan kembali A, sedangkan baris A yang seluruhnya nol seharusnya menghasilkan baris C yang seluruhnya nol. Catat daftar suku k setiap PE serta jumlah akhirnya: suku yang hilang atau berulang akan terlihat bahkan jika dua kesalahan saling meniadakan secara numerik.
Coba sendiri
Untuk A=[[2,-1],[0,3]] dan B=[[4,5],[-2,1]], cari C, jumlah MAC, dan offset elemen B(1,0) dalam penyimpanan berurutan per baris.
Baca penjelasan
C=[[10,9],[-6,3]]: keempat jumlahnya adalah 8+2, 10−1, 0−6, dan 0+3. Ada 2×2×2=8 MAC. B(1,0) memiliki offset elemen 1×2+0=2.