From 1f7063f28ae32457f051fc30afd02195a17f3742 Mon Sep 17 00:00:00 2001 From: louisfd Date: Tue, 19 Nov 2024 11:25:45 -0500 Subject: [PATCH] minor refactor --- .../matmul/kernels/matmul/algorithm/base.rs | 3 +- .../matmul/kernels/matmul/algorithm/cmma.rs | 16 +- .../kernels/matmul/algorithm/plane_mma.rs | 16 +- .../test_macros/cmma/matmul_algorithm.rs | 283 ++++++++---------- 4 files changed, 143 insertions(+), 175 deletions(-) diff --git a/crates/cubecl-linalg/src/matmul/kernels/matmul/algorithm/base.rs b/crates/cubecl-linalg/src/matmul/kernels/matmul/algorithm/base.rs index 192eb078..04e25549 100644 --- a/crates/cubecl-linalg/src/matmul/kernels/matmul/algorithm/base.rs +++ b/crates/cubecl-linalg/src/matmul/kernels/matmul/algorithm/base.rs @@ -1,6 +1,6 @@ use cubecl_core::prelude::*; -use crate::matmul::components::stage::{self, StageSize}; +use crate::matmul::components::stage::{self}; use crate::matmul::components::{batch, global, tile}; use crate::matmul::components::{MatmulKernel, MatmulProblem}; use crate::matmul::kernels::matmul::AdvancedConfig; @@ -26,7 +26,6 @@ pub trait Algorithm { type TileMatmul: tile::Matmul + MatmulKernel; - type StageSize: StageSize; type StageMatmul: stage::Matmul< Self::ES, Self::EG, diff --git a/crates/cubecl-linalg/src/matmul/kernels/matmul/algorithm/cmma.rs b/crates/cubecl-linalg/src/matmul/kernels/matmul/algorithm/cmma.rs index 28e24016..a6877951 100644 --- a/crates/cubecl-linalg/src/matmul/kernels/matmul/algorithm/cmma.rs +++ b/crates/cubecl-linalg/src/matmul/kernels/matmul/algorithm/cmma.rs @@ -22,14 +22,8 @@ impl base::Algorithm for Cmma { type TileMatmul = Accelerated16x16x16; - type StageSize = S4x4x2; - type StageMatmul = stage::multi_buffer::Matmul< - Self::ES, - Self::EG, - Self::EA, - Self::TileMatmul, - Self::StageSize, - >; + type StageMatmul = + stage::multi_buffer::Matmul; type GlobalMatmul = global::homogeneous::Matmul; @@ -37,12 +31,12 @@ impl base::Algorithm for Cmma { batch::one_to_one::Matmul; fn cube_dim() -> CubeDim { - CubeDim::new(Self::PLANE_DIM, Self::StageSize::NUM_M, 1) + CubeDim::new(Self::PLANE_DIM, S4x4x2::NUM_M, 1) } fn cube_count(problem: &MatmulProblem) -> CubeCount { - let m_stage = Self::StageSize::NUM_M * Self::TileMatmul::M; - let n_stage = Self::StageSize::NUM_N * Self::TileMatmul::N; + let m_stage = S4x4x2::NUM_M * Self::TileMatmul::M; + let n_stage = S4x4x2::NUM_N * Self::TileMatmul::N; let cubes_needed_m = (problem.m as u32 + m_stage - 1) / m_stage; let cubes_needed_n = (problem.n as u32 + n_stage - 1) / n_stage; diff --git a/crates/cubecl-linalg/src/matmul/kernels/matmul/algorithm/plane_mma.rs b/crates/cubecl-linalg/src/matmul/kernels/matmul/algorithm/plane_mma.rs index d2541a2f..94dde8b3 100644 --- a/crates/cubecl-linalg/src/matmul/kernels/matmul/algorithm/plane_mma.rs +++ b/crates/cubecl-linalg/src/matmul/kernels/matmul/algorithm/plane_mma.rs @@ -22,14 +22,8 @@ impl base::Algorithm for PlaneMma { type TileMatmul = PlaneMma16x16x16; - type StageSize = S4x4x2; - type StageMatmul = stage::multi_buffer::Matmul< - Self::ES, - Self::EG, - Self::EA, - Self::TileMatmul, - Self::StageSize, - >; + type StageMatmul = + stage::multi_buffer::Matmul; type GlobalMatmul = global::homogeneous::Matmul; @@ -37,12 +31,12 @@ impl base::Algorithm for PlaneMma { batch::one_to_one::Matmul; fn cube_dim() -> CubeDim { - CubeDim::new(Self::PLANE_DIM, Self::StageSize::NUM_M, 1) + CubeDim::new(Self::PLANE_DIM, S4x4x2::NUM_M, 1) } fn cube_count(problem: &MatmulProblem) -> CubeCount { - let m_stage = Self::StageSize::NUM_M * Self::TileMatmul::M; - let n_stage = Self::StageSize::NUM_N * Self::TileMatmul::K; + let m_stage = S4x4x2::NUM_M * Self::TileMatmul::M; + let n_stage = S4x4x2::NUM_N * Self::TileMatmul::K; let cubes_needed_m = (problem.m as u32 + m_stage - 1) / m_stage; let cubes_needed_n = (problem.n as u32 + n_stage - 1) / n_stage; diff --git a/crates/cubecl-linalg/src/matmul/tests/test_macros/cmma/matmul_algorithm.rs b/crates/cubecl-linalg/src/matmul/tests/test_macros/cmma/matmul_algorithm.rs index 2b16b08b..a6e9e642 100644 --- a/crates/cubecl-linalg/src/matmul/tests/test_macros/cmma/matmul_algorithm.rs +++ b/crates/cubecl-linalg/src/matmul/tests/test_macros/cmma/matmul_algorithm.rs @@ -19,8 +19,8 @@ macro_rules! matmul_test_define { $ea:ty, $plane_dim:expr ) => { + #[test] pub fn bo1_gpc16x16x480_s1x1x3_t16x16x16_rr_ln4() { - // Triple buffering let problem = MatmulProblem { m: 16, n: 16, @@ -39,7 +39,6 @@ macro_rules! matmul_test_define { type EG = $eg; type ES = $es; type EA = $ea; - type StageSize = S1x1x3; type TileMatmul = $t_16x16x16; type StageMatmul = stage::single_buffer::Matmul< @@ -47,7 +46,7 @@ macro_rules! matmul_test_define { Self::EG, Self::EA, Self::TileMatmul, - Self::StageSize, + S1x1x3, >; type GlobalMatmul = global::producer_consumer::Matmul; @@ -94,7 +93,6 @@ macro_rules! matmul_test_define { type EG = $eg; type ES = $es; type EA = $ea; - type StageSize = S1x1x1; type TileMatmul = $t_16x16x16; type StageMatmul = stage::multi_buffer::Matmul< @@ -102,7 +100,7 @@ macro_rules! matmul_test_define { Self::EG, Self::EA, Self::TileMatmul, - Self::StageSize, + S1x1x1, >; type GlobalMatmul = global::homogeneous::Matmul; @@ -151,7 +149,6 @@ macro_rules! matmul_test_define { type EG = $eg; type ES = $es; type EA = $ea; - type StageSize = S4x4x2; type TileMatmul = $t_16x16x16; type StageMatmul = stage::single_buffer::Matmul< @@ -159,7 +156,7 @@ macro_rules! matmul_test_define { Self::EG, Self::EA, Self::TileMatmul, - Self::StageSize, + S4x4x2, >; type GlobalMatmul = global::producer_consumer::Matmul; @@ -211,7 +208,6 @@ macro_rules! matmul_test_define { type EG = $eg; type ES = $es; type EA = $ea; - type StageSize = S1x2x2; type TileMatmul = $t_16x16x16; type StageMatmul = stage::single_buffer::Matmul< @@ -219,7 +215,7 @@ macro_rules! matmul_test_define { Self::EG, Self::EA, Self::TileMatmul, - Self::StageSize, + S1x2x2, >; type GlobalMatmul = global::producer_consumer::Matmul; @@ -272,7 +268,6 @@ macro_rules! matmul_test_define { type EG = $eg; type ES = $es; type EA = $ea; - type StageSize = S2x1x2; type TileMatmul = $t_16x16x16; type StageMatmul = stage::single_buffer::Matmul< @@ -280,7 +275,7 @@ macro_rules! matmul_test_define { Self::EG, Self::EA, Self::TileMatmul, - Self::StageSize, + S2x1x2, >; type GlobalMatmul = global::producer_consumer::Matmul; @@ -333,7 +328,6 @@ macro_rules! matmul_test_define { type EG = $eg; type ES = $es; type EA = $ea; - type StageSize = S1x1x2; type TileMatmul = $t_16x16x16; type StageMatmul = stage::single_buffer::Matmul< @@ -341,7 +335,7 @@ macro_rules! matmul_test_define { Self::EG, Self::EA, Self::TileMatmul, - Self::StageSize, + S1x1x2, >; type GlobalMatmul = global::producer_consumer::Matmul; @@ -394,7 +388,6 @@ macro_rules! matmul_test_define { type EG = $eg; type ES = $es; type EA = $ea; - type StageSize = S1x1x2; type TileMatmul = $t_16x16x16; type StageMatmul = stage::single_buffer::Matmul< @@ -402,7 +395,7 @@ macro_rules! matmul_test_define { Self::EG, Self::EA, Self::TileMatmul, - Self::StageSize, + S1x1x2, >; type GlobalMatmul = global::producer_consumer::Matmul; @@ -455,7 +448,6 @@ macro_rules! matmul_test_define { type EG = $eg; type ES = $es; type EA = $ea; - type StageSize = S1x1x1; type TileMatmul = $t_16x16x16; type StageMatmul = stage::multi_buffer::Matmul< @@ -463,7 +455,7 @@ macro_rules! matmul_test_define { Self::EG, Self::EA, Self::TileMatmul, - Self::StageSize, + S1x1x1, >; type GlobalMatmul = global::homogeneous::Matmul; @@ -513,7 +505,6 @@ macro_rules! matmul_test_define { type EG = $eg; type ES = $es; type EA = $ea; - type StageSize = S1x1x1; type TileMatmul = $t_16x16x16; type StageMatmul = stage::multi_buffer::Matmul< @@ -521,7 +512,7 @@ macro_rules! matmul_test_define { Self::EG, Self::EA, Self::TileMatmul, - Self::StageSize, + S1x1x1, >; type GlobalMatmul = global::homogeneous::Matmul; @@ -571,7 +562,6 @@ macro_rules! matmul_test_define { type EG = $eg; type ES = $es; type EA = $ea; - type StageSize = S1x1x1; type TileMatmul = $t_16x16x16; type StageMatmul = stage::multi_buffer::Matmul< @@ -579,7 +569,7 @@ macro_rules! matmul_test_define { Self::EG, Self::EA, Self::TileMatmul, - Self::StageSize, + S1x1x1, >; type GlobalMatmul = global::homogeneous::Matmul; @@ -629,7 +619,6 @@ macro_rules! matmul_test_define { type EG = $eg; type ES = $es; type EA = $ea; - type StageSize = S1x1x1; type TileMatmul = $t_16x16x16; type StageMatmul = stage::multi_buffer::Matmul< @@ -637,7 +626,7 @@ macro_rules! matmul_test_define { Self::EG, Self::EA, Self::TileMatmul, - Self::StageSize, + S1x1x1, >; type GlobalMatmul = global::homogeneous::Matmul; @@ -687,7 +676,6 @@ macro_rules! matmul_test_define { type EG = $eg; type ES = $es; type EA = $ea; - type StageSize = S1x1x1; type TileMatmul = $t_16x16x16; type StageMatmul = stage::multi_buffer::Matmul< @@ -695,7 +683,7 @@ macro_rules! matmul_test_define { Self::EG, Self::EA, Self::TileMatmul, - Self::StageSize, + S1x1x1, >; type GlobalMatmul = global::homogeneous::Matmul; @@ -745,7 +733,6 @@ macro_rules! matmul_test_define { type EG = $eg; type ES = $es; type EA = $ea; - type StageSize = S1x1x1; type TileMatmul = $t_16x16x16; type StageMatmul = stage::multi_buffer::Matmul< @@ -753,7 +740,7 @@ macro_rules! matmul_test_define { Self::EG, Self::EA, Self::TileMatmul, - Self::StageSize, + S1x1x1, >; type GlobalMatmul = global::homogeneous::Matmul; @@ -803,7 +790,6 @@ macro_rules! matmul_test_define { type EG = $eg; type ES = $es; type EA = $ea; - type StageSize = S1x1x1; type TileMatmul = $t_16x16x16; type StageMatmul = stage::multi_buffer::Matmul< @@ -811,7 +797,7 @@ macro_rules! matmul_test_define { Self::EG, Self::EA, Self::TileMatmul, - Self::StageSize, + S1x1x1, >; type GlobalMatmul = global::homogeneous::Matmul; @@ -861,7 +847,6 @@ macro_rules! matmul_test_define { type EG = $eg; type ES = $es; type EA = $ea; - type StageSize = S1x1x1; type TileMatmul = $t_16x16x16; type StageMatmul = stage::multi_buffer::Matmul< @@ -869,7 +854,7 @@ macro_rules! matmul_test_define { Self::EG, Self::EA, Self::TileMatmul, - Self::StageSize, + S1x1x1, >; type GlobalMatmul = global::homogeneous::Matmul; @@ -919,7 +904,6 @@ macro_rules! matmul_test_define { type EG = $eg; type ES = $es; type EA = $ea; - type StageSize = S1x1x1; type TileMatmul = $t_16x16x16; type StageMatmul = stage::multi_buffer::Matmul< @@ -927,7 +911,7 @@ macro_rules! matmul_test_define { Self::EG, Self::EA, Self::TileMatmul, - Self::StageSize, + S1x1x1, >; type GlobalMatmul = global::homogeneous::Matmul; @@ -977,7 +961,6 @@ macro_rules! matmul_test_define { type EG = $eg; type ES = $es; type EA = $ea; - type StageSize = S1x1x1; type TileMatmul = $t_16x16x16; type StageMatmul = stage::multi_buffer::Matmul< @@ -985,7 +968,7 @@ macro_rules! matmul_test_define { Self::EG, Self::EA, Self::TileMatmul, - Self::StageSize, + S1x1x1, >; type GlobalMatmul = global::homogeneous::Matmul; @@ -1035,7 +1018,6 @@ macro_rules! matmul_test_define { type EG = $eg; type ES = $es; type EA = $ea; - type StageSize = S1x1x1; type TileMatmul = $t_16x16x16; type StageMatmul = stage::multi_buffer::Matmul< @@ -1043,7 +1025,7 @@ macro_rules! matmul_test_define { Self::EG, Self::EA, Self::TileMatmul, - Self::StageSize, + S1x1x1, >; type GlobalMatmul = global::homogeneous::Matmul; @@ -1093,7 +1075,6 @@ macro_rules! matmul_test_define { type EG = $eg; type ES = $es; type EA = $ea; - type StageSize = S4x4x2; type TileMatmul = $t_16x16x16; type StageMatmul = stage::multi_buffer::Matmul< @@ -1101,7 +1082,7 @@ macro_rules! matmul_test_define { Self::EG, Self::EA, Self::TileMatmul, - Self::StageSize, + S4x4x2, >; type GlobalMatmul = global::homogeneous::Matmul; @@ -1149,14 +1130,14 @@ macro_rules! matmul_test_define { type EG = $eg; type ES = $es; type EA = $ea; - type StageSize = S4x4x2; + type TileMatmul = $t_16x16x16; type StageMatmul = stage::multi_buffer::Matmul< Self::ES, Self::EG, Self::EA, Self::TileMatmul, - Self::StageSize, + S4x4x2, >; type GlobalMatmul = global::homogeneous::Matmul; @@ -1203,14 +1184,14 @@ macro_rules! matmul_test_define { type EG = $eg; type ES = $es; type EA = $ea; - type StageSize = S4x4x2; + type TileMatmul = $t_16x16x16; type StageMatmul = stage::multi_buffer::Matmul< Self::ES, Self::EG, Self::EA, Self::TileMatmul, - Self::StageSize, + S4x4x2, >; type GlobalMatmul = global::homogeneous::Matmul; @@ -1257,14 +1238,14 @@ macro_rules! matmul_test_define { type EG = $eg; type ES = $es; type EA = $ea; - type StageSize = S4x4x2; + type TileMatmul = $t_16x16x16; type StageMatmul = stage::multi_buffer::Matmul< Self::ES, Self::EG, Self::EA, Self::TileMatmul, - Self::StageSize, + S4x4x2, >; type GlobalMatmul = global::homogeneous::Matmul; @@ -1311,14 +1292,14 @@ macro_rules! matmul_test_define { type EG = $eg; type ES = $es; type EA = $ea; - type StageSize = S1x1x1; + type TileMatmul = $t_16x16x16; type StageMatmul = stage::multi_buffer::Matmul< Self::ES, Self::EG, Self::EA, Self::TileMatmul, - Self::StageSize, + S1x1x1, >; type GlobalMatmul = global::homogeneous::Matmul; @@ -1365,14 +1346,14 @@ macro_rules! matmul_test_define { type EG = $eg; type ES = $es; type EA = $ea; - type StageSize = S1x1x1; + type TileMatmul = $t_16x16x16; type StageMatmul = stage::multi_buffer::Matmul< Self::ES, Self::EG, Self::EA, Self::TileMatmul, - Self::StageSize, + S1x1x1, >; type GlobalMatmul = global::homogeneous::Matmul; @@ -1419,14 +1400,14 @@ macro_rules! matmul_test_define { type EG = $eg; type ES = $es; type EA = $ea; - type StageSize = S4x4x2; + type TileMatmul = $t_16x16x16; type StageMatmul = stage::multi_buffer::Matmul< Self::ES, Self::EG, Self::EA, Self::TileMatmul, - Self::StageSize, + S4x4x2, >; type GlobalMatmul = global::homogeneous::Matmul; @@ -1478,14 +1459,14 @@ macro_rules! matmul_test_define { type EG = $eg; type ES = $es; type EA = $ea; - type StageSize = S1x1x1; + type TileMatmul = $t_16x16x16; type StageMatmul = stage::multi_buffer::Matmul< Self::ES, Self::EG, Self::EA, Self::TileMatmul, - Self::StageSize, + S1x1x1, >; type GlobalMatmul = global::homogeneous::Matmul; @@ -1537,14 +1518,14 @@ macro_rules! matmul_test_define { type EG = $eg; type ES = $es; type EA = $ea; - type StageSize = S1x1x1; + type TileMatmul = $t_16x16x16; type StageMatmul = stage::multi_buffer::Matmul< Self::ES, Self::EG, Self::EA, Self::TileMatmul, - Self::StageSize, + S1x1x1, >; type GlobalMatmul = global::homogeneous::Matmul; @@ -1591,14 +1572,14 @@ macro_rules! matmul_test_define { type EG = $eg; type ES = $es; type EA = $ea; - type StageSize = S1x1x1; + type TileMatmul = $t_16x16x16; type StageMatmul = stage::multi_buffer::Matmul< Self::ES, Self::EG, Self::EA, Self::TileMatmul, - Self::StageSize, + S1x1x1, >; type GlobalMatmul = global::homogeneous::Matmul; @@ -1645,14 +1626,14 @@ macro_rules! matmul_test_define { type EG = $eg; type ES = $es; type EA = $ea; - type StageSize = S1x1x1; + type TileMatmul = $t_16x16x16; type StageMatmul = stage::multi_buffer::Matmul< Self::ES, Self::EG, Self::EA, Self::TileMatmul, - Self::StageSize, + S1x1x1, >; type GlobalMatmul = global::homogeneous::Matmul; @@ -1699,14 +1680,14 @@ macro_rules! matmul_test_define { type EG = $eg; type ES = $es; type EA = $ea; - type StageSize = S1x1x1; + type TileMatmul = $t_16x16x16; type StageMatmul = stage::multi_buffer::Matmul< Self::ES, Self::EG, Self::EA, Self::TileMatmul, - Self::StageSize, + S1x1x1, >; type GlobalMatmul = global::homogeneous::Matmul; @@ -1753,14 +1734,14 @@ macro_rules! matmul_test_define { type EG = $eg; type ES = $es; type EA = $ea; - type StageSize = S4x4x2; + type TileMatmul = $t_16x16x16; type StageMatmul = stage::multi_buffer::Matmul< Self::ES, Self::EG, Self::EA, Self::TileMatmul, - Self::StageSize, + S4x4x2, >; type GlobalMatmul = global::homogeneous::Matmul; @@ -1807,14 +1788,14 @@ macro_rules! matmul_test_define { type EG = $eg; type ES = $es; type EA = $ea; - type StageSize = S1x1x1; + type TileMatmul = $t_16x16x16; type StageMatmul = stage::multi_buffer::Matmul< Self::ES, Self::EG, Self::EA, Self::TileMatmul, - Self::StageSize, + S1x1x1, >; type GlobalMatmul = global::homogeneous::Matmul; @@ -1861,14 +1842,14 @@ macro_rules! matmul_test_define { type EG = $eg; type ES = $es; type EA = $ea; - type StageSize = S1x1x1; + type TileMatmul = $t_16x16x16; type StageMatmul = stage::multi_buffer::Matmul< Self::ES, Self::EG, Self::EA, Self::TileMatmul, - Self::StageSize, + S1x1x1, >; type GlobalMatmul = global::homogeneous::Matmul; @@ -1915,14 +1896,14 @@ macro_rules! matmul_test_define { type EG = $eg; type ES = $es; type EA = $ea; - type StageSize = S1x1x1; + type TileMatmul = $t_16x16x16; type StageMatmul = stage::multi_buffer::Matmul< Self::ES, Self::EG, Self::EA, Self::TileMatmul, - Self::StageSize, + S1x1x1, >; type GlobalMatmul = global::homogeneous::Matmul; @@ -1969,14 +1950,14 @@ macro_rules! matmul_test_define { type EG = $eg; type ES = $es; type EA = $ea; - type StageSize = S1x1x1; + type TileMatmul = $t_16x16x16; type StageMatmul = stage::multi_buffer::Matmul< Self::ES, Self::EG, Self::EA, Self::TileMatmul, - Self::StageSize, + S1x1x1, >; type GlobalMatmul = global::homogeneous::Matmul; @@ -2023,14 +2004,14 @@ macro_rules! matmul_test_define { type EG = $eg; type ES = $es; type EA = $ea; - type StageSize = S1x1x1; + type TileMatmul = $t_16x16x16; type StageMatmul = stage::multi_buffer::Matmul< Self::ES, Self::EG, Self::EA, Self::TileMatmul, - Self::StageSize, + S1x1x1, >; type GlobalMatmul = global::homogeneous::Matmul; @@ -2077,14 +2058,14 @@ macro_rules! matmul_test_define { type EG = $eg; type ES = $es; type EA = $ea; - type StageSize = S1x1x1; + type TileMatmul = $t_16x16x16; type StageMatmul = stage::multi_buffer::Matmul< Self::ES, Self::EG, Self::EA, Self::TileMatmul, - Self::StageSize, + S1x1x1, >; type GlobalMatmul = global::homogeneous::Matmul; @@ -2135,14 +2116,14 @@ macro_rules! matmul_test_define { type EG = $eg; type ES = $es; type EA = $ea; - type StageSize = S1x1x1; + type TileMatmul = $t_16x16x16; type StageMatmul = stage::multi_buffer::Matmul< Self::ES, Self::EG, Self::EA, Self::TileMatmul, - Self::StageSize, + S1x1x1, >; type GlobalMatmul = global::homogeneous::Matmul; @@ -2192,14 +2173,14 @@ macro_rules! matmul_test_define { type EG = $eg; type ES = $es; type EA = $ea; - type StageSize = S1x1x1; + type TileMatmul = $t_16x16x16; type StageMatmul = stage::multi_buffer::Matmul< Self::ES, Self::EG, Self::EA, Self::TileMatmul, - Self::StageSize, + S1x1x1, >; type GlobalMatmul = global::homogeneous::Matmul; @@ -2249,14 +2230,14 @@ macro_rules! matmul_test_define { type EG = $eg; type ES = $es; type EA = $ea; - type StageSize = S1x1x1; + type TileMatmul = $t_32x8x16; type StageMatmul = stage::multi_buffer::Matmul< Self::ES, Self::EG, Self::EA, Self::TileMatmul, - Self::StageSize, + S1x1x1, >; type GlobalMatmul = global::homogeneous::Matmul; @@ -2306,14 +2287,14 @@ macro_rules! matmul_test_define { type EG = $eg; type ES = $es; type EA = $ea; - type StageSize = S1x1x1; + type TileMatmul = $t_32x8x16; type StageMatmul = stage::multi_buffer::Matmul< Self::ES, Self::EG, Self::EA, Self::TileMatmul, - Self::StageSize, + S1x1x1, >; type GlobalMatmul = global::homogeneous::Matmul; @@ -2363,14 +2344,14 @@ macro_rules! matmul_test_define { type EG = $eg; type ES = $es; type EA = $ea; - type StageSize = S1x1x1; + type TileMatmul = $t_32x8x16; type StageMatmul = stage::multi_buffer::Matmul< Self::ES, Self::EG, Self::EA, Self::TileMatmul, - Self::StageSize, + S1x1x1, >; type GlobalMatmul = global::homogeneous::Matmul; @@ -2420,14 +2401,14 @@ macro_rules! matmul_test_define { type EG = $eg; type ES = $es; type EA = $ea; - type StageSize = S1x1x1; + type TileMatmul = $t_32x8x16; type StageMatmul = stage::multi_buffer::Matmul< Self::ES, Self::EG, Self::EA, Self::TileMatmul, - Self::StageSize, + S1x1x1, >; type GlobalMatmul = global::homogeneous::Matmul; @@ -2477,14 +2458,14 @@ macro_rules! matmul_test_define { type EG = $eg; type ES = $es; type EA = $ea; - type StageSize = S1x1x1; + type TileMatmul = $t_8x32x16; type StageMatmul = stage::multi_buffer::Matmul< Self::ES, Self::EG, Self::EA, Self::TileMatmul, - Self::StageSize, + S1x1x1, >; type GlobalMatmul = global::homogeneous::Matmul; @@ -2534,14 +2515,14 @@ macro_rules! matmul_test_define { type EG = $eg; type ES = $es; type EA = $ea; - type StageSize = S1x1x1; + type TileMatmul = $t_8x32x16; type StageMatmul = stage::multi_buffer::Matmul< Self::ES, Self::EG, Self::EA, Self::TileMatmul, - Self::StageSize, + S1x1x1, >; type GlobalMatmul = global::homogeneous::Matmul; @@ -2591,14 +2572,14 @@ macro_rules! matmul_test_define { type EG = $eg; type ES = $es; type EA = $ea; - type StageSize = S1x1x1; + type TileMatmul = $t_8x32x16; type StageMatmul = stage::multi_buffer::Matmul< Self::ES, Self::EG, Self::EA, Self::TileMatmul, - Self::StageSize, + S1x1x1, >; type GlobalMatmul = global::homogeneous::Matmul; @@ -2648,14 +2629,14 @@ macro_rules! matmul_test_define { type EG = $eg; type ES = $es; type EA = $ea; - type StageSize = S1x1x1; + type TileMatmul = $t_8x32x16; type StageMatmul = stage::multi_buffer::Matmul< Self::ES, Self::EG, Self::EA, Self::TileMatmul, - Self::StageSize, + S1x1x1, >; type GlobalMatmul = global::homogeneous::Matmul; @@ -2705,14 +2686,14 @@ macro_rules! matmul_test_define { type EG = $eg; type ES = $es; type EA = $ea; - type StageSize = S4x4x2; + type TileMatmul = $t_16x16x16; type StageMatmul = stage::multi_buffer::Matmul< Self::ES, Self::EG, Self::EA, Self::TileMatmul, - Self::StageSize, + S4x4x2, >; type GlobalMatmul = global::homogeneous::Matmul; @@ -2762,14 +2743,14 @@ macro_rules! matmul_test_define { type EG = $eg; type ES = $es; type EA = $ea; - type StageSize = S1x1x1; + type TileMatmul = $t_16x16x16; type StageMatmul = stage::multi_buffer::Matmul< Self::ES, Self::EG, Self::EA, Self::TileMatmul, - Self::StageSize, + S1x1x1, >; type GlobalMatmul = global::homogeneous::Matmul; @@ -2816,14 +2797,14 @@ macro_rules! matmul_test_define { type EG = $eg; type ES = $es; type EA = $ea; - type StageSize = S1x1x1; + type TileMatmul = $t_32x8x16; type StageMatmul = stage::multi_buffer::Matmul< Self::ES, Self::EG, Self::EA, Self::TileMatmul, - Self::StageSize, + S1x1x1, >; type GlobalMatmul = global::homogeneous::Matmul; @@ -2870,14 +2851,14 @@ macro_rules! matmul_test_define { type EG = $eg; type ES = $es; type EA = $ea; - type StageSize = S1x1x1; + type TileMatmul = $t_32x8x16; type StageMatmul = stage::multi_buffer::Matmul< Self::ES, Self::EG, Self::EA, Self::TileMatmul, - Self::StageSize, + S1x1x1, >; type GlobalMatmul = global::homogeneous::Matmul; @@ -2924,14 +2905,14 @@ macro_rules! matmul_test_define { type EG = $eg; type ES = $es; type EA = $ea; - type StageSize = S1x1x1; + type TileMatmul = $t_32x8x16; type StageMatmul = stage::multi_buffer::Matmul< Self::ES, Self::EG, Self::EA, Self::TileMatmul, - Self::StageSize, + S1x1x1, >; type GlobalMatmul = global::homogeneous::Matmul; @@ -2978,14 +2959,14 @@ macro_rules! matmul_test_define { type EG = $eg; type ES = $es; type EA = $ea; - type StageSize = S1x1x1; + type TileMatmul = $t_32x8x16; type StageMatmul = stage::multi_buffer::Matmul< Self::ES, Self::EG, Self::EA, Self::TileMatmul, - Self::StageSize, + S1x1x1, >; type GlobalMatmul = global::homogeneous::Matmul; @@ -3032,14 +3013,14 @@ macro_rules! matmul_test_define { type EG = $eg; type ES = $es; type EA = $ea; - type StageSize = S1x1x1; + type TileMatmul = $t_8x32x16; type StageMatmul = stage::multi_buffer::Matmul< Self::ES, Self::EG, Self::EA, Self::TileMatmul, - Self::StageSize, + S1x1x1, >; type GlobalMatmul = global::homogeneous::Matmul; @@ -3086,14 +3067,14 @@ macro_rules! matmul_test_define { type EG = $eg; type ES = $es; type EA = $ea; - type StageSize = S1x1x1; + type TileMatmul = $t_8x32x16; type StageMatmul = stage::multi_buffer::Matmul< Self::ES, Self::EG, Self::EA, Self::TileMatmul, - Self::StageSize, + S1x1x1, >; type GlobalMatmul = global::homogeneous::Matmul; @@ -3140,14 +3121,14 @@ macro_rules! matmul_test_define { type EG = $eg; type ES = $es; type EA = $ea; - type StageSize = S1x1x1; + type TileMatmul = $t_8x32x16; type StageMatmul = stage::multi_buffer::Matmul< Self::ES, Self::EG, Self::EA, Self::TileMatmul, - Self::StageSize, + S1x1x1, >; type GlobalMatmul = global::homogeneous::Matmul; @@ -3194,14 +3175,14 @@ macro_rules! matmul_test_define { type EG = $eg; type ES = $es; type EA = $ea; - type StageSize = S1x1x1; + type TileMatmul = $t_8x32x16; type StageMatmul = stage::multi_buffer::Matmul< Self::ES, Self::EG, Self::EA, Self::TileMatmul, - Self::StageSize, + S1x1x1, >; type GlobalMatmul = global::homogeneous::Matmul; @@ -3248,14 +3229,14 @@ macro_rules! matmul_test_define { type EG = $eg; type ES = $es; type EA = $ea; - type StageSize = S1x1x1; + type TileMatmul = $t_16x16x16; type StageMatmul = stage::multi_buffer::Matmul< Self::ES, Self::EG, Self::EA, Self::TileMatmul, - Self::StageSize, + S1x1x1, >; type GlobalMatmul = global::homogeneous::Matmul; @@ -3302,14 +3283,14 @@ macro_rules! matmul_test_define { type EG = $eg; type ES = $es; type EA = $ea; - type StageSize = S2x2x2; + type TileMatmul = $t_16x16x16; type StageMatmul = stage::multi_buffer::Matmul< Self::ES, Self::EG, Self::EA, Self::TileMatmul, - Self::StageSize, + S2x2x2, >; type GlobalMatmul = global::homogeneous::Matmul; @@ -3360,14 +3341,14 @@ macro_rules! matmul_test_define { type EG = $eg; type ES = $es; type EA = $ea; - type StageSize = S1x1x1; + type TileMatmul = $t_16x16x16; type StageMatmul = stage::multi_buffer::Matmul< Self::ES, Self::EG, Self::EA, Self::TileMatmul, - Self::StageSize, + S1x1x1, >; type GlobalMatmul = global::homogeneous::Matmul; @@ -3414,14 +3395,14 @@ macro_rules! matmul_test_define { type EG = $eg; type ES = $es; type EA = $ea; - type StageSize = S1x1x1; + type TileMatmul = $t_16x16x16; type StageMatmul = stage::multi_buffer::Matmul< Self::ES, Self::EG, Self::EA, Self::TileMatmul, - Self::StageSize, + S1x1x1, >; type GlobalMatmul = global::homogeneous::Matmul; @@ -3468,14 +3449,14 @@ macro_rules! matmul_test_define { type EG = $eg; type ES = $es; type EA = $ea; - type StageSize = S1x1x1; + type TileMatmul = $t_16x16x16; type StageMatmul = stage::multi_buffer::Matmul< Self::ES, Self::EG, Self::EA, Self::TileMatmul, - Self::StageSize, + S1x1x1, >; type GlobalMatmul = global::homogeneous::Matmul; @@ -3522,14 +3503,14 @@ macro_rules! matmul_test_define { type EG = $eg; type ES = $es; type EA = $ea; - type StageSize = S2x1x1; + type TileMatmul = $t_16x16x16; type StageMatmul = stage::multi_buffer::Matmul< Self::ES, Self::EG, Self::EA, Self::TileMatmul, - Self::StageSize, + S2x1x1, >; type GlobalMatmul = global::homogeneous::Matmul; @@ -3576,14 +3557,14 @@ macro_rules! matmul_test_define { type EG = $eg; type ES = $es; type EA = $ea; - type StageSize = S2x2x2; + type TileMatmul = $t_16x16x16; type StageMatmul = stage::multi_buffer::Matmul< Self::ES, Self::EG, Self::EA, Self::TileMatmul, - Self::StageSize, + S2x2x2, >; type GlobalMatmul = global::homogeneous::Matmul; @@ -3630,14 +3611,14 @@ macro_rules! matmul_test_define { type EG = $eg; type ES = $es; type EA = $ea; - type StageSize = S1x2x1; + type TileMatmul = $t_16x16x16; type StageMatmul = stage::multi_buffer::Matmul< Self::ES, Self::EG, Self::EA, Self::TileMatmul, - Self::StageSize, + S1x2x1, >; type GlobalMatmul = global::homogeneous::Matmul; @@ -3684,14 +3665,14 @@ macro_rules! matmul_test_define { type EG = $eg; type ES = $es; type EA = $ea; - type StageSize = S2x2x2; + type TileMatmul = $t_16x16x16; type StageMatmul = stage::multi_buffer::Matmul< Self::ES, Self::EG, Self::EA, Self::TileMatmul, - Self::StageSize, + S2x2x2, >; type GlobalMatmul = global::homogeneous::Matmul; @@ -3738,14 +3719,14 @@ macro_rules! matmul_test_define { type EG = $eg; type ES = $es; type EA = $ea; - type StageSize = S2x2x1; + type TileMatmul = $t_16x16x16; type StageMatmul = stage::multi_buffer::Matmul< Self::ES, Self::EG, Self::EA, Self::TileMatmul, - Self::StageSize, + S2x2x1, >; type GlobalMatmul = global::homogeneous::Matmul; @@ -3792,14 +3773,14 @@ macro_rules! matmul_test_define { type EG = $eg; type ES = $es; type EA = $ea; - type StageSize = S2x2x2; + type TileMatmul = $t_16x16x16; type StageMatmul = stage::multi_buffer::Matmul< Self::ES, Self::EG, Self::EA, Self::TileMatmul, - Self::StageSize, + S2x2x2, >; type GlobalMatmul = global::homogeneous::Matmul; @@ -3846,14 +3827,14 @@ macro_rules! matmul_test_define { type EG = $eg; type ES = $es; type EA = $ea; - type StageSize = S2x2x2; + type TileMatmul = $t_16x16x16; type StageMatmul = stage::multi_buffer::Matmul< Self::ES, Self::EG, Self::EA, Self::TileMatmul, - Self::StageSize, + S2x2x2, >; type GlobalMatmul = global::homogeneous::Matmul; @@ -3900,14 +3881,14 @@ macro_rules! matmul_test_define { type EG = $eg; type ES = $es; type EA = $ea; - type StageSize = S2x2x2; + type TileMatmul = $t_16x16x16; type StageMatmul = stage::multi_buffer::Matmul< Self::ES, Self::EG, Self::EA, Self::TileMatmul, - Self::StageSize, + S2x2x2, >; type GlobalMatmul = global::homogeneous::Matmul; @@ -3954,14 +3935,14 @@ macro_rules! matmul_test_define { type EG = $eg; type ES = $es; type EA = $ea; - type StageSize = S2x1x1; + type TileMatmul = $t_16x16x16; type StageMatmul = stage::multi_buffer::Matmul< Self::ES, Self::EG, Self::EA, Self::TileMatmul, - Self::StageSize, + S2x1x1, >; type GlobalMatmul = global::homogeneous::Matmul; @@ -4008,14 +3989,14 @@ macro_rules! matmul_test_define { type EG = $eg; type ES = $es; type EA = $ea; - type StageSize = S1x1x1; + type TileMatmul = $t_32x8x16; type StageMatmul = stage::multi_buffer::Matmul< Self::ES, Self::EG, Self::EA, Self::TileMatmul, - Self::StageSize, + S1x1x1, >; type GlobalMatmul = global::homogeneous::Matmul; @@ -4062,14 +4043,14 @@ macro_rules! matmul_test_define { type EG = $eg; type ES = $es; type EA = $ea; - type StageSize = S8x1x1; + type TileMatmul = $t_16x16x16; type StageMatmul = stage::multi_buffer::Matmul< Self::ES, Self::EG, Self::EA, Self::TileMatmul, - Self::StageSize, + S8x1x1, >; type GlobalMatmul = global::homogeneous::Matmul; @@ -4116,14 +4097,14 @@ macro_rules! matmul_test_define { type EG = $eg; type ES = $es; type EA = $ea; - type StageSize = S4x4x1; + type TileMatmul = $t_16x16x16; type StageMatmul = stage::multi_buffer::Matmul< Self::ES, Self::EG, Self::EA, Self::TileMatmul, - Self::StageSize, + S4x4x1, >; type GlobalMatmul = global::homogeneous::Matmul; @@ -4170,14 +4151,14 @@ macro_rules! matmul_test_define { type EG = $eg; type ES = $es; type EA = $ea; - type StageSize = S4x4x2; + type TileMatmul = $t_16x16x16; type StageMatmul = stage::multi_buffer::Matmul< Self::ES, Self::EG, Self::EA, Self::TileMatmul, - Self::StageSize, + S4x4x2, >; type GlobalMatmul = global::homogeneous::Matmul;