9 / 20 · Konsep
Aliran data dengan keluaran menetap dan pilihan lain
Bandingkan penyimpanan dan transportasi dengan mengidentifikasi apa yang tetap berada dalam PE.
Pelajaran dapat dibaca gratis. Daftar untuk menyimpan progres.
Tanyakan nilai mana yang tetap lokal
Larik sistolik melakukan kerja paralel sementara operand bergerak melalui elemen pemrosesan tetangga. “Menetap” menggambarkan nilai yang dipertahankan di dekat tempat pemakaiannya untuk digunakan ulang selama perhitungan. Pilihan berbeda mengubah register PE, jalur jumlah parsial, dan jadwal batas meskipun operasi matematisnya identik.
Dalam desain keluaran menetap kursus ini, PE(i,j) mempertahankan jumlah parsial untuk C(i,j). A dan B bergerak saat k maju. Setelah seluruh K suku tiba, hasil dikumpulkan; clear memulai tile keluaran baru. Nilai A digunakan ulang sepanjang baris dan nilai B sepanjang kolom. Dalam contoh 2×2, A(0,0)=1 menyumbang ke C(0,0) dan C(0,1).
Desain bobot menetap memuat bobot seperti B terlebih dahulu ke PE dan menggunakannya ulang untuk aktivasi yang masuk. Jumlah parsial harus bergerak atau dikumpulkan di tempat lain. Mengganti nama port tidak mengubah pengendali OS menjadi WS: nilai yang disimpan, urutan pemuatan awal, dan jalur hasil semuanya berubah. Desain masukan menetap mempertahankan aktivasi untuk digunakan ulang pada berbagai bobot atau perhitungan keluaran. Kita membandingkan gagasan itu tanpa mengimplementasikan larik IS di sini.
| Aliran data | Nilai yang dipertahankan | Biaya yang perlu ditelaah |
|---|---|---|
| OS | Jumlah parsial keluaran | Akumulator lebar dan pengumpulan hasil |
| WS | Bobot | Pemuatan awal serta transportasi/penyimpanan jumlah parsial |
| IS | Aktivasi | Pasokan bobot dan penggabungan jumlah keluaran |
Pisahkan tiga pengukuran lalu lintas
Pertimbangkan dua perkalian 2×2 yang menggunakan B sama. Model batas OS kita memasukkan empat nilai A dan empat nilai B per pekerjaan: enam belas nilai operand untuk dua pekerjaan. Penyangga B lokal dapat menghindari pembacaan ulang B dari memori eksternal untuk pekerjaan kedua, sambil tetap memasok empat token batasnya. Penggunaan ulang bobot yang dimuat lebih dahulu menawarkan kompromi berbeda dan memerlukan jalur jumlah parsial berbeda.
Pembacaan eksternal, injeksi batas, dan transfer antar-PE merupakan pengukuran terpisah. README Gemmini dari UC Berkeley menyediakan contoh sumber primer aliran data OS dan WS yang dapat dikonfigurasi. Larik pembelajaran kita memiliki kontraknya sendiri dan tidak mereproduksi implementasi atau antarmuka instruksi Gemmini.
Untuk tinjauan desain, identifikasi apa yang tetap lokal, di mana jumlah diakumulasikan, dan nilai mana yang melintasi setiap batas. Penggunaan ulang saja tidak menjamin port memori memadai atau laju keluaran berkelanjutan.
Coba sendiri
Dua pekerjaan 2×2 berbagi B yang disimpan dalam penyangga lokal. A tidak digunakan ulang. Berapa pembacaan operand eksternal dan injeksi batas OS yang diperlukan?
Baca penjelasan
Pembacaan eksternal berjumlah 12 nilai: dua matriks A masing-masing empat ditambah satu matriks B empat. Injeksi batas berjumlah 16 nilai: empat A ditambah empat B per pekerjaan. Penulisan hasil dan penerusan internal tidak termasuk.