cubecl_runtime/throughput/
cmma.rs1use cubecl_ir::ElemType;
2
3#[derive(Eq, PartialEq, Clone, Hash, Debug, Copy)]
5#[cfg_attr(std_io, derive(serde::Serialize, serde::Deserialize))]
6pub struct ComputeCmmaConfig {
7 pub accumulator_type: AccumulatorType,
9 pub cmma_dims: CmmaDims,
11}
12
13pub type AccumulatorType = ElemType;
15
16#[derive(Eq, PartialEq, Clone, Hash, Debug, Copy)]
18#[cfg_attr(std_io, derive(serde::Serialize, serde::Deserialize))]
19pub struct CmmaDims {
20 pub m: usize,
22 pub n: usize,
24 pub k: usize,
26}
27
28impl CmmaDims {
29 pub fn num_elems(&self) -> usize {
31 self.m * self.n * self.k
32 }
33}