warp_gemm_attribute_mfma.hpp Source File#
warp_gemm_attribute_mfma.hpp
Go to the documentation of this file.
Definition tile/core/algorithm/cluster_descriptor.hpp:13
remove_cv_t< std::remove_reference_t< T > > remove_cvref_t
Definition type_traits.hpp:21
constant< b > bool_constant
Definition tile/core/numeric/integral_constant.hpp:43
typename impl::ext_vector< T, N >::type ext_vector_t
Definition vector_type.hpp:84
Definition warp_gemm_attribute_mfma.hpp:23
static constexpr auto get_warp_dstr_encoding()
Definition warp_gemm_attribute_mfma.hpp:48
CK_TILE_DEVICE CVecType operator()(const AVecType &a_vec, const int32_t &a_scale, const BVecType &b_vec, const int32_t &b_scale) const
Definition warp_gemm_attribute_mfma.hpp:117
static constexpr index_t kK
Definition warp_gemm_attribute_mfma.hpp:38
typename Impl::BDataType BDataType
Definition warp_gemm_attribute_mfma.hpp:29
static constexpr index_t kCMLane
Definition warp_gemm_attribute_mfma.hpp:40
static CK_TILE_HOST_DEVICE constexpr auto get_num_of_access()
Definition warp_gemm_attribute_mfma.hpp:42
typename Impl::AVecType AVecType
Definition warp_gemm_attribute_mfma.hpp:32
typename Impl::CVecType CVecType
Definition warp_gemm_attribute_mfma.hpp:34
decltype(get_warp_dstr_encoding< Impl::kAMLane >()) AWarpDstrEncoding
Definition warp_gemm_attribute_mfma.hpp:74
static constexpr auto AttrNumAccess
Definition warp_gemm_attribute_mfma.hpp:25
typename Impl::CDataType CDataType
Definition warp_gemm_attribute_mfma.hpp:30
CK_TILE_DEVICE CVecType operator()(const AVecType &a_vec, const BVecType &b_vec) const
Definition warp_gemm_attribute_mfma.hpp:110
static constexpr auto AttrNumAccessV
Definition warp_gemm_attribute_mfma.hpp:26
static constexpr index_t kM
Definition warp_gemm_attribute_mfma.hpp:36
remove_cvref_t< WarpGemmAttributeMfmaImpl_ > Impl
Definition warp_gemm_attribute_mfma.hpp:24
CK_TILE_DEVICE void operator()(CVecType &c_vec, const AVecType &a_vec, const BVecType &b_vec, bool_constant< post_nop_ >={}) const
Definition warp_gemm_attribute_mfma.hpp:88
static constexpr index_t kKPerThread
Definition warp_gemm_attribute_mfma.hpp:39
static constexpr index_t kN
Definition warp_gemm_attribute_mfma.hpp:37
tile_distribution_encoding< sequence<>, tuple< sequence< Impl::kCM0PerLane, Impl::kCMLane, Impl::kCM1PerLane >, sequence< Impl::kCNLane > >, tuple< sequence< 1, 2 > >, tuple< sequence< 1, 0 > >, sequence< 1, 1 >, sequence< 0, 2 > > CWarpDstrEncoding
Definition warp_gemm_attribute_mfma.hpp:77
CK_TILE_DEVICE void operator()(CVecType &c_vec, const AVecType &a_vec, const int32_t &a_scale, const BVecType &b_vec, const int32_t &b_scale, bool_constant< post_nop_ >={}) const
Definition warp_gemm_attribute_mfma.hpp:98
typename Impl::ADataType ADataType
Definition warp_gemm_attribute_mfma.hpp:28
decltype(get_warp_dstr_encoding< Impl::kBNLane >()) BWarpDstrEncoding
Definition warp_gemm_attribute_mfma.hpp:75
typename Impl::BVecType BVecType
Definition warp_gemm_attribute_mfma.hpp:33
Definition warp_gemm_attribute_mfma.hpp:869
ext_vector_t< ADataType, vector_traits< typename Impl::AVecType >::vector_size *kKIter > AVecType
Definition warp_gemm_attribute_mfma.hpp:876
tile_distribution_encoding< sequence<>, tuple< sequence< Impl::kAMLane/(Impl::kCMLane *SFactor *Impl::kCM1PerLane), Impl::kCMLane, SFactor, Impl::kCM1PerLane >, sequence< Impl::kABKLane, Impl::kABKPerLane *kKIter > >, tuple< sequence< 2, 1, 1, 1, 1 > >, tuple< sequence< 0, 0, 2, 1, 3 > >, sequence< 2 >, sequence< 1 > > AWarpDstrEncoding
Definition warp_gemm_attribute_mfma.hpp:893
remove_cvref_t< WarpGemmAttributeMfmaImpl_ > Impl
Definition warp_gemm_attribute_mfma.hpp:870
CK_TILE_DEVICE void operator()(CVecType &c_vec, const AVecType &a_vec, const BVecType &b_vec, number< iKIter >, bool_constant< post_nop_ >={}) const
Definition warp_gemm_attribute_mfma.hpp:943
static constexpr index_t kN
Definition warp_gemm_attribute_mfma.hpp:883
static constexpr index_t kM
Definition warp_gemm_attribute_mfma.hpp:882
static constexpr index_t kK
Definition warp_gemm_attribute_mfma.hpp:884
CK_TILE_DEVICE CVecType operator()(const AVecType &a_vec, const BVecType &b_vec) const
Definition warp_gemm_attribute_mfma.hpp:965
ext_vector_t< BDataType, vector_traits< typename Impl::BVecType >::vector_size *kKIter > BVecType
Definition warp_gemm_attribute_mfma.hpp:878
tile_distribution_encoding< sequence<>, tuple< sequence< Impl::kCM0PerLane/SFactor, Impl::kCMLane, Impl::kCM1PerLane *SFactor >, sequence< Impl::kCNLane > >, tuple< sequence< 1, 2 > >, tuple< sequence< 1, 0 > >, sequence< 1, 1 >, sequence< 0, 2 > > CWarpDstrEncoding
Definition warp_gemm_attribute_mfma.hpp:913
static constexpr index_t kKPerThread
Definition warp_gemm_attribute_mfma.hpp:885
CK_TILE_DEVICE void operator()(CVecType &c_vec, const AVecType &a_vec, const BVecType &b_vec, bool_constant< post_nop_ >={}) const
Definition warp_gemm_attribute_mfma.hpp:924
typename Impl::BDataType BDataType
Definition warp_gemm_attribute_mfma.hpp:873
static CK_TILE_HOST_DEVICE constexpr auto get_num_of_access()
Definition warp_gemm_attribute_mfma.hpp:888
typename Impl::CVecType CVecType
Definition warp_gemm_attribute_mfma.hpp:880
static constexpr index_t SFactor
Definition warp_gemm_attribute_mfma.hpp:886
tile_distribution_encoding< sequence<>, tuple< sequence< Impl::kBNLane >, sequence< Impl::kABKLane, Impl::kABKPerLane *kKIter > >, tuple< sequence< 2, 1 > >, tuple< sequence< 0, 0 > >, sequence< 2 >, sequence< 1 > > BWarpDstrEncoding
Definition warp_gemm_attribute_mfma.hpp:905
typename Impl::ADataType ADataType
Definition warp_gemm_attribute_mfma.hpp:872
typename Impl::CDataType CDataType
Definition warp_gemm_attribute_mfma.hpp:874
Definition warp_gemm_attribute_mfma.hpp:725
typename Impl::BDataType ADataType
Definition warp_gemm_attribute_mfma.hpp:729
typename Impl::ADataType BDataType
Definition warp_gemm_attribute_mfma.hpp:730
static constexpr index_t kKPerThread
Definition warp_gemm_attribute_mfma.hpp:742
static constexpr index_t SFactor
Definition warp_gemm_attribute_mfma.hpp:743
tile_distribution_encoding< sequence<>, tuple< sequence< Impl::kAMLane/(Impl::kCMLane *SFactor *Impl::kCM1PerLane), Impl::kCMLane, SFactor, Impl::kCM1PerLane >, sequence< Impl::kABKLane, Impl::kABKPerLane *kKIter > >, tuple< sequence< 2, 1, 1, 1, 1 > >, tuple< sequence< 0, 0, 2, 1, 3 > >, sequence< 2 >, sequence< 1 > > BWarpDstrEncoding
Definition warp_gemm_attribute_mfma.hpp:780
static constexpr index_t kK
Definition warp_gemm_attribute_mfma.hpp:741
CK_TILE_DEVICE void operator()(CVecType &c_vec, const AVecType &a_vec, const BVecType &b_vec, bool_constant< post_nop_ >={}) const
Definition warp_gemm_attribute_mfma.hpp:803
typename Impl::CVecType CVecType
Definition warp_gemm_attribute_mfma.hpp:737
ext_vector_t< ADataType, vector_traits< typename Impl::AVecType >::vector_size *kKIter > AVecType
Definition warp_gemm_attribute_mfma.hpp:733
remove_cvref_t< WarpGemmAttributeMfmaImpl_ > Impl
Definition warp_gemm_attribute_mfma.hpp:726
typename Impl::CDataType CDataType
Definition warp_gemm_attribute_mfma.hpp:731
static constexpr index_t kN
Definition warp_gemm_attribute_mfma.hpp:740
CK_TILE_DEVICE CVecType operator()(const AVecType &a_vec, const BVecType &b_vec) const
Definition warp_gemm_attribute_mfma.hpp:844
tile_distribution_encoding< sequence<>, tuple< sequence< Impl::kCNLane >, sequence< Impl::kCM0PerLane/SFactor, Impl::kCMLane, Impl::kCM1PerLane *SFactor > >, tuple< sequence< 2, 1 > >, tuple< sequence< 1, 0 > >, sequence< 2, 2 >, sequence< 0, 2 > > CWarpDstrEncoding
Definition warp_gemm_attribute_mfma.hpp:792
CK_TILE_DEVICE void operator()(CVecType &c_vec, const AVecType &a_vec, const BVecType &b_vec, number< iKIter >, bool_constant< post_nop_ >={}) const
Definition warp_gemm_attribute_mfma.hpp:822
static constexpr index_t kM
Definition warp_gemm_attribute_mfma.hpp:739
tile_distribution_encoding< sequence<>, tuple< sequence< Impl::kBNLane >, sequence< Impl::kABKLane, Impl::kABKPerLane *kKIter > >, tuple< sequence< 2, 1 > >, tuple< sequence< 0, 0 > >, sequence< 2 >, sequence< 1 > > AWarpDstrEncoding
Definition warp_gemm_attribute_mfma.hpp:750
static CK_TILE_HOST_DEVICE constexpr auto get_num_of_access()
Definition warp_gemm_attribute_mfma.hpp:745
ext_vector_t< BDataType, vector_traits< typename Impl::BVecType >::vector_size *kKIter > BVecType
Definition warp_gemm_attribute_mfma.hpp:735
Definition warp_gemm_attribute_mfma.hpp:575
typename Impl::CVecType CVecType
Definition warp_gemm_attribute_mfma.hpp:588
static CK_TILE_DEVICE constexpr auto get_bwarp_dstr_encoding()
Definition warp_gemm_attribute_mfma.hpp:606
static CK_TILE_HOST_DEVICE constexpr auto get_num_of_access()
Definition warp_gemm_attribute_mfma.hpp:595
static constexpr index_t kKPerThread
Definition warp_gemm_attribute_mfma.hpp:593
typename Impl::CDataType CDataType
Definition warp_gemm_attribute_mfma.hpp:582
static CK_TILE_DEVICE constexpr auto get_awarp_dstr_encoding()
Definition warp_gemm_attribute_mfma.hpp:600
typename Impl::BDataType ADataType
Definition warp_gemm_attribute_mfma.hpp:580
static constexpr index_t kM
Definition warp_gemm_attribute_mfma.hpp:590
static constexpr index_t kK
Definition warp_gemm_attribute_mfma.hpp:592
CK_TILE_DEVICE void operator()(CVecType &c_vec, const AVecType &a_vec, const BVecType &b_vec, number< iKIter >, bool_constant< post_nop_ >={}) const
Definition warp_gemm_attribute_mfma.hpp:678
static constexpr index_t kN
Definition warp_gemm_attribute_mfma.hpp:591
decltype(get_awarp_dstr_encoding()) AWarpDstrEncoding
Definition warp_gemm_attribute_mfma.hpp:650
CK_TILE_DEVICE CVecType operator()(const AVecType &a_vec, const BVecType &b_vec) const
Definition warp_gemm_attribute_mfma.hpp:700
ext_vector_t< BDataType, vector_traits< typename Impl::BVecType >::vector_size *kKIter > BVecType
Definition warp_gemm_attribute_mfma.hpp:586
ext_vector_t< ADataType, vector_traits< typename Impl::AVecType >::vector_size *kKIter > AVecType
Definition warp_gemm_attribute_mfma.hpp:584
decltype(get_bwarp_dstr_encoding()) BWarpDstrEncoding
Definition warp_gemm_attribute_mfma.hpp:652
decltype(get_cwarp_dstr_encoding()) CWarpDstrEncoding
Definition warp_gemm_attribute_mfma.hpp:654
remove_cvref_t< WarpGemmAttributeMfmaImpl_ > Impl
Definition warp_gemm_attribute_mfma.hpp:576
static constexpr auto AttrNumAccess
Definition warp_gemm_attribute_mfma.hpp:577
CK_TILE_DEVICE void operator()(CVecType &c_vec, const AVecType &a_vec, const BVecType &b_vec, bool_constant< post_nop_ >={}) const
Definition warp_gemm_attribute_mfma.hpp:658
static CK_TILE_DEVICE constexpr auto get_cwarp_dstr_encoding()
Definition warp_gemm_attribute_mfma.hpp:612
typename Impl::ADataType BDataType
Definition warp_gemm_attribute_mfma.hpp:581
Definition warp_gemm_attribute_mfma.hpp:130
static constexpr auto AttrNumAccess
Definition warp_gemm_attribute_mfma.hpp:134
static CK_TILE_DEVICE constexpr auto get_awarp_dstr_encoding()
Definition warp_gemm_attribute_mfma.hpp:158
static constexpr index_t kCMLane
Definition warp_gemm_attribute_mfma.hpp:151
decltype(get_bwarp_dstr_encoding()) BWarpDstrEncoding
Definition warp_gemm_attribute_mfma.hpp:321
typename Impl::CVecType CVecType
Definition warp_gemm_attribute_mfma.hpp:145
typename Impl::BDataType BDataType
Definition warp_gemm_attribute_mfma.hpp:138
CK_TILE_DEVICE void operator()(CVecType &c_vec, const AVecType &a_vec, const BVecType &b_vec, number< iKIter >, bool_constant< post_nop_ >={}) const
Definition warp_gemm_attribute_mfma.hpp:346
static CK_TILE_HOST_DEVICE constexpr auto get_num_of_access()
Definition warp_gemm_attribute_mfma.hpp:153
decltype(get_cwarp_dstr_encoding()) CWarpDstrEncoding
Definition warp_gemm_attribute_mfma.hpp:323
CK_TILE_DEVICE CVecType operator()(const AVecType &a_vec, const BVecType &b_vec) const
Definition warp_gemm_attribute_mfma.hpp:368
typename Impl::CDataType CDataType
Definition warp_gemm_attribute_mfma.hpp:139
CK_TILE_DEVICE void operator()(CVecType &c_vec, const AVecType &a_vec, const BVecType &b_vec, bool_constant< post_nop_ >={}) const
Definition warp_gemm_attribute_mfma.hpp:327
typename Impl::ADataType ADataType
Definition warp_gemm_attribute_mfma.hpp:137
static constexpr index_t kM
Definition warp_gemm_attribute_mfma.hpp:147
ext_vector_t< ADataType, vector_traits< typename Impl::AVecType >::vector_size *kKIter > AVecType
Definition warp_gemm_attribute_mfma.hpp:141
static CK_TILE_DEVICE constexpr auto get_bwarp_dstr_encoding()
Definition warp_gemm_attribute_mfma.hpp:219
static constexpr index_t kK
Definition warp_gemm_attribute_mfma.hpp:149
static CK_TILE_DEVICE constexpr auto get_cwarp_dstr_encoding()
Definition warp_gemm_attribute_mfma.hpp:281
static constexpr auto AttrNumAccessV
Definition warp_gemm_attribute_mfma.hpp:135
decltype(get_awarp_dstr_encoding()) AWarpDstrEncoding
Definition warp_gemm_attribute_mfma.hpp:319
static constexpr index_t kN
Definition warp_gemm_attribute_mfma.hpp:148
remove_cvref_t< WarpGemmAttributeMfmaImpl_ > Impl
Definition warp_gemm_attribute_mfma.hpp:133
static constexpr index_t kKPerThread
Definition warp_gemm_attribute_mfma.hpp:150
ext_vector_t< BDataType, vector_traits< typename Impl::BVecType >::vector_size *kKIter > BVecType
Definition warp_gemm_attribute_mfma.hpp:143
Definition warp_gemm_attribute_mfma.hpp:479
tile_distribution_encoding< sequence<>, tuple< sequence< Impl::kCNLane >, sequence< Impl::kCM0PerLane/SFactor, Impl::kCMLane, Impl::kCM1PerLane *SFactor > >, tuple< sequence< 2, 1 > >, tuple< sequence< 1, 0 > >, sequence< 2, 2 >, sequence< 0, 2 > > CWarpDstrEncoding
Definition warp_gemm_attribute_mfma.hpp:543
static constexpr index_t kN
Definition warp_gemm_attribute_mfma.hpp:491
static constexpr index_t SFactor
Definition warp_gemm_attribute_mfma.hpp:494
tile_distribution_encoding< sequence<>, tuple< sequence< Impl::kAMLane/(Impl::kCMLane *SFactor *Impl::kCM1PerLane), Impl::kCMLane, SFactor, Impl::kCM1PerLane >, sequence< Impl::kABKLane, Impl::kABKPerLane > >, tuple< sequence< 2, 1, 1, 1, 1 > >, tuple< sequence< 0, 0, 2, 1, 3 > >, sequence< 2 >, sequence< 1 > > BWarpDstrEncoding
Definition warp_gemm_attribute_mfma.hpp:531
typename Impl::BVecType AVecType
Definition warp_gemm_attribute_mfma.hpp:486
typename Impl::AVecType BVecType
Definition warp_gemm_attribute_mfma.hpp:487
typename Impl::ADataType BDataType
Definition warp_gemm_attribute_mfma.hpp:483
CK_TILE_DEVICE CVecType operator()(const AVecType &a_vec, const BVecType &b_vec) const
Definition warp_gemm_attribute_mfma.hpp:564
remove_cvref_t< WarpGemmAttributeMfmaImpl_ > Impl
Definition warp_gemm_attribute_mfma.hpp:480
CK_TILE_DEVICE void operator()(CVecType &c_vec, const AVecType &a_vec, const BVecType &b_vec, bool_constant< post_nop_ >={}) const
Definition warp_gemm_attribute_mfma.hpp:554
static constexpr index_t kKPerThread
Definition warp_gemm_attribute_mfma.hpp:493
typename Impl::CDataType CDataType
Definition warp_gemm_attribute_mfma.hpp:484
tile_distribution_encoding< sequence<>, tuple< sequence< Impl::kBNLane >, sequence< Impl::kABKLane, Impl::kABKPerLane > >, tuple< sequence< 2, 1 > >, tuple< sequence< 0, 0 > >, sequence< 2 >, sequence< 1 > > AWarpDstrEncoding
Definition warp_gemm_attribute_mfma.hpp:501
static constexpr index_t kM
Definition warp_gemm_attribute_mfma.hpp:490
typename Impl::BDataType ADataType
Definition warp_gemm_attribute_mfma.hpp:482
static constexpr index_t kK
Definition warp_gemm_attribute_mfma.hpp:492
static CK_TILE_HOST_DEVICE constexpr auto get_num_of_access()
Definition warp_gemm_attribute_mfma.hpp:496
typename Impl::CVecType CVecType
Definition warp_gemm_attribute_mfma.hpp:488
Definition warp_gemm_attribute_mfma.hpp:395
CK_TILE_DEVICE CVecType operator()(const AVecType &a_vec, const BVecType &b_vec) const
Definition warp_gemm_attribute_mfma.hpp:470
static constexpr index_t kCMLane
Definition warp_gemm_attribute_mfma.hpp:412
static CK_TILE_HOST_DEVICE constexpr auto get_num_of_access()
Definition warp_gemm_attribute_mfma.hpp:414
typename Impl::BDataType ADataType
Definition warp_gemm_attribute_mfma.hpp:400
typename Impl::AVecType BVecType
Definition warp_gemm_attribute_mfma.hpp:405
static constexpr index_t kKPerThread
Definition warp_gemm_attribute_mfma.hpp:411
decltype(get_warp_dstr_encoding< Impl::kAMLane >()) BWarpDstrEncoding
Definition warp_gemm_attribute_mfma.hpp:447
typename Impl::BVecType AVecType
Definition warp_gemm_attribute_mfma.hpp:404
static constexpr index_t kK
Definition warp_gemm_attribute_mfma.hpp:410
tile_distribution_encoding< sequence<>, tuple< sequence< Impl::kCNLane >, sequence< Impl::kCM0PerLane, Impl::kCMLane, Impl::kCM1PerLane > >, tuple< sequence< 2, 1 > >, tuple< sequence< 1, 0 > >, sequence< 2, 2 >, sequence< 0, 2 > > CWarpDstrEncoding
Definition warp_gemm_attribute_mfma.hpp:449
typename Impl::ADataType BDataType
Definition warp_gemm_attribute_mfma.hpp:401
static constexpr auto AttrNumAccessV
Definition warp_gemm_attribute_mfma.hpp:398
static constexpr auto get_warp_dstr_encoding()
Definition warp_gemm_attribute_mfma.hpp:420
typename Impl::CDataType CDataType
Definition warp_gemm_attribute_mfma.hpp:402
static constexpr auto AttrNumAccess
Definition warp_gemm_attribute_mfma.hpp:397
typename Impl::CVecType CVecType
Definition warp_gemm_attribute_mfma.hpp:406
static constexpr index_t kN
Definition warp_gemm_attribute_mfma.hpp:409
remove_cvref_t< WarpGemmAttributeMfmaImpl_ > Impl
Definition warp_gemm_attribute_mfma.hpp:396
decltype(get_warp_dstr_encoding< Impl::kBNLane >()) AWarpDstrEncoding
Definition warp_gemm_attribute_mfma.hpp:446
static constexpr index_t kM
Definition warp_gemm_attribute_mfma.hpp:408
CK_TILE_DEVICE void operator()(CVecType &c_vec, const AVecType &a_vec, const BVecType &b_vec, bool_constant< post_nop_ >={}) const
Definition warp_gemm_attribute_mfma.hpp:460
Definition tile/core/utility/functional.hpp:43
Definition tile/core/utility/debug.hpp:67
Definition tile_distribution_encoding.hpp:26
Definition tile/core/container/tuple.hpp:192