cubecl_ir/
runtime_properties.rs1use crate::{MatrixLayout, TypeHash};
2
3#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
7#[derive(Debug, Clone, PartialEq, Eq, TypeHash, Default)]
8pub struct TargetProperties {
9 pub mma: MmaProperties,
10}
11
12#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
13#[derive(Debug, Clone, PartialEq, Eq, TypeHash)]
14pub struct MmaProperties {
15 pub register_size_bits: u32,
17 pub const_plane_size: u32,
19 pub register_layout_a: MatrixLayout,
21 pub register_layout_b: MatrixLayout,
23 pub register_layout_acc: MatrixLayout,
25
26 pub register_duplication_a: u32,
28 pub register_duplication_b: u32,
30 pub register_duplication_acc: u32,
32}
33
34impl Default for MmaProperties {
35 fn default() -> Self {
36 Self {
37 register_size_bits: 32,
38 const_plane_size: 32,
39 register_layout_a: MatrixLayout::RowMajor,
40 register_layout_b: MatrixLayout::ColMajor,
41 register_layout_acc: MatrixLayout::RowMajor,
42 register_duplication_a: 1,
43 register_duplication_b: 1,
44 register_duplication_acc: 1,
45 }
46 }
47}