Introduce X1, X2, X3, X4 complexity levels for all workloads
This commit is contained in:
@@ -15,11 +15,35 @@ use pim_os::{
|
||||
uart::Uart0,
|
||||
};
|
||||
|
||||
#[cfg(feature = "X1")]
|
||||
const ROWS: usize = 256;
|
||||
|
||||
#[cfg(feature = "X2")]
|
||||
const ROWS: usize = 512;
|
||||
|
||||
#[cfg(feature = "X3")]
|
||||
const ROWS: usize = 1024;
|
||||
|
||||
#[cfg(feature = "X4")]
|
||||
const ROWS: usize = 2048;
|
||||
|
||||
const ELEMENTS_PER_BANK: usize = 16;
|
||||
const BANKS: usize = 16;
|
||||
const BLOCKS: usize = ROWS / (ELEMENTS_PER_BANK * BANKS);
|
||||
|
||||
#[no_mangle]
|
||||
pub extern "C" fn main() {
|
||||
pim::state::set_kernel(&vmul::KERNEL);
|
||||
#[cfg(feature = "X1")]
|
||||
pim::state::set_kernel(&vmul::KERNEL_X1);
|
||||
|
||||
#[cfg(feature = "X2")]
|
||||
pim::state::set_kernel(&vmul::KERNEL_X2);
|
||||
|
||||
#[cfg(feature = "X3")]
|
||||
pim::state::set_kernel(&vmul::KERNEL_X3);
|
||||
|
||||
#[cfg(feature = "X4")]
|
||||
pim::state::set_kernel(&vmul::KERNEL_X4);
|
||||
|
||||
let a = Box::new(pim::continuous_array::Vector(
|
||||
SVector::<F16x1, ROWS>::from_fn(|_, _| F16x1(f16::from_f32(2 as _))),
|
||||
@@ -43,7 +67,7 @@ pub extern "C" fn main() {
|
||||
{
|
||||
pim::state::set_bank_mode(BankMode::PimAllBank);
|
||||
|
||||
vmul::execute(&a.0, &b.0, &mut c.0, dummy.as_ref());
|
||||
vmul::execute::<ROWS, BLOCKS>(&a.0, &b.0, &mut c.0, dummy.as_ref());
|
||||
|
||||
pim::state::set_bank_mode(BankMode::SingleBank);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user