Altifigence Academy

1 / 20 · Konsep

Petakan hasil kali titik ke elemen pemrosesan

Pisahkan indeks baris, kolom, dan reduksi serta hitung matriks acuan kecil.

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.

Ci,j=∑k=0K−1Ai,kBk,jC_{i,j}=\sum_{k=0}^{K-1} A_{i,k}B_{k,j}

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.

PESuku k=0Suku k=1Hasil
(0,0)51419
(0,1)61622
(1,0)152843
(1,1)183250

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.

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