Map PIM region to uncacheable region

This commit is contained in:
2024-01-04 19:44:16 +01:00
parent 34c8ab84fb
commit 92499fe95b
9 changed files with 78 additions and 85 deletions

View File

@@ -1,6 +1,4 @@
use core::cell::RefCell;
use core::fmt::Write;
use pim_isa::{BankMode, File, Instruction, Kernel};
use super::{
@@ -88,9 +86,9 @@ pub const MATRIX_ADD: Kernel = Kernel([
]);
pub fn execute_matrix_add(
pim_matrix_arena0: &RefCell<PimMatrixArena<8, 8>>,
pim_matrix_arena1: &RefCell<PimMatrixArena<8, 8>>,
dummy_array: &DummyArray,
_pim_matrix_arena0: &RefCell<PimMatrixArena<8, 8>>,
_pim_matrix_arena1: &RefCell<PimMatrixArena<8, 8>>,
_dummy_array: &DummyArray,
) {
// pim_matrix_arena0
// .borrow()
@@ -182,24 +180,21 @@ pub fn execute_matrix_multiply<const R: usize, const C: usize>(
) {
pim_state.set_bank_mode(BankMode::PimAllBank);
let mut i = 0;
while i < (R * C) {
for i in 0..(R * C) {
let left_index = i % R;
let right_index = (i / R) * R;
pim_matrix_arena0.execute_instruction_read_single_bank(left_index + R * 0);
pim_matrix_arena0.execute_instruction_read_single_bank(left_index + R * 1);
pim_matrix_arena0.execute_instruction_read_single_bank(left_index + R * 2);
for k in 0..R {
pim_matrix_arena0.execute_instruction_read_single_bank(left_index + R * k);
}
pim_matrix_arena1.execute_instruction_read_single_bank(right_index + 0);
pim_matrix_arena1.execute_instruction_read_single_bank(right_index + 1);
pim_matrix_arena1.execute_instruction_read_single_bank(right_index + 2);
for k in 0..C {
pim_matrix_arena1.execute_instruction_read_single_bank(right_index + k);
}
pim_matrix_arena2.execute_instruction_write_single_bank(i);
dummy_array.execute_instruction_read_single_bank(0);
i += 1;
}
pim_state.set_bank_mode(BankMode::SingleBank);