WarpGemmAttributeSmfmac< WarpGemmAttributeSmfmacImpl_ > Struct Template Reference#
Class describing structured sparsity mfma instructions. More...
#include <warp_gemm_attribute_smfmac.hpp>
Public Types | |
| using | Impl = remove_cvref_t<WarpGemmAttributeSmfmacImpl_> |
| using | ADataType = typename Impl::ADataType |
| using | BDataType = typename Impl::BDataType |
| using | IdxDataType = typename Impl::IdxDataType |
| using | CDataType = typename Impl::CDataType |
| using | AVecType = typename Impl::AVecType |
| using | BVecType = typename Impl::BVecType |
| using | CVecType = typename Impl::CVecType |
| using | AWarpDstrEncoding |
| using | BWarpDstrEncoding |
| using | CWarpDstrEncoding |
Public Member Functions | |
| template<bool post_nop_ = false> | |
| CK_TILE_DEVICE void | operator() (CVecType &c_vec, const AVecType &a_vec, const BVecType &b_vec, const int32_t &idx, bool_constant< post_nop_ >={}) const |
Static Public Member Functions | |
| static CK_TILE_HOST_DEVICE constexpr auto | get_num_of_access () |
Static Public Attributes | |
| static constexpr index_t | kM = Impl::kM |
| static constexpr index_t | kN = Impl::kN |
| static constexpr index_t | kK = Impl::kK |
| static constexpr index_t | kKPerThread = Impl::kABKPerLane |
| static constexpr index_t | kCompressionRatio = Impl::CompressionRatio |
Detailed Description
struct ck_tile::WarpGemmAttributeSmfmac< WarpGemmAttributeSmfmacImpl_ >
Class describing structured sparsity mfma instructions.
Overview
Currently only 2:4 structured sparsity is supported, which is based on requirement that in every groups of four continuous elements there are at most two non-zero, which results in processing only half of elements in smfmac instruction. Because of structured sparsity A vector in smfmac instruction will be smaller than B vector by the factor of CompressionRatio. The indexes of non-zero elements are stored in index which is an additional parameter to assembly instruction. Every pair of two bit indexes are containing information about which two elements in current group of 4 values are non-zero and should be used inside smfmac instruction. Structured sparsity format is supported only for A matrix for now.
Member Typedef Documentation
◆ ADataType
| using ck_tile::WarpGemmAttributeSmfmac< WarpGemmAttributeSmfmacImpl_ >::ADataType = typename Impl::ADataType |
◆ AVecType
| using ck_tile::WarpGemmAttributeSmfmac< WarpGemmAttributeSmfmacImpl_ >::AVecType = typename Impl::AVecType |
◆ AWarpDstrEncoding
| using ck_tile::WarpGemmAttributeSmfmac< WarpGemmAttributeSmfmacImpl_ >::AWarpDstrEncoding |
◆ BDataType
| using ck_tile::WarpGemmAttributeSmfmac< WarpGemmAttributeSmfmacImpl_ >::BDataType = typename Impl::BDataType |
◆ BVecType
| using ck_tile::WarpGemmAttributeSmfmac< WarpGemmAttributeSmfmacImpl_ >::BVecType = typename Impl::BVecType |
◆ BWarpDstrEncoding
| using ck_tile::WarpGemmAttributeSmfmac< WarpGemmAttributeSmfmacImpl_ >::BWarpDstrEncoding |
◆ CDataType
| using ck_tile::WarpGemmAttributeSmfmac< WarpGemmAttributeSmfmacImpl_ >::CDataType = typename Impl::CDataType |
◆ CVecType
| using ck_tile::WarpGemmAttributeSmfmac< WarpGemmAttributeSmfmacImpl_ >::CVecType = typename Impl::CVecType |
◆ CWarpDstrEncoding
| using ck_tile::WarpGemmAttributeSmfmac< WarpGemmAttributeSmfmacImpl_ >::CWarpDstrEncoding |
◆ IdxDataType
| using ck_tile::WarpGemmAttributeSmfmac< WarpGemmAttributeSmfmacImpl_ >::IdxDataType = typename Impl::IdxDataType |
◆ Impl
| using ck_tile::WarpGemmAttributeSmfmac< WarpGemmAttributeSmfmacImpl_ >::Impl = remove_cvref_t<WarpGemmAttributeSmfmacImpl_> |
Member Function Documentation
◆ get_num_of_access()
|
inlinestaticconstexpr |
◆ operator()()
|
inline |
Member Data Documentation
◆ kCompressionRatio
|
staticconstexpr |
◆ kK
|
staticconstexpr |
◆ kKPerThread
|
staticconstexpr |
◆ kM
|
staticconstexpr |
◆ kN
|
staticconstexpr |
The documentation for this struct was generated from the following file: