/*************************************************************************************************** * Copyright (c) 2023 - 2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved. * SPDX-License-Identifier: BSD-3-Clause * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * 1. Redistributions of source code must retain the above copyright notice, this * list of conditions and the following disclaimer. * * 2. Redistributions in binary form must reproduce the above copyright notice, * this list of conditions and the following disclaimer in the documentation * and/or other materials provided with the distribution. * * 3. Neither the name of the copyright holder nor the names of its * contributors may be used to endorse or promote products derived from * this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * **************************************************************************************************/ #pragma once #include // cute::smem_sparse_ptr_flag #include // cute::Swizzle #include // cute::Tensor #include // cute::LayoutType #include // cute::SM90::SPARSE::GMMA_64x8x32_F16F16F16_SS, etc #include // cute::GMMA::Layout_* #include // cute::MMA_Traits #include // cute::ComposedLayout #include // cute::is_static namespace cute { namespace SM90::GMMA { /////////////////////////////////////////// // Common layouts for GMMA Shared Memory // /////////////////////////////////////////// // M|N-major layouts in units of Type and sparsity factor S template using Layout_MN_INTER_SpAtom = ComposedLayout, smem_sparse_ptr_flag_bits>, decltype(blocked_product(Layout>>{}, Layout_MN_INTER_Atom{}.layout_b()))>; template using Layout_MN_SW32_SpAtom = ComposedLayout, smem_sparse_ptr_flag_bits>, decltype(blocked_product(Layout>>{}, Layout_MN_SW32_Atom{}.layout_b()))>; template using Layout_MN_SW64_SpAtom = ComposedLayout, smem_sparse_ptr_flag_bits>, decltype(blocked_product(Layout>>{}, Layout_MN_SW64_Atom{}.layout_b()))>; template using Layout_MN_SW128_SpAtom = ComposedLayout, smem_sparse_ptr_flag_bits>, decltype(blocked_product(Layout>>{}, Layout_MN_SW128_Atom{}.layout_b()))>; // K-major layouts in units of Type and sparsity factor S template using Layout_K_INTER_SpAtom = ComposedLayout, smem_sparse_ptr_flag_bits>, decltype(blocked_product(Layout>>{}, Layout_K_INTER_Atom{}.layout_b()))>; template using Layout_K_SW32_SpAtom = ComposedLayout, smem_sparse_ptr_flag_bits>, decltype(blocked_product(Layout>>{}, Layout_K_SW32_Atom{}.layout_b()))>; template using Layout_K_SW64_SpAtom = ComposedLayout, smem_sparse_ptr_flag_bits>, decltype(blocked_product(Layout>>{}, Layout_K_SW64_Atom{}.layout_b()))>; template using Layout_K_SW128_SpAtom = ComposedLayout, smem_sparse_ptr_flag_bits>, decltype(blocked_product(Layout>>{}, Layout_K_SW128_Atom{}.layout_b()))>; // With GMMA::Major param template using Layout_INTER_SpAtom = typename conditional, Layout_K_INTER_SpAtom>::type; template using Layout_SW32_SpAtom = typename conditional, Layout_K_SW32_SpAtom>::type; template using Layout_SW64_SpAtom = typename conditional, Layout_K_SW64_SpAtom>::type; template using Layout_SW128_SpAtom = typename conditional, Layout_K_SW128_SpAtom>::type; /////////////////////////////////////////////////////////////////////////////// // Higher level GMMA Descriptor utilities /////////////////////////////////////////////////////////////////////////////// template struct sparse_smem_desc : DescriptorIterator {}; } // end namespace SM90::GMMA // Customization point for creating a cute::GMMAsparse_smem_desc Tensor template struct MakeTensor> { // Note that this is the exact same as cute::GMMAsmem_desc above, plus additional static checks. template CUTE_HOST_DEVICE constexpr auto operator()(Tensor const& smem_tensor) { static_assert(is_smem::value, "Expected SMEM Tensor to construct a GMMA Desc Tensor"); static_assert(is_sparse::value, "Expected sparse value_type."); static_assert(is_sparse_ptr::value, "Expected sparse iter."); return make_tensor(SM90::GMMA::DescriptorIterator{SM90::GMMA::make_gmma_desc(tensor<0>(smem_tensor))}, replace<0>(recast(smem_tensor).layout(), Layout<_1,_0>{})); } }; /////////////////////////////////////////////////////////////////////////////// //////////////////////////// MMA_TRAITS /////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////// namespace SM90::GMMA { // Metadata layouts using ELayout_64x64 = Layout, Shape <_32>>, Stride, Stride<_64>>>; using ELayout_64x32 = Layout, Shape <_16,_2>>, Stride, Stride<_64,_8>>>; using ELayout_64x16 = Layout, Shape < _8,_2>>, Stride, Stride<_64,_8>>>; } // namespace SM90::GMMA //////////////////////////////////////////////////////////////////////////////////////////////////// namespace SM90::GMMA::SPARSE { //////////////////////////////////////////////////////////////////////////////////////////////////// template CUTE_HOST_DEVICE constexpr void mma_unpack(MMA_Traits const& traits, Tensor & D, Tensor const& A_zipped, Tensor const& B, Tensor const& C) { static_assert(is_rmem_v, "Expected registers in MMA_Atom::call"); static_assert(is_rmem_v, "Expected registers in MMA_Atom::call"); static_assert(is_rmem_v, "Expected registers in MMA_Atom::call"); static_assert(is_rmem_v, "Expected registers in MMA_Atom::call"); using DRegisters = typename MMAOp::DRegisters; using ARegisters = typename MMAOp::ARegisters; using ERegisters = typename MMAOp::ERegisters; using BRegisters = typename MMAOp::BRegisters; using CRegisters = typename MMAOp::CRegisters; // Register value types from the MMAOp register arrays using RegTypeD = typename remove_extent::type; using RegTypeA = typename remove_extent::type; using RegTypeE = typename remove_extent::type; using RegTypeB = typename remove_extent::type; using RegTypeC = typename remove_extent::type; constexpr int RegNumA = extent::value; constexpr int RegNumE = extent::value; constexpr int RegNumB = extent::value; constexpr int RegNumC = extent::value; auto [A, E] = unzip_tensor(A_zipped); Tensor rA = recast(A); Tensor rE = recast(E); Tensor rB = recast(B); CUTE_STATIC_ASSERT_V(size(rA) == Int{}); CUTE_STATIC_ASSERT_V(size(rE) == Int{}); CUTE_STATIC_ASSERT_V(size(rB) == Int{}); static_assert(is_same::value, "GMMA DRegisters must have void type."); static_assert(is_same::value, "GMMA C and D value_type must match."); static_assert(is_same::value, "GMMA C and D layouts must match."); Tensor rC = recast(D); // NOTE: D and C are same, so use mutable D CUTE_STATIC_ASSERT_V(size(rC) == Int{}); detail::explode(MMAOp::fma, rA, make_int_sequence{}, rB, make_int_sequence{}, rC, make_int_sequence{}, rE, make_int_sequence{}, &(traits.accumulate_), seq<0>{}); } //////////////////////////////////////////////////////////////////////////////////////////////////// } // namespace SM90::SPARSE //////////////////////////////////////////////////////////////////////////////////////////////////// template struct MMA_Traits> { using ValTypeD = half_t; using ValTypeA = sparse_elem<2, half_t>; using ValTypeE = sparse_elem<8, uint8_t>; using ValTypeB = half_t; using ValTypeC = half_t; using FrgTypeA = GMMA::smem_desc; using FrgTypeB = GMMA::smem_desc; using Shape_MNK = Shape<_64,_8,_32>; using ThrID = Layout<_128>; using ALayout = GMMA::ABLayout< 64, 32>; using ELayout = GMMA::ELayout_64x32; using BLayout = GMMA::ABLayout< 8, 32>; using CLayout = GMMA::CLayout_64x8; GMMA::ScaleOut accumulate_ = GMMA::ScaleOut::One; }; //////////////////////////////////////////////////////////////////////////////////////////////////// template struct MMA_Traits> { using ValTypeD = half_t; using ValTypeA = sparse_elem<2, half_t>; using ValTypeE = sparse_elem<8, uint8_t>; using ValTypeB = half_t; using ValTypeC = half_t; using FrgTypeB = GMMA::smem_desc; using Shape_MNK = Shape<_64,_8,_32>; using ThrID = Layout<_128>; using ALayout = GMMA::ALayout_64x32; using ELayout = GMMA::ELayout_64x32; using BLayout = GMMA::ABLayout< 8, 32>; using CLayout = GMMA::CLayout_64x8; GMMA::ScaleOut accumulate_ = GMMA::ScaleOut::One; }; //////////////////////////////////////////////////////////////////////////////////////////////////// template struct MMA_Traits> { using ValTypeD = half_t; using ValTypeA = sparse_elem<2, half_t>; using ValTypeE = sparse_elem<8, uint8_t>; using ValTypeB = half_t; using ValTypeC = half_t; using FrgTypeA = GMMA::smem_desc; using FrgTypeB = GMMA::smem_desc; using Shape_MNK = Shape<_64,_16,_32>; using ThrID = Layout<_128>; using ALayout = GMMA::ABLayout< 64, 32>; using ELayout = GMMA::ELayout_64x32; using BLayout = GMMA::ABLayout< 16, 32>; using CLayout = GMMA::CLayout_64x16; GMMA::ScaleOut accumulate_ = GMMA::ScaleOut::One; }; //////////////////////////////////////////////////////////////////////////////////////////////////// template struct MMA_Traits> { using ValTypeD = half_t; using ValTypeA = sparse_elem<2, half_t>; using ValTypeE = sparse_elem<8, uint8_t>; using ValTypeB = half_t; using ValTypeC = half_t; using FrgTypeB = GMMA::smem_desc; using Shape_MNK = Shape<_64,_16,_32>; using ThrID = Layout<_128>; using ALayout = GMMA::ALayout_64x32; using ELayout = GMMA::ELayout_64x32; using BLayout = GMMA::ABLayout< 16, 32>; using CLayout = GMMA::CLayout_64x16; GMMA::ScaleOut accumulate_ = GMMA::ScaleOut::One; }; //////////////////////////////////////////////////////////////////////////////////////////////////// template struct MMA_Traits> { using ValTypeD = half_t; using ValTypeA = sparse_elem<2, half_t>; using ValTypeE = sparse_elem<8, uint8_t>; using ValTypeB = half_t; using ValTypeC = half_t; using FrgTypeA = GMMA::smem_desc; using FrgTypeB = GMMA::smem_desc; using Shape_MNK = Shape<_64,_32,_32>; using ThrID = Layout<_128>; using ALayout = GMMA::ABLayout< 64, 32>; using ELayout = GMMA::ELayout_64x32; using BLayout = GMMA::ABLayout< 32, 32>; using CLayout = GMMA::CLayout_64x32; GMMA::ScaleOut accumulate_ = GMMA::ScaleOut::One; }; //////////////////////////////////////////////////////////////////////////////////////////////////// template struct MMA_Traits> { using ValTypeD = half_t; using ValTypeA = sparse_elem<2, half_t>; using ValTypeE = sparse_elem<8, uint8_t>; using ValTypeB = half_t; using ValTypeC = half_t; using FrgTypeB = GMMA::smem_desc; using Shape_MNK = Shape<_64,_32,_32>; using ThrID = Layout<_128>; using ALayout = GMMA::ALayout_64x32; using ELayout = GMMA::ELayout_64x32; using BLayout = GMMA::ABLayout< 32, 32>; using CLayout = GMMA::CLayout_64x32; GMMA::ScaleOut accumulate_ = GMMA::ScaleOut::One; }; //////////////////////////////////////////////////////////////////////////////////////////////////// template struct MMA_Traits> { using ValTypeD = half_t; using ValTypeA = sparse_elem<2, half_t>; using ValTypeE = sparse_elem<8, uint8_t>; using ValTypeB = half_t; using ValTypeC = half_t; using FrgTypeA = GMMA::smem_desc; using FrgTypeB = GMMA::smem_desc; using Shape_MNK = Shape<_64,_64,_32>; using ThrID = Layout<_128>; using ALayout = GMMA::ABLayout< 64, 32>; using ELayout = GMMA::ELayout_64x32; using BLayout = GMMA::ABLayout< 64, 32>; using CLayout = GMMA::CLayout_64x64; GMMA::ScaleOut accumulate_ = GMMA::ScaleOut::One; }; //////////////////////////////////////////////////////////////////////////////////////////////////// template struct MMA_Traits> { using ValTypeD = half_t; using ValTypeA = sparse_elem<2, half_t>; using ValTypeE = sparse_elem<8, uint8_t>; using ValTypeB = half_t; using ValTypeC = half_t; using FrgTypeB = GMMA::smem_desc; using Shape_MNK = Shape<_64,_64,_32>; using ThrID = Layout<_128>; using ALayout = GMMA::ALayout_64x32; using ELayout = GMMA::ELayout_64x32; using BLayout = GMMA::ABLayout< 64, 32>; using CLayout = GMMA::CLayout_64x64; GMMA::ScaleOut accumulate_ = GMMA::ScaleOut::One; }; //////////////////////////////////////////////////////////////////////////////////////////////////// template struct MMA_Traits> { using ValTypeD = half_t; using ValTypeA = sparse_elem<2, half_t>; using ValTypeE = sparse_elem<8, uint8_t>; using ValTypeB = half_t; using ValTypeC = half_t; using FrgTypeA = GMMA::smem_desc; using FrgTypeB = GMMA::smem_desc; using Shape_MNK = Shape<_64,_96,_32>; using ThrID = Layout<_128>; using ALayout = GMMA::ABLayout< 64, 32>; using ELayout = GMMA::ELayout_64x32; using BLayout = GMMA::ABLayout< 96, 32>; using CLayout = GMMA::CLayout_64x96; GMMA::ScaleOut accumulate_ = GMMA::ScaleOut::One; }; //////////////////////////////////////////////////////////////////////////////////////////////////// template struct MMA_Traits> { using ValTypeD = half_t; using ValTypeA = sparse_elem<2, half_t>; using ValTypeE = sparse_elem<8, uint8_t>; using ValTypeB = half_t; using ValTypeC = half_t; using FrgTypeB = GMMA::smem_desc; using Shape_MNK = Shape<_64,_96,_32>; using ThrID = Layout<_128>; using ALayout = GMMA::ALayout_64x32; using ELayout = GMMA::ELayout_64x32; using BLayout = GMMA::ABLayout< 96, 32>; using CLayout = GMMA::CLayout_64x96; GMMA::ScaleOut accumulate_ = GMMA::ScaleOut::One; }; //////////////////////////////////////////////////////////////////////////////////////////////////// template struct MMA_Traits> { using ValTypeD = half_t; using ValTypeA = sparse_elem<2, half_t>; using ValTypeE = sparse_elem<8, uint8_t>; using ValTypeB = half_t; using ValTypeC = half_t; using FrgTypeA = GMMA::smem_desc; using FrgTypeB = GMMA::smem_desc; using Shape_MNK = Shape<_64,_128,_32>; using ThrID = Layout<_128>; using ALayout = GMMA::ABLayout< 64, 32>; using ELayout = GMMA::ELayout_64x32; using BLayout = GMMA::ABLayout<128, 32>; using CLayout = GMMA::CLayout_64x128; GMMA::ScaleOut accumulate_ = GMMA::ScaleOut::One; }; //////////////////////////////////////////////////////////////////////////////////////////////////// template struct MMA_Traits> { using ValTypeD = half_t; using ValTypeA = sparse_elem<2, half_t>; using ValTypeE = sparse_elem<8, uint8_t>; using ValTypeB = half_t; using ValTypeC = half_t; using FrgTypeB = GMMA::smem_desc; using Shape_MNK = Shape<_64,_128,_32>; using ThrID = Layout<_128>; using ALayout = GMMA::ALayout_64x32; using ELayout = GMMA::ELayout_64x32; using BLayout = GMMA::ABLayout<128, 32>; using CLayout = GMMA::CLayout_64x128; GMMA::ScaleOut accumulate_ = GMMA::ScaleOut::One; }; //////////////////////////////////////////////////////////////////////////////////////////////////// template struct MMA_Traits> { using ValTypeD = half_t; using ValTypeA = sparse_elem<2, half_t>; using ValTypeE = sparse_elem<8, uint8_t>; using ValTypeB = half_t; using ValTypeC = half_t; using FrgTypeA = GMMA::smem_desc; using FrgTypeB = GMMA::smem_desc; using Shape_MNK = Shape<_64,_192,_32>; using ThrID = Layout<_128>; using ALayout = GMMA::ABLayout< 64, 32>; using ELayout = GMMA::ELayout_64x32; using BLayout = GMMA::ABLayout<192, 32>; using CLayout = GMMA::CLayout_64x192; GMMA::ScaleOut accumulate_ = GMMA::ScaleOut::One; }; //////////////////////////////////////////////////////////////////////////////////////////////////// template struct MMA_Traits> { using ValTypeD = half_t; using ValTypeA = sparse_elem<2, half_t>; using ValTypeE = sparse_elem<8, uint8_t>; using ValTypeB = half_t; using ValTypeC = half_t; using FrgTypeB = GMMA::smem_desc; using Shape_MNK = Shape<_64,_192,_32>; using ThrID = Layout<_128>; using ALayout = GMMA::ALayout_64x32; using ELayout = GMMA::ELayout_64x32; using BLayout = GMMA::ABLayout<192, 32>; using CLayout = GMMA::CLayout_64x192; GMMA::ScaleOut accumulate_ = GMMA::ScaleOut::One; }; //////////////////////////////////////////////////////////////////////////////////////////////////// template struct MMA_Traits> { using ValTypeD = half_t; using ValTypeA = sparse_elem<2, half_t>; using ValTypeE = sparse_elem<8, uint8_t>; using ValTypeB = half_t; using ValTypeC = half_t; using FrgTypeA = GMMA::smem_desc; using FrgTypeB = GMMA::smem_desc; using Shape_MNK = Shape<_64,_256,_32>; using ThrID = Layout<_128>; using ALayout = GMMA::ABLayout< 64, 32>; using ELayout = GMMA::ELayout_64x32; using BLayout = GMMA::ABLayout<256, 32>; using CLayout = GMMA::CLayout_64x256; GMMA::ScaleOut accumulate_ = GMMA::ScaleOut::One; }; //////////////////////////////////////////////////////////////////////////////////////////////////// template struct MMA_Traits> { using ValTypeD = half_t; using ValTypeA = sparse_elem<2, half_t>; using ValTypeE = sparse_elem<8, uint8_t>; using ValTypeB = half_t; using ValTypeC = half_t; using FrgTypeB = GMMA::smem_desc; using Shape_MNK = Shape<_64,_256,_32>; using ThrID = Layout<_128>; using ALayout = GMMA::ALayout_64x32; using ELayout = GMMA::ELayout_64x32; using BLayout = GMMA::ABLayout<256, 32>; using CLayout = GMMA::CLayout_64x256; GMMA::ScaleOut accumulate_ = GMMA::ScaleOut::One; }; //////////////////////////////////////////////////////////////////////////////////////////////////// template struct MMA_Traits> { using ValTypeD = float; using ValTypeA = sparse_elem<2, half_t>; using ValTypeE = sparse_elem<8, uint8_t>; using ValTypeB = half_t; using ValTypeC = float; using FrgTypeA = GMMA::smem_desc; using FrgTypeB = GMMA::smem_desc; using Shape_MNK = Shape<_64,_8,_32>; using ThrID = Layout<_128>; using ALayout = GMMA::ABLayout< 64, 32>; using ELayout = GMMA::ELayout_64x32; using BLayout = GMMA::ABLayout< 8, 32>; using CLayout = GMMA::CLayout_64x8; GMMA::ScaleOut accumulate_ = GMMA::ScaleOut::One; }; //////////////////////////////////////////////////////////////////////////////////////////////////// template struct MMA_Traits> { using ValTypeD = float; using ValTypeA = sparse_elem<2, half_t>; using ValTypeE = sparse_elem<8, uint8_t>; using ValTypeB = half_t; using ValTypeC = float; using FrgTypeB = GMMA::smem_desc; using Shape_MNK = Shape<_64,_8,_32>; using ThrID = Layout<_128>; using ALayout = GMMA::ALayout_64x32; using ELayout = GMMA::ELayout_64x32; using BLayout = GMMA::ABLayout< 8, 32>; using CLayout = GMMA::CLayout_64x8; GMMA::ScaleOut accumulate_ = GMMA::ScaleOut::One; }; //////////////////////////////////////////////////////////////////////////////////////////////////// template struct MMA_Traits> { using ValTypeD = float; using ValTypeA = sparse_elem<2, half_t>; using ValTypeE = sparse_elem<8, uint8_t>; using ValTypeB = half_t; using ValTypeC = float; using FrgTypeA = GMMA::smem_desc; using FrgTypeB = GMMA::smem_desc; using Shape_MNK = Shape<_64,_16,_32>; using ThrID = Layout<_128>; using ALayout = GMMA::ABLayout< 64, 32>; using ELayout = GMMA::ELayout_64x32; using BLayout = GMMA::ABLayout< 16, 32>; using CLayout = GMMA::CLayout_64x16; GMMA::ScaleOut accumulate_ = GMMA::ScaleOut::One; }; //////////////////////////////////////////////////////////////////////////////////////////////////// template struct MMA_Traits> { using ValTypeD = float; using ValTypeA = sparse_elem<2, half_t>; using ValTypeE = sparse_elem<8, uint8_t>; using ValTypeB = half_t; using ValTypeC = float; using FrgTypeB = GMMA::smem_desc; using Shape_MNK = Shape<_64,_16,_32>; using ThrID = Layout<_128>; using ALayout = GMMA::ALayout_64x32; using ELayout = GMMA::ELayout_64x32; using BLayout = GMMA::ABLayout< 16, 32>; using CLayout = GMMA::CLayout_64x16; GMMA::ScaleOut accumulate_ = GMMA::ScaleOut::One; }; //////////////////////////////////////////////////////////////////////////////////////////////////// template struct MMA_Traits> { using ValTypeD = float; using ValTypeA = sparse_elem<2, half_t>; using ValTypeE = sparse_elem<8, uint8_t>; using ValTypeB = half_t; using ValTypeC = float; using FrgTypeA = GMMA::smem_desc; using FrgTypeB = GMMA::smem_desc; using Shape_MNK = Shape<_64,_32,_32>; using ThrID = Layout<_128>; using ALayout = GMMA::ABLayout< 64, 32>; using ELayout = GMMA::ELayout_64x32; using BLayout = GMMA::ABLayout< 32, 32>; using CLayout = GMMA::CLayout_64x32; GMMA::ScaleOut accumulate_ = GMMA::ScaleOut::One; }; //////////////////////////////////////////////////////////////////////////////////////////////////// template struct MMA_Traits> { using ValTypeD = float; using ValTypeA = sparse_elem<2, half_t>; using ValTypeE = sparse_elem<8, uint8_t>; using ValTypeB = half_t; using ValTypeC = float; using FrgTypeB = GMMA::smem_desc; using Shape_MNK = Shape<_64,_32,_32>; using ThrID = Layout<_128>; using ALayout = GMMA::ALayout_64x32; using ELayout = GMMA::ELayout_64x32; using BLayout = GMMA::ABLayout< 32, 32>; using CLayout = GMMA::CLayout_64x32; GMMA::ScaleOut accumulate_ = GMMA::ScaleOut::One; }; //////////////////////////////////////////////////////////////////////////////////////////////////// template struct MMA_Traits> { using ValTypeD = float; using ValTypeA = sparse_elem<2, half_t>; using ValTypeE = sparse_elem<8, uint8_t>; using ValTypeB = half_t; using ValTypeC = float; using FrgTypeA = GMMA::smem_desc; using FrgTypeB = GMMA::smem_desc; using Shape_MNK = Shape<_64,_64,_32>; using ThrID = Layout<_128>; using ALayout = GMMA::ABLayout< 64, 32>; using ELayout = GMMA::ELayout_64x32; using BLayout = GMMA::ABLayout< 64, 32>; using CLayout = GMMA::CLayout_64x64; GMMA::ScaleOut accumulate_ = GMMA::ScaleOut::One; }; //////////////////////////////////////////////////////////////////////////////////////////////////// template struct MMA_Traits> { using ValTypeD = float; using ValTypeA = sparse_elem<2, half_t>; using ValTypeE = sparse_elem<8, uint8_t>; using ValTypeB = half_t; using ValTypeC = float; using FrgTypeB = GMMA::smem_desc; using Shape_MNK = Shape<_64,_64,_32>; using ThrID = Layout<_128>; using ALayout = GMMA::ALayout_64x32; using ELayout = GMMA::ELayout_64x32; using BLayout = GMMA::ABLayout< 64, 32>; using CLayout = GMMA::CLayout_64x64; GMMA::ScaleOut accumulate_ = GMMA::ScaleOut::One; }; //////////////////////////////////////////////////////////////////////////////////////////////////// template struct MMA_Traits> { using ValTypeD = float; using ValTypeA = sparse_elem<2, half_t>; using ValTypeE = sparse_elem<8, uint8_t>; using ValTypeB = half_t; using ValTypeC = float; using FrgTypeA = GMMA::smem_desc; using FrgTypeB = GMMA::smem_desc; using Shape_MNK = Shape<_64,_96,_32>; using ThrID = Layout<_128>; using ALayout = GMMA::ABLayout< 64, 32>; using ELayout = GMMA::ELayout_64x32; using BLayout = GMMA::ABLayout< 96, 32>; using CLayout = GMMA::CLayout_64x96; GMMA::ScaleOut accumulate_ = GMMA::ScaleOut::One; }; //////////////////////////////////////////////////////////////////////////////////////////////////// template struct MMA_Traits> { using ValTypeD = float; using ValTypeA = sparse_elem<2, half_t>; using ValTypeE = sparse_elem<8, uint8_t>; using ValTypeB = half_t; using ValTypeC = float; using FrgTypeB = GMMA::smem_desc; using Shape_MNK = Shape<_64,_96,_32>; using ThrID = Layout<_128>; using ALayout = GMMA::ALayout_64x32; using ELayout = GMMA::ELayout_64x32; using BLayout = GMMA::ABLayout< 96, 32>; using CLayout = GMMA::CLayout_64x96; GMMA::ScaleOut accumulate_ = GMMA::ScaleOut::One; }; //////////////////////////////////////////////////////////////////////////////////////////////////// template struct MMA_Traits> { using ValTypeD = float; using ValTypeA = sparse_elem<2, half_t>; using ValTypeE = sparse_elem<8, uint8_t>; using ValTypeB = half_t; using ValTypeC = float; using FrgTypeA = GMMA::smem_desc; using FrgTypeB = GMMA::smem_desc; using Shape_MNK = Shape<_64,_128,_32>; using ThrID = Layout<_128>; using ALayout = GMMA::ABLayout< 64, 32>; using ELayout = GMMA::ELayout_64x32; using BLayout = GMMA::ABLayout<128, 32>; using CLayout = GMMA::CLayout_64x128; GMMA::ScaleOut accumulate_ = GMMA::ScaleOut::One; }; //////////////////////////////////////////////////////////////////////////////////////////////////// template struct MMA_Traits> { using ValTypeD = float; using ValTypeA = sparse_elem<2, half_t>; using ValTypeE = sparse_elem<8, uint8_t>; using ValTypeB = half_t; using ValTypeC = float; using FrgTypeB = GMMA::smem_desc; using Shape_MNK = Shape<_64,_128,_32>; using ThrID = Layout<_128>; using ALayout = GMMA::ALayout_64x32; using ELayout = GMMA::ELayout_64x32; using BLayout = GMMA::ABLayout<128, 32>; using CLayout = GMMA::CLayout_64x128; GMMA::ScaleOut accumulate_ = GMMA::ScaleOut::One; }; //////////////////////////////////////////////////////////////////////////////////////////////////// template struct MMA_Traits> { using ValTypeD = float; using ValTypeA = sparse_elem<2, half_t>; using ValTypeE = sparse_elem<8, uint8_t>; using ValTypeB = half_t; using ValTypeC = float; using FrgTypeA = GMMA::smem_desc; using FrgTypeB = GMMA::smem_desc; using Shape_MNK = Shape<_64,_192,_32>; using ThrID = Layout<_128>; using ALayout = GMMA::ABLayout< 64, 32>; using ELayout = GMMA::ELayout_64x32; using BLayout = GMMA::ABLayout<192, 32>; using CLayout = GMMA::CLayout_64x192; GMMA::ScaleOut accumulate_ = GMMA::ScaleOut::One; }; //////////////////////////////////////////////////////////////////////////////////////////////////// template struct MMA_Traits> { using ValTypeD = float; using ValTypeA = sparse_elem<2, half_t>; using ValTypeE = sparse_elem<8, uint8_t>; using ValTypeB = half_t; using ValTypeC = float; using FrgTypeB = GMMA::smem_desc; using Shape_MNK = Shape<_64,_192,_32>; using ThrID = Layout<_128>; using ALayout = GMMA::ALayout_64x32; using ELayout = GMMA::ELayout_64x32; using BLayout = GMMA::ABLayout<192, 32>; using CLayout = GMMA::CLayout_64x192; GMMA::ScaleOut accumulate_ = GMMA::ScaleOut::One; }; //////////////////////////////////////////////////////////////////////////////////////////////////// template struct MMA_Traits> { using ValTypeD = float; using ValTypeA = sparse_elem<2, half_t>; using ValTypeE = sparse_elem<8, uint8_t>; using ValTypeB = half_t; using ValTypeC = float; using FrgTypeA = GMMA::smem_desc; using FrgTypeB = GMMA::smem_desc; using Shape_MNK = Shape<_64,_256,_32>; using ThrID = Layout<_128>; using ALayout = GMMA::ABLayout< 64, 32>; using ELayout = GMMA::ELayout_64x32; using BLayout = GMMA::ABLayout<256, 32>; using CLayout = GMMA::CLayout_64x256; GMMA::ScaleOut accumulate_ = GMMA::ScaleOut::One; }; //////////////////////////////////////////////////////////////////////////////////////////////////// template struct MMA_Traits> { using ValTypeD = float; using ValTypeA = sparse_elem<2, half_t>; using ValTypeE = sparse_elem<8, uint8_t>; using ValTypeB = half_t; using ValTypeC = float; using FrgTypeB = GMMA::smem_desc; using Shape_MNK = Shape<_64,_256,_32>; using ThrID = Layout<_128>; using ALayout = GMMA::ALayout_64x32; using ELayout = GMMA::ELayout_64x32; using BLayout = GMMA::ABLayout<256, 32>; using CLayout = GMMA::CLayout_64x256; GMMA::ScaleOut accumulate_ = GMMA::ScaleOut::One; }; //////////////////////////////////////////////////////////////////////////////////////////////////// template struct MMA_Traits> { using ValTypeD = float; using ValTypeA = sparse_elem<2, bfloat16_t>; using ValTypeE = sparse_elem<8, uint8_t>; using ValTypeB = bfloat16_t; using ValTypeC = float; using FrgTypeA = GMMA::smem_desc; using FrgTypeB = GMMA::smem_desc; using Shape_MNK = Shape<_64,_8,_32>; using ThrID = Layout<_128>; using ALayout = GMMA::ABLayout< 64, 32>; using ELayout = GMMA::ELayout_64x32; using BLayout = GMMA::ABLayout< 8, 32>; using CLayout = GMMA::CLayout_64x8; GMMA::ScaleOut accumulate_ = GMMA::ScaleOut::One; }; //////////////////////////////////////////////////////////////////////////////////////////////////// template struct MMA_Traits> { using ValTypeD = float; using ValTypeA = sparse_elem<2, bfloat16_t>; using ValTypeE = sparse_elem<8, uint8_t>; using ValTypeB = bfloat16_t; using ValTypeC = float; using FrgTypeB = GMMA::smem_desc; using Shape_MNK = Shape<_64,_8,_32>; using ThrID = Layout<_128>; using ALayout = GMMA::ALayout_64x32; using ELayout = GMMA::ELayout_64x32; using BLayout = GMMA::ABLayout< 8, 32>; using CLayout = GMMA::CLayout_64x8; GMMA::ScaleOut accumulate_ = GMMA::ScaleOut::One; }; //////////////////////////////////////////////////////////////////////////////////////////////////// template struct MMA_Traits> { using ValTypeD = float; using ValTypeA = sparse_elem<2, bfloat16_t>; using ValTypeE = sparse_elem<8, uint8_t>; using ValTypeB = bfloat16_t; using ValTypeC = float; using FrgTypeA = GMMA::smem_desc; using FrgTypeB = GMMA::smem_desc; using Shape_MNK = Shape<_64,_16,_32>; using ThrID = Layout<_128>; using ALayout = GMMA::ABLayout< 64, 32>; using ELayout = GMMA::ELayout_64x32; using BLayout = GMMA::ABLayout< 16, 32>; using CLayout = GMMA::CLayout_64x16; GMMA::ScaleOut accumulate_ = GMMA::ScaleOut::One; }; //////////////////////////////////////////////////////////////////////////////////////////////////// template struct MMA_Traits> { using ValTypeD = float; using ValTypeA = sparse_elem<2, bfloat16_t>; using ValTypeE = sparse_elem<8, uint8_t>; using ValTypeB = bfloat16_t; using ValTypeC = float; using FrgTypeB = GMMA::smem_desc; using Shape_MNK = Shape<_64,_16,_32>; using ThrID = Layout<_128>; using ALayout = GMMA::ALayout_64x32; using ELayout = GMMA::ELayout_64x32; using BLayout = GMMA::ABLayout< 16, 32>; using CLayout = GMMA::CLayout_64x16; GMMA::ScaleOut accumulate_ = GMMA::ScaleOut::One; }; //////////////////////////////////////////////////////////////////////////////////////////////////// template struct MMA_Traits> { using ValTypeD = float; using ValTypeA = sparse_elem<2, bfloat16_t>; using ValTypeE = sparse_elem<8, uint8_t>; using ValTypeB = bfloat16_t; using ValTypeC = float; using FrgTypeA = GMMA::smem_desc; using FrgTypeB = GMMA::smem_desc; using Shape_MNK = Shape<_64,_32,_32>; using ThrID = Layout<_128>; using ALayout = GMMA::ABLayout< 64, 32>; using ELayout = GMMA::ELayout_64x32; using BLayout = GMMA::ABLayout< 32, 32>; using CLayout = GMMA::CLayout_64x32; GMMA::ScaleOut accumulate_ = GMMA::ScaleOut::One; }; //////////////////////////////////////////////////////////////////////////////////////////////////// template struct MMA_Traits> { using ValTypeD = float; using ValTypeA = sparse_elem<2, bfloat16_t>; using ValTypeE = sparse_elem<8, uint8_t>; using ValTypeB = bfloat16_t; using ValTypeC = float; using FrgTypeB = GMMA::smem_desc; using Shape_MNK = Shape<_64,_32,_32>; using ThrID = Layout<_128>; using ALayout = GMMA::ALayout_64x32; using ELayout = GMMA::ELayout_64x32; using BLayout = GMMA::ABLayout< 32, 32>; using CLayout = GMMA::CLayout_64x32; GMMA::ScaleOut accumulate_ = GMMA::ScaleOut::One; }; //////////////////////////////////////////////////////////////////////////////////////////////////// template struct MMA_Traits> { using ValTypeD = float; using ValTypeA = sparse_elem<2, bfloat16_t>; using ValTypeE = sparse_elem<8, uint8_t>; using ValTypeB = bfloat16_t; using ValTypeC = float; using FrgTypeA = GMMA::smem_desc; using FrgTypeB = GMMA::smem_desc; using Shape_MNK = Shape<_64,_64,_32>; using ThrID = Layout<_128>; using ALayout = GMMA::ABLayout< 64, 32>; using ELayout = GMMA::ELayout_64x32; using BLayout = GMMA::ABLayout< 64, 32>; using CLayout = GMMA::CLayout_64x64; GMMA::ScaleOut accumulate_ = GMMA::ScaleOut::One; }; //////////////////////////////////////////////////////////////////////////////////////////////////// template struct MMA_Traits> { using ValTypeD = float; using ValTypeA = sparse_elem<2, bfloat16_t>; using ValTypeE = sparse_elem<8, uint8_t>; using ValTypeB = bfloat16_t; using ValTypeC = float; using FrgTypeB = GMMA::smem_desc; using Shape_MNK = Shape<_64,_64,_32>; using ThrID = Layout<_128>; using ALayout = GMMA::ALayout_64x32; using ELayout = GMMA::ELayout_64x32; using BLayout = GMMA::ABLayout< 64, 32>; using CLayout = GMMA::CLayout_64x64; GMMA::ScaleOut accumulate_ = GMMA::ScaleOut::One; }; //////////////////////////////////////////////////////////////////////////////////////////////////// template struct MMA_Traits> { using ValTypeD = float; using ValTypeA = sparse_elem<2, bfloat16_t>; using ValTypeE = sparse_elem<8, uint8_t>; using ValTypeB = bfloat16_t; using ValTypeC = float; using FrgTypeA = GMMA::smem_desc; using FrgTypeB = GMMA::smem_desc; using Shape_MNK = Shape<_64,_96,_32>; using ThrID = Layout<_128>; using ALayout = GMMA::ABLayout< 64, 32>; using ELayout = GMMA::ELayout_64x32; using BLayout = GMMA::ABLayout< 96, 32>; using CLayout = GMMA::CLayout_64x96; GMMA::ScaleOut accumulate_ = GMMA::ScaleOut::One; }; //////////////////////////////////////////////////////////////////////////////////////////////////// template struct MMA_Traits> { using ValTypeD = float; using ValTypeA = sparse_elem<2, bfloat16_t>; using ValTypeE = sparse_elem<8, uint8_t>; using ValTypeB = bfloat16_t; using ValTypeC = float; using FrgTypeB = GMMA::smem_desc; using Shape_MNK = Shape<_64,_96,_32>; using ThrID = Layout<_128>; using ALayout = GMMA::ALayout_64x32; using ELayout = GMMA::ELayout_64x32; using BLayout = GMMA::ABLayout< 96, 32>; using CLayout = GMMA::CLayout_64x96; GMMA::ScaleOut accumulate_ = GMMA::ScaleOut::One; }; //////////////////////////////////////////////////////////////////////////////////////////////////// template struct MMA_Traits> { using ValTypeD = float; using ValTypeA = sparse_elem<2, bfloat16_t>; using ValTypeE = sparse_elem<8, uint8_t>; using ValTypeB = bfloat16_t; using ValTypeC = float; using FrgTypeA = GMMA::smem_desc; using FrgTypeB = GMMA::smem_desc; using Shape_MNK = Shape<_64,_128,_32>; using ThrID = Layout<_128>; using ALayout = GMMA::ABLayout< 64, 32>; using ELayout = GMMA::ELayout_64x32; using BLayout = GMMA::ABLayout<128, 32>; using CLayout = GMMA::CLayout_64x128; GMMA::ScaleOut accumulate_ = GMMA::ScaleOut::One; }; //////////////////////////////////////////////////////////////////////////////////////////////////// template struct MMA_Traits> { using ValTypeD = float; using ValTypeA = sparse_elem<2, bfloat16_t>; using ValTypeE = sparse_elem<8, uint8_t>; using ValTypeB = bfloat16_t; using ValTypeC = float; using FrgTypeB = GMMA::smem_desc; using Shape_MNK = Shape<_64,_128,_32>; using ThrID = Layout<_128>; using ALayout = GMMA::ALayout_64x32; using ELayout = GMMA::ELayout_64x32; using BLayout = GMMA::ABLayout<128, 32>; using CLayout = GMMA::CLayout_64x128; GMMA::ScaleOut accumulate_ = GMMA::ScaleOut::One; }; //////////////////////////////////////////////////////////////////////////////////////////////////// template struct MMA_Traits> { using ValTypeD = float; using ValTypeA = sparse_elem<2, bfloat16_t>; using ValTypeE = sparse_elem<8, uint8_t>; using ValTypeB = bfloat16_t; using ValTypeC = float; using FrgTypeA = GMMA::smem_desc; using FrgTypeB = GMMA::smem_desc; using Shape_MNK = Shape<_64,_192,_32>; using ThrID = Layout<_128>; using ALayout = GMMA::ABLayout< 64, 32>; using ELayout = GMMA::ELayout_64x32; using BLayout = GMMA::ABLayout<192, 32>; using CLayout = GMMA::CLayout_64x192; GMMA::ScaleOut accumulate_ = GMMA::ScaleOut::One; }; //////////////////////////////////////////////////////////////////////////////////////////////////// template struct MMA_Traits> { using ValTypeD = float; using ValTypeA = sparse_elem<2, bfloat16_t>; using ValTypeE = sparse_elem<8, uint8_t>; using ValTypeB = bfloat16_t; using ValTypeC = float; using FrgTypeB = GMMA::smem_desc; using Shape_MNK = Shape<_64,_192,_32>; using ThrID = Layout<_128>; using ALayout = GMMA::ALayout_64x32; using ELayout = GMMA::ELayout_64x32; using BLayout = GMMA::ABLayout<192, 32>; using CLayout = GMMA::CLayout_64x192; GMMA::ScaleOut accumulate_ = GMMA::ScaleOut::One; }; //////////////////////////////////////////////////////////////////////////////////////////////////// template struct MMA_Traits> { using ValTypeD = float; using ValTypeA = sparse_elem<2, bfloat16_t>; using ValTypeE = sparse_elem<8, uint8_t>; using ValTypeB = bfloat16_t; using ValTypeC = float; using FrgTypeA = GMMA::smem_desc; using FrgTypeB = GMMA::smem_desc; using Shape_MNK = Shape<_64,_256,_32>; using ThrID = Layout<_128>; using ALayout = GMMA::ABLayout< 64, 32>; using ELayout = GMMA::ELayout_64x32; using BLayout = GMMA::ABLayout<256, 32>; using CLayout = GMMA::CLayout_64x256; GMMA::ScaleOut accumulate_ = GMMA::ScaleOut::One; }; //////////////////////////////////////////////////////////////////////////////////////////////////// template struct MMA_Traits> { using ValTypeD = float; using ValTypeA = sparse_elem<2, bfloat16_t>; using ValTypeE = sparse_elem<8, uint8_t>; using ValTypeB = bfloat16_t; using ValTypeC = float; using FrgTypeB = GMMA::smem_desc; using Shape_MNK = Shape<_64,_256,_32>; using ThrID = Layout<_128>; using ALayout = GMMA::ALayout_64x32; using ELayout = GMMA::ELayout_64x32; using BLayout = GMMA::ABLayout<256, 32>; using CLayout = GMMA::CLayout_64x256; GMMA::ScaleOut accumulate_ = GMMA::ScaleOut::One; }; //////////////////////////////////////////////////////////////////////////////////////////////////// template struct MMA_Traits> { using ValTypeD = float; using ValTypeA = sparse_elem<2, tfloat32_t>; using ValTypeE = sparse_elem<4, uint8_t>; using ValTypeB = tfloat32_t; using ValTypeC = float; using FrgTypeA = GMMA::smem_desc; using FrgTypeB = GMMA::smem_desc; using Shape_MNK = Shape<_64,_8,_16>; using ThrID = Layout<_128>; using ALayout = GMMA::ABLayout< 64, 16>; using ELayout = GMMA::ELayout_64x16; using BLayout = GMMA::ABLayout< 8, 16>; using CLayout = GMMA::CLayout_64x8; GMMA::ScaleOut accumulate_ = GMMA::ScaleOut::One; }; //////////////////////////////////////////////////////////////////////////////////////////////////// template struct MMA_Traits> { using ValTypeD = float; using ValTypeA = sparse_elem<2, tfloat32_t>; using ValTypeE = sparse_elem<4, uint8_t>; using ValTypeB = tfloat32_t; using ValTypeC = float; using FrgTypeB = GMMA::smem_desc; using Shape_MNK = Shape<_64,_8,_16>; using ThrID = Layout<_128>; using ALayout = GMMA::ALayout_64x16; using ELayout = GMMA::ELayout_64x16; using BLayout = GMMA::ABLayout< 8, 16>; using CLayout = GMMA::CLayout_64x8; GMMA::ScaleOut accumulate_ = GMMA::ScaleOut::One; }; //////////////////////////////////////////////////////////////////////////////////////////////////// template struct MMA_Traits> { using ValTypeD = float; using ValTypeA = sparse_elem<2, tfloat32_t>; using ValTypeE = sparse_elem<4, uint8_t>; using ValTypeB = tfloat32_t; using ValTypeC = float; using FrgTypeA = GMMA::smem_desc; using FrgTypeB = GMMA::smem_desc; using Shape_MNK = Shape<_64,_16,_16>; using ThrID = Layout<_128>; using ALayout = GMMA::ABLayout< 64, 16>; using ELayout = GMMA::ELayout_64x16; using BLayout = GMMA::ABLayout< 16, 16>; using CLayout = GMMA::CLayout_64x16; GMMA::ScaleOut accumulate_ = GMMA::ScaleOut::One; }; //////////////////////////////////////////////////////////////////////////////////////////////////// template struct MMA_Traits> { using ValTypeD = float; using ValTypeA = sparse_elem<2, tfloat32_t>; using ValTypeE = sparse_elem<4, uint8_t>; using ValTypeB = tfloat32_t; using ValTypeC = float; using FrgTypeB = GMMA::smem_desc; using Shape_MNK = Shape<_64,_16,_16>; using ThrID = Layout<_128>; using ALayout = GMMA::ALayout_64x16; using ELayout = GMMA::ELayout_64x16; using BLayout = GMMA::ABLayout< 16, 16>; using CLayout = GMMA::CLayout_64x16; GMMA::ScaleOut accumulate_ = GMMA::ScaleOut::One; }; //////////////////////////////////////////////////////////////////////////////////////////////////// template struct MMA_Traits> { using ValTypeD = float; using ValTypeA = sparse_elem<2, tfloat32_t>; using ValTypeE = sparse_elem<4, uint8_t>; using ValTypeB = tfloat32_t; using ValTypeC = float; using FrgTypeA = GMMA::smem_desc; using FrgTypeB = GMMA::smem_desc; using Shape_MNK = Shape<_64,_32,_16>; using ThrID = Layout<_128>; using ALayout = GMMA::ABLayout< 64, 16>; using ELayout = GMMA::ELayout_64x16; using BLayout = GMMA::ABLayout< 32, 16>; using CLayout = GMMA::CLayout_64x32; GMMA::ScaleOut accumulate_ = GMMA::ScaleOut::One; }; //////////////////////////////////////////////////////////////////////////////////////////////////// template struct MMA_Traits> { using ValTypeD = float; using ValTypeA = sparse_elem<2, tfloat32_t>; using ValTypeE = sparse_elem<4, uint8_t>; using ValTypeB = tfloat32_t; using ValTypeC = float; using FrgTypeB = GMMA::smem_desc; using Shape_MNK = Shape<_64,_32,_16>; using ThrID = Layout<_128>; using ALayout = GMMA::ALayout_64x16; using ELayout = GMMA::ELayout_64x16; using BLayout = GMMA::ABLayout< 32, 16>; using CLayout = GMMA::CLayout_64x32; GMMA::ScaleOut accumulate_ = GMMA::ScaleOut::One; }; //////////////////////////////////////////////////////////////////////////////////////////////////// template struct MMA_Traits> { using ValTypeD = float; using ValTypeA = sparse_elem<2, tfloat32_t>; using ValTypeE = sparse_elem<4, uint8_t>; using ValTypeB = tfloat32_t; using ValTypeC = float; using FrgTypeA = GMMA::smem_desc; using FrgTypeB = GMMA::smem_desc; using Shape_MNK = Shape<_64,_64,_16>; using ThrID = Layout<_128>; using ALayout = GMMA::ABLayout< 64, 16>; using ELayout = GMMA::ELayout_64x16; using BLayout = GMMA::ABLayout< 64, 16>; using CLayout = GMMA::CLayout_64x64; GMMA::ScaleOut accumulate_ = GMMA::ScaleOut::One; }; //////////////////////////////////////////////////////////////////////////////////////////////////// template struct MMA_Traits> { using ValTypeD = float; using ValTypeA = sparse_elem<2, tfloat32_t>; using ValTypeE = sparse_elem<4, uint8_t>; using ValTypeB = tfloat32_t; using ValTypeC = float; using FrgTypeB = GMMA::smem_desc; using Shape_MNK = Shape<_64,_64,_16>; using ThrID = Layout<_128>; using ALayout = GMMA::ALayout_64x16; using ELayout = GMMA::ELayout_64x16; using BLayout = GMMA::ABLayout< 64, 16>; using CLayout = GMMA::CLayout_64x64; GMMA::ScaleOut accumulate_ = GMMA::ScaleOut::One; }; //////////////////////////////////////////////////////////////////////////////////////////////////// template struct MMA_Traits> { using ValTypeD = float; using ValTypeA = sparse_elem<2, tfloat32_t>; using ValTypeE = sparse_elem<4, uint8_t>; using ValTypeB = tfloat32_t; using ValTypeC = float; using FrgTypeA = GMMA::smem_desc; using FrgTypeB = GMMA::smem_desc; using Shape_MNK = Shape<_64,_96,_16>; using ThrID = Layout<_128>; using ALayout = GMMA::ABLayout< 64, 16>; using ELayout = GMMA::ELayout_64x16; using BLayout = GMMA::ABLayout< 96, 16>; using CLayout = GMMA::CLayout_64x96; GMMA::ScaleOut accumulate_ = GMMA::ScaleOut::One; }; //////////////////////////////////////////////////////////////////////////////////////////////////// template struct MMA_Traits> { using ValTypeD = float; using ValTypeA = sparse_elem<2, tfloat32_t>; using ValTypeE = sparse_elem<4, uint8_t>; using ValTypeB = tfloat32_t; using ValTypeC = float; using FrgTypeB = GMMA::smem_desc; using Shape_MNK = Shape<_64,_96,_16>; using ThrID = Layout<_128>; using ALayout = GMMA::ALayout_64x16; using ELayout = GMMA::ELayout_64x16; using BLayout = GMMA::ABLayout< 96, 16>; using CLayout = GMMA::CLayout_64x96; GMMA::ScaleOut accumulate_ = GMMA::ScaleOut::One; }; //////////////////////////////////////////////////////////////////////////////////////////////////// template struct MMA_Traits> { using ValTypeD = float; using ValTypeA = sparse_elem<2, tfloat32_t>; using ValTypeE = sparse_elem<4, uint8_t>; using ValTypeB = tfloat32_t; using ValTypeC = float; using FrgTypeA = GMMA::smem_desc; using FrgTypeB = GMMA::smem_desc; using Shape_MNK = Shape<_64,_128,_16>; using ThrID = Layout<_128>; using ALayout = GMMA::ABLayout< 64, 16>; using ELayout = GMMA::ELayout_64x16; using BLayout = GMMA::ABLayout<128, 16>; using CLayout = GMMA::CLayout_64x128; GMMA::ScaleOut accumulate_ = GMMA::ScaleOut::One; }; //////////////////////////////////////////////////////////////////////////////////////////////////// template struct MMA_Traits> { using ValTypeD = float; using ValTypeA = sparse_elem<2, tfloat32_t>; using ValTypeE = sparse_elem<4, uint8_t>; using ValTypeB = tfloat32_t; using ValTypeC = float; using FrgTypeB = GMMA::smem_desc; using Shape_MNK = Shape<_64,_128,_16>; using ThrID = Layout<_128>; using ALayout = GMMA::ALayout_64x16; using ELayout = GMMA::ELayout_64x16; using BLayout = GMMA::ABLayout<128, 16>; using CLayout = GMMA::CLayout_64x128; GMMA::ScaleOut accumulate_ = GMMA::ScaleOut::One; }; //////////////////////////////////////////////////////////////////////////////////////////////////// template struct MMA_Traits> { using ValTypeD = float; using ValTypeA = sparse_elem<2, tfloat32_t>; using ValTypeE = sparse_elem<4, uint8_t>; using ValTypeB = tfloat32_t; using ValTypeC = float; using FrgTypeA = GMMA::smem_desc; using FrgTypeB = GMMA::smem_desc; using Shape_MNK = Shape<_64,_192,_16>; using ThrID = Layout<_128>; using ALayout = GMMA::ABLayout< 64, 16>; using ELayout = GMMA::ELayout_64x16; using BLayout = GMMA::ABLayout<192, 16>; using CLayout = GMMA::CLayout_64x192; GMMA::ScaleOut accumulate_ = GMMA::ScaleOut::One; }; //////////////////////////////////////////////////////////////////////////////////////////////////// template struct MMA_Traits> { using ValTypeD = float; using ValTypeA = sparse_elem<2, tfloat32_t>; using ValTypeE = sparse_elem<4, uint8_t>; using ValTypeB = tfloat32_t; using ValTypeC = float; using FrgTypeB = GMMA::smem_desc; using Shape_MNK = Shape<_64,_192,_16>; using ThrID = Layout<_128>; using ALayout = GMMA::ALayout_64x16; using ELayout = GMMA::ELayout_64x16; using BLayout = GMMA::ABLayout<192, 16>; using CLayout = GMMA::CLayout_64x192; GMMA::ScaleOut accumulate_ = GMMA::ScaleOut::One; }; //////////////////////////////////////////////////////////////////////////////////////////////////// template struct MMA_Traits> { using ValTypeD = float; using ValTypeA = sparse_elem<2, tfloat32_t>; using ValTypeE = sparse_elem<4, uint8_t>; using ValTypeB = tfloat32_t; using ValTypeC = float; using FrgTypeA = GMMA::smem_desc; using FrgTypeB = GMMA::smem_desc; using Shape_MNK = Shape<_64,_256,_16>; using ThrID = Layout<_128>; using ALayout = GMMA::ABLayout< 64, 16>; using ELayout = GMMA::ELayout_64x16; using BLayout = GMMA::ABLayout<256, 16>; using CLayout = GMMA::CLayout_64x256; GMMA::ScaleOut accumulate_ = GMMA::ScaleOut::One; }; //////////////////////////////////////////////////////////////////////////////////////////////////// template struct MMA_Traits> { using ValTypeD = float; using ValTypeA = sparse_elem<2, tfloat32_t>; using ValTypeE = sparse_elem<4, uint8_t>; using ValTypeB = tfloat32_t; using ValTypeC = float; using FrgTypeB = GMMA::smem_desc; using Shape_MNK = Shape<_64,_256,_16>; using ThrID = Layout<_128>; using ALayout = GMMA::ALayout_64x16; using ELayout = GMMA::ELayout_64x16; using BLayout = GMMA::ABLayout<256, 16>; using CLayout = GMMA::CLayout_64x256; GMMA::ScaleOut accumulate_ = GMMA::ScaleOut::One; }; //////////////////////////////////////////////////////////////////////////////////////////////////// template struct MMA_Traits> { using ValTypeD = int32_t; using ValTypeA = sparse_elem<2, int8_t>; using ValTypeE = sparse_elem<8, uint8_t>; using ValTypeB = int8_t; using ValTypeC = int32_t; using FrgTypeA = GMMA::smem_desc; using FrgTypeB = GMMA::smem_desc; using Shape_MNK = Shape<_64,_8,_64>; using ThrID = Layout<_128>; using ALayout = GMMA::ABLayout< 64, 64>; using ELayout = GMMA::ELayout_64x64; using BLayout = GMMA::ABLayout< 8, 64>; using CLayout = GMMA::CLayout_64x8; GMMA::ScaleOut accumulate_ = GMMA::ScaleOut::One; }; //////////////////////////////////////////////////////////////////////////////////////////////////// template struct MMA_Traits> { using ValTypeD = int32_t; using ValTypeA = sparse_elem<2, int8_t>; using ValTypeE = sparse_elem<8, uint8_t>; using ValTypeB = int8_t; using ValTypeC = int32_t; using FrgTypeA = GMMA::smem_desc; using FrgTypeB = GMMA::smem_desc; using Shape_MNK = Shape<_64,_8,_64>; using ThrID = Layout<_128>; using ALayout = GMMA::ABLayout< 64, 64>; using ELayout = GMMA::ELayout_64x64; using BLayout = GMMA::ABLayout< 8, 64>; using CLayout = GMMA::CLayout_64x8; GMMA::ScaleOut accumulate_ = GMMA::ScaleOut::One; }; //////////////////////////////////////////////////////////////////////////////////////////////////// template struct MMA_Traits> { using ValTypeD = int32_t; using ValTypeA = sparse_elem<2, int8_t>; using ValTypeE = sparse_elem<8, uint8_t>; using ValTypeB = int8_t; using ValTypeC = int32_t; using FrgTypeA = GMMA::smem_desc; using FrgTypeB = GMMA::smem_desc; using Shape_MNK = Shape<_64,_16,_64>; using ThrID = Layout<_128>; using ALayout = GMMA::ABLayout< 64, 64>; using ELayout = GMMA::ELayout_64x64; using BLayout = GMMA::ABLayout< 16, 64>; using CLayout = GMMA::CLayout_64x16; GMMA::ScaleOut accumulate_ = GMMA::ScaleOut::One; }; //////////////////////////////////////////////////////////////////////////////////////////////////// template struct MMA_Traits> { using ValTypeD = int32_t; using ValTypeA = sparse_elem<2, int8_t>; using ValTypeE = sparse_elem<8, uint8_t>; using ValTypeB = int8_t; using ValTypeC = int32_t; using FrgTypeA = GMMA::smem_desc; using FrgTypeB = GMMA::smem_desc; using Shape_MNK = Shape<_64,_16,_64>; using ThrID = Layout<_128>; using ALayout = GMMA::ABLayout< 64, 64>; using ELayout = GMMA::ELayout_64x64; using BLayout = GMMA::ABLayout< 16, 64>; using CLayout = GMMA::CLayout_64x16; GMMA::ScaleOut accumulate_ = GMMA::ScaleOut::One; }; //////////////////////////////////////////////////////////////////////////////////////////////////// template struct MMA_Traits> { using ValTypeD = int32_t; using ValTypeA = sparse_elem<2, int8_t>; using ValTypeE = sparse_elem<8, uint8_t>; using ValTypeB = int8_t; using ValTypeC = int32_t; using FrgTypeA = GMMA::smem_desc; using FrgTypeB = GMMA::smem_desc; using Shape_MNK = Shape<_64,_32,_64>; using ThrID = Layout<_128>; using ALayout = GMMA::ABLayout< 64, 64>; using ELayout = GMMA::ELayout_64x64; using BLayout = GMMA::ABLayout< 32, 64>; using CLayout = GMMA::CLayout_64x32; GMMA::ScaleOut accumulate_ = GMMA::ScaleOut::One; }; //////////////////////////////////////////////////////////////////////////////////////////////////// template struct MMA_Traits> { using ValTypeD = int32_t; using ValTypeA = sparse_elem<2, int8_t>; using ValTypeE = sparse_elem<8, uint8_t>; using ValTypeB = int8_t; using ValTypeC = int32_t; using FrgTypeA = GMMA::smem_desc; using FrgTypeB = GMMA::smem_desc; using Shape_MNK = Shape<_64,_32,_64>; using ThrID = Layout<_128>; using ALayout = GMMA::ABLayout< 64, 64>; using ELayout = GMMA::ELayout_64x64; using BLayout = GMMA::ABLayout< 32, 64>; using CLayout = GMMA::CLayout_64x32; GMMA::ScaleOut accumulate_ = GMMA::ScaleOut::One; }; //////////////////////////////////////////////////////////////////////////////////////////////////// template struct MMA_Traits> { using ValTypeD = int32_t; using ValTypeA = sparse_elem<2, int8_t>; using ValTypeE = sparse_elem<8, uint8_t>; using ValTypeB = int8_t; using ValTypeC = int32_t; using FrgTypeA = GMMA::smem_desc; using FrgTypeB = GMMA::smem_desc; using Shape_MNK = Shape<_64,_64,_64>; using ThrID = Layout<_128>; using ALayout = GMMA::ABLayout< 64, 64>; using ELayout = GMMA::ELayout_64x64; using BLayout = GMMA::ABLayout< 64, 64>; using CLayout = GMMA::CLayout_64x64; GMMA::ScaleOut accumulate_ = GMMA::ScaleOut::One; }; //////////////////////////////////////////////////////////////////////////////////////////////////// template struct MMA_Traits> { using ValTypeD = int32_t; using ValTypeA = sparse_elem<2, int8_t>; using ValTypeE = sparse_elem<8, uint8_t>; using ValTypeB = int8_t; using ValTypeC = int32_t; using FrgTypeA = GMMA::smem_desc; using FrgTypeB = GMMA::smem_desc; using Shape_MNK = Shape<_64,_64,_64>; using ThrID = Layout<_128>; using ALayout = GMMA::ABLayout< 64, 64>; using ELayout = GMMA::ELayout_64x64; using BLayout = GMMA::ABLayout< 64, 64>; using CLayout = GMMA::CLayout_64x64; GMMA::ScaleOut accumulate_ = GMMA::ScaleOut::One; }; //////////////////////////////////////////////////////////////////////////////////////////////////// template struct MMA_Traits> { using ValTypeD = int32_t; using ValTypeA = sparse_elem<2, int8_t>; using ValTypeE = sparse_elem<8, uint8_t>; using ValTypeB = int8_t; using ValTypeC = int32_t; using FrgTypeA = GMMA::smem_desc; using FrgTypeB = GMMA::smem_desc; using Shape_MNK = Shape<_64,_96,_64>; using ThrID = Layout<_128>; using ALayout = GMMA::ABLayout< 64, 64>; using ELayout = GMMA::ELayout_64x64; using BLayout = GMMA::ABLayout< 96, 64>; using CLayout = GMMA::CLayout_64x96; GMMA::ScaleOut accumulate_ = GMMA::ScaleOut::One; }; //////////////////////////////////////////////////////////////////////////////////////////////////// template struct MMA_Traits> { using ValTypeD = int32_t; using ValTypeA = sparse_elem<2, int8_t>; using ValTypeE = sparse_elem<8, uint8_t>; using ValTypeB = int8_t; using ValTypeC = int32_t; using FrgTypeA = GMMA::smem_desc; using FrgTypeB = GMMA::smem_desc; using Shape_MNK = Shape<_64,_96,_64>; using ThrID = Layout<_128>; using ALayout = GMMA::ABLayout< 64, 64>; using ELayout = GMMA::ELayout_64x64; using BLayout = GMMA::ABLayout< 96, 64>; using CLayout = GMMA::CLayout_64x96; GMMA::ScaleOut accumulate_ = GMMA::ScaleOut::One; }; //////////////////////////////////////////////////////////////////////////////////////////////////// template struct MMA_Traits> { using ValTypeD = int32_t; using ValTypeA = sparse_elem<2, int8_t>; using ValTypeE = sparse_elem<8, uint8_t>; using ValTypeB = int8_t; using ValTypeC = int32_t; using FrgTypeA = GMMA::smem_desc; using FrgTypeB = GMMA::smem_desc; using Shape_MNK = Shape<_64,_128,_64>; using ThrID = Layout<_128>; using ALayout = GMMA::ABLayout< 64, 64>; using ELayout = GMMA::ELayout_64x64; using BLayout = GMMA::ABLayout<128, 64>; using CLayout = GMMA::CLayout_64x128; GMMA::ScaleOut accumulate_ = GMMA::ScaleOut::One; }; //////////////////////////////////////////////////////////////////////////////////////////////////// template struct MMA_Traits> { using ValTypeD = int32_t; using ValTypeA = sparse_elem<2, int8_t>; using ValTypeE = sparse_elem<8, uint8_t>; using ValTypeB = int8_t; using ValTypeC = int32_t; using FrgTypeA = GMMA::smem_desc; using FrgTypeB = GMMA::smem_desc; using Shape_MNK = Shape<_64,_128,_64>; using ThrID = Layout<_128>; using ALayout = GMMA::ABLayout< 64, 64>; using ELayout = GMMA::ELayout_64x64; using BLayout = GMMA::ABLayout<128, 64>; using CLayout = GMMA::CLayout_64x128; GMMA::ScaleOut accumulate_ = GMMA::ScaleOut::One; }; //////////////////////////////////////////////////////////////////////////////////////////////////// template struct MMA_Traits> { using ValTypeD = int32_t; using ValTypeA = sparse_elem<2, int8_t>; using ValTypeE = sparse_elem<8, uint8_t>; using ValTypeB = int8_t; using ValTypeC = int32_t; using FrgTypeA = GMMA::smem_desc; using FrgTypeB = GMMA::smem_desc; using Shape_MNK = Shape<_64,_192,_64>; using ThrID = Layout<_128>; using ALayout = GMMA::ABLayout< 64, 64>; using ELayout = GMMA::ELayout_64x64; using BLayout = GMMA::ABLayout<192, 64>; using CLayout = GMMA::CLayout_64x192; GMMA::ScaleOut accumulate_ = GMMA::ScaleOut::One; }; //////////////////////////////////////////////////////////////////////////////////////////////////// template struct MMA_Traits> { using ValTypeD = int32_t; using ValTypeA = sparse_elem<2, int8_t>; using ValTypeE = sparse_elem<8, uint8_t>; using ValTypeB = int8_t; using ValTypeC = int32_t; using FrgTypeA = GMMA::smem_desc; using FrgTypeB = GMMA::smem_desc; using Shape_MNK = Shape<_64,_192,_64>; using ThrID = Layout<_128>; using ALayout = GMMA::ABLayout< 64, 64>; using ELayout = GMMA::ELayout_64x64; using BLayout = GMMA::ABLayout<192, 64>; using CLayout = GMMA::CLayout_64x192; GMMA::ScaleOut accumulate_ = GMMA::ScaleOut::One; }; //////////////////////////////////////////////////////////////////////////////////////////////////// template struct MMA_Traits> { using ValTypeD = int32_t; using ValTypeA = sparse_elem<2, int8_t>; using ValTypeE = sparse_elem<8, uint8_t>; using ValTypeB = int8_t; using ValTypeC = int32_t; using FrgTypeA = GMMA::smem_desc; using FrgTypeB = GMMA::smem_desc; using Shape_MNK = Shape<_64,_256,_64>; using ThrID = Layout<_128>; using ALayout = GMMA::ABLayout< 64, 64>; using ELayout = GMMA::ELayout_64x64; using BLayout = GMMA::ABLayout<256, 64>; using CLayout = GMMA::CLayout_64x256; GMMA::ScaleOut accumulate_ = GMMA::ScaleOut::One; }; //////////////////////////////////////////////////////////////////////////////////////////////////// template struct MMA_Traits> { using ValTypeD = int32_t; using ValTypeA = sparse_elem<2, int8_t>; using ValTypeE = sparse_elem<8, uint8_t>; using ValTypeB = int8_t; using ValTypeC = int32_t; using FrgTypeA = GMMA::smem_desc; using FrgTypeB = GMMA::smem_desc; using Shape_MNK = Shape<_64,_256,_64>; using ThrID = Layout<_128>; using ALayout = GMMA::ABLayout< 64, 64>; using ELayout = GMMA::ELayout_64x64; using BLayout = GMMA::ABLayout<256, 64>; using CLayout = GMMA::CLayout_64x256; GMMA::ScaleOut accumulate_ = GMMA::ScaleOut::One; }; //////////////////////////////////////////////////////////////////////////////////////////////////// template struct MMA_Traits> { using ValTypeD = int32_t; using ValTypeA = sparse_elem<2, int8_t>; using ValTypeE = sparse_elem<8, uint8_t>; using ValTypeB = int8_t; using ValTypeC = int32_t; using FrgTypeB = GMMA::smem_desc; using Shape_MNK = Shape<_64,_8,_64>; using ThrID = Layout<_128>; using ALayout = GMMA::ALayout_64x64; using ELayout = GMMA::ELayout_64x64; using BLayout = GMMA::ABLayout< 8, 64>; using CLayout = GMMA::CLayout_64x8; GMMA::ScaleOut accumulate_ = GMMA::ScaleOut::One; }; //////////////////////////////////////////////////////////////////////////////////////////////////// template struct MMA_Traits> { using ValTypeD = int32_t; using ValTypeA = sparse_elem<2, int8_t>; using ValTypeE = sparse_elem<8, uint8_t>; using ValTypeB = int8_t; using ValTypeC = int32_t; using FrgTypeB = GMMA::smem_desc; using Shape_MNK = Shape<_64,_8,_64>; using ThrID = Layout<_128>; using ALayout = GMMA::ALayout_64x64; using ELayout = GMMA::ELayout_64x64; using BLayout = GMMA::ABLayout< 8, 64>; using CLayout = GMMA::CLayout_64x8; GMMA::ScaleOut accumulate_ = GMMA::ScaleOut::One; }; //////////////////////////////////////////////////////////////////////////////////////////////////// template struct MMA_Traits> { using ValTypeD = int32_t; using ValTypeA = sparse_elem<2, int8_t>; using ValTypeE = sparse_elem<8, uint8_t>; using ValTypeB = int8_t; using ValTypeC = int32_t; using FrgTypeB = GMMA::smem_desc; using Shape_MNK = Shape<_64,_16,_64>; using ThrID = Layout<_128>; using ALayout = GMMA::ALayout_64x64; using ELayout = GMMA::ELayout_64x64; using BLayout = GMMA::ABLayout< 16, 64>; using CLayout = GMMA::CLayout_64x16; GMMA::ScaleOut accumulate_ = GMMA::ScaleOut::One; }; //////////////////////////////////////////////////////////////////////////////////////////////////// template struct MMA_Traits> { using ValTypeD = int32_t; using ValTypeA = sparse_elem<2, int8_t>; using ValTypeE = sparse_elem<8, uint8_t>; using ValTypeB = int8_t; using ValTypeC = int32_t; using FrgTypeB = GMMA::smem_desc; using Shape_MNK = Shape<_64,_16,_64>; using ThrID = Layout<_128>; using ALayout = GMMA::ALayout_64x64; using ELayout = GMMA::ELayout_64x64; using BLayout = GMMA::ABLayout< 16, 64>; using CLayout = GMMA::CLayout_64x16; GMMA::ScaleOut accumulate_ = GMMA::ScaleOut::One; }; //////////////////////////////////////////////////////////////////////////////////////////////////// template struct MMA_Traits> { using ValTypeD = int32_t; using ValTypeA = sparse_elem<2, int8_t>; using ValTypeE = sparse_elem<8, uint8_t>; using ValTypeB = int8_t; using ValTypeC = int32_t; using FrgTypeB = GMMA::smem_desc; using Shape_MNK = Shape<_64,_32,_64>; using ThrID = Layout<_128>; using ALayout = GMMA::ALayout_64x64; using ELayout = GMMA::ELayout_64x64; using BLayout = GMMA::ABLayout< 32, 64>; using CLayout = GMMA::CLayout_64x32; GMMA::ScaleOut accumulate_ = GMMA::ScaleOut::One; }; //////////////////////////////////////////////////////////////////////////////////////////////////// template struct MMA_Traits> { using ValTypeD = int32_t; using ValTypeA = sparse_elem<2, int8_t>; using ValTypeE = sparse_elem<8, uint8_t>; using ValTypeB = int8_t; using ValTypeC = int32_t; using FrgTypeB = GMMA::smem_desc; using Shape_MNK = Shape<_64,_32,_64>; using ThrID = Layout<_128>; using ALayout = GMMA::ALayout_64x64; using ELayout = GMMA::ELayout_64x64; using BLayout = GMMA::ABLayout< 32, 64>; using CLayout = GMMA::CLayout_64x32; GMMA::ScaleOut accumulate_ = GMMA::ScaleOut::One; }; //////////////////////////////////////////////////////////////////////////////////////////////////// template struct MMA_Traits> { using ValTypeD = int32_t; using ValTypeA = sparse_elem<2, int8_t>; using ValTypeE = sparse_elem<8, uint8_t>; using ValTypeB = int8_t; using ValTypeC = int32_t; using FrgTypeB = GMMA::smem_desc; using Shape_MNK = Shape<_64,_64,_64>; using ThrID = Layout<_128>; using ALayout = GMMA::ALayout_64x64; using ELayout = GMMA::ELayout_64x64; using BLayout = GMMA::ABLayout< 64, 64>; using CLayout = GMMA::CLayout_64x64; GMMA::ScaleOut accumulate_ = GMMA::ScaleOut::One; }; //////////////////////////////////////////////////////////////////////////////////////////////////// template struct MMA_Traits> { using ValTypeD = int32_t; using ValTypeA = sparse_elem<2, int8_t>; using ValTypeE = sparse_elem<8, uint8_t>; using ValTypeB = int8_t; using ValTypeC = int32_t; using FrgTypeB = GMMA::smem_desc; using Shape_MNK = Shape<_64,_64,_64>; using ThrID = Layout<_128>; using ALayout = GMMA::ALayout_64x64; using ELayout = GMMA::ELayout_64x64; using BLayout = GMMA::ABLayout< 64, 64>; using CLayout = GMMA::CLayout_64x64; GMMA::ScaleOut accumulate_ = GMMA::ScaleOut::One; }; //////////////////////////////////////////////////////////////////////////////////////////////////// template struct MMA_Traits> { using ValTypeD = int32_t; using ValTypeA = sparse_elem<2, int8_t>; using ValTypeE = sparse_elem<8, uint8_t>; using ValTypeB = int8_t; using ValTypeC = int32_t; using FrgTypeB = GMMA::smem_desc; using Shape_MNK = Shape<_64,_96,_64>; using ThrID = Layout<_128>; using ALayout = GMMA::ALayout_64x64; using ELayout = GMMA::ELayout_64x64; using BLayout = GMMA::ABLayout< 96, 64>; using CLayout = GMMA::CLayout_64x96; GMMA::ScaleOut accumulate_ = GMMA::ScaleOut::One; }; //////////////////////////////////////////////////////////////////////////////////////////////////// template struct MMA_Traits> { using ValTypeD = int32_t; using ValTypeA = sparse_elem<2, int8_t>; using ValTypeE = sparse_elem<8, uint8_t>; using ValTypeB = int8_t; using ValTypeC = int32_t; using FrgTypeB = GMMA::smem_desc; using Shape_MNK = Shape<_64,_96,_64>; using ThrID = Layout<_128>; using ALayout = GMMA::ALayout_64x64; using ELayout = GMMA::ELayout_64x64; using BLayout = GMMA::ABLayout< 96, 64>; using CLayout = GMMA::CLayout_64x96; GMMA::ScaleOut accumulate_ = GMMA::ScaleOut::One; }; //////////////////////////////////////////////////////////////////////////////////////////////////// template struct MMA_Traits> { using ValTypeD = int32_t; using ValTypeA = sparse_elem<2, int8_t>; using ValTypeE = sparse_elem<8, uint8_t>; using ValTypeB = int8_t; using ValTypeC = int32_t; using FrgTypeB = GMMA::smem_desc; using Shape_MNK = Shape<_64,_128,_64>; using ThrID = Layout<_128>; using ALayout = GMMA::ALayout_64x64; using ELayout = GMMA::ELayout_64x64; using BLayout = GMMA::ABLayout<128, 64>; using CLayout = GMMA::CLayout_64x128; GMMA::ScaleOut accumulate_ = GMMA::ScaleOut::One; }; //////////////////////////////////////////////////////////////////////////////////////////////////// template struct MMA_Traits> { using ValTypeD = int32_t; using ValTypeA = sparse_elem<2, int8_t>; using ValTypeE = sparse_elem<8, uint8_t>; using ValTypeB = int8_t; using ValTypeC = int32_t; using FrgTypeB = GMMA::smem_desc; using Shape_MNK = Shape<_64,_128,_64>; using ThrID = Layout<_128>; using ALayout = GMMA::ALayout_64x64; using ELayout = GMMA::ELayout_64x64; using BLayout = GMMA::ABLayout<128, 64>; using CLayout = GMMA::CLayout_64x128; GMMA::ScaleOut accumulate_ = GMMA::ScaleOut::One; }; //////////////////////////////////////////////////////////////////////////////////////////////////// template struct MMA_Traits> { using ValTypeD = int32_t; using ValTypeA = sparse_elem<2, int8_t>; using ValTypeE = sparse_elem<8, uint8_t>; using ValTypeB = int8_t; using ValTypeC = int32_t; using FrgTypeB = GMMA::smem_desc; using Shape_MNK = Shape<_64,_192,_64>; using ThrID = Layout<_128>; using ALayout = GMMA::ALayout_64x64; using ELayout = GMMA::ELayout_64x64; using BLayout = GMMA::ABLayout<192, 64>; using CLayout = GMMA::CLayout_64x192; GMMA::ScaleOut accumulate_ = GMMA::ScaleOut::One; }; //////////////////////////////////////////////////////////////////////////////////////////////////// template struct MMA_Traits> { using ValTypeD = int32_t; using ValTypeA = sparse_elem<2, int8_t>; using ValTypeE = sparse_elem<8, uint8_t>; using ValTypeB = int8_t; using ValTypeC = int32_t; using FrgTypeB = GMMA::smem_desc; using Shape_MNK = Shape<_64,_192,_64>; using ThrID = Layout<_128>; using ALayout = GMMA::ALayout_64x64; using ELayout = GMMA::ELayout_64x64; using BLayout = GMMA::ABLayout<192, 64>; using CLayout = GMMA::CLayout_64x192; GMMA::ScaleOut accumulate_ = GMMA::ScaleOut::One; }; //////////////////////////////////////////////////////////////////////////////////////////////////// template struct MMA_Traits> { using ValTypeD = int32_t; using ValTypeA = sparse_elem<2, int8_t>; using ValTypeE = sparse_elem<8, uint8_t>; using ValTypeB = int8_t; using ValTypeC = int32_t; using FrgTypeB = GMMA::smem_desc; using Shape_MNK = Shape<_64,_256,_64>; using ThrID = Layout<_128>; using ALayout = GMMA::ALayout_64x64; using ELayout = GMMA::ELayout_64x64; using BLayout = GMMA::ABLayout<256, 64>; using CLayout = GMMA::CLayout_64x256; GMMA::ScaleOut accumulate_ = GMMA::ScaleOut::One; }; //////////////////////////////////////////////////////////////////////////////////////////////////// template struct MMA_Traits> { using ValTypeD = int32_t; using ValTypeA = sparse_elem<2, int8_t>; using ValTypeE = sparse_elem<8, uint8_t>; using ValTypeB = int8_t; using ValTypeC = int32_t; using FrgTypeB = GMMA::smem_desc; using Shape_MNK = Shape<_64,_256,_64>; using ThrID = Layout<_128>; using ALayout = GMMA::ALayout_64x64; using ELayout = GMMA::ELayout_64x64; using BLayout = GMMA::ABLayout<256, 64>; using CLayout = GMMA::CLayout_64x256; GMMA::ScaleOut accumulate_ = GMMA::ScaleOut::One; }; //////////////////////////////////////////////////////////////////////////////////////////////////// template struct MMA_Traits> { using ValTypeD = int32_t; using ValTypeA = sparse_elem<2, int8_t>; using ValTypeE = sparse_elem<8, uint8_t>; using ValTypeB = uint8_t; using ValTypeC = int32_t; using FrgTypeA = GMMA::smem_desc; using FrgTypeB = GMMA::smem_desc; using Shape_MNK = Shape<_64,_8,_64>; using ThrID = Layout<_128>; using ALayout = GMMA::ABLayout< 64, 64>; using ELayout = GMMA::ELayout_64x64; using BLayout = GMMA::ABLayout< 8, 64>; using CLayout = GMMA::CLayout_64x8; GMMA::ScaleOut accumulate_ = GMMA::ScaleOut::One; }; //////////////////////////////////////////////////////////////////////////////////////////////////// template struct MMA_Traits> { using ValTypeD = int32_t; using ValTypeA = sparse_elem<2, int8_t>; using ValTypeE = sparse_elem<8, uint8_t>; using ValTypeB = uint8_t; using ValTypeC = int32_t; using FrgTypeA = GMMA::smem_desc; using FrgTypeB = GMMA::smem_desc; using Shape_MNK = Shape<_64,_8,_64>; using ThrID = Layout<_128>; using ALayout = GMMA::ABLayout< 64, 64>; using ELayout = GMMA::ELayout_64x64; using BLayout = GMMA::ABLayout< 8, 64>; using CLayout = GMMA::CLayout_64x8; GMMA::ScaleOut accumulate_ = GMMA::ScaleOut::One; }; //////////////////////////////////////////////////////////////////////////////////////////////////// template struct MMA_Traits> { using ValTypeD = int32_t; using ValTypeA = sparse_elem<2, int8_t>; using ValTypeE = sparse_elem<8, uint8_t>; using ValTypeB = uint8_t; using ValTypeC = int32_t; using FrgTypeA = GMMA::smem_desc; using FrgTypeB = GMMA::smem_desc; using Shape_MNK = Shape<_64,_16,_64>; using ThrID = Layout<_128>; using ALayout = GMMA::ABLayout< 64, 64>; using ELayout = GMMA::ELayout_64x64; using BLayout = GMMA::ABLayout< 16, 64>; using CLayout = GMMA::CLayout_64x16; GMMA::ScaleOut accumulate_ = GMMA::ScaleOut::One; }; //////////////////////////////////////////////////////////////////////////////////////////////////// template struct MMA_Traits> { using ValTypeD = int32_t; using ValTypeA = sparse_elem<2, int8_t>; using ValTypeE = sparse_elem<8, uint8_t>; using ValTypeB = uint8_t; using ValTypeC = int32_t; using FrgTypeA = GMMA::smem_desc; using FrgTypeB = GMMA::smem_desc; using Shape_MNK = Shape<_64,_16,_64>; using ThrID = Layout<_128>; using ALayout = GMMA::ABLayout< 64, 64>; using ELayout = GMMA::ELayout_64x64; using BLayout = GMMA::ABLayout< 16, 64>; using CLayout = GMMA::CLayout_64x16; GMMA::ScaleOut accumulate_ = GMMA::ScaleOut::One; }; //////////////////////////////////////////////////////////////////////////////////////////////////// template struct MMA_Traits> { using ValTypeD = int32_t; using ValTypeA = sparse_elem<2, int8_t>; using ValTypeE = sparse_elem<8, uint8_t>; using ValTypeB = uint8_t; using ValTypeC = int32_t; using FrgTypeA = GMMA::smem_desc; using FrgTypeB = GMMA::smem_desc; using Shape_MNK = Shape<_64,_32,_64>; using ThrID = Layout<_128>; using ALayout = GMMA::ABLayout< 64, 64>; using ELayout = GMMA::ELayout_64x64; using BLayout = GMMA::ABLayout< 32, 64>; using CLayout = GMMA::CLayout_64x32; GMMA::ScaleOut accumulate_ = GMMA::ScaleOut::One; }; //////////////////////////////////////////////////////////////////////////////////////////////////// template struct MMA_Traits> { using ValTypeD = int32_t; using ValTypeA = sparse_elem<2, int8_t>; using ValTypeE = sparse_elem<8, uint8_t>; using ValTypeB = uint8_t; using ValTypeC = int32_t; using FrgTypeA = GMMA::smem_desc; using FrgTypeB = GMMA::smem_desc; using Shape_MNK = Shape<_64,_32,_64>; using ThrID = Layout<_128>; using ALayout = GMMA::ABLayout< 64, 64>; using ELayout = GMMA::ELayout_64x64; using BLayout = GMMA::ABLayout< 32, 64>; using CLayout = GMMA::CLayout_64x32; GMMA::ScaleOut accumulate_ = GMMA::ScaleOut::One; }; //////////////////////////////////////////////////////////////////////////////////////////////////// template struct MMA_Traits> { using ValTypeD = int32_t; using ValTypeA = sparse_elem<2, int8_t>; using ValTypeE = sparse_elem<8, uint8_t>; using ValTypeB = uint8_t; using ValTypeC = int32_t; using FrgTypeA = GMMA::smem_desc; using FrgTypeB = GMMA::smem_desc; using Shape_MNK = Shape<_64,_64,_64>; using ThrID = Layout<_128>; using ALayout = GMMA::ABLayout< 64, 64>; using ELayout = GMMA::ELayout_64x64; using BLayout = GMMA::ABLayout< 64, 64>; using CLayout = GMMA::CLayout_64x64; GMMA::ScaleOut accumulate_ = GMMA::ScaleOut::One; }; //////////////////////////////////////////////////////////////////////////////////////////////////// template struct MMA_Traits> { using ValTypeD = int32_t; using ValTypeA = sparse_elem<2, int8_t>; using ValTypeE = sparse_elem<8, uint8_t>; using ValTypeB = uint8_t; using ValTypeC = int32_t; using FrgTypeA = GMMA::smem_desc; using FrgTypeB = GMMA::smem_desc; using Shape_MNK = Shape<_64,_64,_64>; using ThrID = Layout<_128>; using ALayout = GMMA::ABLayout< 64, 64>; using ELayout = GMMA::ELayout_64x64; using BLayout = GMMA::ABLayout< 64, 64>; using CLayout = GMMA::CLayout_64x64; GMMA::ScaleOut accumulate_ = GMMA::ScaleOut::One; }; //////////////////////////////////////////////////////////////////////////////////////////////////// template struct MMA_Traits> { using ValTypeD = int32_t; using ValTypeA = sparse_elem<2, int8_t>; using ValTypeE = sparse_elem<8, uint8_t>; using ValTypeB = uint8_t; using ValTypeC = int32_t; using FrgTypeA = GMMA::smem_desc; using FrgTypeB = GMMA::smem_desc; using Shape_MNK = Shape<_64,_96,_64>; using ThrID = Layout<_128>; using ALayout = GMMA::ABLayout< 64, 64>; using ELayout = GMMA::ELayout_64x64; using BLayout = GMMA::ABLayout< 96, 64>; using CLayout = GMMA::CLayout_64x96; GMMA::ScaleOut accumulate_ = GMMA::ScaleOut::One; }; //////////////////////////////////////////////////////////////////////////////////////////////////// template struct MMA_Traits> { using ValTypeD = int32_t; using ValTypeA = sparse_elem<2, int8_t>; using ValTypeE = sparse_elem<8, uint8_t>; using ValTypeB = uint8_t; using ValTypeC = int32_t; using FrgTypeA = GMMA::smem_desc; using FrgTypeB = GMMA::smem_desc; using Shape_MNK = Shape<_64,_96,_64>; using ThrID = Layout<_128>; using ALayout = GMMA::ABLayout< 64, 64>; using ELayout = GMMA::ELayout_64x64; using BLayout = GMMA::ABLayout< 96, 64>; using CLayout = GMMA::CLayout_64x96; GMMA::ScaleOut accumulate_ = GMMA::ScaleOut::One; }; //////////////////////////////////////////////////////////////////////////////////////////////////// template struct MMA_Traits> { using ValTypeD = int32_t; using ValTypeA = sparse_elem<2, int8_t>; using ValTypeE = sparse_elem<8, uint8_t>; using ValTypeB = uint8_t; using ValTypeC = int32_t; using FrgTypeA = GMMA::smem_desc; using FrgTypeB = GMMA::smem_desc; using Shape_MNK = Shape<_64,_128,_64>; using ThrID = Layout<_128>; using ALayout = GMMA::ABLayout< 64, 64>; using ELayout = GMMA::ELayout_64x64; using BLayout = GMMA::ABLayout<128, 64>; using CLayout = GMMA::CLayout_64x128; GMMA::ScaleOut accumulate_ = GMMA::ScaleOut::One; }; //////////////////////////////////////////////////////////////////////////////////////////////////// template struct MMA_Traits> { using ValTypeD = int32_t; using ValTypeA = sparse_elem<2, int8_t>; using ValTypeE = sparse_elem<8, uint8_t>; using ValTypeB = uint8_t; using ValTypeC = int32_t; using FrgTypeA = GMMA::smem_desc; using FrgTypeB = GMMA::smem_desc; using Shape_MNK = Shape<_64,_128,_64>; using ThrID = Layout<_128>; using ALayout = GMMA::ABLayout< 64, 64>; using ELayout = GMMA::ELayout_64x64; using BLayout = GMMA::ABLayout<128, 64>; using CLayout = GMMA::CLayout_64x128; GMMA::ScaleOut accumulate_ = GMMA::ScaleOut::One; }; //////////////////////////////////////////////////////////////////////////////////////////////////// template struct MMA_Traits> { using ValTypeD = int32_t; using ValTypeA = sparse_elem<2, int8_t>; using ValTypeE = sparse_elem<8, uint8_t>; using ValTypeB = uint8_t; using ValTypeC = int32_t; using FrgTypeA = GMMA::smem_desc; using FrgTypeB = GMMA::smem_desc; using Shape_MNK = Shape<_64,_192,_64>; using ThrID = Layout<_128>; using ALayout = GMMA::ABLayout< 64, 64>; using ELayout = GMMA::ELayout_64x64; using BLayout = GMMA::ABLayout<192, 64>; using CLayout = GMMA::CLayout_64x192; GMMA::ScaleOut accumulate_ = GMMA::ScaleOut::One; }; //////////////////////////////////////////////////////////////////////////////////////////////////// template struct MMA_Traits> { using ValTypeD = int32_t; using ValTypeA = sparse_elem<2, int8_t>; using ValTypeE = sparse_elem<8, uint8_t>; using ValTypeB = uint8_t; using ValTypeC = int32_t; using FrgTypeA = GMMA::smem_desc; using FrgTypeB = GMMA::smem_desc; using Shape_MNK = Shape<_64,_192,_64>; using ThrID = Layout<_128>; using ALayout = GMMA::ABLayout< 64, 64>; using ELayout = GMMA::ELayout_64x64; using BLayout = GMMA::ABLayout<192, 64>; using CLayout = GMMA::CLayout_64x192; GMMA::ScaleOut accumulate_ = GMMA::ScaleOut::One; }; //////////////////////////////////////////////////////////////////////////////////////////////////// template struct MMA_Traits> { using ValTypeD = int32_t; using ValTypeA = sparse_elem<2, int8_t>; using ValTypeE = sparse_elem<8, uint8_t>; using ValTypeB = uint8_t; using ValTypeC = int32_t; using FrgTypeA = GMMA::smem_desc; using FrgTypeB = GMMA::smem_desc; using Shape_MNK = Shape<_64,_256,_64>; using ThrID = Layout<_128>; using ALayout = GMMA::ABLayout< 64, 64>; using ELayout = GMMA::ELayout_64x64; using BLayout = GMMA::ABLayout<256, 64>; using CLayout = GMMA::CLayout_64x256; GMMA::ScaleOut accumulate_ = GMMA::ScaleOut::One; }; //////////////////////////////////////////////////////////////////////////////////////////////////// template struct MMA_Traits> { using ValTypeD = int32_t; using ValTypeA = sparse_elem<2, int8_t>; using ValTypeE = sparse_elem<8, uint8_t>; using ValTypeB = uint8_t; using ValTypeC = int32_t; using FrgTypeA = GMMA::smem_desc; using FrgTypeB = GMMA::smem_desc; using Shape_MNK = Shape<_64,_256,_64>; using ThrID = Layout<_128>; using ALayout = GMMA::ABLayout< 64, 64>; using ELayout = GMMA::ELayout_64x64; using BLayout = GMMA::ABLayout<256, 64>; using CLayout = GMMA::CLayout_64x256; GMMA::ScaleOut accumulate_ = GMMA::ScaleOut::One; }; //////////////////////////////////////////////////////////////////////////////////////////////////// template struct MMA_Traits> { using ValTypeD = int32_t; using ValTypeA = sparse_elem<2, int8_t>; using ValTypeE = sparse_elem<8, uint8_t>; using ValTypeB = uint8_t; using ValTypeC = int32_t; using FrgTypeB = GMMA::smem_desc; using Shape_MNK = Shape<_64,_8,_64>; using ThrID = Layout<_128>; using ALayout = GMMA::ALayout_64x64; using ELayout = GMMA::ELayout_64x64; using BLayout = GMMA::ABLayout< 8, 64>; using CLayout = GMMA::CLayout_64x8; GMMA::ScaleOut accumulate_ = GMMA::ScaleOut::One; }; //////////////////////////////////////////////////////////////////////////////////////////////////// template struct MMA_Traits> { using ValTypeD = int32_t; using ValTypeA = sparse_elem<2, int8_t>; using ValTypeE = sparse_elem<8, uint8_t>; using ValTypeB = uint8_t; using ValTypeC = int32_t; using FrgTypeB = GMMA::smem_desc; using Shape_MNK = Shape<_64,_8,_64>; using ThrID = Layout<_128>; using ALayout = GMMA::ALayout_64x64; using ELayout = GMMA::ELayout_64x64; using BLayout = GMMA::ABLayout< 8, 64>; using CLayout = GMMA::CLayout_64x8; GMMA::ScaleOut accumulate_ = GMMA::ScaleOut::One; }; //////////////////////////////////////////////////////////////////////////////////////////////////// template struct MMA_Traits> { using ValTypeD = int32_t; using ValTypeA = sparse_elem<2, int8_t>; using ValTypeE = sparse_elem<8, uint8_t>; using ValTypeB = uint8_t; using ValTypeC = int32_t; using FrgTypeB = GMMA::smem_desc; using Shape_MNK = Shape<_64,_16,_64>; using ThrID = Layout<_128>; using ALayout = GMMA::ALayout_64x64; using ELayout = GMMA::ELayout_64x64; using BLayout = GMMA::ABLayout< 16, 64>; using CLayout = GMMA::CLayout_64x16; GMMA::ScaleOut accumulate_ = GMMA::ScaleOut::One; }; //////////////////////////////////////////////////////////////////////////////////////////////////// template struct MMA_Traits> { using ValTypeD = int32_t; using ValTypeA = sparse_elem<2, int8_t>; using ValTypeE = sparse_elem<8, uint8_t>; using ValTypeB = uint8_t; using ValTypeC = int32_t; using FrgTypeB = GMMA::smem_desc; using Shape_MNK = Shape<_64,_16,_64>; using ThrID = Layout<_128>; using ALayout = GMMA::ALayout_64x64; using ELayout = GMMA::ELayout_64x64; using BLayout = GMMA::ABLayout< 16, 64>; using CLayout = GMMA::CLayout_64x16; GMMA::ScaleOut accumulate_ = GMMA::ScaleOut::One; }; //////////////////////////////////////////////////////////////////////////////////////////////////// template struct MMA_Traits> { using ValTypeD = int32_t; using ValTypeA = sparse_elem<2, int8_t>; using ValTypeE = sparse_elem<8, uint8_t>; using ValTypeB = uint8_t; using ValTypeC = int32_t; using FrgTypeB = GMMA::smem_desc; using Shape_MNK = Shape<_64,_32,_64>; using ThrID = Layout<_128>; using ALayout = GMMA::ALayout_64x64; using ELayout = GMMA::ELayout_64x64; using BLayout = GMMA::ABLayout< 32, 64>; using CLayout = GMMA::CLayout_64x32; GMMA::ScaleOut accumulate_ = GMMA::ScaleOut::One; }; //////////////////////////////////////////////////////////////////////////////////////////////////// template struct MMA_Traits> { using ValTypeD = int32_t; using ValTypeA = sparse_elem<2, int8_t>; using ValTypeE = sparse_elem<8, uint8_t>; using ValTypeB = uint8_t; using ValTypeC = int32_t; using FrgTypeB = GMMA::smem_desc; using Shape_MNK = Shape<_64,_32,_64>; using ThrID = Layout<_128>; using ALayout = GMMA::ALayout_64x64; using ELayout = GMMA::ELayout_64x64; using BLayout = GMMA::ABLayout< 32, 64>; using CLayout = GMMA::CLayout_64x32; GMMA::ScaleOut accumulate_ = GMMA::ScaleOut::One; }; //////////////////////////////////////////////////////////////////////////////////////////////////// template struct MMA_Traits> { using ValTypeD = int32_t; using ValTypeA = sparse_elem<2, int8_t>; using ValTypeE = sparse_elem<8, uint8_t>; using ValTypeB = uint8_t; using ValTypeC = int32_t; using FrgTypeB = GMMA::smem_desc; using Shape_MNK = Shape<_64,_64,_64>; using ThrID = Layout<_128>; using ALayout = GMMA::ALayout_64x64; using ELayout = GMMA::ELayout_64x64; using BLayout = GMMA::ABLayout< 64, 64>; using CLayout = GMMA::CLayout_64x64; GMMA::ScaleOut accumulate_ = GMMA::ScaleOut::One; }; //////////////////////////////////////////////////////////////////////////////////////////////////// template struct MMA_Traits> { using ValTypeD = int32_t; using ValTypeA = sparse_elem<2, int8_t>; using ValTypeE = sparse_elem<8, uint8_t>; using ValTypeB = uint8_t; using ValTypeC = int32_t; using FrgTypeB = GMMA::smem_desc; using Shape_MNK = Shape<_64,_64,_64>; using ThrID = Layout<_128>; using ALayout = GMMA::ALayout_64x64; using ELayout = GMMA::ELayout_64x64; using BLayout = GMMA::ABLayout< 64, 64>; using CLayout = GMMA::CLayout_64x64; GMMA::ScaleOut accumulate_ = GMMA::ScaleOut::One; }; //////////////////////////////////////////////////////////////////////////////////////////////////// template struct MMA_Traits> { using ValTypeD = int32_t; using ValTypeA = sparse_elem<2, int8_t>; using ValTypeE = sparse_elem<8, uint8_t>; using ValTypeB = uint8_t; using ValTypeC = int32_t; using FrgTypeB = GMMA::smem_desc; using Shape_MNK = Shape<_64,_96,_64>; using ThrID = Layout<_128>; using ALayout = GMMA::ALayout_64x64; using ELayout = GMMA::ELayout_64x64; using BLayout = GMMA::ABLayout< 96, 64>; using CLayout = GMMA::CLayout_64x96; GMMA::ScaleOut accumulate_ = GMMA::ScaleOut::One; }; //////////////////////////////////////////////////////////////////////////////////////////////////// template struct MMA_Traits> { using ValTypeD = int32_t; using ValTypeA = sparse_elem<2, int8_t>; using ValTypeE = sparse_elem<8, uint8_t>; using ValTypeB = uint8_t; using ValTypeC = int32_t; using FrgTypeB = GMMA::smem_desc; using Shape_MNK = Shape<_64,_96,_64>; using ThrID = Layout<_128>; using ALayout = GMMA::ALayout_64x64; using ELayout = GMMA::ELayout_64x64; using BLayout = GMMA::ABLayout< 96, 64>; using CLayout = GMMA::CLayout_64x96; GMMA::ScaleOut accumulate_ = GMMA::ScaleOut::One; }; //////////////////////////////////////////////////////////////////////////////////////////////////// template struct MMA_Traits> { using ValTypeD = int32_t; using ValTypeA = sparse_elem<2, int8_t>; using ValTypeE = sparse_elem<8, uint8_t>; using ValTypeB = uint8_t; using ValTypeC = int32_t; using FrgTypeB = GMMA::smem_desc; using Shape_MNK = Shape<_64,_128,_64>; using ThrID = Layout<_128>; using ALayout = GMMA::ALayout_64x64; using ELayout = GMMA::ELayout_64x64; using BLayout = GMMA::ABLayout<128, 64>; using CLayout = GMMA::CLayout_64x128; GMMA::ScaleOut accumulate_ = GMMA::ScaleOut::One; }; //////////////////////////////////////////////////////////////////////////////////////////////////// template struct MMA_Traits> { using ValTypeD = int32_t; using ValTypeA = sparse_elem<2, int8_t>; using ValTypeE = sparse_elem<8, uint8_t>; using ValTypeB = uint8_t; using ValTypeC = int32_t; using FrgTypeB = GMMA::smem_desc; using Shape_MNK = Shape<_64,_128,_64>; using ThrID = Layout<_128>; using ALayout = GMMA::ALayout_64x64; using ELayout = GMMA::ELayout_64x64; using BLayout = GMMA::ABLayout<128, 64>; using CLayout = GMMA::CLayout_64x128; GMMA::ScaleOut accumulate_ = GMMA::ScaleOut::One; }; //////////////////////////////////////////////////////////////////////////////////////////////////// template struct MMA_Traits> { using ValTypeD = int32_t; using ValTypeA = sparse_elem<2, int8_t>; using ValTypeE = sparse_elem<8, uint8_t>; using ValTypeB = uint8_t; using ValTypeC = int32_t; using FrgTypeB = GMMA::smem_desc; using Shape_MNK = Shape<_64,_192,_64>; using ThrID = Layout<_128>; using ALayout = GMMA::ALayout_64x64; using ELayout = GMMA::ELayout_64x64; using BLayout = GMMA::ABLayout<192, 64>; using CLayout = GMMA::CLayout_64x192; GMMA::ScaleOut accumulate_ = GMMA::ScaleOut::One; }; //////////////////////////////////////////////////////////////////////////////////////////////////// template struct MMA_Traits> { using ValTypeD = int32_t; using ValTypeA = sparse_elem<2, int8_t>; using ValTypeE = sparse_elem<8, uint8_t>; using ValTypeB = uint8_t; using ValTypeC = int32_t; using FrgTypeB = GMMA::smem_desc; using Shape_MNK = Shape<_64,_192,_64>; using ThrID = Layout<_128>; using ALayout = GMMA::ALayout_64x64; using ELayout = GMMA::ELayout_64x64; using BLayout = GMMA::ABLayout<192, 64>; using CLayout = GMMA::CLayout_64x192; GMMA::ScaleOut accumulate_ = GMMA::ScaleOut::One; }; //////////////////////////////////////////////////////////////////////////////////////////////////// template struct MMA_Traits> { using ValTypeD = int32_t; using ValTypeA = sparse_elem<2, int8_t>; using ValTypeE = sparse_elem<8, uint8_t>; using ValTypeB = uint8_t; using ValTypeC = int32_t; using FrgTypeB = GMMA::smem_desc; using Shape_MNK = Shape<_64,_256,_64>; using ThrID = Layout<_128>; using ALayout = GMMA::ALayout_64x64; using ELayout = GMMA::ELayout_64x64; using BLayout = GMMA::ABLayout<256, 64>; using CLayout = GMMA::CLayout_64x256; GMMA::ScaleOut accumulate_ = GMMA::ScaleOut::One; }; //////////////////////////////////////////////////////////////////////////////////////////////////// template struct MMA_Traits> { using ValTypeD = int32_t; using ValTypeA = sparse_elem<2, int8_t>; using ValTypeE = sparse_elem<8, uint8_t>; using ValTypeB = uint8_t; using ValTypeC = int32_t; using FrgTypeB = GMMA::smem_desc; using Shape_MNK = Shape<_64,_256,_64>; using ThrID = Layout<_128>; using ALayout = GMMA::ALayout_64x64; using ELayout = GMMA::ELayout_64x64; using BLayout = GMMA::ABLayout<256, 64>; using CLayout = GMMA::CLayout_64x256; GMMA::ScaleOut accumulate_ = GMMA::ScaleOut::One; }; //////////////////////////////////////////////////////////////////////////////////////////////////// template struct MMA_Traits> { using ValTypeD = int32_t; using ValTypeA = sparse_elem<2, uint8_t>; using ValTypeE = sparse_elem<8, uint8_t>; using ValTypeB = int8_t; using ValTypeC = int32_t; using FrgTypeA = GMMA::smem_desc; using FrgTypeB = GMMA::smem_desc; using Shape_MNK = Shape<_64,_8,_64>; using ThrID = Layout<_128>; using ALayout = GMMA::ABLayout< 64, 64>; using ELayout = GMMA::ELayout_64x64; using BLayout = GMMA::ABLayout< 8, 64>; using CLayout = GMMA::CLayout_64x8; GMMA::ScaleOut accumulate_ = GMMA::ScaleOut::One; }; //////////////////////////////////////////////////////////////////////////////////////////////////// template struct MMA_Traits> { using ValTypeD = int32_t; using ValTypeA = sparse_elem<2, uint8_t>; using ValTypeE = sparse_elem<8, uint8_t>; using ValTypeB = int8_t; using ValTypeC = int32_t; using FrgTypeA = GMMA::smem_desc; using FrgTypeB = GMMA::smem_desc; using Shape_MNK = Shape<_64,_8,_64>; using ThrID = Layout<_128>; using ALayout = GMMA::ABLayout< 64, 64>; using ELayout = GMMA::ELayout_64x64; using BLayout = GMMA::ABLayout< 8, 64>; using CLayout = GMMA::CLayout_64x8; GMMA::ScaleOut accumulate_ = GMMA::ScaleOut::One; }; //////////////////////////////////////////////////////////////////////////////////////////////////// template struct MMA_Traits> { using ValTypeD = int32_t; using ValTypeA = sparse_elem<2, uint8_t>; using ValTypeE = sparse_elem<8, uint8_t>; using ValTypeB = int8_t; using ValTypeC = int32_t; using FrgTypeA = GMMA::smem_desc; using FrgTypeB = GMMA::smem_desc; using Shape_MNK = Shape<_64,_16,_64>; using ThrID = Layout<_128>; using ALayout = GMMA::ABLayout< 64, 64>; using ELayout = GMMA::ELayout_64x64; using BLayout = GMMA::ABLayout< 16, 64>; using CLayout = GMMA::CLayout_64x16; GMMA::ScaleOut accumulate_ = GMMA::ScaleOut::One; }; //////////////////////////////////////////////////////////////////////////////////////////////////// template struct MMA_Traits> { using ValTypeD = int32_t; using ValTypeA = sparse_elem<2, uint8_t>; using ValTypeE = sparse_elem<8, uint8_t>; using ValTypeB = int8_t; using ValTypeC = int32_t; using FrgTypeA = GMMA::smem_desc; using FrgTypeB = GMMA::smem_desc; using Shape_MNK = Shape<_64,_16,_64>; using ThrID = Layout<_128>; using ALayout = GMMA::ABLayout< 64, 64>; using ELayout = GMMA::ELayout_64x64; using BLayout = GMMA::ABLayout< 16, 64>; using CLayout = GMMA::CLayout_64x16; GMMA::ScaleOut accumulate_ = GMMA::ScaleOut::One; }; //////////////////////////////////////////////////////////////////////////////////////////////////// template struct MMA_Traits> { using ValTypeD = int32_t; using ValTypeA = sparse_elem<2, uint8_t>; using ValTypeE = sparse_elem<8, uint8_t>; using ValTypeB = int8_t; using ValTypeC = int32_t; using FrgTypeA = GMMA::smem_desc; using FrgTypeB = GMMA::smem_desc; using Shape_MNK = Shape<_64,_32,_64>; using ThrID = Layout<_128>; using ALayout = GMMA::ABLayout< 64, 64>; using ELayout = GMMA::ELayout_64x64; using BLayout = GMMA::ABLayout< 32, 64>; using CLayout = GMMA::CLayout_64x32; GMMA::ScaleOut accumulate_ = GMMA::ScaleOut::One; }; //////////////////////////////////////////////////////////////////////////////////////////////////// template struct MMA_Traits> { using ValTypeD = int32_t; using ValTypeA = sparse_elem<2, uint8_t>; using ValTypeE = sparse_elem<8, uint8_t>; using ValTypeB = int8_t; using ValTypeC = int32_t; using FrgTypeA = GMMA::smem_desc; using FrgTypeB = GMMA::smem_desc; using Shape_MNK = Shape<_64,_32,_64>; using ThrID = Layout<_128>; using ALayout = GMMA::ABLayout< 64, 64>; using ELayout = GMMA::ELayout_64x64; using BLayout = GMMA::ABLayout< 32, 64>; using CLayout = GMMA::CLayout_64x32; GMMA::ScaleOut accumulate_ = GMMA::ScaleOut::One; }; //////////////////////////////////////////////////////////////////////////////////////////////////// template struct MMA_Traits> { using ValTypeD = int32_t; using ValTypeA = sparse_elem<2, uint8_t>; using ValTypeE = sparse_elem<8, uint8_t>; using ValTypeB = int8_t; using ValTypeC = int32_t; using FrgTypeA = GMMA::smem_desc; using FrgTypeB = GMMA::smem_desc; using Shape_MNK = Shape<_64,_64,_64>; using ThrID = Layout<_128>; using ALayout = GMMA::ABLayout< 64, 64>; using ELayout = GMMA::ELayout_64x64; using BLayout = GMMA::ABLayout< 64, 64>; using CLayout = GMMA::CLayout_64x64; GMMA::ScaleOut accumulate_ = GMMA::ScaleOut::One; }; //////////////////////////////////////////////////////////////////////////////////////////////////// template struct MMA_Traits> { using ValTypeD = int32_t; using ValTypeA = sparse_elem<2, uint8_t>; using ValTypeE = sparse_elem<8, uint8_t>; using ValTypeB = int8_t; using ValTypeC = int32_t; using FrgTypeA = GMMA::smem_desc; using FrgTypeB = GMMA::smem_desc; using Shape_MNK = Shape<_64,_64,_64>; using ThrID = Layout<_128>; using ALayout = GMMA::ABLayout< 64, 64>; using ELayout = GMMA::ELayout_64x64; using BLayout = GMMA::ABLayout< 64, 64>; using CLayout = GMMA::CLayout_64x64; GMMA::ScaleOut accumulate_ = GMMA::ScaleOut::One; }; //////////////////////////////////////////////////////////////////////////////////////////////////// template struct MMA_Traits> { using ValTypeD = int32_t; using ValTypeA = sparse_elem<2, uint8_t>; using ValTypeE = sparse_elem<8, uint8_t>; using ValTypeB = int8_t; using ValTypeC = int32_t; using FrgTypeA = GMMA::smem_desc; using FrgTypeB = GMMA::smem_desc; using Shape_MNK = Shape<_64,_96,_64>; using ThrID = Layout<_128>; using ALayout = GMMA::ABLayout< 64, 64>; using ELayout = GMMA::ELayout_64x64; using BLayout = GMMA::ABLayout< 96, 64>; using CLayout = GMMA::CLayout_64x96; GMMA::ScaleOut accumulate_ = GMMA::ScaleOut::One; }; //////////////////////////////////////////////////////////////////////////////////////////////////// template struct MMA_Traits> { using ValTypeD = int32_t; using ValTypeA = sparse_elem<2, uint8_t>; using ValTypeE = sparse_elem<8, uint8_t>; using ValTypeB = int8_t; using ValTypeC = int32_t; using FrgTypeA = GMMA::smem_desc; using FrgTypeB = GMMA::smem_desc; using Shape_MNK = Shape<_64,_96,_64>; using ThrID = Layout<_128>; using ALayout = GMMA::ABLayout< 64, 64>; using ELayout = GMMA::ELayout_64x64; using BLayout = GMMA::ABLayout< 96, 64>; using CLayout = GMMA::CLayout_64x96; GMMA::ScaleOut accumulate_ = GMMA::ScaleOut::One; }; //////////////////////////////////////////////////////////////////////////////////////////////////// template struct MMA_Traits> { using ValTypeD = int32_t; using ValTypeA = sparse_elem<2, uint8_t>; using ValTypeE = sparse_elem<8, uint8_t>; using ValTypeB = int8_t; using ValTypeC = int32_t; using FrgTypeA = GMMA::smem_desc; using FrgTypeB = GMMA::smem_desc; using Shape_MNK = Shape<_64,_128,_64>; using ThrID = Layout<_128>; using ALayout = GMMA::ABLayout< 64, 64>; using ELayout = GMMA::ELayout_64x64; using BLayout = GMMA::ABLayout<128, 64>; using CLayout = GMMA::CLayout_64x128; GMMA::ScaleOut accumulate_ = GMMA::ScaleOut::One; }; //////////////////////////////////////////////////////////////////////////////////////////////////// template struct MMA_Traits> { using ValTypeD = int32_t; using ValTypeA = sparse_elem<2, uint8_t>; using ValTypeE = sparse_elem<8, uint8_t>; using ValTypeB = int8_t; using ValTypeC = int32_t; using FrgTypeA = GMMA::smem_desc; using FrgTypeB = GMMA::smem_desc; using Shape_MNK = Shape<_64,_128,_64>; using ThrID = Layout<_128>; using ALayout = GMMA::ABLayout< 64, 64>; using ELayout = GMMA::ELayout_64x64; using BLayout = GMMA::ABLayout<128, 64>; using CLayout = GMMA::CLayout_64x128; GMMA::ScaleOut accumulate_ = GMMA::ScaleOut::One; }; //////////////////////////////////////////////////////////////////////////////////////////////////// template struct MMA_Traits> { using ValTypeD = int32_t; using ValTypeA = sparse_elem<2, uint8_t>; using ValTypeE = sparse_elem<8, uint8_t>; using ValTypeB = int8_t; using ValTypeC = int32_t; using FrgTypeA = GMMA::smem_desc; using FrgTypeB = GMMA::smem_desc; using Shape_MNK = Shape<_64,_192,_64>; using ThrID = Layout<_128>; using ALayout = GMMA::ABLayout< 64, 64>; using ELayout = GMMA::ELayout_64x64; using BLayout = GMMA::ABLayout<192, 64>; using CLayout = GMMA::CLayout_64x192; GMMA::ScaleOut accumulate_ = GMMA::ScaleOut::One; }; //////////////////////////////////////////////////////////////////////////////////////////////////// template struct MMA_Traits> { using ValTypeD = int32_t; using ValTypeA = sparse_elem<2, uint8_t>; using ValTypeE = sparse_elem<8, uint8_t>; using ValTypeB = int8_t; using ValTypeC = int32_t; using FrgTypeA = GMMA::smem_desc; using FrgTypeB = GMMA::smem_desc; using Shape_MNK = Shape<_64,_192,_64>; using ThrID = Layout<_128>; using ALayout = GMMA::ABLayout< 64, 64>; using ELayout = GMMA::ELayout_64x64; using BLayout = GMMA::ABLayout<192, 64>; using CLayout = GMMA::CLayout_64x192; GMMA::ScaleOut accumulate_ = GMMA::ScaleOut::One; }; //////////////////////////////////////////////////////////////////////////////////////////////////// template struct MMA_Traits> { using ValTypeD = int32_t; using ValTypeA = sparse_elem<2, uint8_t>; using ValTypeE = sparse_elem<8, uint8_t>; using ValTypeB = int8_t; using ValTypeC = int32_t; using FrgTypeA = GMMA::smem_desc; using FrgTypeB = GMMA::smem_desc; using Shape_MNK = Shape<_64,_256,_64>; using ThrID = Layout<_128>; using ALayout = GMMA::ABLayout< 64, 64>; using ELayout = GMMA::ELayout_64x64; using BLayout = GMMA::ABLayout<256, 64>; using CLayout = GMMA::CLayout_64x256; GMMA::ScaleOut accumulate_ = GMMA::ScaleOut::One; }; //////////////////////////////////////////////////////////////////////////////////////////////////// template struct MMA_Traits> { using ValTypeD = int32_t; using ValTypeA = sparse_elem<2, uint8_t>; using ValTypeE = sparse_elem<8, uint8_t>; using ValTypeB = int8_t; using ValTypeC = int32_t; using FrgTypeA = GMMA::smem_desc; using FrgTypeB = GMMA::smem_desc; using Shape_MNK = Shape<_64,_256,_64>; using ThrID = Layout<_128>; using ALayout = GMMA::ABLayout< 64, 64>; using ELayout = GMMA::ELayout_64x64; using BLayout = GMMA::ABLayout<256, 64>; using CLayout = GMMA::CLayout_64x256; GMMA::ScaleOut accumulate_ = GMMA::ScaleOut::One; }; //////////////////////////////////////////////////////////////////////////////////////////////////// template struct MMA_Traits> { using ValTypeD = int32_t; using ValTypeA = sparse_elem<2, uint8_t>; using ValTypeE = sparse_elem<8, uint8_t>; using ValTypeB = int8_t; using ValTypeC = int32_t; using FrgTypeB = GMMA::smem_desc; using Shape_MNK = Shape<_64,_8,_64>; using ThrID = Layout<_128>; using ALayout = GMMA::ALayout_64x64; using ELayout = GMMA::ELayout_64x64; using BLayout = GMMA::ABLayout< 8, 64>; using CLayout = GMMA::CLayout_64x8; GMMA::ScaleOut accumulate_ = GMMA::ScaleOut::One; }; //////////////////////////////////////////////////////////////////////////////////////////////////// template struct MMA_Traits> { using ValTypeD = int32_t; using ValTypeA = sparse_elem<2, uint8_t>; using ValTypeE = sparse_elem<8, uint8_t>; using ValTypeB = int8_t; using ValTypeC = int32_t; using FrgTypeB = GMMA::smem_desc; using Shape_MNK = Shape<_64,_8,_64>; using ThrID = Layout<_128>; using ALayout = GMMA::ALayout_64x64; using ELayout = GMMA::ELayout_64x64; using BLayout = GMMA::ABLayout< 8, 64>; using CLayout = GMMA::CLayout_64x8; GMMA::ScaleOut accumulate_ = GMMA::ScaleOut::One; }; //////////////////////////////////////////////////////////////////////////////////////////////////// template struct MMA_Traits> { using ValTypeD = int32_t; using ValTypeA = sparse_elem<2, uint8_t>; using ValTypeE = sparse_elem<8, uint8_t>; using ValTypeB = int8_t; using ValTypeC = int32_t; using FrgTypeB = GMMA::smem_desc; using Shape_MNK = Shape<_64,_16,_64>; using ThrID = Layout<_128>; using ALayout = GMMA::ALayout_64x64; using ELayout = GMMA::ELayout_64x64; using BLayout = GMMA::ABLayout< 16, 64>; using CLayout = GMMA::CLayout_64x16; GMMA::ScaleOut accumulate_ = GMMA::ScaleOut::One; }; //////////////////////////////////////////////////////////////////////////////////////////////////// template struct MMA_Traits> { using ValTypeD = int32_t; using ValTypeA = sparse_elem<2, uint8_t>; using ValTypeE = sparse_elem<8, uint8_t>; using ValTypeB = int8_t; using ValTypeC = int32_t; using FrgTypeB = GMMA::smem_desc; using Shape_MNK = Shape<_64,_16,_64>; using ThrID = Layout<_128>; using ALayout = GMMA::ALayout_64x64; using ELayout = GMMA::ELayout_64x64; using BLayout = GMMA::ABLayout< 16, 64>; using CLayout = GMMA::CLayout_64x16; GMMA::ScaleOut accumulate_ = GMMA::ScaleOut::One; }; //////////////////////////////////////////////////////////////////////////////////////////////////// template struct MMA_Traits> { using ValTypeD = int32_t; using ValTypeA = sparse_elem<2, uint8_t>; using ValTypeE = sparse_elem<8, uint8_t>; using ValTypeB = int8_t; using ValTypeC = int32_t; using FrgTypeB = GMMA::smem_desc; using Shape_MNK = Shape<_64,_32,_64>; using ThrID = Layout<_128>; using ALayout = GMMA::ALayout_64x64; using ELayout = GMMA::ELayout_64x64; using BLayout = GMMA::ABLayout< 32, 64>; using CLayout = GMMA::CLayout_64x32; GMMA::ScaleOut accumulate_ = GMMA::ScaleOut::One; }; //////////////////////////////////////////////////////////////////////////////////////////////////// template struct MMA_Traits> { using ValTypeD = int32_t; using ValTypeA = sparse_elem<2, uint8_t>; using ValTypeE = sparse_elem<8, uint8_t>; using ValTypeB = int8_t; using ValTypeC = int32_t; using FrgTypeB = GMMA::smem_desc; using Shape_MNK = Shape<_64,_32,_64>; using ThrID = Layout<_128>; using ALayout = GMMA::ALayout_64x64; using ELayout = GMMA::ELayout_64x64; using BLayout = GMMA::ABLayout< 32, 64>; using CLayout = GMMA::CLayout_64x32; GMMA::ScaleOut accumulate_ = GMMA::ScaleOut::One; }; //////////////////////////////////////////////////////////////////////////////////////////////////// template struct MMA_Traits> { using ValTypeD = int32_t; using ValTypeA = sparse_elem<2, uint8_t>; using ValTypeE = sparse_elem<8, uint8_t>; using ValTypeB = int8_t; using ValTypeC = int32_t; using FrgTypeB = GMMA::smem_desc; using Shape_MNK = Shape<_64,_64,_64>; using ThrID = Layout<_128>; using ALayout = GMMA::ALayout_64x64; using ELayout = GMMA::ELayout_64x64; using BLayout = GMMA::ABLayout< 64, 64>; using CLayout = GMMA::CLayout_64x64; GMMA::ScaleOut accumulate_ = GMMA::ScaleOut::One; }; //////////////////////////////////////////////////////////////////////////////////////////////////// template struct MMA_Traits> { using ValTypeD = int32_t; using ValTypeA = sparse_elem<2, uint8_t>; using ValTypeE = sparse_elem<8, uint8_t>; using ValTypeB = int8_t; using ValTypeC = int32_t; using FrgTypeB = GMMA::smem_desc; using Shape_MNK = Shape<_64,_64,_64>; using ThrID = Layout<_128>; using ALayout = GMMA::ALayout_64x64; using ELayout = GMMA::ELayout_64x64; using BLayout = GMMA::ABLayout< 64, 64>; using CLayout = GMMA::CLayout_64x64; GMMA::ScaleOut accumulate_ = GMMA::ScaleOut::One; }; //////////////////////////////////////////////////////////////////////////////////////////////////// template struct MMA_Traits> { using ValTypeD = int32_t; using ValTypeA = sparse_elem<2, uint8_t>; using ValTypeE = sparse_elem<8, uint8_t>; using ValTypeB = int8_t; using ValTypeC = int32_t; using FrgTypeB = GMMA::smem_desc; using Shape_MNK = Shape<_64,_96,_64>; using ThrID = Layout<_128>; using ALayout = GMMA::ALayout_64x64; using ELayout = GMMA::ELayout_64x64; using BLayout = GMMA::ABLayout< 96, 64>; using CLayout = GMMA::CLayout_64x96; GMMA::ScaleOut accumulate_ = GMMA::ScaleOut::One; }; //////////////////////////////////////////////////////////////////////////////////////////////////// template struct MMA_Traits> { using ValTypeD = int32_t; using ValTypeA = sparse_elem<2, uint8_t>; using ValTypeE = sparse_elem<8, uint8_t>; using ValTypeB = int8_t; using ValTypeC = int32_t; using FrgTypeB = GMMA::smem_desc; using Shape_MNK = Shape<_64,_96,_64>; using ThrID = Layout<_128>; using ALayout = GMMA::ALayout_64x64; using ELayout = GMMA::ELayout_64x64; using BLayout = GMMA::ABLayout< 96, 64>; using CLayout = GMMA::CLayout_64x96; GMMA::ScaleOut accumulate_ = GMMA::ScaleOut::One; }; //////////////////////////////////////////////////////////////////////////////////////////////////// template struct MMA_Traits> { using ValTypeD = int32_t; using ValTypeA = sparse_elem<2, uint8_t>; using ValTypeE = sparse_elem<8, uint8_t>; using ValTypeB = int8_t; using ValTypeC = int32_t; using FrgTypeB = GMMA::smem_desc; using Shape_MNK = Shape<_64,_128,_64>; using ThrID = Layout<_128>; using ALayout = GMMA::ALayout_64x64; using ELayout = GMMA::ELayout_64x64; using BLayout = GMMA::ABLayout<128, 64>; using CLayout = GMMA::CLayout_64x128; GMMA::ScaleOut accumulate_ = GMMA::ScaleOut::One; }; //////////////////////////////////////////////////////////////////////////////////////////////////// template struct MMA_Traits> { using ValTypeD = int32_t; using ValTypeA = sparse_elem<2, uint8_t>; using ValTypeE = sparse_elem<8, uint8_t>; using ValTypeB = int8_t; using ValTypeC = int32_t; using FrgTypeB = GMMA::smem_desc; using Shape_MNK = Shape<_64,_128,_64>; using ThrID = Layout<_128>; using ALayout = GMMA::ALayout_64x64; using ELayout = GMMA::ELayout_64x64; using BLayout = GMMA::ABLayout<128, 64>; using CLayout = GMMA::CLayout_64x128; GMMA::ScaleOut accumulate_ = GMMA::ScaleOut::One; }; //////////////////////////////////////////////////////////////////////////////////////////////////// template struct MMA_Traits> { using ValTypeD = int32_t; using ValTypeA = sparse_elem<2, uint8_t>; using ValTypeE = sparse_elem<8, uint8_t>; using ValTypeB = int8_t; using ValTypeC = int32_t; using FrgTypeB = GMMA::smem_desc; using Shape_MNK = Shape<_64,_192,_64>; using ThrID = Layout<_128>; using ALayout = GMMA::ALayout_64x64; using ELayout = GMMA::ELayout_64x64; using BLayout = GMMA::ABLayout<192, 64>; using CLayout = GMMA::CLayout_64x192; GMMA::ScaleOut accumulate_ = GMMA::ScaleOut::One; }; //////////////////////////////////////////////////////////////////////////////////////////////////// template struct MMA_Traits> { using ValTypeD = int32_t; using ValTypeA = sparse_elem<2, uint8_t>; using ValTypeE = sparse_elem<8, uint8_t>; using ValTypeB = int8_t; using ValTypeC = int32_t; using FrgTypeB = GMMA::smem_desc; using Shape_MNK = Shape<_64,_192,_64>; using ThrID = Layout<_128>; using ALayout = GMMA::ALayout_64x64; using ELayout = GMMA::ELayout_64x64; using BLayout = GMMA::ABLayout<192, 64>; using CLayout = GMMA::CLayout_64x192; GMMA::ScaleOut accumulate_ = GMMA::ScaleOut::One; }; //////////////////////////////////////////////////////////////////////////////////////////////////// template struct MMA_Traits> { using ValTypeD = int32_t; using ValTypeA = sparse_elem<2, uint8_t>; using ValTypeE = sparse_elem<8, uint8_t>; using ValTypeB = int8_t; using ValTypeC = int32_t; using FrgTypeB = GMMA::smem_desc; using Shape_MNK = Shape<_64,_256,_64>; using ThrID = Layout<_128>; using ALayout = GMMA::ALayout_64x64; using ELayout = GMMA::ELayout_64x64; using BLayout = GMMA::ABLayout<256, 64>; using CLayout = GMMA::CLayout_64x256; GMMA::ScaleOut accumulate_ = GMMA::ScaleOut::One; }; //////////////////////////////////////////////////////////////////////////////////////////////////// template struct MMA_Traits> { using ValTypeD = int32_t; using ValTypeA = sparse_elem<2, uint8_t>; using ValTypeE = sparse_elem<8, uint8_t>; using ValTypeB = int8_t; using ValTypeC = int32_t; using FrgTypeB = GMMA::smem_desc; using Shape_MNK = Shape<_64,_256,_64>; using ThrID = Layout<_128>; using ALayout = GMMA::ALayout_64x64; using ELayout = GMMA::ELayout_64x64; using BLayout = GMMA::ABLayout<256, 64>; using CLayout = GMMA::CLayout_64x256; GMMA::ScaleOut accumulate_ = GMMA::ScaleOut::One; }; //////////////////////////////////////////////////////////////////////////////////////////////////// template struct MMA_Traits> { using ValTypeD = int32_t; using ValTypeA = sparse_elem<2, uint8_t>; using ValTypeE = sparse_elem<8, uint8_t>; using ValTypeB = uint8_t; using ValTypeC = int32_t; using FrgTypeA = GMMA::smem_desc; using FrgTypeB = GMMA::smem_desc; using Shape_MNK = Shape<_64,_8,_64>; using ThrID = Layout<_128>; using ALayout = GMMA::ABLayout< 64, 64>; using ELayout = GMMA::ELayout_64x64; using BLayout = GMMA::ABLayout< 8, 64>; using CLayout = GMMA::CLayout_64x8; GMMA::ScaleOut accumulate_ = GMMA::ScaleOut::One; }; //////////////////////////////////////////////////////////////////////////////////////////////////// template struct MMA_Traits> { using ValTypeD = int32_t; using ValTypeA = sparse_elem<2, uint8_t>; using ValTypeE = sparse_elem<8, uint8_t>; using ValTypeB = uint8_t; using ValTypeC = int32_t; using FrgTypeA = GMMA::smem_desc; using FrgTypeB = GMMA::smem_desc; using Shape_MNK = Shape<_64,_8,_64>; using ThrID = Layout<_128>; using ALayout = GMMA::ABLayout< 64, 64>; using ELayout = GMMA::ELayout_64x64; using BLayout = GMMA::ABLayout< 8, 64>; using CLayout = GMMA::CLayout_64x8; GMMA::ScaleOut accumulate_ = GMMA::ScaleOut::One; }; //////////////////////////////////////////////////////////////////////////////////////////////////// template struct MMA_Traits> { using ValTypeD = int32_t; using ValTypeA = sparse_elem<2, uint8_t>; using ValTypeE = sparse_elem<8, uint8_t>; using ValTypeB = uint8_t; using ValTypeC = int32_t; using FrgTypeA = GMMA::smem_desc; using FrgTypeB = GMMA::smem_desc; using Shape_MNK = Shape<_64,_16,_64>; using ThrID = Layout<_128>; using ALayout = GMMA::ABLayout< 64, 64>; using ELayout = GMMA::ELayout_64x64; using BLayout = GMMA::ABLayout< 16, 64>; using CLayout = GMMA::CLayout_64x16; GMMA::ScaleOut accumulate_ = GMMA::ScaleOut::One; }; //////////////////////////////////////////////////////////////////////////////////////////////////// template struct MMA_Traits> { using ValTypeD = int32_t; using ValTypeA = sparse_elem<2, uint8_t>; using ValTypeE = sparse_elem<8, uint8_t>; using ValTypeB = uint8_t; using ValTypeC = int32_t; using FrgTypeA = GMMA::smem_desc; using FrgTypeB = GMMA::smem_desc; using Shape_MNK = Shape<_64,_16,_64>; using ThrID = Layout<_128>; using ALayout = GMMA::ABLayout< 64, 64>; using ELayout = GMMA::ELayout_64x64; using BLayout = GMMA::ABLayout< 16, 64>; using CLayout = GMMA::CLayout_64x16; GMMA::ScaleOut accumulate_ = GMMA::ScaleOut::One; }; //////////////////////////////////////////////////////////////////////////////////////////////////// template struct MMA_Traits> { using ValTypeD = int32_t; using ValTypeA = sparse_elem<2, uint8_t>; using ValTypeE = sparse_elem<8, uint8_t>; using ValTypeB = uint8_t; using ValTypeC = int32_t; using FrgTypeA = GMMA::smem_desc; using FrgTypeB = GMMA::smem_desc; using Shape_MNK = Shape<_64,_32,_64>; using ThrID = Layout<_128>; using ALayout = GMMA::ABLayout< 64, 64>; using ELayout = GMMA::ELayout_64x64; using BLayout = GMMA::ABLayout< 32, 64>; using CLayout = GMMA::CLayout_64x32; GMMA::ScaleOut accumulate_ = GMMA::ScaleOut::One; }; //////////////////////////////////////////////////////////////////////////////////////////////////// template struct MMA_Traits> { using ValTypeD = int32_t; using ValTypeA = sparse_elem<2, uint8_t>; using ValTypeE = sparse_elem<8, uint8_t>; using ValTypeB = uint8_t; using ValTypeC = int32_t; using FrgTypeA = GMMA::smem_desc; using FrgTypeB = GMMA::smem_desc; using Shape_MNK = Shape<_64,_32,_64>; using ThrID = Layout<_128>; using ALayout = GMMA::ABLayout< 64, 64>; using ELayout = GMMA::ELayout_64x64; using BLayout = GMMA::ABLayout< 32, 64>; using CLayout = GMMA::CLayout_64x32; GMMA::ScaleOut accumulate_ = GMMA::ScaleOut::One; }; //////////////////////////////////////////////////////////////////////////////////////////////////// template struct MMA_Traits> { using ValTypeD = int32_t; using ValTypeA = sparse_elem<2, uint8_t>; using ValTypeE = sparse_elem<8, uint8_t>; using ValTypeB = uint8_t; using ValTypeC = int32_t; using FrgTypeA = GMMA::smem_desc; using FrgTypeB = GMMA::smem_desc; using Shape_MNK = Shape<_64,_64,_64>; using ThrID = Layout<_128>; using ALayout = GMMA::ABLayout< 64, 64>; using ELayout = GMMA::ELayout_64x64; using BLayout = GMMA::ABLayout< 64, 64>; using CLayout = GMMA::CLayout_64x64; GMMA::ScaleOut accumulate_ = GMMA::ScaleOut::One; }; //////////////////////////////////////////////////////////////////////////////////////////////////// template struct MMA_Traits> { using ValTypeD = int32_t; using ValTypeA = sparse_elem<2, uint8_t>; using ValTypeE = sparse_elem<8, uint8_t>; using ValTypeB = uint8_t; using ValTypeC = int32_t; using FrgTypeA = GMMA::smem_desc; using FrgTypeB = GMMA::smem_desc; using Shape_MNK = Shape<_64,_64,_64>; using ThrID = Layout<_128>; using ALayout = GMMA::ABLayout< 64, 64>; using ELayout = GMMA::ELayout_64x64; using BLayout = GMMA::ABLayout< 64, 64>; using CLayout = GMMA::CLayout_64x64; GMMA::ScaleOut accumulate_ = GMMA::ScaleOut::One; }; //////////////////////////////////////////////////////////////////////////////////////////////////// template struct MMA_Traits> { using ValTypeD = int32_t; using ValTypeA = sparse_elem<2, uint8_t>; using ValTypeE = sparse_elem<8, uint8_t>; using ValTypeB = uint8_t; using ValTypeC = int32_t; using FrgTypeA = GMMA::smem_desc; using FrgTypeB = GMMA::smem_desc; using Shape_MNK = Shape<_64,_96,_64>; using ThrID = Layout<_128>; using ALayout = GMMA::ABLayout< 64, 64>; using ELayout = GMMA::ELayout_64x64; using BLayout = GMMA::ABLayout< 96, 64>; using CLayout = GMMA::CLayout_64x96; GMMA::ScaleOut accumulate_ = GMMA::ScaleOut::One; }; //////////////////////////////////////////////////////////////////////////////////////////////////// template struct MMA_Traits> { using ValTypeD = int32_t; using ValTypeA = sparse_elem<2, uint8_t>; using ValTypeE = sparse_elem<8, uint8_t>; using ValTypeB = uint8_t; using ValTypeC = int32_t; using FrgTypeA = GMMA::smem_desc; using FrgTypeB = GMMA::smem_desc; using Shape_MNK = Shape<_64,_96,_64>; using ThrID = Layout<_128>; using ALayout = GMMA::ABLayout< 64, 64>; using ELayout = GMMA::ELayout_64x64; using BLayout = GMMA::ABLayout< 96, 64>; using CLayout = GMMA::CLayout_64x96; GMMA::ScaleOut accumulate_ = GMMA::ScaleOut::One; }; //////////////////////////////////////////////////////////////////////////////////////////////////// template struct MMA_Traits> { using ValTypeD = int32_t; using ValTypeA = sparse_elem<2, uint8_t>; using ValTypeE = sparse_elem<8, uint8_t>; using ValTypeB = uint8_t; using ValTypeC = int32_t; using FrgTypeA = GMMA::smem_desc; using FrgTypeB = GMMA::smem_desc; using Shape_MNK = Shape<_64,_128,_64>; using ThrID = Layout<_128>; using ALayout = GMMA::ABLayout< 64, 64>; using ELayout = GMMA::ELayout_64x64; using BLayout = GMMA::ABLayout<128, 64>; using CLayout = GMMA::CLayout_64x128; GMMA::ScaleOut accumulate_ = GMMA::ScaleOut::One; }; //////////////////////////////////////////////////////////////////////////////////////////////////// template struct MMA_Traits> { using ValTypeD = int32_t; using ValTypeA = sparse_elem<2, uint8_t>; using ValTypeE = sparse_elem<8, uint8_t>; using ValTypeB = uint8_t; using ValTypeC = int32_t; using FrgTypeA = GMMA::smem_desc; using FrgTypeB = GMMA::smem_desc; using Shape_MNK = Shape<_64,_128,_64>; using ThrID = Layout<_128>; using ALayout = GMMA::ABLayout< 64, 64>; using ELayout = GMMA::ELayout_64x64; using BLayout = GMMA::ABLayout<128, 64>; using CLayout = GMMA::CLayout_64x128; GMMA::ScaleOut accumulate_ = GMMA::ScaleOut::One; }; //////////////////////////////////////////////////////////////////////////////////////////////////// template struct MMA_Traits> { using ValTypeD = int32_t; using ValTypeA = sparse_elem<2, uint8_t>; using ValTypeE = sparse_elem<8, uint8_t>; using ValTypeB = uint8_t; using ValTypeC = int32_t; using FrgTypeA = GMMA::smem_desc; using FrgTypeB = GMMA::smem_desc; using Shape_MNK = Shape<_64,_192,_64>; using ThrID = Layout<_128>; using ALayout = GMMA::ABLayout< 64, 64>; using ELayout = GMMA::ELayout_64x64; using BLayout = GMMA::ABLayout<192, 64>; using CLayout = GMMA::CLayout_64x192; GMMA::ScaleOut accumulate_ = GMMA::ScaleOut::One; }; //////////////////////////////////////////////////////////////////////////////////////////////////// template struct MMA_Traits> { using ValTypeD = int32_t; using ValTypeA = sparse_elem<2, uint8_t>; using ValTypeE = sparse_elem<8, uint8_t>; using ValTypeB = uint8_t; using ValTypeC = int32_t; using FrgTypeA = GMMA::smem_desc; using FrgTypeB = GMMA::smem_desc; using Shape_MNK = Shape<_64,_192,_64>; using ThrID = Layout<_128>; using ALayout = GMMA::ABLayout< 64, 64>; using ELayout = GMMA::ELayout_64x64; using BLayout = GMMA::ABLayout<192, 64>; using CLayout = GMMA::CLayout_64x192; GMMA::ScaleOut accumulate_ = GMMA::ScaleOut::One; }; //////////////////////////////////////////////////////////////////////////////////////////////////// template struct MMA_Traits> { using ValTypeD = int32_t; using ValTypeA = sparse_elem<2, uint8_t>; using ValTypeE = sparse_elem<8, uint8_t>; using ValTypeB = uint8_t; using ValTypeC = int32_t; using FrgTypeA = GMMA::smem_desc; using FrgTypeB = GMMA::smem_desc; using Shape_MNK = Shape<_64,_256,_64>; using ThrID = Layout<_128>; using ALayout = GMMA::ABLayout< 64, 64>; using ELayout = GMMA::ELayout_64x64; using BLayout = GMMA::ABLayout<256, 64>; using CLayout = GMMA::CLayout_64x256; GMMA::ScaleOut accumulate_ = GMMA::ScaleOut::One; }; //////////////////////////////////////////////////////////////////////////////////////////////////// template struct MMA_Traits> { using ValTypeD = int32_t; using ValTypeA = sparse_elem<2, uint8_t>; using ValTypeE = sparse_elem<8, uint8_t>; using ValTypeB = uint8_t; using ValTypeC = int32_t; using FrgTypeA = GMMA::smem_desc; using FrgTypeB = GMMA::smem_desc; using Shape_MNK = Shape<_64,_256,_64>; using ThrID = Layout<_128>; using ALayout = GMMA::ABLayout< 64, 64>; using ELayout = GMMA::ELayout_64x64; using BLayout = GMMA::ABLayout<256, 64>; using CLayout = GMMA::CLayout_64x256; GMMA::ScaleOut accumulate_ = GMMA::ScaleOut::One; }; //////////////////////////////////////////////////////////////////////////////////////////////////// template struct MMA_Traits> { using ValTypeD = int32_t; using ValTypeA = sparse_elem<2, uint8_t>; using ValTypeE = sparse_elem<8, uint8_t>; using ValTypeB = uint8_t; using ValTypeC = int32_t; using FrgTypeB = GMMA::smem_desc; using Shape_MNK = Shape<_64,_8,_64>; using ThrID = Layout<_128>; using ALayout = GMMA::ALayout_64x64; using ELayout = GMMA::ELayout_64x64; using BLayout = GMMA::ABLayout< 8, 64>; using CLayout = GMMA::CLayout_64x8; GMMA::ScaleOut accumulate_ = GMMA::ScaleOut::One; }; //////////////////////////////////////////////////////////////////////////////////////////////////// template struct MMA_Traits> { using ValTypeD = int32_t; using ValTypeA = sparse_elem<2, uint8_t>; using ValTypeE = sparse_elem<8, uint8_t>; using ValTypeB = uint8_t; using ValTypeC = int32_t; using FrgTypeB = GMMA::smem_desc; using Shape_MNK = Shape<_64,_8,_64>; using ThrID = Layout<_128>; using ALayout = GMMA::ALayout_64x64; using ELayout = GMMA::ELayout_64x64; using BLayout = GMMA::ABLayout< 8, 64>; using CLayout = GMMA::CLayout_64x8; GMMA::ScaleOut accumulate_ = GMMA::ScaleOut::One; }; //////////////////////////////////////////////////////////////////////////////////////////////////// template struct MMA_Traits> { using ValTypeD = int32_t; using ValTypeA = sparse_elem<2, uint8_t>; using ValTypeE = sparse_elem<8, uint8_t>; using ValTypeB = uint8_t; using ValTypeC = int32_t; using FrgTypeB = GMMA::smem_desc; using Shape_MNK = Shape<_64,_16,_64>; using ThrID = Layout<_128>; using ALayout = GMMA::ALayout_64x64; using ELayout = GMMA::ELayout_64x64; using BLayout = GMMA::ABLayout< 16, 64>; using CLayout = GMMA::CLayout_64x16; GMMA::ScaleOut accumulate_ = GMMA::ScaleOut::One; }; //////////////////////////////////////////////////////////////////////////////////////////////////// template struct MMA_Traits> { using ValTypeD = int32_t; using ValTypeA = sparse_elem<2, uint8_t>; using ValTypeE = sparse_elem<8, uint8_t>; using ValTypeB = uint8_t; using ValTypeC = int32_t; using FrgTypeB = GMMA::smem_desc; using Shape_MNK = Shape<_64,_16,_64>; using ThrID = Layout<_128>; using ALayout = GMMA::ALayout_64x64; using ELayout = GMMA::ELayout_64x64; using BLayout = GMMA::ABLayout< 16, 64>; using CLayout = GMMA::CLayout_64x16; GMMA::ScaleOut accumulate_ = GMMA::ScaleOut::One; }; //////////////////////////////////////////////////////////////////////////////////////////////////// template struct MMA_Traits> { using ValTypeD = int32_t; using ValTypeA = sparse_elem<2, uint8_t>; using ValTypeE = sparse_elem<8, uint8_t>; using ValTypeB = uint8_t; using ValTypeC = int32_t; using FrgTypeB = GMMA::smem_desc; using Shape_MNK = Shape<_64,_32,_64>; using ThrID = Layout<_128>; using ALayout = GMMA::ALayout_64x64; using ELayout = GMMA::ELayout_64x64; using BLayout = GMMA::ABLayout< 32, 64>; using CLayout = GMMA::CLayout_64x32; GMMA::ScaleOut accumulate_ = GMMA::ScaleOut::One; }; //////////////////////////////////////////////////////////////////////////////////////////////////// template struct MMA_Traits> { using ValTypeD = int32_t; using ValTypeA = sparse_elem<2, uint8_t>; using ValTypeE = sparse_elem<8, uint8_t>; using ValTypeB = uint8_t; using ValTypeC = int32_t; using FrgTypeB = GMMA::smem_desc; using Shape_MNK = Shape<_64,_32,_64>; using ThrID = Layout<_128>; using ALayout = GMMA::ALayout_64x64; using ELayout = GMMA::ELayout_64x64; using BLayout = GMMA::ABLayout< 32, 64>; using CLayout = GMMA::CLayout_64x32; GMMA::ScaleOut accumulate_ = GMMA::ScaleOut::One; }; //////////////////////////////////////////////////////////////////////////////////////////////////// template struct MMA_Traits> { using ValTypeD = int32_t; using ValTypeA = sparse_elem<2, uint8_t>; using ValTypeE = sparse_elem<8, uint8_t>; using ValTypeB = uint8_t; using ValTypeC = int32_t; using FrgTypeB = GMMA::smem_desc; using Shape_MNK = Shape<_64,_64,_64>; using ThrID = Layout<_128>; using ALayout = GMMA::ALayout_64x64; using ELayout = GMMA::ELayout_64x64; using BLayout = GMMA::ABLayout< 64, 64>; using CLayout = GMMA::CLayout_64x64; GMMA::ScaleOut accumulate_ = GMMA::ScaleOut::One; }; //////////////////////////////////////////////////////////////////////////////////////////////////// template struct MMA_Traits> { using ValTypeD = int32_t; using ValTypeA = sparse_elem<2, uint8_t>; using ValTypeE = sparse_elem<8, uint8_t>; using ValTypeB = uint8_t; using ValTypeC = int32_t; using FrgTypeB = GMMA::smem_desc; using Shape_MNK = Shape<_64,_64,_64>; using ThrID = Layout<_128>; using ALayout = GMMA::ALayout_64x64; using ELayout = GMMA::ELayout_64x64; using BLayout = GMMA::ABLayout< 64, 64>; using CLayout = GMMA::CLayout_64x64; GMMA::ScaleOut accumulate_ = GMMA::ScaleOut::One; }; //////////////////////////////////////////////////////////////////////////////////////////////////// template struct MMA_Traits> { using ValTypeD = int32_t; using ValTypeA = sparse_elem<2, uint8_t>; using ValTypeE = sparse_elem<8, uint8_t>; using ValTypeB = uint8_t; using ValTypeC = int32_t; using FrgTypeB = GMMA::smem_desc; using Shape_MNK = Shape<_64,_96,_64>; using ThrID = Layout<_128>; using ALayout = GMMA::ALayout_64x64; using ELayout = GMMA::ELayout_64x64; using BLayout = GMMA::ABLayout< 96, 64>; using CLayout = GMMA::CLayout_64x96; GMMA::ScaleOut accumulate_ = GMMA::ScaleOut::One; }; //////////////////////////////////////////////////////////////////////////////////////////////////// template struct MMA_Traits> { using ValTypeD = int32_t; using ValTypeA = sparse_elem<2, uint8_t>; using ValTypeE = sparse_elem<8, uint8_t>; using ValTypeB = uint8_t; using ValTypeC = int32_t; using FrgTypeB = GMMA::smem_desc; using Shape_MNK = Shape<_64,_96,_64>; using ThrID = Layout<_128>; using ALayout = GMMA::ALayout_64x64; using ELayout = GMMA::ELayout_64x64; using BLayout = GMMA::ABLayout< 96, 64>; using CLayout = GMMA::CLayout_64x96; GMMA::ScaleOut accumulate_ = GMMA::ScaleOut::One; }; //////////////////////////////////////////////////////////////////////////////////////////////////// template struct MMA_Traits> { using ValTypeD = int32_t; using ValTypeA = sparse_elem<2, uint8_t>; using ValTypeE = sparse_elem<8, uint8_t>; using ValTypeB = uint8_t; using ValTypeC = int32_t; using FrgTypeB = GMMA::smem_desc; using Shape_MNK = Shape<_64,_128,_64>; using ThrID = Layout<_128>; using ALayout = GMMA::ALayout_64x64; using ELayout = GMMA::ELayout_64x64; using BLayout = GMMA::ABLayout<128, 64>; using CLayout = GMMA::CLayout_64x128; GMMA::ScaleOut accumulate_ = GMMA::ScaleOut::One; }; //////////////////////////////////////////////////////////////////////////////////////////////////// template struct MMA_Traits> { using ValTypeD = int32_t; using ValTypeA = sparse_elem<2, uint8_t>; using ValTypeE = sparse_elem<8, uint8_t>; using ValTypeB = uint8_t; using ValTypeC = int32_t; using FrgTypeB = GMMA::smem_desc; using Shape_MNK = Shape<_64,_128,_64>; using ThrID = Layout<_128>; using ALayout = GMMA::ALayout_64x64; using ELayout = GMMA::ELayout_64x64; using BLayout = GMMA::ABLayout<128, 64>; using CLayout = GMMA::CLayout_64x128; GMMA::ScaleOut accumulate_ = GMMA::ScaleOut::One; }; //////////////////////////////////////////////////////////////////////////////////////////////////// template struct MMA_Traits> { using ValTypeD = int32_t; using ValTypeA = sparse_elem<2, uint8_t>; using ValTypeE = sparse_elem<8, uint8_t>; using ValTypeB = uint8_t; using ValTypeC = int32_t; using FrgTypeB = GMMA::smem_desc; using Shape_MNK = Shape<_64,_192,_64>; using ThrID = Layout<_128>; using ALayout = GMMA::ALayout_64x64; using ELayout = GMMA::ELayout_64x64; using BLayout = GMMA::ABLayout<192, 64>; using CLayout = GMMA::CLayout_64x192; GMMA::ScaleOut accumulate_ = GMMA::ScaleOut::One; }; //////////////////////////////////////////////////////////////////////////////////////////////////// template struct MMA_Traits> { using ValTypeD = int32_t; using ValTypeA = sparse_elem<2, uint8_t>; using ValTypeE = sparse_elem<8, uint8_t>; using ValTypeB = uint8_t; using ValTypeC = int32_t; using FrgTypeB = GMMA::smem_desc; using Shape_MNK = Shape<_64,_192,_64>; using ThrID = Layout<_128>; using ALayout = GMMA::ALayout_64x64; using ELayout = GMMA::ELayout_64x64; using BLayout = GMMA::ABLayout<192, 64>; using CLayout = GMMA::CLayout_64x192; GMMA::ScaleOut accumulate_ = GMMA::ScaleOut::One; }; //////////////////////////////////////////////////////////////////////////////////////////////////// template struct MMA_Traits> { using ValTypeD = int32_t; using ValTypeA = sparse_elem<2, uint8_t>; using ValTypeE = sparse_elem<8, uint8_t>; using ValTypeB = uint8_t; using ValTypeC = int32_t; using FrgTypeB = GMMA::smem_desc; using Shape_MNK = Shape<_64,_256,_64>; using ThrID = Layout<_128>; using ALayout = GMMA::ALayout_64x64; using ELayout = GMMA::ELayout_64x64; using BLayout = GMMA::ABLayout<256, 64>; using CLayout = GMMA::CLayout_64x256; GMMA::ScaleOut accumulate_ = GMMA::ScaleOut::One; }; //////////////////////////////////////////////////////////////////////////////////////////////////// template struct MMA_Traits> { using ValTypeD = int32_t; using ValTypeA = sparse_elem<2, uint8_t>; using ValTypeE = sparse_elem<8, uint8_t>; using ValTypeB = uint8_t; using ValTypeC = int32_t; using FrgTypeB = GMMA::smem_desc; using Shape_MNK = Shape<_64,_256,_64>; using ThrID = Layout<_128>; using ALayout = GMMA::ALayout_64x64; using ELayout = GMMA::ELayout_64x64; using BLayout = GMMA::ABLayout<256, 64>; using CLayout = GMMA::CLayout_64x256; GMMA::ScaleOut accumulate_ = GMMA::ScaleOut::One; }; //////////////////////////////////////////////////////////////////////////////////////////////////// template struct MMA_Traits> { using ValTypeD = half_t; using ValTypeA = sparse_elem<2, float_e4m3_t>; using ValTypeE = sparse_elem<8, uint8_t>; using ValTypeB = float_e4m3_t; using ValTypeC = half_t; using FrgTypeA = GMMA::smem_desc; using FrgTypeB = GMMA::smem_desc; using Shape_MNK = Shape<_64,_8,_64>; using ThrID = Layout<_128>; using ALayout = GMMA::ABLayout< 64, 64>; using ELayout = GMMA::ELayout_64x64; using BLayout = GMMA::ABLayout< 8, 64>; using CLayout = GMMA::CLayout_64x8; GMMA::ScaleOut accumulate_ = GMMA::ScaleOut::One; }; //////////////////////////////////////////////////////////////////////////////////////////////////// template struct MMA_Traits> { using ValTypeD = half_t; using ValTypeA = sparse_elem<2, float_e4m3_t>; using ValTypeE = sparse_elem<8, uint8_t>; using ValTypeB = float_e4m3_t; using ValTypeC = half_t; using FrgTypeB = GMMA::smem_desc; using Shape_MNK = Shape<_64,_8,_64>; using ThrID = Layout<_128>; using ALayout = GMMA::ALayout_64x64; using ELayout = GMMA::ELayout_64x64; using BLayout = GMMA::ABLayout< 8, 64>; using CLayout = GMMA::CLayout_64x8; GMMA::ScaleOut accumulate_ = GMMA::ScaleOut::One; }; //////////////////////////////////////////////////////////////////////////////////////////////////// template struct MMA_Traits> { using ValTypeD = float; using ValTypeA = sparse_elem<2, float_e4m3_t>; using ValTypeE = sparse_elem<8, uint8_t>; using ValTypeB = float_e4m3_t; using ValTypeC = float; using FrgTypeA = GMMA::smem_desc; using FrgTypeB = GMMA::smem_desc; using Shape_MNK = Shape<_64,_8,_64>; using ThrID = Layout<_128>; using ALayout = GMMA::ABLayout< 64, 64>; using ELayout = GMMA::ELayout_64x64; using BLayout = GMMA::ABLayout< 8, 64>; using CLayout = GMMA::CLayout_64x8; GMMA::ScaleOut accumulate_ = GMMA::ScaleOut::One; }; //////////////////////////////////////////////////////////////////////////////////////////////////// template struct MMA_Traits> { using ValTypeD = float; using ValTypeA = sparse_elem<2, float_e4m3_t>; using ValTypeE = sparse_elem<8, uint8_t>; using ValTypeB = float_e4m3_t; using ValTypeC = float; using FrgTypeB = GMMA::smem_desc; using Shape_MNK = Shape<_64,_8,_64>; using ThrID = Layout<_128>; using ALayout = GMMA::ALayout_64x64; using ELayout = GMMA::ELayout_64x64; using BLayout = GMMA::ABLayout< 8, 64>; using CLayout = GMMA::CLayout_64x8; GMMA::ScaleOut accumulate_ = GMMA::ScaleOut::One; }; //////////////////////////////////////////////////////////////////////////////////////////////////// template struct MMA_Traits> { using ValTypeD = half_t; using ValTypeA = sparse_elem<2, float_e4m3_t>; using ValTypeE = sparse_elem<8, uint8_t>; using ValTypeB = float_e4m3_t; using ValTypeC = half_t; using FrgTypeA = GMMA::smem_desc; using FrgTypeB = GMMA::smem_desc; using Shape_MNK = Shape<_64,_16,_64>; using ThrID = Layout<_128>; using ALayout = GMMA::ABLayout< 64, 64>; using ELayout = GMMA::ELayout_64x64; using BLayout = GMMA::ABLayout< 16, 64>; using CLayout = GMMA::CLayout_64x16; GMMA::ScaleOut accumulate_ = GMMA::ScaleOut::One; }; //////////////////////////////////////////////////////////////////////////////////////////////////// template struct MMA_Traits> { using ValTypeD = half_t; using ValTypeA = sparse_elem<2, float_e4m3_t>; using ValTypeE = sparse_elem<8, uint8_t>; using ValTypeB = float_e4m3_t; using ValTypeC = half_t; using FrgTypeB = GMMA::smem_desc; using Shape_MNK = Shape<_64,_16,_64>; using ThrID = Layout<_128>; using ALayout = GMMA::ALayout_64x64; using ELayout = GMMA::ELayout_64x64; using BLayout = GMMA::ABLayout< 16, 64>; using CLayout = GMMA::CLayout_64x16; GMMA::ScaleOut accumulate_ = GMMA::ScaleOut::One; }; //////////////////////////////////////////////////////////////////////////////////////////////////// template struct MMA_Traits> { using ValTypeD = float; using ValTypeA = sparse_elem<2, float_e4m3_t>; using ValTypeE = sparse_elem<8, uint8_t>; using ValTypeB = float_e4m3_t; using ValTypeC = float; using FrgTypeA = GMMA::smem_desc; using FrgTypeB = GMMA::smem_desc; using Shape_MNK = Shape<_64,_16,_64>; using ThrID = Layout<_128>; using ALayout = GMMA::ABLayout< 64, 64>; using ELayout = GMMA::ELayout_64x64; using BLayout = GMMA::ABLayout< 16, 64>; using CLayout = GMMA::CLayout_64x16; GMMA::ScaleOut accumulate_ = GMMA::ScaleOut::One; }; //////////////////////////////////////////////////////////////////////////////////////////////////// template struct MMA_Traits> { using ValTypeD = float; using ValTypeA = sparse_elem<2, float_e4m3_t>; using ValTypeE = sparse_elem<8, uint8_t>; using ValTypeB = float_e4m3_t; using ValTypeC = float; using FrgTypeB = GMMA::smem_desc; using Shape_MNK = Shape<_64,_16,_64>; using ThrID = Layout<_128>; using ALayout = GMMA::ALayout_64x64; using ELayout = GMMA::ELayout_64x64; using BLayout = GMMA::ABLayout< 16, 64>; using CLayout = GMMA::CLayout_64x16; GMMA::ScaleOut accumulate_ = GMMA::ScaleOut::One; }; //////////////////////////////////////////////////////////////////////////////////////////////////// template struct MMA_Traits> { using ValTypeD = half_t; using ValTypeA = sparse_elem<2, float_e4m3_t>; using ValTypeE = sparse_elem<8, uint8_t>; using ValTypeB = float_e4m3_t; using ValTypeC = half_t; using FrgTypeA = GMMA::smem_desc; using FrgTypeB = GMMA::smem_desc; using Shape_MNK = Shape<_64,_32,_64>; using ThrID = Layout<_128>; using ALayout = GMMA::ABLayout< 64, 64>; using ELayout = GMMA::ELayout_64x64; using BLayout = GMMA::ABLayout< 32, 64>; using CLayout = GMMA::CLayout_64x32; GMMA::ScaleOut accumulate_ = GMMA::ScaleOut::One; }; //////////////////////////////////////////////////////////////////////////////////////////////////// template struct MMA_Traits> { using ValTypeD = half_t; using ValTypeA = sparse_elem<2, float_e4m3_t>; using ValTypeE = sparse_elem<8, uint8_t>; using ValTypeB = float_e4m3_t; using ValTypeC = half_t; using FrgTypeB = GMMA::smem_desc; using Shape_MNK = Shape<_64,_32,_64>; using ThrID = Layout<_128>; using ALayout = GMMA::ALayout_64x64; using ELayout = GMMA::ELayout_64x64; using BLayout = GMMA::ABLayout< 32, 64>; using CLayout = GMMA::CLayout_64x32; GMMA::ScaleOut accumulate_ = GMMA::ScaleOut::One; }; //////////////////////////////////////////////////////////////////////////////////////////////////// template struct MMA_Traits> { using ValTypeD = float; using ValTypeA = sparse_elem<2, float_e4m3_t>; using ValTypeE = sparse_elem<8, uint8_t>; using ValTypeB = float_e4m3_t; using ValTypeC = float; using FrgTypeA = GMMA::smem_desc; using FrgTypeB = GMMA::smem_desc; using Shape_MNK = Shape<_64,_32,_64>; using ThrID = Layout<_128>; using ALayout = GMMA::ABLayout< 64, 64>; using ELayout = GMMA::ELayout_64x64; using BLayout = GMMA::ABLayout< 32, 64>; using CLayout = GMMA::CLayout_64x32; GMMA::ScaleOut accumulate_ = GMMA::ScaleOut::One; }; //////////////////////////////////////////////////////////////////////////////////////////////////// template struct MMA_Traits> { using ValTypeD = float; using ValTypeA = sparse_elem<2, float_e4m3_t>; using ValTypeE = sparse_elem<8, uint8_t>; using ValTypeB = float_e4m3_t; using ValTypeC = float; using FrgTypeB = GMMA::smem_desc; using Shape_MNK = Shape<_64,_32,_64>; using ThrID = Layout<_128>; using ALayout = GMMA::ALayout_64x64; using ELayout = GMMA::ELayout_64x64; using BLayout = GMMA::ABLayout< 32, 64>; using CLayout = GMMA::CLayout_64x32; GMMA::ScaleOut accumulate_ = GMMA::ScaleOut::One; }; //////////////////////////////////////////////////////////////////////////////////////////////////// template struct MMA_Traits> { using ValTypeD = half_t; using ValTypeA = sparse_elem<2, float_e4m3_t>; using ValTypeE = sparse_elem<8, uint8_t>; using ValTypeB = float_e4m3_t; using ValTypeC = half_t; using FrgTypeA = GMMA::smem_desc; using FrgTypeB = GMMA::smem_desc; using Shape_MNK = Shape<_64,_64,_64>; using ThrID = Layout<_128>; using ALayout = GMMA::ABLayout< 64, 64>; using ELayout = GMMA::ELayout_64x64; using BLayout = GMMA::ABLayout< 64, 64>; using CLayout = GMMA::CLayout_64x64; GMMA::ScaleOut accumulate_ = GMMA::ScaleOut::One; }; //////////////////////////////////////////////////////////////////////////////////////////////////// template struct MMA_Traits> { using ValTypeD = half_t; using ValTypeA = sparse_elem<2, float_e4m3_t>; using ValTypeE = sparse_elem<8, uint8_t>; using ValTypeB = float_e4m3_t; using ValTypeC = half_t; using FrgTypeB = GMMA::smem_desc; using Shape_MNK = Shape<_64,_64,_64>; using ThrID = Layout<_128>; using ALayout = GMMA::ALayout_64x64; using ELayout = GMMA::ELayout_64x64; using BLayout = GMMA::ABLayout< 64, 64>; using CLayout = GMMA::CLayout_64x64; GMMA::ScaleOut accumulate_ = GMMA::ScaleOut::One; }; //////////////////////////////////////////////////////////////////////////////////////////////////// template struct MMA_Traits> { using ValTypeD = float; using ValTypeA = sparse_elem<2, float_e4m3_t>; using ValTypeE = sparse_elem<8, uint8_t>; using ValTypeB = float_e4m3_t; using ValTypeC = float; using FrgTypeA = GMMA::smem_desc; using FrgTypeB = GMMA::smem_desc; using Shape_MNK = Shape<_64,_64,_64>; using ThrID = Layout<_128>; using ALayout = GMMA::ABLayout< 64, 64>; using ELayout = GMMA::ELayout_64x64; using BLayout = GMMA::ABLayout< 64, 64>; using CLayout = GMMA::CLayout_64x64; GMMA::ScaleOut accumulate_ = GMMA::ScaleOut::One; }; //////////////////////////////////////////////////////////////////////////////////////////////////// template struct MMA_Traits> { using ValTypeD = float; using ValTypeA = sparse_elem<2, float_e4m3_t>; using ValTypeE = sparse_elem<8, uint8_t>; using ValTypeB = float_e4m3_t; using ValTypeC = float; using FrgTypeB = GMMA::smem_desc; using Shape_MNK = Shape<_64,_64,_64>; using ThrID = Layout<_128>; using ALayout = GMMA::ALayout_64x64; using ELayout = GMMA::ELayout_64x64; using BLayout = GMMA::ABLayout< 64, 64>; using CLayout = GMMA::CLayout_64x64; GMMA::ScaleOut accumulate_ = GMMA::ScaleOut::One; }; //////////////////////////////////////////////////////////////////////////////////////////////////// template struct MMA_Traits> { using ValTypeD = half_t; using ValTypeA = sparse_elem<2, float_e4m3_t>; using ValTypeE = sparse_elem<8, uint8_t>; using ValTypeB = float_e4m3_t; using ValTypeC = half_t; using FrgTypeA = GMMA::smem_desc; using FrgTypeB = GMMA::smem_desc; using Shape_MNK = Shape<_64,_96,_64>; using ThrID = Layout<_128>; using ALayout = GMMA::ABLayout< 64, 64>; using ELayout = GMMA::ELayout_64x64; using BLayout = GMMA::ABLayout< 96, 64>; using CLayout = GMMA::CLayout_64x96; GMMA::ScaleOut accumulate_ = GMMA::ScaleOut::One; }; //////////////////////////////////////////////////////////////////////////////////////////////////// template struct MMA_Traits> { using ValTypeD = half_t; using ValTypeA = sparse_elem<2, float_e4m3_t>; using ValTypeE = sparse_elem<8, uint8_t>; using ValTypeB = float_e4m3_t; using ValTypeC = half_t; using FrgTypeB = GMMA::smem_desc; using Shape_MNK = Shape<_64,_96,_64>; using ThrID = Layout<_128>; using ALayout = GMMA::ALayout_64x64; using ELayout = GMMA::ELayout_64x64; using BLayout = GMMA::ABLayout< 96, 64>; using CLayout = GMMA::CLayout_64x96; GMMA::ScaleOut accumulate_ = GMMA::ScaleOut::One; }; //////////////////////////////////////////////////////////////////////////////////////////////////// template struct MMA_Traits> { using ValTypeD = float; using ValTypeA = sparse_elem<2, float_e4m3_t>; using ValTypeE = sparse_elem<8, uint8_t>; using ValTypeB = float_e4m3_t; using ValTypeC = float; using FrgTypeA = GMMA::smem_desc; using FrgTypeB = GMMA::smem_desc; using Shape_MNK = Shape<_64,_96,_64>; using ThrID = Layout<_128>; using ALayout = GMMA::ABLayout< 64, 64>; using ELayout = GMMA::ELayout_64x64; using BLayout = GMMA::ABLayout< 96, 64>; using CLayout = GMMA::CLayout_64x96; GMMA::ScaleOut accumulate_ = GMMA::ScaleOut::One; }; //////////////////////////////////////////////////////////////////////////////////////////////////// template struct MMA_Traits> { using ValTypeD = float; using ValTypeA = sparse_elem<2, float_e4m3_t>; using ValTypeE = sparse_elem<8, uint8_t>; using ValTypeB = float_e4m3_t; using ValTypeC = float; using FrgTypeB = GMMA::smem_desc; using Shape_MNK = Shape<_64,_96,_64>; using ThrID = Layout<_128>; using ALayout = GMMA::ALayout_64x64; using ELayout = GMMA::ELayout_64x64; using BLayout = GMMA::ABLayout< 96, 64>; using CLayout = GMMA::CLayout_64x96; GMMA::ScaleOut accumulate_ = GMMA::ScaleOut::One; }; //////////////////////////////////////////////////////////////////////////////////////////////////// template struct MMA_Traits> { using ValTypeD = half_t; using ValTypeA = sparse_elem<2, float_e4m3_t>; using ValTypeE = sparse_elem<8, uint8_t>; using ValTypeB = float_e4m3_t; using ValTypeC = half_t; using FrgTypeA = GMMA::smem_desc; using FrgTypeB = GMMA::smem_desc; using Shape_MNK = Shape<_64,_128,_64>; using ThrID = Layout<_128>; using ALayout = GMMA::ABLayout< 64, 64>; using ELayout = GMMA::ELayout_64x64; using BLayout = GMMA::ABLayout<128, 64>; using CLayout = GMMA::CLayout_64x128; GMMA::ScaleOut accumulate_ = GMMA::ScaleOut::One; }; //////////////////////////////////////////////////////////////////////////////////////////////////// template struct MMA_Traits> { using ValTypeD = half_t; using ValTypeA = sparse_elem<2, float_e4m3_t>; using ValTypeE = sparse_elem<8, uint8_t>; using ValTypeB = float_e4m3_t; using ValTypeC = half_t; using FrgTypeB = GMMA::smem_desc; using Shape_MNK = Shape<_64,_128,_64>; using ThrID = Layout<_128>; using ALayout = GMMA::ALayout_64x64; using ELayout = GMMA::ELayout_64x64; using BLayout = GMMA::ABLayout<128, 64>; using CLayout = GMMA::CLayout_64x128; GMMA::ScaleOut accumulate_ = GMMA::ScaleOut::One; }; //////////////////////////////////////////////////////////////////////////////////////////////////// template struct MMA_Traits> { using ValTypeD = float; using ValTypeA = sparse_elem<2, float_e4m3_t>; using ValTypeE = sparse_elem<8, uint8_t>; using ValTypeB = float_e4m3_t; using ValTypeC = float; using FrgTypeA = GMMA::smem_desc; using FrgTypeB = GMMA::smem_desc; using Shape_MNK = Shape<_64,_128,_64>; using ThrID = Layout<_128>; using ALayout = GMMA::ABLayout< 64, 64>; using ELayout = GMMA::ELayout_64x64; using BLayout = GMMA::ABLayout<128, 64>; using CLayout = GMMA::CLayout_64x128; GMMA::ScaleOut accumulate_ = GMMA::ScaleOut::One; }; //////////////////////////////////////////////////////////////////////////////////////////////////// template struct MMA_Traits> { using ValTypeD = float; using ValTypeA = sparse_elem<2, float_e4m3_t>; using ValTypeE = sparse_elem<8, uint8_t>; using ValTypeB = float_e4m3_t; using ValTypeC = float; using FrgTypeB = GMMA::smem_desc; using Shape_MNK = Shape<_64,_128,_64>; using ThrID = Layout<_128>; using ALayout = GMMA::ALayout_64x64; using ELayout = GMMA::ELayout_64x64; using BLayout = GMMA::ABLayout<128, 64>; using CLayout = GMMA::CLayout_64x128; GMMA::ScaleOut accumulate_ = GMMA::ScaleOut::One; }; //////////////////////////////////////////////////////////////////////////////////////////////////// template struct MMA_Traits> { using ValTypeD = half_t; using ValTypeA = sparse_elem<2, float_e4m3_t>; using ValTypeE = sparse_elem<8, uint8_t>; using ValTypeB = float_e4m3_t; using ValTypeC = half_t; using FrgTypeA = GMMA::smem_desc; using FrgTypeB = GMMA::smem_desc; using Shape_MNK = Shape<_64,_192,_64>; using ThrID = Layout<_128>; using ALayout = GMMA::ABLayout< 64, 64>; using ELayout = GMMA::ELayout_64x64; using BLayout = GMMA::ABLayout<192, 64>; using CLayout = GMMA::CLayout_64x192; GMMA::ScaleOut accumulate_ = GMMA::ScaleOut::One; }; //////////////////////////////////////////////////////////////////////////////////////////////////// template struct MMA_Traits> { using ValTypeD = half_t; using ValTypeA = sparse_elem<2, float_e4m3_t>; using ValTypeE = sparse_elem<8, uint8_t>; using ValTypeB = float_e4m3_t; using ValTypeC = half_t; using FrgTypeB = GMMA::smem_desc; using Shape_MNK = Shape<_64,_192,_64>; using ThrID = Layout<_128>; using ALayout = GMMA::ALayout_64x64; using ELayout = GMMA::ELayout_64x64; using BLayout = GMMA::ABLayout<192, 64>; using CLayout = GMMA::CLayout_64x192; GMMA::ScaleOut accumulate_ = GMMA::ScaleOut::One; }; //////////////////////////////////////////////////////////////////////////////////////////////////// template struct MMA_Traits> { using ValTypeD = float; using ValTypeA = sparse_elem<2, float_e4m3_t>; using ValTypeE = sparse_elem<8, uint8_t>; using ValTypeB = float_e4m3_t; using ValTypeC = float; using FrgTypeA = GMMA::smem_desc; using FrgTypeB = GMMA::smem_desc; using Shape_MNK = Shape<_64,_192,_64>; using ThrID = Layout<_128>; using ALayout = GMMA::ABLayout< 64, 64>; using ELayout = GMMA::ELayout_64x64; using BLayout = GMMA::ABLayout<192, 64>; using CLayout = GMMA::CLayout_64x192; GMMA::ScaleOut accumulate_ = GMMA::ScaleOut::One; }; //////////////////////////////////////////////////////////////////////////////////////////////////// template struct MMA_Traits> { using ValTypeD = float; using ValTypeA = sparse_elem<2, float_e4m3_t>; using ValTypeE = sparse_elem<8, uint8_t>; using ValTypeB = float_e4m3_t; using ValTypeC = float; using FrgTypeB = GMMA::smem_desc; using Shape_MNK = Shape<_64,_192,_64>; using ThrID = Layout<_128>; using ALayout = GMMA::ALayout_64x64; using ELayout = GMMA::ELayout_64x64; using BLayout = GMMA::ABLayout<192, 64>; using CLayout = GMMA::CLayout_64x192; GMMA::ScaleOut accumulate_ = GMMA::ScaleOut::One; }; //////////////////////////////////////////////////////////////////////////////////////////////////// template struct MMA_Traits> { using ValTypeD = half_t; using ValTypeA = sparse_elem<2, float_e4m3_t>; using ValTypeE = sparse_elem<8, uint8_t>; using ValTypeB = float_e4m3_t; using ValTypeC = half_t; using FrgTypeA = GMMA::smem_desc; using FrgTypeB = GMMA::smem_desc; using Shape_MNK = Shape<_64,_256,_64>; using ThrID = Layout<_128>; using ALayout = GMMA::ABLayout< 64, 64>; using ELayout = GMMA::ELayout_64x64; using BLayout = GMMA::ABLayout<256, 64>; using CLayout = GMMA::CLayout_64x256; GMMA::ScaleOut accumulate_ = GMMA::ScaleOut::One; }; //////////////////////////////////////////////////////////////////////////////////////////////////// template struct MMA_Traits> { using ValTypeD = half_t; using ValTypeA = sparse_elem<2, float_e4m3_t>; using ValTypeE = sparse_elem<8, uint8_t>; using ValTypeB = float_e4m3_t; using ValTypeC = half_t; using FrgTypeB = GMMA::smem_desc; using Shape_MNK = Shape<_64,_256,_64>; using ThrID = Layout<_128>; using ALayout = GMMA::ALayout_64x64; using ELayout = GMMA::ELayout_64x64; using BLayout = GMMA::ABLayout<256, 64>; using CLayout = GMMA::CLayout_64x256; GMMA::ScaleOut accumulate_ = GMMA::ScaleOut::One; }; //////////////////////////////////////////////////////////////////////////////////////////////////// template struct MMA_Traits> { using ValTypeD = float; using ValTypeA = sparse_elem<2, float_e4m3_t>; using ValTypeE = sparse_elem<8, uint8_t>; using ValTypeB = float_e4m3_t; using ValTypeC = float; using FrgTypeA = GMMA::smem_desc; using FrgTypeB = GMMA::smem_desc; using Shape_MNK = Shape<_64,_256,_64>; using ThrID = Layout<_128>; using ALayout = GMMA::ABLayout< 64, 64>; using ELayout = GMMA::ELayout_64x64; using BLayout = GMMA::ABLayout<256, 64>; using CLayout = GMMA::CLayout_64x256; GMMA::ScaleOut accumulate_ = GMMA::ScaleOut::One; }; //////////////////////////////////////////////////////////////////////////////////////////////////// template struct MMA_Traits> { using ValTypeD = float; using ValTypeA = sparse_elem<2, float_e4m3_t>; using ValTypeE = sparse_elem<8, uint8_t>; using ValTypeB = float_e4m3_t; using ValTypeC = float; using FrgTypeB = GMMA::smem_desc; using Shape_MNK = Shape<_64,_256,_64>; using ThrID = Layout<_128>; using ALayout = GMMA::ALayout_64x64; using ELayout = GMMA::ELayout_64x64; using BLayout = GMMA::ABLayout<256, 64>; using CLayout = GMMA::CLayout_64x256; GMMA::ScaleOut accumulate_ = GMMA::ScaleOut::One; }; //////////////////////////////////////////////////////////////////////////////////////////////////// template struct MMA_Traits> { using ValTypeD = half_t; using ValTypeA = sparse_elem<2, float_e4m3_t>; using ValTypeE = sparse_elem<8, uint8_t>; using ValTypeB = float_e5m2_t; using ValTypeC = half_t; using FrgTypeA = GMMA::smem_desc; using FrgTypeB = GMMA::smem_desc; using Shape_MNK = Shape<_64,_8,_64>; using ThrID = Layout<_128>; using ALayout = GMMA::ABLayout< 64, 64>; using ELayout = GMMA::ELayout_64x64; using BLayout = GMMA::ABLayout< 8, 64>; using CLayout = GMMA::CLayout_64x8; GMMA::ScaleOut accumulate_ = GMMA::ScaleOut::One; }; //////////////////////////////////////////////////////////////////////////////////////////////////// template struct MMA_Traits> { using ValTypeD = half_t; using ValTypeA = sparse_elem<2, float_e4m3_t>; using ValTypeE = sparse_elem<8, uint8_t>; using ValTypeB = float_e5m2_t; using ValTypeC = half_t; using FrgTypeB = GMMA::smem_desc; using Shape_MNK = Shape<_64,_8,_64>; using ThrID = Layout<_128>; using ALayout = GMMA::ALayout_64x64; using ELayout = GMMA::ELayout_64x64; using BLayout = GMMA::ABLayout< 8, 64>; using CLayout = GMMA::CLayout_64x8; GMMA::ScaleOut accumulate_ = GMMA::ScaleOut::One; }; //////////////////////////////////////////////////////////////////////////////////////////////////// template struct MMA_Traits> { using ValTypeD = float; using ValTypeA = sparse_elem<2, float_e4m3_t>; using ValTypeE = sparse_elem<8, uint8_t>; using ValTypeB = float_e5m2_t; using ValTypeC = float; using FrgTypeA = GMMA::smem_desc; using FrgTypeB = GMMA::smem_desc; using Shape_MNK = Shape<_64,_8,_64>; using ThrID = Layout<_128>; using ALayout = GMMA::ABLayout< 64, 64>; using ELayout = GMMA::ELayout_64x64; using BLayout = GMMA::ABLayout< 8, 64>; using CLayout = GMMA::CLayout_64x8; GMMA::ScaleOut accumulate_ = GMMA::ScaleOut::One; }; //////////////////////////////////////////////////////////////////////////////////////////////////// template struct MMA_Traits> { using ValTypeD = float; using ValTypeA = sparse_elem<2, float_e4m3_t>; using ValTypeE = sparse_elem<8, uint8_t>; using ValTypeB = float_e5m2_t; using ValTypeC = float; using FrgTypeB = GMMA::smem_desc; using Shape_MNK = Shape<_64,_8,_64>; using ThrID = Layout<_128>; using ALayout = GMMA::ALayout_64x64; using ELayout = GMMA::ELayout_64x64; using BLayout = GMMA::ABLayout< 8, 64>; using CLayout = GMMA::CLayout_64x8; GMMA::ScaleOut accumulate_ = GMMA::ScaleOut::One; }; //////////////////////////////////////////////////////////////////////////////////////////////////// template struct MMA_Traits> { using ValTypeD = half_t; using ValTypeA = sparse_elem<2, float_e4m3_t>; using ValTypeE = sparse_elem<8, uint8_t>; using ValTypeB = float_e5m2_t; using ValTypeC = half_t; using FrgTypeA = GMMA::smem_desc; using FrgTypeB = GMMA::smem_desc; using Shape_MNK = Shape<_64,_16,_64>; using ThrID = Layout<_128>; using ALayout = GMMA::ABLayout< 64, 64>; using ELayout = GMMA::ELayout_64x64; using BLayout = GMMA::ABLayout< 16, 64>; using CLayout = GMMA::CLayout_64x16; GMMA::ScaleOut accumulate_ = GMMA::ScaleOut::One; }; //////////////////////////////////////////////////////////////////////////////////////////////////// template struct MMA_Traits> { using ValTypeD = half_t; using ValTypeA = sparse_elem<2, float_e4m3_t>; using ValTypeE = sparse_elem<8, uint8_t>; using ValTypeB = float_e5m2_t; using ValTypeC = half_t; using FrgTypeB = GMMA::smem_desc; using Shape_MNK = Shape<_64,_16,_64>; using ThrID = Layout<_128>; using ALayout = GMMA::ALayout_64x64; using ELayout = GMMA::ELayout_64x64; using BLayout = GMMA::ABLayout< 16, 64>; using CLayout = GMMA::CLayout_64x16; GMMA::ScaleOut accumulate_ = GMMA::ScaleOut::One; }; //////////////////////////////////////////////////////////////////////////////////////////////////// template struct MMA_Traits> { using ValTypeD = float; using ValTypeA = sparse_elem<2, float_e4m3_t>; using ValTypeE = sparse_elem<8, uint8_t>; using ValTypeB = float_e5m2_t; using ValTypeC = float; using FrgTypeA = GMMA::smem_desc; using FrgTypeB = GMMA::smem_desc; using Shape_MNK = Shape<_64,_16,_64>; using ThrID = Layout<_128>; using ALayout = GMMA::ABLayout< 64, 64>; using ELayout = GMMA::ELayout_64x64; using BLayout = GMMA::ABLayout< 16, 64>; using CLayout = GMMA::CLayout_64x16; GMMA::ScaleOut accumulate_ = GMMA::ScaleOut::One; }; //////////////////////////////////////////////////////////////////////////////////////////////////// template struct MMA_Traits> { using ValTypeD = float; using ValTypeA = sparse_elem<2, float_e4m3_t>; using ValTypeE = sparse_elem<8, uint8_t>; using ValTypeB = float_e5m2_t; using ValTypeC = float; using FrgTypeB = GMMA::smem_desc; using Shape_MNK = Shape<_64,_16,_64>; using ThrID = Layout<_128>; using ALayout = GMMA::ALayout_64x64; using ELayout = GMMA::ELayout_64x64; using BLayout = GMMA::ABLayout< 16, 64>; using CLayout = GMMA::CLayout_64x16; GMMA::ScaleOut accumulate_ = GMMA::ScaleOut::One; }; //////////////////////////////////////////////////////////////////////////////////////////////////// template struct MMA_Traits> { using ValTypeD = half_t; using ValTypeA = sparse_elem<2, float_e4m3_t>; using ValTypeE = sparse_elem<8, uint8_t>; using ValTypeB = float_e5m2_t; using ValTypeC = half_t; using FrgTypeA = GMMA::smem_desc; using FrgTypeB = GMMA::smem_desc; using Shape_MNK = Shape<_64,_32,_64>; using ThrID = Layout<_128>; using ALayout = GMMA::ABLayout< 64, 64>; using ELayout = GMMA::ELayout_64x64; using BLayout = GMMA::ABLayout< 32, 64>; using CLayout = GMMA::CLayout_64x32; GMMA::ScaleOut accumulate_ = GMMA::ScaleOut::One; }; //////////////////////////////////////////////////////////////////////////////////////////////////// template struct MMA_Traits> { using ValTypeD = half_t; using ValTypeA = sparse_elem<2, float_e4m3_t>; using ValTypeE = sparse_elem<8, uint8_t>; using ValTypeB = float_e5m2_t; using ValTypeC = half_t; using FrgTypeB = GMMA::smem_desc; using Shape_MNK = Shape<_64,_32,_64>; using ThrID = Layout<_128>; using ALayout = GMMA::ALayout_64x64; using ELayout = GMMA::ELayout_64x64; using BLayout = GMMA::ABLayout< 32, 64>; using CLayout = GMMA::CLayout_64x32; GMMA::ScaleOut accumulate_ = GMMA::ScaleOut::One; }; //////////////////////////////////////////////////////////////////////////////////////////////////// template struct MMA_Traits> { using ValTypeD = float; using ValTypeA = sparse_elem<2, float_e4m3_t>; using ValTypeE = sparse_elem<8, uint8_t>; using ValTypeB = float_e5m2_t; using ValTypeC = float; using FrgTypeA = GMMA::smem_desc; using FrgTypeB = GMMA::smem_desc; using Shape_MNK = Shape<_64,_32,_64>; using ThrID = Layout<_128>; using ALayout = GMMA::ABLayout< 64, 64>; using ELayout = GMMA::ELayout_64x64; using BLayout = GMMA::ABLayout< 32, 64>; using CLayout = GMMA::CLayout_64x32; GMMA::ScaleOut accumulate_ = GMMA::ScaleOut::One; }; //////////////////////////////////////////////////////////////////////////////////////////////////// template struct MMA_Traits> { using ValTypeD = float; using ValTypeA = sparse_elem<2, float_e4m3_t>; using ValTypeE = sparse_elem<8, uint8_t>; using ValTypeB = float_e5m2_t; using ValTypeC = float; using FrgTypeB = GMMA::smem_desc; using Shape_MNK = Shape<_64,_32,_64>; using ThrID = Layout<_128>; using ALayout = GMMA::ALayout_64x64; using ELayout = GMMA::ELayout_64x64; using BLayout = GMMA::ABLayout< 32, 64>; using CLayout = GMMA::CLayout_64x32; GMMA::ScaleOut accumulate_ = GMMA::ScaleOut::One; }; //////////////////////////////////////////////////////////////////////////////////////////////////// template struct MMA_Traits> { using ValTypeD = half_t; using ValTypeA = sparse_elem<2, float_e4m3_t>; using ValTypeE = sparse_elem<8, uint8_t>; using ValTypeB = float_e5m2_t; using ValTypeC = half_t; using FrgTypeA = GMMA::smem_desc; using FrgTypeB = GMMA::smem_desc; using Shape_MNK = Shape<_64,_64,_64>; using ThrID = Layout<_128>; using ALayout = GMMA::ABLayout< 64, 64>; using ELayout = GMMA::ELayout_64x64; using BLayout = GMMA::ABLayout< 64, 64>; using CLayout = GMMA::CLayout_64x64; GMMA::ScaleOut accumulate_ = GMMA::ScaleOut::One; }; //////////////////////////////////////////////////////////////////////////////////////////////////// template struct MMA_Traits> { using ValTypeD = half_t; using ValTypeA = sparse_elem<2, float_e4m3_t>; using ValTypeE = sparse_elem<8, uint8_t>; using ValTypeB = float_e5m2_t; using ValTypeC = half_t; using FrgTypeB = GMMA::smem_desc; using Shape_MNK = Shape<_64,_64,_64>; using ThrID = Layout<_128>; using ALayout = GMMA::ALayout_64x64; using ELayout = GMMA::ELayout_64x64; using BLayout = GMMA::ABLayout< 64, 64>; using CLayout = GMMA::CLayout_64x64; GMMA::ScaleOut accumulate_ = GMMA::ScaleOut::One; }; //////////////////////////////////////////////////////////////////////////////////////////////////// template struct MMA_Traits> { using ValTypeD = float; using ValTypeA = sparse_elem<2, float_e4m3_t>; using ValTypeE = sparse_elem<8, uint8_t>; using ValTypeB = float_e5m2_t; using ValTypeC = float; using FrgTypeA = GMMA::smem_desc; using FrgTypeB = GMMA::smem_desc; using Shape_MNK = Shape<_64,_64,_64>; using ThrID = Layout<_128>; using ALayout = GMMA::ABLayout< 64, 64>; using ELayout = GMMA::ELayout_64x64; using BLayout = GMMA::ABLayout< 64, 64>; using CLayout = GMMA::CLayout_64x64; GMMA::ScaleOut accumulate_ = GMMA::ScaleOut::One; }; //////////////////////////////////////////////////////////////////////////////////////////////////// template struct MMA_Traits> { using ValTypeD = float; using ValTypeA = sparse_elem<2, float_e4m3_t>; using ValTypeE = sparse_elem<8, uint8_t>; using ValTypeB = float_e5m2_t; using ValTypeC = float; using FrgTypeB = GMMA::smem_desc; using Shape_MNK = Shape<_64,_64,_64>; using ThrID = Layout<_128>; using ALayout = GMMA::ALayout_64x64; using ELayout = GMMA::ELayout_64x64; using BLayout = GMMA::ABLayout< 64, 64>; using CLayout = GMMA::CLayout_64x64; GMMA::ScaleOut accumulate_ = GMMA::ScaleOut::One; }; //////////////////////////////////////////////////////////////////////////////////////////////////// template struct MMA_Traits> { using ValTypeD = half_t; using ValTypeA = sparse_elem<2, float_e4m3_t>; using ValTypeE = sparse_elem<8, uint8_t>; using ValTypeB = float_e5m2_t; using ValTypeC = half_t; using FrgTypeA = GMMA::smem_desc; using FrgTypeB = GMMA::smem_desc; using Shape_MNK = Shape<_64,_96,_64>; using ThrID = Layout<_128>; using ALayout = GMMA::ABLayout< 64, 64>; using ELayout = GMMA::ELayout_64x64; using BLayout = GMMA::ABLayout< 96, 64>; using CLayout = GMMA::CLayout_64x96; GMMA::ScaleOut accumulate_ = GMMA::ScaleOut::One; }; //////////////////////////////////////////////////////////////////////////////////////////////////// template struct MMA_Traits> { using ValTypeD = half_t; using ValTypeA = sparse_elem<2, float_e4m3_t>; using ValTypeE = sparse_elem<8, uint8_t>; using ValTypeB = float_e5m2_t; using ValTypeC = half_t; using FrgTypeB = GMMA::smem_desc; using Shape_MNK = Shape<_64,_96,_64>; using ThrID = Layout<_128>; using ALayout = GMMA::ALayout_64x64; using ELayout = GMMA::ELayout_64x64; using BLayout = GMMA::ABLayout< 96, 64>; using CLayout = GMMA::CLayout_64x96; GMMA::ScaleOut accumulate_ = GMMA::ScaleOut::One; }; //////////////////////////////////////////////////////////////////////////////////////////////////// template struct MMA_Traits> { using ValTypeD = float; using ValTypeA = sparse_elem<2, float_e4m3_t>; using ValTypeE = sparse_elem<8, uint8_t>; using ValTypeB = float_e5m2_t; using ValTypeC = float; using FrgTypeA = GMMA::smem_desc; using FrgTypeB = GMMA::smem_desc; using Shape_MNK = Shape<_64,_96,_64>; using ThrID = Layout<_128>; using ALayout = GMMA::ABLayout< 64, 64>; using ELayout = GMMA::ELayout_64x64; using BLayout = GMMA::ABLayout< 96, 64>; using CLayout = GMMA::CLayout_64x96; GMMA::ScaleOut accumulate_ = GMMA::ScaleOut::One; }; //////////////////////////////////////////////////////////////////////////////////////////////////// template struct MMA_Traits> { using ValTypeD = float; using ValTypeA = sparse_elem<2, float_e4m3_t>; using ValTypeE = sparse_elem<8, uint8_t>; using ValTypeB = float_e5m2_t; using ValTypeC = float; using FrgTypeB = GMMA::smem_desc; using Shape_MNK = Shape<_64,_96,_64>; using ThrID = Layout<_128>; using ALayout = GMMA::ALayout_64x64; using ELayout = GMMA::ELayout_64x64; using BLayout = GMMA::ABLayout< 96, 64>; using CLayout = GMMA::CLayout_64x96; GMMA::ScaleOut accumulate_ = GMMA::ScaleOut::One; }; //////////////////////////////////////////////////////////////////////////////////////////////////// template struct MMA_Traits> { using ValTypeD = half_t; using ValTypeA = sparse_elem<2, float_e4m3_t>; using ValTypeE = sparse_elem<8, uint8_t>; using ValTypeB = float_e5m2_t; using ValTypeC = half_t; using FrgTypeA = GMMA::smem_desc; using FrgTypeB = GMMA::smem_desc; using Shape_MNK = Shape<_64,_128,_64>; using ThrID = Layout<_128>; using ALayout = GMMA::ABLayout< 64, 64>; using ELayout = GMMA::ELayout_64x64; using BLayout = GMMA::ABLayout<128, 64>; using CLayout = GMMA::CLayout_64x128; GMMA::ScaleOut accumulate_ = GMMA::ScaleOut::One; }; //////////////////////////////////////////////////////////////////////////////////////////////////// template struct MMA_Traits> { using ValTypeD = half_t; using ValTypeA = sparse_elem<2, float_e4m3_t>; using ValTypeE = sparse_elem<8, uint8_t>; using ValTypeB = float_e5m2_t; using ValTypeC = half_t; using FrgTypeB = GMMA::smem_desc; using Shape_MNK = Shape<_64,_128,_64>; using ThrID = Layout<_128>; using ALayout = GMMA::ALayout_64x64; using ELayout = GMMA::ELayout_64x64; using BLayout = GMMA::ABLayout<128, 64>; using CLayout = GMMA::CLayout_64x128; GMMA::ScaleOut accumulate_ = GMMA::ScaleOut::One; }; //////////////////////////////////////////////////////////////////////////////////////////////////// template struct MMA_Traits> { using ValTypeD = float; using ValTypeA = sparse_elem<2, float_e4m3_t>; using ValTypeE = sparse_elem<8, uint8_t>; using ValTypeB = float_e5m2_t; using ValTypeC = float; using FrgTypeA = GMMA::smem_desc; using FrgTypeB = GMMA::smem_desc; using Shape_MNK = Shape<_64,_128,_64>; using ThrID = Layout<_128>; using ALayout = GMMA::ABLayout< 64, 64>; using ELayout = GMMA::ELayout_64x64; using BLayout = GMMA::ABLayout<128, 64>; using CLayout = GMMA::CLayout_64x128; GMMA::ScaleOut accumulate_ = GMMA::ScaleOut::One; }; //////////////////////////////////////////////////////////////////////////////////////////////////// template struct MMA_Traits> { using ValTypeD = float; using ValTypeA = sparse_elem<2, float_e4m3_t>; using ValTypeE = sparse_elem<8, uint8_t>; using ValTypeB = float_e5m2_t; using ValTypeC = float; using FrgTypeB = GMMA::smem_desc; using Shape_MNK = Shape<_64,_128,_64>; using ThrID = Layout<_128>; using ALayout = GMMA::ALayout_64x64; using ELayout = GMMA::ELayout_64x64; using BLayout = GMMA::ABLayout<128, 64>; using CLayout = GMMA::CLayout_64x128; GMMA::ScaleOut accumulate_ = GMMA::ScaleOut::One; }; //////////////////////////////////////////////////////////////////////////////////////////////////// template struct MMA_Traits> { using ValTypeD = half_t; using ValTypeA = sparse_elem<2, float_e4m3_t>; using ValTypeE = sparse_elem<8, uint8_t>; using ValTypeB = float_e5m2_t; using ValTypeC = half_t; using FrgTypeA = GMMA::smem_desc; using FrgTypeB = GMMA::smem_desc; using Shape_MNK = Shape<_64,_192,_64>; using ThrID = Layout<_128>; using ALayout = GMMA::ABLayout< 64, 64>; using ELayout = GMMA::ELayout_64x64; using BLayout = GMMA::ABLayout<192, 64>; using CLayout = GMMA::CLayout_64x192; GMMA::ScaleOut accumulate_ = GMMA::ScaleOut::One; }; //////////////////////////////////////////////////////////////////////////////////////////////////// template struct MMA_Traits> { using ValTypeD = half_t; using ValTypeA = sparse_elem<2, float_e4m3_t>; using ValTypeE = sparse_elem<8, uint8_t>; using ValTypeB = float_e5m2_t; using ValTypeC = half_t; using FrgTypeB = GMMA::smem_desc; using Shape_MNK = Shape<_64,_192,_64>; using ThrID = Layout<_128>; using ALayout = GMMA::ALayout_64x64; using ELayout = GMMA::ELayout_64x64; using BLayout = GMMA::ABLayout<192, 64>; using CLayout = GMMA::CLayout_64x192; GMMA::ScaleOut accumulate_ = GMMA::ScaleOut::One; }; //////////////////////////////////////////////////////////////////////////////////////////////////// template struct MMA_Traits> { using ValTypeD = float; using ValTypeA = sparse_elem<2, float_e4m3_t>; using ValTypeE = sparse_elem<8, uint8_t>; using ValTypeB = float_e5m2_t; using ValTypeC = float; using FrgTypeA = GMMA::smem_desc; using FrgTypeB = GMMA::smem_desc; using Shape_MNK = Shape<_64,_192,_64>; using ThrID = Layout<_128>; using ALayout = GMMA::ABLayout< 64, 64>; using ELayout = GMMA::ELayout_64x64; using BLayout = GMMA::ABLayout<192, 64>; using CLayout = GMMA::CLayout_64x192; GMMA::ScaleOut accumulate_ = GMMA::ScaleOut::One; }; //////////////////////////////////////////////////////////////////////////////////////////////////// template struct MMA_Traits> { using ValTypeD = float; using ValTypeA = sparse_elem<2, float_e4m3_t>; using ValTypeE = sparse_elem<8, uint8_t>; using ValTypeB = float_e5m2_t; using ValTypeC = float; using FrgTypeB = GMMA::smem_desc; using Shape_MNK = Shape<_64,_192,_64>; using ThrID = Layout<_128>; using ALayout = GMMA::ALayout_64x64; using ELayout = GMMA::ELayout_64x64; using BLayout = GMMA::ABLayout<192, 64>; using CLayout = GMMA::CLayout_64x192; GMMA::ScaleOut accumulate_ = GMMA::ScaleOut::One; }; //////////////////////////////////////////////////////////////////////////////////////////////////// template struct MMA_Traits> { using ValTypeD = half_t; using ValTypeA = sparse_elem<2, float_e4m3_t>; using ValTypeE = sparse_elem<8, uint8_t>; using ValTypeB = float_e5m2_t; using ValTypeC = half_t; using FrgTypeA = GMMA::smem_desc; using FrgTypeB = GMMA::smem_desc; using Shape_MNK = Shape<_64,_256,_64>; using ThrID = Layout<_128>; using ALayout = GMMA::ABLayout< 64, 64>; using ELayout = GMMA::ELayout_64x64; using BLayout = GMMA::ABLayout<256, 64>; using CLayout = GMMA::CLayout_64x256; GMMA::ScaleOut accumulate_ = GMMA::ScaleOut::One; }; //////////////////////////////////////////////////////////////////////////////////////////////////// template struct MMA_Traits> { using ValTypeD = half_t; using ValTypeA = sparse_elem<2, float_e4m3_t>; using ValTypeE = sparse_elem<8, uint8_t>; using ValTypeB = float_e5m2_t; using ValTypeC = half_t; using FrgTypeB = GMMA::smem_desc; using Shape_MNK = Shape<_64,_256,_64>; using ThrID = Layout<_128>; using ALayout = GMMA::ALayout_64x64; using ELayout = GMMA::ELayout_64x64; using BLayout = GMMA::ABLayout<256, 64>; using CLayout = GMMA::CLayout_64x256; GMMA::ScaleOut accumulate_ = GMMA::ScaleOut::One; }; //////////////////////////////////////////////////////////////////////////////////////////////////// template struct MMA_Traits> { using ValTypeD = float; using ValTypeA = sparse_elem<2, float_e4m3_t>; using ValTypeE = sparse_elem<8, uint8_t>; using ValTypeB = float_e5m2_t; using ValTypeC = float; using FrgTypeA = GMMA::smem_desc; using FrgTypeB = GMMA::smem_desc; using Shape_MNK = Shape<_64,_256,_64>; using ThrID = Layout<_128>; using ALayout = GMMA::ABLayout< 64, 64>; using ELayout = GMMA::ELayout_64x64; using BLayout = GMMA::ABLayout<256, 64>; using CLayout = GMMA::CLayout_64x256; GMMA::ScaleOut accumulate_ = GMMA::ScaleOut::One; }; //////////////////////////////////////////////////////////////////////////////////////////////////// template struct MMA_Traits> { using ValTypeD = float; using ValTypeA = sparse_elem<2, float_e4m3_t>; using ValTypeE = sparse_elem<8, uint8_t>; using ValTypeB = float_e5m2_t; using ValTypeC = float; using FrgTypeB = GMMA::smem_desc; using Shape_MNK = Shape<_64,_256,_64>; using ThrID = Layout<_128>; using ALayout = GMMA::ALayout_64x64; using ELayout = GMMA::ELayout_64x64; using BLayout = GMMA::ABLayout<256, 64>; using CLayout = GMMA::CLayout_64x256; GMMA::ScaleOut accumulate_ = GMMA::ScaleOut::One; }; //////////////////////////////////////////////////////////////////////////////////////////////////// template struct MMA_Traits> { using ValTypeD = half_t; using ValTypeA = sparse_elem<2, float_e5m2_t>; using ValTypeE = sparse_elem<8, uint8_t>; using ValTypeB = float_e4m3_t; using ValTypeC = half_t; using FrgTypeA = GMMA::smem_desc; using FrgTypeB = GMMA::smem_desc; using Shape_MNK = Shape<_64,_8,_64>; using ThrID = Layout<_128>; using ALayout = GMMA::ABLayout< 64, 64>; using ELayout = GMMA::ELayout_64x64; using BLayout = GMMA::ABLayout< 8, 64>; using CLayout = GMMA::CLayout_64x8; GMMA::ScaleOut accumulate_ = GMMA::ScaleOut::One; }; //////////////////////////////////////////////////////////////////////////////////////////////////// template struct MMA_Traits> { using ValTypeD = half_t; using ValTypeA = sparse_elem<2, float_e5m2_t>; using ValTypeE = sparse_elem<8, uint8_t>; using ValTypeB = float_e4m3_t; using ValTypeC = half_t; using FrgTypeB = GMMA::smem_desc; using Shape_MNK = Shape<_64,_8,_64>; using ThrID = Layout<_128>; using ALayout = GMMA::ALayout_64x64; using ELayout = GMMA::ELayout_64x64; using BLayout = GMMA::ABLayout< 8, 64>; using CLayout = GMMA::CLayout_64x8; GMMA::ScaleOut accumulate_ = GMMA::ScaleOut::One; }; //////////////////////////////////////////////////////////////////////////////////////////////////// template struct MMA_Traits> { using ValTypeD = float; using ValTypeA = sparse_elem<2, float_e5m2_t>; using ValTypeE = sparse_elem<8, uint8_t>; using ValTypeB = float_e4m3_t; using ValTypeC = float; using FrgTypeA = GMMA::smem_desc; using FrgTypeB = GMMA::smem_desc; using Shape_MNK = Shape<_64,_8,_64>; using ThrID = Layout<_128>; using ALayout = GMMA::ABLayout< 64, 64>; using ELayout = GMMA::ELayout_64x64; using BLayout = GMMA::ABLayout< 8, 64>; using CLayout = GMMA::CLayout_64x8; GMMA::ScaleOut accumulate_ = GMMA::ScaleOut::One; }; //////////////////////////////////////////////////////////////////////////////////////////////////// template struct MMA_Traits> { using ValTypeD = float; using ValTypeA = sparse_elem<2, float_e5m2_t>; using ValTypeE = sparse_elem<8, uint8_t>; using ValTypeB = float_e4m3_t; using ValTypeC = float; using FrgTypeB = GMMA::smem_desc; using Shape_MNK = Shape<_64,_8,_64>; using ThrID = Layout<_128>; using ALayout = GMMA::ALayout_64x64; using ELayout = GMMA::ELayout_64x64; using BLayout = GMMA::ABLayout< 8, 64>; using CLayout = GMMA::CLayout_64x8; GMMA::ScaleOut accumulate_ = GMMA::ScaleOut::One; }; //////////////////////////////////////////////////////////////////////////////////////////////////// template struct MMA_Traits> { using ValTypeD = half_t; using ValTypeA = sparse_elem<2, float_e5m2_t>; using ValTypeE = sparse_elem<8, uint8_t>; using ValTypeB = float_e4m3_t; using ValTypeC = half_t; using FrgTypeA = GMMA::smem_desc; using FrgTypeB = GMMA::smem_desc; using Shape_MNK = Shape<_64,_16,_64>; using ThrID = Layout<_128>; using ALayout = GMMA::ABLayout< 64, 64>; using ELayout = GMMA::ELayout_64x64; using BLayout = GMMA::ABLayout< 16, 64>; using CLayout = GMMA::CLayout_64x16; GMMA::ScaleOut accumulate_ = GMMA::ScaleOut::One; }; //////////////////////////////////////////////////////////////////////////////////////////////////// template struct MMA_Traits> { using ValTypeD = half_t; using ValTypeA = sparse_elem<2, float_e5m2_t>; using ValTypeE = sparse_elem<8, uint8_t>; using ValTypeB = float_e4m3_t; using ValTypeC = half_t; using FrgTypeB = GMMA::smem_desc; using Shape_MNK = Shape<_64,_16,_64>; using ThrID = Layout<_128>; using ALayout = GMMA::ALayout_64x64; using ELayout = GMMA::ELayout_64x64; using BLayout = GMMA::ABLayout< 16, 64>; using CLayout = GMMA::CLayout_64x16; GMMA::ScaleOut accumulate_ = GMMA::ScaleOut::One; }; //////////////////////////////////////////////////////////////////////////////////////////////////// template struct MMA_Traits> { using ValTypeD = float; using ValTypeA = sparse_elem<2, float_e5m2_t>; using ValTypeE = sparse_elem<8, uint8_t>; using ValTypeB = float_e4m3_t; using ValTypeC = float; using FrgTypeA = GMMA::smem_desc; using FrgTypeB = GMMA::smem_desc; using Shape_MNK = Shape<_64,_16,_64>; using ThrID = Layout<_128>; using ALayout = GMMA::ABLayout< 64, 64>; using ELayout = GMMA::ELayout_64x64; using BLayout = GMMA::ABLayout< 16, 64>; using CLayout = GMMA::CLayout_64x16; GMMA::ScaleOut accumulate_ = GMMA::ScaleOut::One; }; //////////////////////////////////////////////////////////////////////////////////////////////////// template struct MMA_Traits> { using ValTypeD = float; using ValTypeA = sparse_elem<2, float_e5m2_t>; using ValTypeE = sparse_elem<8, uint8_t>; using ValTypeB = float_e4m3_t; using ValTypeC = float; using FrgTypeB = GMMA::smem_desc; using Shape_MNK = Shape<_64,_16,_64>; using ThrID = Layout<_128>; using ALayout = GMMA::ALayout_64x64; using ELayout = GMMA::ELayout_64x64; using BLayout = GMMA::ABLayout< 16, 64>; using CLayout = GMMA::CLayout_64x16; GMMA::ScaleOut accumulate_ = GMMA::ScaleOut::One; }; //////////////////////////////////////////////////////////////////////////////////////////////////// template struct MMA_Traits> { using ValTypeD = half_t; using ValTypeA = sparse_elem<2, float_e5m2_t>; using ValTypeE = sparse_elem<8, uint8_t>; using ValTypeB = float_e4m3_t; using ValTypeC = half_t; using FrgTypeA = GMMA::smem_desc; using FrgTypeB = GMMA::smem_desc; using Shape_MNK = Shape<_64,_32,_64>; using ThrID = Layout<_128>; using ALayout = GMMA::ABLayout< 64, 64>; using ELayout = GMMA::ELayout_64x64; using BLayout = GMMA::ABLayout< 32, 64>; using CLayout = GMMA::CLayout_64x32; GMMA::ScaleOut accumulate_ = GMMA::ScaleOut::One; }; //////////////////////////////////////////////////////////////////////////////////////////////////// template struct MMA_Traits> { using ValTypeD = half_t; using ValTypeA = sparse_elem<2, float_e5m2_t>; using ValTypeE = sparse_elem<8, uint8_t>; using ValTypeB = float_e4m3_t; using ValTypeC = half_t; using FrgTypeB = GMMA::smem_desc; using Shape_MNK = Shape<_64,_32,_64>; using ThrID = Layout<_128>; using ALayout = GMMA::ALayout_64x64; using ELayout = GMMA::ELayout_64x64; using BLayout = GMMA::ABLayout< 32, 64>; using CLayout = GMMA::CLayout_64x32; GMMA::ScaleOut accumulate_ = GMMA::ScaleOut::One; }; //////////////////////////////////////////////////////////////////////////////////////////////////// template struct MMA_Traits> { using ValTypeD = float; using ValTypeA = sparse_elem<2, float_e5m2_t>; using ValTypeE = sparse_elem<8, uint8_t>; using ValTypeB = float_e4m3_t; using ValTypeC = float; using FrgTypeA = GMMA::smem_desc; using FrgTypeB = GMMA::smem_desc; using Shape_MNK = Shape<_64,_32,_64>; using ThrID = Layout<_128>; using ALayout = GMMA::ABLayout< 64, 64>; using ELayout = GMMA::ELayout_64x64; using BLayout = GMMA::ABLayout< 32, 64>; using CLayout = GMMA::CLayout_64x32; GMMA::ScaleOut accumulate_ = GMMA::ScaleOut::One; }; //////////////////////////////////////////////////////////////////////////////////////////////////// template struct MMA_Traits> { using ValTypeD = float; using ValTypeA = sparse_elem<2, float_e5m2_t>; using ValTypeE = sparse_elem<8, uint8_t>; using ValTypeB = float_e4m3_t; using ValTypeC = float; using FrgTypeB = GMMA::smem_desc; using Shape_MNK = Shape<_64,_32,_64>; using ThrID = Layout<_128>; using ALayout = GMMA::ALayout_64x64; using ELayout = GMMA::ELayout_64x64; using BLayout = GMMA::ABLayout< 32, 64>; using CLayout = GMMA::CLayout_64x32; GMMA::ScaleOut accumulate_ = GMMA::ScaleOut::One; }; //////////////////////////////////////////////////////////////////////////////////////////////////// template struct MMA_Traits> { using ValTypeD = half_t; using ValTypeA = sparse_elem<2, float_e5m2_t>; using ValTypeE = sparse_elem<8, uint8_t>; using ValTypeB = float_e4m3_t; using ValTypeC = half_t; using FrgTypeA = GMMA::smem_desc; using FrgTypeB = GMMA::smem_desc; using Shape_MNK = Shape<_64,_64,_64>; using ThrID = Layout<_128>; using ALayout = GMMA::ABLayout< 64, 64>; using ELayout = GMMA::ELayout_64x64; using BLayout = GMMA::ABLayout< 64, 64>; using CLayout = GMMA::CLayout_64x64; GMMA::ScaleOut accumulate_ = GMMA::ScaleOut::One; }; //////////////////////////////////////////////////////////////////////////////////////////////////// template struct MMA_Traits> { using ValTypeD = half_t; using ValTypeA = sparse_elem<2, float_e5m2_t>; using ValTypeE = sparse_elem<8, uint8_t>; using ValTypeB = float_e4m3_t; using ValTypeC = half_t; using FrgTypeB = GMMA::smem_desc; using Shape_MNK = Shape<_64,_64,_64>; using ThrID = Layout<_128>; using ALayout = GMMA::ALayout_64x64; using ELayout = GMMA::ELayout_64x64; using BLayout = GMMA::ABLayout< 64, 64>; using CLayout = GMMA::CLayout_64x64; GMMA::ScaleOut accumulate_ = GMMA::ScaleOut::One; }; //////////////////////////////////////////////////////////////////////////////////////////////////// template struct MMA_Traits> { using ValTypeD = float; using ValTypeA = sparse_elem<2, float_e5m2_t>; using ValTypeE = sparse_elem<8, uint8_t>; using ValTypeB = float_e4m3_t; using ValTypeC = float; using FrgTypeA = GMMA::smem_desc; using FrgTypeB = GMMA::smem_desc; using Shape_MNK = Shape<_64,_64,_64>; using ThrID = Layout<_128>; using ALayout = GMMA::ABLayout< 64, 64>; using ELayout = GMMA::ELayout_64x64; using BLayout = GMMA::ABLayout< 64, 64>; using CLayout = GMMA::CLayout_64x64; GMMA::ScaleOut accumulate_ = GMMA::ScaleOut::One; }; //////////////////////////////////////////////////////////////////////////////////////////////////// template struct MMA_Traits> { using ValTypeD = float; using ValTypeA = sparse_elem<2, float_e5m2_t>; using ValTypeE = sparse_elem<8, uint8_t>; using ValTypeB = float_e4m3_t; using ValTypeC = float; using FrgTypeB = GMMA::smem_desc; using Shape_MNK = Shape<_64,_64,_64>; using ThrID = Layout<_128>; using ALayout = GMMA::ALayout_64x64; using ELayout = GMMA::ELayout_64x64; using BLayout = GMMA::ABLayout< 64, 64>; using CLayout = GMMA::CLayout_64x64; GMMA::ScaleOut accumulate_ = GMMA::ScaleOut::One; }; //////////////////////////////////////////////////////////////////////////////////////////////////// template struct MMA_Traits> { using ValTypeD = half_t; using ValTypeA = sparse_elem<2, float_e5m2_t>; using ValTypeE = sparse_elem<8, uint8_t>; using ValTypeB = float_e4m3_t; using ValTypeC = half_t; using FrgTypeA = GMMA::smem_desc; using FrgTypeB = GMMA::smem_desc; using Shape_MNK = Shape<_64,_96,_64>; using ThrID = Layout<_128>; using ALayout = GMMA::ABLayout< 64, 64>; using ELayout = GMMA::ELayout_64x64; using BLayout = GMMA::ABLayout< 96, 64>; using CLayout = GMMA::CLayout_64x96; GMMA::ScaleOut accumulate_ = GMMA::ScaleOut::One; }; //////////////////////////////////////////////////////////////////////////////////////////////////// template struct MMA_Traits> { using ValTypeD = half_t; using ValTypeA = sparse_elem<2, float_e5m2_t>; using ValTypeE = sparse_elem<8, uint8_t>; using ValTypeB = float_e4m3_t; using ValTypeC = half_t; using FrgTypeB = GMMA::smem_desc; using Shape_MNK = Shape<_64,_96,_64>; using ThrID = Layout<_128>; using ALayout = GMMA::ALayout_64x64; using ELayout = GMMA::ELayout_64x64; using BLayout = GMMA::ABLayout< 96, 64>; using CLayout = GMMA::CLayout_64x96; GMMA::ScaleOut accumulate_ = GMMA::ScaleOut::One; }; //////////////////////////////////////////////////////////////////////////////////////////////////// template struct MMA_Traits> { using ValTypeD = float; using ValTypeA = sparse_elem<2, float_e5m2_t>; using ValTypeE = sparse_elem<8, uint8_t>; using ValTypeB = float_e4m3_t; using ValTypeC = float; using FrgTypeA = GMMA::smem_desc; using FrgTypeB = GMMA::smem_desc; using Shape_MNK = Shape<_64,_96,_64>; using ThrID = Layout<_128>; using ALayout = GMMA::ABLayout< 64, 64>; using ELayout = GMMA::ELayout_64x64; using BLayout = GMMA::ABLayout< 96, 64>; using CLayout = GMMA::CLayout_64x96; GMMA::ScaleOut accumulate_ = GMMA::ScaleOut::One; }; //////////////////////////////////////////////////////////////////////////////////////////////////// template struct MMA_Traits> { using ValTypeD = float; using ValTypeA = sparse_elem<2, float_e5m2_t>; using ValTypeE = sparse_elem<8, uint8_t>; using ValTypeB = float_e4m3_t; using ValTypeC = float; using FrgTypeB = GMMA::smem_desc; using Shape_MNK = Shape<_64,_96,_64>; using ThrID = Layout<_128>; using ALayout = GMMA::ALayout_64x64; using ELayout = GMMA::ELayout_64x64; using BLayout = GMMA::ABLayout< 96, 64>; using CLayout = GMMA::CLayout_64x96; GMMA::ScaleOut accumulate_ = GMMA::ScaleOut::One; }; //////////////////////////////////////////////////////////////////////////////////////////////////// template struct MMA_Traits> { using ValTypeD = half_t; using ValTypeA = sparse_elem<2, float_e5m2_t>; using ValTypeE = sparse_elem<8, uint8_t>; using ValTypeB = float_e4m3_t; using ValTypeC = half_t; using FrgTypeA = GMMA::smem_desc; using FrgTypeB = GMMA::smem_desc; using Shape_MNK = Shape<_64,_128,_64>; using ThrID = Layout<_128>; using ALayout = GMMA::ABLayout< 64, 64>; using ELayout = GMMA::ELayout_64x64; using BLayout = GMMA::ABLayout<128, 64>; using CLayout = GMMA::CLayout_64x128; GMMA::ScaleOut accumulate_ = GMMA::ScaleOut::One; }; //////////////////////////////////////////////////////////////////////////////////////////////////// template struct MMA_Traits> { using ValTypeD = half_t; using ValTypeA = sparse_elem<2, float_e5m2_t>; using ValTypeE = sparse_elem<8, uint8_t>; using ValTypeB = float_e4m3_t; using ValTypeC = half_t; using FrgTypeB = GMMA::smem_desc; using Shape_MNK = Shape<_64,_128,_64>; using ThrID = Layout<_128>; using ALayout = GMMA::ALayout_64x64; using ELayout = GMMA::ELayout_64x64; using BLayout = GMMA::ABLayout<128, 64>; using CLayout = GMMA::CLayout_64x128; GMMA::ScaleOut accumulate_ = GMMA::ScaleOut::One; }; //////////////////////////////////////////////////////////////////////////////////////////////////// template struct MMA_Traits> { using ValTypeD = float; using ValTypeA = sparse_elem<2, float_e5m2_t>; using ValTypeE = sparse_elem<8, uint8_t>; using ValTypeB = float_e4m3_t; using ValTypeC = float; using FrgTypeA = GMMA::smem_desc; using FrgTypeB = GMMA::smem_desc; using Shape_MNK = Shape<_64,_128,_64>; using ThrID = Layout<_128>; using ALayout = GMMA::ABLayout< 64, 64>; using ELayout = GMMA::ELayout_64x64; using BLayout = GMMA::ABLayout<128, 64>; using CLayout = GMMA::CLayout_64x128; GMMA::ScaleOut accumulate_ = GMMA::ScaleOut::One; }; //////////////////////////////////////////////////////////////////////////////////////////////////// template struct MMA_Traits> { using ValTypeD = float; using ValTypeA = sparse_elem<2, float_e5m2_t>; using ValTypeE = sparse_elem<8, uint8_t>; using ValTypeB = float_e4m3_t; using ValTypeC = float; using FrgTypeB = GMMA::smem_desc; using Shape_MNK = Shape<_64,_128,_64>; using ThrID = Layout<_128>; using ALayout = GMMA::ALayout_64x64; using ELayout = GMMA::ELayout_64x64; using BLayout = GMMA::ABLayout<128, 64>; using CLayout = GMMA::CLayout_64x128; GMMA::ScaleOut accumulate_ = GMMA::ScaleOut::One; }; //////////////////////////////////////////////////////////////////////////////////////////////////// template struct MMA_Traits> { using ValTypeD = half_t; using ValTypeA = sparse_elem<2, float_e5m2_t>; using ValTypeE = sparse_elem<8, uint8_t>; using ValTypeB = float_e4m3_t; using ValTypeC = half_t; using FrgTypeA = GMMA::smem_desc; using FrgTypeB = GMMA::smem_desc; using Shape_MNK = Shape<_64,_192,_64>; using ThrID = Layout<_128>; using ALayout = GMMA::ABLayout< 64, 64>; using ELayout = GMMA::ELayout_64x64; using BLayout = GMMA::ABLayout<192, 64>; using CLayout = GMMA::CLayout_64x192; GMMA::ScaleOut accumulate_ = GMMA::ScaleOut::One; }; //////////////////////////////////////////////////////////////////////////////////////////////////// template struct MMA_Traits> { using ValTypeD = half_t; using ValTypeA = sparse_elem<2, float_e5m2_t>; using ValTypeE = sparse_elem<8, uint8_t>; using ValTypeB = float_e4m3_t; using ValTypeC = half_t; using FrgTypeB = GMMA::smem_desc; using Shape_MNK = Shape<_64,_192,_64>; using ThrID = Layout<_128>; using ALayout = GMMA::ALayout_64x64; using ELayout = GMMA::ELayout_64x64; using BLayout = GMMA::ABLayout<192, 64>; using CLayout = GMMA::CLayout_64x192; GMMA::ScaleOut accumulate_ = GMMA::ScaleOut::One; }; //////////////////////////////////////////////////////////////////////////////////////////////////// template struct MMA_Traits> { using ValTypeD = float; using ValTypeA = sparse_elem<2, float_e5m2_t>; using ValTypeE = sparse_elem<8, uint8_t>; using ValTypeB = float_e4m3_t; using ValTypeC = float; using FrgTypeA = GMMA::smem_desc; using FrgTypeB = GMMA::smem_desc; using Shape_MNK = Shape<_64,_192,_64>; using ThrID = Layout<_128>; using ALayout = GMMA::ABLayout< 64, 64>; using ELayout = GMMA::ELayout_64x64; using BLayout = GMMA::ABLayout<192, 64>; using CLayout = GMMA::CLayout_64x192; GMMA::ScaleOut accumulate_ = GMMA::ScaleOut::One; }; //////////////////////////////////////////////////////////////////////////////////////////////////// template struct MMA_Traits> { using ValTypeD = float; using ValTypeA = sparse_elem<2, float_e5m2_t>; using ValTypeE = sparse_elem<8, uint8_t>; using ValTypeB = float_e4m3_t; using ValTypeC = float; using FrgTypeB = GMMA::smem_desc; using Shape_MNK = Shape<_64,_192,_64>; using ThrID = Layout<_128>; using ALayout = GMMA::ALayout_64x64; using ELayout = GMMA::ELayout_64x64; using BLayout = GMMA::ABLayout<192, 64>; using CLayout = GMMA::CLayout_64x192; GMMA::ScaleOut accumulate_ = GMMA::ScaleOut::One; }; //////////////////////////////////////////////////////////////////////////////////////////////////// template struct MMA_Traits> { using ValTypeD = half_t; using ValTypeA = sparse_elem<2, float_e5m2_t>; using ValTypeE = sparse_elem<8, uint8_t>; using ValTypeB = float_e4m3_t; using ValTypeC = half_t; using FrgTypeA = GMMA::smem_desc; using FrgTypeB = GMMA::smem_desc; using Shape_MNK = Shape<_64,_256,_64>; using ThrID = Layout<_128>; using ALayout = GMMA::ABLayout< 64, 64>; using ELayout = GMMA::ELayout_64x64; using BLayout = GMMA::ABLayout<256, 64>; using CLayout = GMMA::CLayout_64x256; GMMA::ScaleOut accumulate_ = GMMA::ScaleOut::One; }; //////////////////////////////////////////////////////////////////////////////////////////////////// template struct MMA_Traits> { using ValTypeD = half_t; using ValTypeA = sparse_elem<2, float_e5m2_t>; using ValTypeE = sparse_elem<8, uint8_t>; using ValTypeB = float_e4m3_t; using ValTypeC = half_t; using FrgTypeB = GMMA::smem_desc; using Shape_MNK = Shape<_64,_256,_64>; using ThrID = Layout<_128>; using ALayout = GMMA::ALayout_64x64; using ELayout = GMMA::ELayout_64x64; using BLayout = GMMA::ABLayout<256, 64>; using CLayout = GMMA::CLayout_64x256; GMMA::ScaleOut accumulate_ = GMMA::ScaleOut::One; }; //////////////////////////////////////////////////////////////////////////////////////////////////// template struct MMA_Traits> { using ValTypeD = float; using ValTypeA = sparse_elem<2, float_e5m2_t>; using ValTypeE = sparse_elem<8, uint8_t>; using ValTypeB = float_e4m3_t; using ValTypeC = float; using FrgTypeA = GMMA::smem_desc; using FrgTypeB = GMMA::smem_desc; using Shape_MNK = Shape<_64,_256,_64>; using ThrID = Layout<_128>; using ALayout = GMMA::ABLayout< 64, 64>; using ELayout = GMMA::ELayout_64x64; using BLayout = GMMA::ABLayout<256, 64>; using CLayout = GMMA::CLayout_64x256; GMMA::ScaleOut accumulate_ = GMMA::ScaleOut::One; }; //////////////////////////////////////////////////////////////////////////////////////////////////// template struct MMA_Traits> { using ValTypeD = float; using ValTypeA = sparse_elem<2, float_e5m2_t>; using ValTypeE = sparse_elem<8, uint8_t>; using ValTypeB = float_e4m3_t; using ValTypeC = float; using FrgTypeB = GMMA::smem_desc; using Shape_MNK = Shape<_64,_256,_64>; using ThrID = Layout<_128>; using ALayout = GMMA::ALayout_64x64; using ELayout = GMMA::ELayout_64x64; using BLayout = GMMA::ABLayout<256, 64>; using CLayout = GMMA::CLayout_64x256; GMMA::ScaleOut accumulate_ = GMMA::ScaleOut::One; }; //////////////////////////////////////////////////////////////////////////////////////////////////// template struct MMA_Traits> { using ValTypeD = half_t; using ValTypeA = sparse_elem<2, float_e5m2_t>; using ValTypeE = sparse_elem<8, uint8_t>; using ValTypeB = float_e5m2_t; using ValTypeC = half_t; using FrgTypeA = GMMA::smem_desc; using FrgTypeB = GMMA::smem_desc; using Shape_MNK = Shape<_64,_8,_64>; using ThrID = Layout<_128>; using ALayout = GMMA::ABLayout< 64, 64>; using ELayout = GMMA::ELayout_64x64; using BLayout = GMMA::ABLayout< 8, 64>; using CLayout = GMMA::CLayout_64x8; GMMA::ScaleOut accumulate_ = GMMA::ScaleOut::One; }; //////////////////////////////////////////////////////////////////////////////////////////////////// template struct MMA_Traits> { using ValTypeD = half_t; using ValTypeA = sparse_elem<2, float_e5m2_t>; using ValTypeE = sparse_elem<8, uint8_t>; using ValTypeB = float_e5m2_t; using ValTypeC = half_t; using FrgTypeB = GMMA::smem_desc; using Shape_MNK = Shape<_64,_8,_64>; using ThrID = Layout<_128>; using ALayout = GMMA::ALayout_64x64; using ELayout = GMMA::ELayout_64x64; using BLayout = GMMA::ABLayout< 8, 64>; using CLayout = GMMA::CLayout_64x8; GMMA::ScaleOut accumulate_ = GMMA::ScaleOut::One; }; //////////////////////////////////////////////////////////////////////////////////////////////////// template struct MMA_Traits> { using ValTypeD = float; using ValTypeA = sparse_elem<2, float_e5m2_t>; using ValTypeE = sparse_elem<8, uint8_t>; using ValTypeB = float_e5m2_t; using ValTypeC = float; using FrgTypeA = GMMA::smem_desc; using FrgTypeB = GMMA::smem_desc; using Shape_MNK = Shape<_64,_8,_64>; using ThrID = Layout<_128>; using ALayout = GMMA::ABLayout< 64, 64>; using ELayout = GMMA::ELayout_64x64; using BLayout = GMMA::ABLayout< 8, 64>; using CLayout = GMMA::CLayout_64x8; GMMA::ScaleOut accumulate_ = GMMA::ScaleOut::One; }; //////////////////////////////////////////////////////////////////////////////////////////////////// template struct MMA_Traits> { using ValTypeD = float; using ValTypeA = sparse_elem<2, float_e5m2_t>; using ValTypeE = sparse_elem<8, uint8_t>; using ValTypeB = float_e5m2_t; using ValTypeC = float; using FrgTypeB = GMMA::smem_desc; using Shape_MNK = Shape<_64,_8,_64>; using ThrID = Layout<_128>; using ALayout = GMMA::ALayout_64x64; using ELayout = GMMA::ELayout_64x64; using BLayout = GMMA::ABLayout< 8, 64>; using CLayout = GMMA::CLayout_64x8; GMMA::ScaleOut accumulate_ = GMMA::ScaleOut::One; }; //////////////////////////////////////////////////////////////////////////////////////////////////// template struct MMA_Traits> { using ValTypeD = half_t; using ValTypeA = sparse_elem<2, float_e5m2_t>; using ValTypeE = sparse_elem<8, uint8_t>; using ValTypeB = float_e5m2_t; using ValTypeC = half_t; using FrgTypeA = GMMA::smem_desc; using FrgTypeB = GMMA::smem_desc; using Shape_MNK = Shape<_64,_16,_64>; using ThrID = Layout<_128>; using ALayout = GMMA::ABLayout< 64, 64>; using ELayout = GMMA::ELayout_64x64; using BLayout = GMMA::ABLayout< 16, 64>; using CLayout = GMMA::CLayout_64x16; GMMA::ScaleOut accumulate_ = GMMA::ScaleOut::One; }; //////////////////////////////////////////////////////////////////////////////////////////////////// template struct MMA_Traits> { using ValTypeD = half_t; using ValTypeA = sparse_elem<2, float_e5m2_t>; using ValTypeE = sparse_elem<8, uint8_t>; using ValTypeB = float_e5m2_t; using ValTypeC = half_t; using FrgTypeB = GMMA::smem_desc; using Shape_MNK = Shape<_64,_16,_64>; using ThrID = Layout<_128>; using ALayout = GMMA::ALayout_64x64; using ELayout = GMMA::ELayout_64x64; using BLayout = GMMA::ABLayout< 16, 64>; using CLayout = GMMA::CLayout_64x16; GMMA::ScaleOut accumulate_ = GMMA::ScaleOut::One; }; //////////////////////////////////////////////////////////////////////////////////////////////////// template struct MMA_Traits> { using ValTypeD = float; using ValTypeA = sparse_elem<2, float_e5m2_t>; using ValTypeE = sparse_elem<8, uint8_t>; using ValTypeB = float_e5m2_t; using ValTypeC = float; using FrgTypeA = GMMA::smem_desc; using FrgTypeB = GMMA::smem_desc; using Shape_MNK = Shape<_64,_16,_64>; using ThrID = Layout<_128>; using ALayout = GMMA::ABLayout< 64, 64>; using ELayout = GMMA::ELayout_64x64; using BLayout = GMMA::ABLayout< 16, 64>; using CLayout = GMMA::CLayout_64x16; GMMA::ScaleOut accumulate_ = GMMA::ScaleOut::One; }; //////////////////////////////////////////////////////////////////////////////////////////////////// template struct MMA_Traits> { using ValTypeD = float; using ValTypeA = sparse_elem<2, float_e5m2_t>; using ValTypeE = sparse_elem<8, uint8_t>; using ValTypeB = float_e5m2_t; using ValTypeC = float; using FrgTypeB = GMMA::smem_desc; using Shape_MNK = Shape<_64,_16,_64>; using ThrID = Layout<_128>; using ALayout = GMMA::ALayout_64x64; using ELayout = GMMA::ELayout_64x64; using BLayout = GMMA::ABLayout< 16, 64>; using CLayout = GMMA::CLayout_64x16; GMMA::ScaleOut accumulate_ = GMMA::ScaleOut::One; }; //////////////////////////////////////////////////////////////////////////////////////////////////// template struct MMA_Traits> { using ValTypeD = half_t; using ValTypeA = sparse_elem<2, float_e5m2_t>; using ValTypeE = sparse_elem<8, uint8_t>; using ValTypeB = float_e5m2_t; using ValTypeC = half_t; using FrgTypeA = GMMA::smem_desc; using FrgTypeB = GMMA::smem_desc; using Shape_MNK = Shape<_64,_32,_64>; using ThrID = Layout<_128>; using ALayout = GMMA::ABLayout< 64, 64>; using ELayout = GMMA::ELayout_64x64; using BLayout = GMMA::ABLayout< 32, 64>; using CLayout = GMMA::CLayout_64x32; GMMA::ScaleOut accumulate_ = GMMA::ScaleOut::One; }; //////////////////////////////////////////////////////////////////////////////////////////////////// template struct MMA_Traits> { using ValTypeD = half_t; using ValTypeA = sparse_elem<2, float_e5m2_t>; using ValTypeE = sparse_elem<8, uint8_t>; using ValTypeB = float_e5m2_t; using ValTypeC = half_t; using FrgTypeB = GMMA::smem_desc; using Shape_MNK = Shape<_64,_32,_64>; using ThrID = Layout<_128>; using ALayout = GMMA::ALayout_64x64; using ELayout = GMMA::ELayout_64x64; using BLayout = GMMA::ABLayout< 32, 64>; using CLayout = GMMA::CLayout_64x32; GMMA::ScaleOut accumulate_ = GMMA::ScaleOut::One; }; //////////////////////////////////////////////////////////////////////////////////////////////////// template struct MMA_Traits> { using ValTypeD = float; using ValTypeA = sparse_elem<2, float_e5m2_t>; using ValTypeE = sparse_elem<8, uint8_t>; using ValTypeB = float_e5m2_t; using ValTypeC = float; using FrgTypeA = GMMA::smem_desc; using FrgTypeB = GMMA::smem_desc; using Shape_MNK = Shape<_64,_32,_64>; using ThrID = Layout<_128>; using ALayout = GMMA::ABLayout< 64, 64>; using ELayout = GMMA::ELayout_64x64; using BLayout = GMMA::ABLayout< 32, 64>; using CLayout = GMMA::CLayout_64x32; GMMA::ScaleOut accumulate_ = GMMA::ScaleOut::One; }; //////////////////////////////////////////////////////////////////////////////////////////////////// template struct MMA_Traits> { using ValTypeD = float; using ValTypeA = sparse_elem<2, float_e5m2_t>; using ValTypeE = sparse_elem<8, uint8_t>; using ValTypeB = float_e5m2_t; using ValTypeC = float; using FrgTypeB = GMMA::smem_desc; using Shape_MNK = Shape<_64,_32,_64>; using ThrID = Layout<_128>; using ALayout = GMMA::ALayout_64x64; using ELayout = GMMA::ELayout_64x64; using BLayout = GMMA::ABLayout< 32, 64>; using CLayout = GMMA::CLayout_64x32; GMMA::ScaleOut accumulate_ = GMMA::ScaleOut::One; }; //////////////////////////////////////////////////////////////////////////////////////////////////// template struct MMA_Traits> { using ValTypeD = half_t; using ValTypeA = sparse_elem<2, float_e5m2_t>; using ValTypeE = sparse_elem<8, uint8_t>; using ValTypeB = float_e5m2_t; using ValTypeC = half_t; using FrgTypeA = GMMA::smem_desc; using FrgTypeB = GMMA::smem_desc; using Shape_MNK = Shape<_64,_64,_64>; using ThrID = Layout<_128>; using ALayout = GMMA::ABLayout< 64, 64>; using ELayout = GMMA::ELayout_64x64; using BLayout = GMMA::ABLayout< 64, 64>; using CLayout = GMMA::CLayout_64x64; GMMA::ScaleOut accumulate_ = GMMA::ScaleOut::One; }; //////////////////////////////////////////////////////////////////////////////////////////////////// template struct MMA_Traits> { using ValTypeD = half_t; using ValTypeA = sparse_elem<2, float_e5m2_t>; using ValTypeE = sparse_elem<8, uint8_t>; using ValTypeB = float_e5m2_t; using ValTypeC = half_t; using FrgTypeB = GMMA::smem_desc; using Shape_MNK = Shape<_64,_64,_64>; using ThrID = Layout<_128>; using ALayout = GMMA::ALayout_64x64; using ELayout = GMMA::ELayout_64x64; using BLayout = GMMA::ABLayout< 64, 64>; using CLayout = GMMA::CLayout_64x64; GMMA::ScaleOut accumulate_ = GMMA::ScaleOut::One; }; //////////////////////////////////////////////////////////////////////////////////////////////////// template struct MMA_Traits> { using ValTypeD = float; using ValTypeA = sparse_elem<2, float_e5m2_t>; using ValTypeE = sparse_elem<8, uint8_t>; using ValTypeB = float_e5m2_t; using ValTypeC = float; using FrgTypeA = GMMA::smem_desc; using FrgTypeB = GMMA::smem_desc; using Shape_MNK = Shape<_64,_64,_64>; using ThrID = Layout<_128>; using ALayout = GMMA::ABLayout< 64, 64>; using ELayout = GMMA::ELayout_64x64; using BLayout = GMMA::ABLayout< 64, 64>; using CLayout = GMMA::CLayout_64x64; GMMA::ScaleOut accumulate_ = GMMA::ScaleOut::One; }; //////////////////////////////////////////////////////////////////////////////////////////////////// template struct MMA_Traits> { using ValTypeD = float; using ValTypeA = sparse_elem<2, float_e5m2_t>; using ValTypeE = sparse_elem<8, uint8_t>; using ValTypeB = float_e5m2_t; using ValTypeC = float; using FrgTypeB = GMMA::smem_desc; using Shape_MNK = Shape<_64,_64,_64>; using ThrID = Layout<_128>; using ALayout = GMMA::ALayout_64x64; using ELayout = GMMA::ELayout_64x64; using BLayout = GMMA::ABLayout< 64, 64>; using CLayout = GMMA::CLayout_64x64; GMMA::ScaleOut accumulate_ = GMMA::ScaleOut::One; }; //////////////////////////////////////////////////////////////////////////////////////////////////// template struct MMA_Traits> { using ValTypeD = half_t; using ValTypeA = sparse_elem<2, float_e5m2_t>; using ValTypeE = sparse_elem<8, uint8_t>; using ValTypeB = float_e5m2_t; using ValTypeC = half_t; using FrgTypeA = GMMA::smem_desc; using FrgTypeB = GMMA::smem_desc; using Shape_MNK = Shape<_64,_96,_64>; using ThrID = Layout<_128>; using ALayout = GMMA::ABLayout< 64, 64>; using ELayout = GMMA::ELayout_64x64; using BLayout = GMMA::ABLayout< 96, 64>; using CLayout = GMMA::CLayout_64x96; GMMA::ScaleOut accumulate_ = GMMA::ScaleOut::One; }; //////////////////////////////////////////////////////////////////////////////////////////////////// template struct MMA_Traits> { using ValTypeD = half_t; using ValTypeA = sparse_elem<2, float_e5m2_t>; using ValTypeE = sparse_elem<8, uint8_t>; using ValTypeB = float_e5m2_t; using ValTypeC = half_t; using FrgTypeB = GMMA::smem_desc; using Shape_MNK = Shape<_64,_96,_64>; using ThrID = Layout<_128>; using ALayout = GMMA::ALayout_64x64; using ELayout = GMMA::ELayout_64x64; using BLayout = GMMA::ABLayout< 96, 64>; using CLayout = GMMA::CLayout_64x96; GMMA::ScaleOut accumulate_ = GMMA::ScaleOut::One; }; //////////////////////////////////////////////////////////////////////////////////////////////////// template struct MMA_Traits> { using ValTypeD = float; using ValTypeA = sparse_elem<2, float_e5m2_t>; using ValTypeE = sparse_elem<8, uint8_t>; using ValTypeB = float_e5m2_t; using ValTypeC = float; using FrgTypeA = GMMA::smem_desc; using FrgTypeB = GMMA::smem_desc; using Shape_MNK = Shape<_64,_96,_64>; using ThrID = Layout<_128>; using ALayout = GMMA::ABLayout< 64, 64>; using ELayout = GMMA::ELayout_64x64; using BLayout = GMMA::ABLayout< 96, 64>; using CLayout = GMMA::CLayout_64x96; GMMA::ScaleOut accumulate_ = GMMA::ScaleOut::One; }; //////////////////////////////////////////////////////////////////////////////////////////////////// template struct MMA_Traits> { using ValTypeD = float; using ValTypeA = sparse_elem<2, float_e5m2_t>; using ValTypeE = sparse_elem<8, uint8_t>; using ValTypeB = float_e5m2_t; using ValTypeC = float; using FrgTypeB = GMMA::smem_desc; using Shape_MNK = Shape<_64,_96,_64>; using ThrID = Layout<_128>; using ALayout = GMMA::ALayout_64x64; using ELayout = GMMA::ELayout_64x64; using BLayout = GMMA::ABLayout< 96, 64>; using CLayout = GMMA::CLayout_64x96; GMMA::ScaleOut accumulate_ = GMMA::ScaleOut::One; }; //////////////////////////////////////////////////////////////////////////////////////////////////// template struct MMA_Traits> { using ValTypeD = half_t; using ValTypeA = sparse_elem<2, float_e5m2_t>; using ValTypeE = sparse_elem<8, uint8_t>; using ValTypeB = float_e5m2_t; using ValTypeC = half_t; using FrgTypeA = GMMA::smem_desc; using FrgTypeB = GMMA::smem_desc; using Shape_MNK = Shape<_64,_128,_64>; using ThrID = Layout<_128>; using ALayout = GMMA::ABLayout< 64, 64>; using ELayout = GMMA::ELayout_64x64; using BLayout = GMMA::ABLayout<128, 64>; using CLayout = GMMA::CLayout_64x128; GMMA::ScaleOut accumulate_ = GMMA::ScaleOut::One; }; //////////////////////////////////////////////////////////////////////////////////////////////////// template struct MMA_Traits> { using ValTypeD = half_t; using ValTypeA = sparse_elem<2, float_e5m2_t>; using ValTypeE = sparse_elem<8, uint8_t>; using ValTypeB = float_e5m2_t; using ValTypeC = half_t; using FrgTypeB = GMMA::smem_desc; using Shape_MNK = Shape<_64,_128,_64>; using ThrID = Layout<_128>; using ALayout = GMMA::ALayout_64x64; using ELayout = GMMA::ELayout_64x64; using BLayout = GMMA::ABLayout<128, 64>; using CLayout = GMMA::CLayout_64x128; GMMA::ScaleOut accumulate_ = GMMA::ScaleOut::One; }; //////////////////////////////////////////////////////////////////////////////////////////////////// template struct MMA_Traits> { using ValTypeD = float; using ValTypeA = sparse_elem<2, float_e5m2_t>; using ValTypeE = sparse_elem<8, uint8_t>; using ValTypeB = float_e5m2_t; using ValTypeC = float; using FrgTypeA = GMMA::smem_desc; using FrgTypeB = GMMA::smem_desc; using Shape_MNK = Shape<_64,_128,_64>; using ThrID = Layout<_128>; using ALayout = GMMA::ABLayout< 64, 64>; using ELayout = GMMA::ELayout_64x64; using BLayout = GMMA::ABLayout<128, 64>; using CLayout = GMMA::CLayout_64x128; GMMA::ScaleOut accumulate_ = GMMA::ScaleOut::One; }; //////////////////////////////////////////////////////////////////////////////////////////////////// template struct MMA_Traits> { using ValTypeD = float; using ValTypeA = sparse_elem<2, float_e5m2_t>; using ValTypeE = sparse_elem<8, uint8_t>; using ValTypeB = float_e5m2_t; using ValTypeC = float; using FrgTypeB = GMMA::smem_desc; using Shape_MNK = Shape<_64,_128,_64>; using ThrID = Layout<_128>; using ALayout = GMMA::ALayout_64x64; using ELayout = GMMA::ELayout_64x64; using BLayout = GMMA::ABLayout<128, 64>; using CLayout = GMMA::CLayout_64x128; GMMA::ScaleOut accumulate_ = GMMA::ScaleOut::One; }; //////////////////////////////////////////////////////////////////////////////////////////////////// template struct MMA_Traits> { using ValTypeD = half_t; using ValTypeA = sparse_elem<2, float_e5m2_t>; using ValTypeE = sparse_elem<8, uint8_t>; using ValTypeB = float_e5m2_t; using ValTypeC = half_t; using FrgTypeA = GMMA::smem_desc; using FrgTypeB = GMMA::smem_desc; using Shape_MNK = Shape<_64,_192,_64>; using ThrID = Layout<_128>; using ALayout = GMMA::ABLayout< 64, 64>; using ELayout = GMMA::ELayout_64x64; using BLayout = GMMA::ABLayout<192, 64>; using CLayout = GMMA::CLayout_64x192; GMMA::ScaleOut accumulate_ = GMMA::ScaleOut::One; }; //////////////////////////////////////////////////////////////////////////////////////////////////// template struct MMA_Traits> { using ValTypeD = half_t; using ValTypeA = sparse_elem<2, float_e5m2_t>; using ValTypeE = sparse_elem<8, uint8_t>; using ValTypeB = float_e5m2_t; using ValTypeC = half_t; using FrgTypeB = GMMA::smem_desc; using Shape_MNK = Shape<_64,_192,_64>; using ThrID = Layout<_128>; using ALayout = GMMA::ALayout_64x64; using ELayout = GMMA::ELayout_64x64; using BLayout = GMMA::ABLayout<192, 64>; using CLayout = GMMA::CLayout_64x192; GMMA::ScaleOut accumulate_ = GMMA::ScaleOut::One; }; //////////////////////////////////////////////////////////////////////////////////////////////////// template struct MMA_Traits> { using ValTypeD = float; using ValTypeA = sparse_elem<2, float_e5m2_t>; using ValTypeE = sparse_elem<8, uint8_t>; using ValTypeB = float_e5m2_t; using ValTypeC = float; using FrgTypeA = GMMA::smem_desc; using FrgTypeB = GMMA::smem_desc; using Shape_MNK = Shape<_64,_192,_64>; using ThrID = Layout<_128>; using ALayout = GMMA::ABLayout< 64, 64>; using ELayout = GMMA::ELayout_64x64; using BLayout = GMMA::ABLayout<192, 64>; using CLayout = GMMA::CLayout_64x192; GMMA::ScaleOut accumulate_ = GMMA::ScaleOut::One; }; //////////////////////////////////////////////////////////////////////////////////////////////////// template struct MMA_Traits> { using ValTypeD = float; using ValTypeA = sparse_elem<2, float_e5m2_t>; using ValTypeE = sparse_elem<8, uint8_t>; using ValTypeB = float_e5m2_t; using ValTypeC = float; using FrgTypeB = GMMA::smem_desc; using Shape_MNK = Shape<_64,_192,_64>; using ThrID = Layout<_128>; using ALayout = GMMA::ALayout_64x64; using ELayout = GMMA::ELayout_64x64; using BLayout = GMMA::ABLayout<192, 64>; using CLayout = GMMA::CLayout_64x192; GMMA::ScaleOut accumulate_ = GMMA::ScaleOut::One; }; //////////////////////////////////////////////////////////////////////////////////////////////////// template struct MMA_Traits> { using ValTypeD = half_t; using ValTypeA = sparse_elem<2, float_e5m2_t>; using ValTypeE = sparse_elem<8, uint8_t>; using ValTypeB = float_e5m2_t; using ValTypeC = half_t; using FrgTypeA = GMMA::smem_desc; using FrgTypeB = GMMA::smem_desc; using Shape_MNK = Shape<_64,_256,_64>; using ThrID = Layout<_128>; using ALayout = GMMA::ABLayout< 64, 64>; using ELayout = GMMA::ELayout_64x64; using BLayout = GMMA::ABLayout<256, 64>; using CLayout = GMMA::CLayout_64x256; GMMA::ScaleOut accumulate_ = GMMA::ScaleOut::One; }; //////////////////////////////////////////////////////////////////////////////////////////////////// template struct MMA_Traits> { using ValTypeD = half_t; using ValTypeA = sparse_elem<2, float_e5m2_t>; using ValTypeE = sparse_elem<8, uint8_t>; using ValTypeB = float_e5m2_t; using ValTypeC = half_t; using FrgTypeB = GMMA::smem_desc; using Shape_MNK = Shape<_64,_256,_64>; using ThrID = Layout<_128>; using ALayout = GMMA::ALayout_64x64; using ELayout = GMMA::ELayout_64x64; using BLayout = GMMA::ABLayout<256, 64>; using CLayout = GMMA::CLayout_64x256; GMMA::ScaleOut accumulate_ = GMMA::ScaleOut::One; }; //////////////////////////////////////////////////////////////////////////////////////////////////// template struct MMA_Traits> { using ValTypeD = float; using ValTypeA = sparse_elem<2, float_e5m2_t>; using ValTypeE = sparse_elem<8, uint8_t>; using ValTypeB = float_e5m2_t; using ValTypeC = float; using FrgTypeA = GMMA::smem_desc; using FrgTypeB = GMMA::smem_desc; using Shape_MNK = Shape<_64,_256,_64>; using ThrID = Layout<_128>; using ALayout = GMMA::ABLayout< 64, 64>; using ELayout = GMMA::ELayout_64x64; using BLayout = GMMA::ABLayout<256, 64>; using CLayout = GMMA::CLayout_64x256; GMMA::ScaleOut accumulate_ = GMMA::ScaleOut::One; }; //////////////////////////////////////////////////////////////////////////////////////////////////// template struct MMA_Traits> { using ValTypeD = float; using ValTypeA = sparse_elem<2, float_e5m2_t>; using ValTypeE = sparse_elem<8, uint8_t>; using ValTypeB = float_e5m2_t; using ValTypeC = float; using FrgTypeB = GMMA::smem_desc; using Shape_MNK = Shape<_64,_256,_64>; using ThrID = Layout<_128>; using ALayout = GMMA::ALayout_64x64; using ELayout = GMMA::ELayout_64x64; using BLayout = GMMA::ABLayout<256, 64>; using CLayout = GMMA::CLayout_64x256; GMMA::ScaleOut accumulate_ = GMMA::ScaleOut::One; }; //////////////////////////////////////////////////////////////////////////////////////////////////// } // end namespace cute #if defined(CUTE_SM90_EXTENDED_MMA_SHAPES_ENABLED) #include "mma_traits_sm90_gmma_sparse_ext.hpp" #endif