pub trait GemmCache {
// Required methods
fn mr(&self) -> usize;
fn nr(&self) -> usize;
fn get_mc_eff(&self, par: usize) -> usize;
fn get_kc_eff(&self) -> usize;
fn get_nc_eff(&self, par: usize) -> usize;
// Provided methods
fn get_ap_pool_size(&self, ic_par: usize) -> usize { ... }
fn get_ap_pool_size2(&self) -> usize { ... }
fn get_bp_pool_size(&self, jc_par: usize) -> usize { ... }
}