use cubecl_ir::ElemType;
#[derive(Eq, PartialEq, Clone, Hash, Debug, Copy)]
#[cfg_attr(std_io, derive(serde::Serialize, serde::Deserialize))]
pub struct ComputeCmmaConfig {
pub accumulator_type: AccumulatorType,
pub cmma_dims: CmmaDims,
}
pub type AccumulatorType = ElemType;
#[derive(Eq, PartialEq, Clone, Hash, Debug, Copy)]
#[cfg_attr(std_io, derive(serde::Serialize, serde::Deserialize))]
pub struct CmmaDims {
pub m: usize,
pub n: usize,
pub k: usize,
}
impl CmmaDims {
pub fn num_elems(&self) -> usize {
self.m * self.n * self.k
}
}