ABTransferWaveTiles< ABLayout, ABMajorLayout, LDSTypeAB, BlockSize, MNPerBlock, KPerBlock, MNPerWmma, KPack, ABK1Value, WaveSize > Struct Template Reference#
ck::ABTransferWaveTiles< ABLayout, ABMajorLayout, LDSTypeAB, BlockSize, MNPerBlock, KPerBlock, MNPerWmma, KPack, ABK1Value, WaveSize > Struct Template Reference
#include <gridwise_ab_transfer_wave_tiles.hpp>
Public Types | |
| using | ThisThreadBlock = ThisThreadBlock<BlockSize> |
Static Public Member Functions | |
| template<bool PadMN, bool PadK, typename GridDescriptorBase> | |
| __host__ static __device__ auto | MakeGridDescriptor (GridDescriptorBase &base_desc, index_t sizeMN, index_t, index_t sizeK, index_t, index_t, index_t) |
| static __device__ constexpr auto | GetBlockDescriptor () |
| static __device__ auto | GetWaveIdx () |
| static __device__ auto | GetBlockLaneIdx () |
| template<typename ABDataType> | |
| static __device__ auto | GetGridLaneIdx () |
| template<typename GridDescriptor, typename BlockDescriptor, typename ABsDataType, typename ABElementwiseOperation, index_t GlobalBufferNum> | |
| static __device__ auto | GetBlockTransfer (GridDescriptor &grid_descriptor, BlockDescriptor &block_descriptor, ABElementwiseOperation &ab_element_op, const index_t block_mn_id) |
| template<index_t MNRepeat, index_t MNWaves> | |
| __host__ static __device__ constexpr auto | MakeWmmaTileDescriptor () |
| static __device__ constexpr auto | GetBlockStep () |
| template<typename GridDescriptor> | |
| static __device__ constexpr index_t | GetKDimension (const GridDescriptor &grid_desc) |
Static Public Attributes | |
| static constexpr auto | I0 = Number<0>{} |
| static constexpr auto | I1 = Number<1>{} |
| static constexpr auto | I2 = Number<2>{} |
| static constexpr auto | I3 = Number<3>{} |
| static constexpr index_t | MNKRow = 2 |
| static constexpr index_t | NumberOfWaves = BlockSize / WaveSize |
| static constexpr index_t | MNMajorWaves_ |
| static constexpr index_t | KMajorWaves_ |
| static constexpr bool | ABDoTranspose = !is_same_v<ABLayout, ABMajorLayout> |
| static constexpr index_t | MNWaves_ |
| static constexpr index_t | KWaves_ = ABDoTranspose ? KMajorWaves_ : NumberOfWaves / MNMajorWaves_ |
| static constexpr index_t | KRepeat_ = KPerBlock / (KWaves_ * KPack) |
| static constexpr index_t | MNRepeat_ = MNPerBlock / (MNWaves_ * MNPerWmma) |
Member Typedef Documentation
◆ ThisThreadBlock
template<typename ABLayout, typename ABMajorLayout, typename LDSTypeAB, index_t BlockSize, index_t MNPerBlock, index_t KPerBlock, index_t MNPerWmma, index_t KPack, index_t ABK1Value, index_t WaveSize>
| using ck::ABTransferWaveTiles< ABLayout, ABMajorLayout, LDSTypeAB, BlockSize, MNPerBlock, KPerBlock, MNPerWmma, KPack, ABK1Value, WaveSize >::ThisThreadBlock = ThisThreadBlock<BlockSize> |
Member Function Documentation
◆ GetBlockDescriptor()
template<typename ABLayout, typename ABMajorLayout, typename LDSTypeAB, index_t BlockSize, index_t MNPerBlock, index_t KPerBlock, index_t MNPerWmma, index_t KPack, index_t ABK1Value, index_t WaveSize>
|
inlinestaticconstexpr |
◆ GetBlockLaneIdx()
template<typename ABLayout, typename ABMajorLayout, typename LDSTypeAB, index_t BlockSize, index_t MNPerBlock, index_t KPerBlock, index_t MNPerWmma, index_t KPack, index_t ABK1Value, index_t WaveSize>
|
inlinestatic |
◆ GetBlockStep()
template<typename ABLayout, typename ABMajorLayout, typename LDSTypeAB, index_t BlockSize, index_t MNPerBlock, index_t KPerBlock, index_t MNPerWmma, index_t KPack, index_t ABK1Value, index_t WaveSize>
|
inlinestaticconstexpr |
◆ GetBlockTransfer()
template<typename ABLayout, typename ABMajorLayout, typename LDSTypeAB, index_t BlockSize, index_t MNPerBlock, index_t KPerBlock, index_t MNPerWmma, index_t KPack, index_t ABK1Value, index_t WaveSize>
template<typename GridDescriptor, typename BlockDescriptor, typename ABsDataType, typename ABElementwiseOperation, index_t GlobalBufferNum>
|
inlinestatic |
◆ GetGridLaneIdx()
template<typename ABLayout, typename ABMajorLayout, typename LDSTypeAB, index_t BlockSize, index_t MNPerBlock, index_t KPerBlock, index_t MNPerWmma, index_t KPack, index_t ABK1Value, index_t WaveSize>
template<typename ABDataType>
|
inlinestatic |
◆ GetKDimension()
template<typename ABLayout, typename ABMajorLayout, typename LDSTypeAB, index_t BlockSize, index_t MNPerBlock, index_t KPerBlock, index_t MNPerWmma, index_t KPack, index_t ABK1Value, index_t WaveSize>
template<typename GridDescriptor>
|
inlinestaticconstexpr |
◆ GetWaveIdx()
template<typename ABLayout, typename ABMajorLayout, typename LDSTypeAB, index_t BlockSize, index_t MNPerBlock, index_t KPerBlock, index_t MNPerWmma, index_t KPack, index_t ABK1Value, index_t WaveSize>
|
inlinestatic |
◆ MakeGridDescriptor()
template<typename ABLayout, typename ABMajorLayout, typename LDSTypeAB, index_t BlockSize, index_t MNPerBlock, index_t KPerBlock, index_t MNPerWmma, index_t KPack, index_t ABK1Value, index_t WaveSize>
template<bool PadMN, bool PadK, typename GridDescriptorBase>
|
inlinestatic |
◆ MakeWmmaTileDescriptor()
template<typename ABLayout, typename ABMajorLayout, typename LDSTypeAB, index_t BlockSize, index_t MNPerBlock, index_t KPerBlock, index_t MNPerWmma, index_t KPack, index_t ABK1Value, index_t WaveSize>
|
inlinestaticconstexpr |
Member Data Documentation
◆ ABDoTranspose
template<typename ABLayout, typename ABMajorLayout, typename LDSTypeAB, index_t BlockSize, index_t MNPerBlock, index_t KPerBlock, index_t MNPerWmma, index_t KPack, index_t ABK1Value, index_t WaveSize>
|
staticconstexpr |
◆ I0
template<typename ABLayout, typename ABMajorLayout, typename LDSTypeAB, index_t BlockSize, index_t MNPerBlock, index_t KPerBlock, index_t MNPerWmma, index_t KPack, index_t ABK1Value, index_t WaveSize>
|
staticconstexpr |
◆ I1
template<typename ABLayout, typename ABMajorLayout, typename LDSTypeAB, index_t BlockSize, index_t MNPerBlock, index_t KPerBlock, index_t MNPerWmma, index_t KPack, index_t ABK1Value, index_t WaveSize>
|
staticconstexpr |
◆ I2
template<typename ABLayout, typename ABMajorLayout, typename LDSTypeAB, index_t BlockSize, index_t MNPerBlock, index_t KPerBlock, index_t MNPerWmma, index_t KPack, index_t ABK1Value, index_t WaveSize>
|
staticconstexpr |
◆ I3
template<typename ABLayout, typename ABMajorLayout, typename LDSTypeAB, index_t BlockSize, index_t MNPerBlock, index_t KPerBlock, index_t MNPerWmma, index_t KPack, index_t ABK1Value, index_t WaveSize>
|
staticconstexpr |
◆ KMajorWaves_
template<typename ABLayout, typename ABMajorLayout, typename LDSTypeAB, index_t BlockSize, index_t MNPerBlock, index_t KPerBlock, index_t MNPerWmma, index_t KPack, index_t ABK1Value, index_t WaveSize>
|
staticconstexpr |
Initial value:
=
KPerBlock / KPack % std::min(KPerBlock / KPack, NumberOfWaves) == 0
? std::min(KPerBlock / KPack, NumberOfWaves)
: (KPerBlock / KPack % 2 == 0 ? 2 : 1)
static constexpr index_t NumberOfWaves
Definition gridwise_ab_transfer_wave_tiles.hpp:60
◆ KRepeat_
template<typename ABLayout, typename ABMajorLayout, typename LDSTypeAB, index_t BlockSize, index_t MNPerBlock, index_t KPerBlock, index_t MNPerWmma, index_t KPack, index_t ABK1Value, index_t WaveSize>
|
staticconstexpr |
◆ KWaves_
template<typename ABLayout, typename ABMajorLayout, typename LDSTypeAB, index_t BlockSize, index_t MNPerBlock, index_t KPerBlock, index_t MNPerWmma, index_t KPack, index_t ABK1Value, index_t WaveSize>
|
staticconstexpr |
◆ MNKRow
template<typename ABLayout, typename ABMajorLayout, typename LDSTypeAB, index_t BlockSize, index_t MNPerBlock, index_t KPerBlock, index_t MNPerWmma, index_t KPack, index_t ABK1Value, index_t WaveSize>
|
staticconstexpr |
◆ MNMajorWaves_
template<typename ABLayout, typename ABMajorLayout, typename LDSTypeAB, index_t BlockSize, index_t MNPerBlock, index_t KPerBlock, index_t MNPerWmma, index_t KPack, index_t ABK1Value, index_t WaveSize>
|
staticconstexpr |
Initial value:
=
MNPerBlock / MNPerWmma % std::min(MNPerBlock / MNPerWmma, NumberOfWaves) == 0
? std::min(MNPerBlock / MNPerWmma, NumberOfWaves)
: (MNPerBlock / MNPerWmma % 2 == 0 ? 2 : 1)
◆ MNRepeat_
template<typename ABLayout, typename ABMajorLayout, typename LDSTypeAB, index_t BlockSize, index_t MNPerBlock, index_t KPerBlock, index_t MNPerWmma, index_t KPack, index_t ABK1Value, index_t WaveSize>
|
staticconstexpr |
◆ MNWaves_
template<typename ABLayout, typename ABMajorLayout, typename LDSTypeAB, index_t BlockSize, index_t MNPerBlock, index_t KPerBlock, index_t MNPerWmma, index_t KPack, index_t ABK1Value, index_t WaveSize>
|
staticconstexpr |
Initial value:
=
static constexpr index_t KMajorWaves_
Definition gridwise_ab_transfer_wave_tiles.hpp:65
static constexpr index_t MNMajorWaves_
Definition gridwise_ab_transfer_wave_tiles.hpp:61
static constexpr bool ABDoTranspose
Definition gridwise_ab_transfer_wave_tiles.hpp:70
◆ NumberOfWaves
template<typename ABLayout, typename ABMajorLayout, typename LDSTypeAB, index_t BlockSize, index_t MNPerBlock, index_t KPerBlock, index_t MNPerWmma, index_t KPack, index_t ABK1Value, index_t WaveSize>
|
staticconstexpr |
The documentation for this struct was generated from the following file: