DeviceGroupedConvBwdWeight_Xdl_CShuffle< NDimSpatial, InLayout, WeiLayout, OutLayout, InDataType, WeiDataType, OutDataType, AccDataType, InElementwiseOperation, WeiElementwiseOperation, OutElementwiseOperation, ConvBackwardWeightSpecialization, BlockSize, MPerBlock, NPerBlock, K0PerBlock, K1, MPerXDL, NPerXDL, MXdlPerWave, NXdlPerWave, ABlockTransferThreadClusterLengths_K0_M_K1, ABlockTransferThreadClusterArrangeOrder, ABlockTransferSrcAccessOrder, ABlockTransferSrcVectorDim, ABlockTransferSrcScalarPerVector, ABlockTransferDstScalarPerVector_K1, ABlockLdsAddExtraM, BBlockTransferThreadClusterLengths_K0_N_K1, BBlockTransferThreadClusterArrangeOrder, BBlockTransferSrcAccessOrder, BBlockTransferSrcVectorDim, BBlockTransferSrcScalarPerVector, BBlockTransferDstScalarPerVector_K1, BBlockLdsAddExtraN, CShuffleMXdlPerWavePerShuffle, CShuffleNXdlPerWavePerShuffle, CBlockTransferClusterLengths_MBlock_MPerBlock_NBlock_NPerBlock, CBlockTransferScalarPerVector_NWaveNPerXdl, ComputeTypeA, ComputeTypeB, MaxTransposeTransferSrcScalarPerVector, MaxTransposeTransferDstScalarPerVector > Struct Template Reference#
Classes |
Public Types |
Public Member Functions |
Static Public Member Functions |
Static Public Attributes |
List of all members
ck::tensor_operation::device::DeviceGroupedConvBwdWeight_Xdl_CShuffle< NDimSpatial, InLayout, WeiLayout, OutLayout, InDataType, WeiDataType, OutDataType, AccDataType, InElementwiseOperation, WeiElementwiseOperation, OutElementwiseOperation, ConvBackwardWeightSpecialization, BlockSize, MPerBlock, NPerBlock, K0PerBlock, K1, MPerXDL, NPerXDL, MXdlPerWave, NXdlPerWave, ABlockTransferThreadClusterLengths_K0_M_K1, ABlockTransferThreadClusterArrangeOrder, ABlockTransferSrcAccessOrder, ABlockTransferSrcVectorDim, ABlockTransferSrcScalarPerVector, ABlockTransferDstScalarPerVector_K1, ABlockLdsAddExtraM, BBlockTransferThreadClusterLengths_K0_N_K1, BBlockTransferThreadClusterArrangeOrder, BBlockTransferSrcAccessOrder, BBlockTransferSrcVectorDim, BBlockTransferSrcScalarPerVector, BBlockTransferDstScalarPerVector_K1, BBlockLdsAddExtraN, CShuffleMXdlPerWavePerShuffle, CShuffleNXdlPerWavePerShuffle, CBlockTransferClusterLengths_MBlock_MPerBlock_NBlock_NPerBlock, CBlockTransferScalarPerVector_NWaveNPerXdl, ComputeTypeA, ComputeTypeB, MaxTransposeTransferSrcScalarPerVector, MaxTransposeTransferDstScalarPerVector > Struct Template Reference
#include <device_grouped_conv_bwd_weight_xdl_cshuffle.hpp>
Inheritance diagram for ck::tensor_operation::device::DeviceGroupedConvBwdWeight_Xdl_CShuffle< NDimSpatial, InLayout, WeiLayout, OutLayout, InDataType, WeiDataType, OutDataType, AccDataType, InElementwiseOperation, WeiElementwiseOperation, OutElementwiseOperation, ConvBackwardWeightSpecialization, BlockSize, MPerBlock, NPerBlock, K0PerBlock, K1, MPerXDL, NPerXDL, MXdlPerWave, NXdlPerWave, ABlockTransferThreadClusterLengths_K0_M_K1, ABlockTransferThreadClusterArrangeOrder, ABlockTransferSrcAccessOrder, ABlockTransferSrcVectorDim, ABlockTransferSrcScalarPerVector, ABlockTransferDstScalarPerVector_K1, ABlockLdsAddExtraM, BBlockTransferThreadClusterLengths_K0_N_K1, BBlockTransferThreadClusterArrangeOrder, BBlockTransferSrcAccessOrder, BBlockTransferSrcVectorDim, BBlockTransferSrcScalarPerVector, BBlockTransferDstScalarPerVector_K1, BBlockLdsAddExtraN, CShuffleMXdlPerWavePerShuffle, CShuffleNXdlPerWavePerShuffle, CBlockTransferClusterLengths_MBlock_MPerBlock_NBlock_NPerBlock, CBlockTransferScalarPerVector_NWaveNPerXdl, ComputeTypeA, ComputeTypeB, MaxTransposeTransferSrcScalarPerVector, MaxTransposeTransferDstScalarPerVector >:
Classes | |
| struct | ActiveWorkgroupsPerCU |
| struct | Argument |
| struct | Invoker |
Public Member Functions | |
| bool | IsSupportedArgument (const BaseArgument *p_arg) override |
| std::unique_ptr< BaseArgument > | MakeArgumentPointer (const void *p_in_grid, void *p_wei_grid, const void *p_out_grid, const std::array< index_t, NDimSpatial+3 > &b_g_n_c_wis_lengths, const std::array< index_t, NDimSpatial+3 > &b_g_n_c_wis_strides, const std::array< index_t, NDimSpatial+3 > &e_g_k_c_xs_lengths, const std::array< index_t, NDimSpatial+3 > &e_g_k_c_xs_strides, const std::array< index_t, NDimSpatial+3 > &a_g_n_k_wos_lengths, const std::array< index_t, NDimSpatial+3 > &a_g_n_k_wos_strides, const std::array< ck::index_t, NDimSpatial > &conv_filter_strides, const std::array< ck::index_t, NDimSpatial > &conv_filter_dilations, const std::array< ck::index_t, NDimSpatial > &input_left_pads, const std::array< ck::index_t, NDimSpatial > &input_right_pads, InElementwiseOperation in_element_op, WeiElementwiseOperation wei_element_op, OutElementwiseOperation out_element_op, const ck::index_t split_k) override |
| std::unique_ptr< BaseInvoker > | MakeInvokerPointer () override |
| std::string | GetTypeString () const override |
| size_t | GetWorkSpaceSize (const BaseArgument *p_arg) const override |
| void | SetWorkSpacePointer (BaseArgument *p_arg, void *p_workspace, const StreamConfig &=StreamConfig{}) const override |
| Public Member Functions inherited from ck::tensor_operation::device::BaseOperator | |
| BaseOperator ()=default | |
| BaseOperator (const BaseOperator &)=default | |
| BaseOperator & | operator= (const BaseOperator &)=default |
| virtual std::string | GetInstanceString () const |
| virtual std::string | GetTypeIdName () const |
| virtual std::optional< std::string > | GetObjectName () const |
| virtual std::optional< std::string > | GetTemplateInfo () const |
| virtual std::string | GetTypeIdHashCode () const |
| virtual | ~BaseOperator () |
Static Public Member Functions | |
| template<ck::index_t NDim, typename ck::enable_if< NDim==1, bool >::type = false> | |
| static auto | GetABCGridDesc () |
| template<ck::index_t NDim, typename ck::enable_if< NDim==2, bool >::type = false> | |
| static auto | GetABCGridDesc () |
| template<ck::index_t NDim, typename ck::enable_if< NDim==3, bool >::type = false> | |
| static auto | GetABCGridDesc () |
| static constexpr bool | IsValidCompilationParameter () |
| static bool | IsSupportedArgument (const Argument &arg) |
| static auto | MakeArgument (const InDataType *p_in_grid, WeiDataType *p_wei_grid, const OutDataType *p_out_grid, const std::array< index_t, NDimSpatial+3 > &b_g_n_c_wis_lengths, const std::array< index_t, NDimSpatial+3 > &b_g_n_c_wis_strides, const std::array< index_t, NDimSpatial+3 > &e_g_k_c_xs_lengths, const std::array< index_t, NDimSpatial+3 > &e_g_k_c_xs_strides, const std::array< index_t, NDimSpatial+3 > &a_g_n_k_wos_lengths, const std::array< index_t, NDimSpatial+3 > &a_g_n_k_wos_strides, const std::array< ck::index_t, NDimSpatial > &conv_filter_strides, const std::array< ck::index_t, NDimSpatial > &conv_filter_dilations, const std::array< ck::index_t, NDimSpatial > &input_left_pads, const std::array< ck::index_t, NDimSpatial > &input_right_pads, InElementwiseOperation in_element_op, WeiElementwiseOperation wei_element_op, OutElementwiseOperation out_element_op, const ck::index_t split_k) |
| static auto | MakeInvoker () |
Static Public Attributes | |
| static GET_NXDL_PER_WAVE_IMPL constexpr auto | NXdlPerWave64 = GetNXdlPerWave<true>() |
| static constexpr auto | NXdlPerWave32 = GetNXdlPerWave<false>() |
| 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 auto | I4 = Number<4>{} |
| static constexpr auto | I5 = Number<5>{} |
| static constexpr auto | K1Number = Number<K1>{} |
| static constexpr auto | conv_to_gemm_transformer |
| static constexpr auto | BankLength = 128 |
| static constexpr auto | ElePerBank = BankLength / sizeof(ADataType) |
| static constexpr auto | ABlockLdsM1PerBlock = ElePerBank / K1 |
| static constexpr auto | ABlockLdsM0PerBlock = MPerBlock / ABlockLdsM1PerBlock |
| static constexpr auto | ABlockLdsM1Padding = 4 |
| static constexpr auto | BBlockLdsN1PerBlock = ElePerBank / K1 |
| static constexpr auto | BBlockLdsN0PerBlock = NPerBlock / BBlockLdsN1PerBlock |
| static constexpr auto | BBlockLdsN1Padding = 4 |
| static constexpr index_t | ClusterLengthMPerBlock |
| static constexpr index_t | ClusterLengthNPerBlock |
| static constexpr auto | conv_ngchw_to_nhwgc_transformer |
| static constexpr index_t | TransposeTransferSrcScalarPerVectorAligned |
| static constexpr index_t | TransposeTransferDstScalarPerVectorAligned |
Member Typedef Documentation
◆ ABCGridDescs
template<ck::index_t NDimSpatial, typename InLayout, typename WeiLayout, typename OutLayout, typename InDataType, typename WeiDataType, typename OutDataType, typename AccDataType, typename InElementwiseOperation, typename WeiElementwiseOperation, typename OutElementwiseOperation, ConvolutionBackwardWeightSpecialization ConvBackwardWeightSpecialization, ck::index_t BlockSize, ck::index_t MPerBlock, ck::index_t NPerBlock, ck::index_t K0PerBlock, ck::index_t K1, ck::index_t MPerXDL, ck::index_t NPerXDL, ck::index_t MXdlPerWave, ck::index_t NXdlPerWave, typename ABlockTransferThreadClusterLengths_K0_M_K1, typename ABlockTransferThreadClusterArrangeOrder, typename ABlockTransferSrcAccessOrder, ck::index_t ABlockTransferSrcVectorDim, ck::index_t ABlockTransferSrcScalarPerVector, ck::index_t ABlockTransferDstScalarPerVector_K1, bool ABlockLdsAddExtraM, typename BBlockTransferThreadClusterLengths_K0_N_K1, typename BBlockTransferThreadClusterArrangeOrder, typename BBlockTransferSrcAccessOrder, ck::index_t BBlockTransferSrcVectorDim, ck::index_t BBlockTransferSrcScalarPerVector, ck::index_t BBlockTransferDstScalarPerVector_K1, bool BBlockLdsAddExtraN, index_t CShuffleMXdlPerWavePerShuffle, index_t CShuffleNXdlPerWavePerShuffle, typename CBlockTransferClusterLengths_MBlock_MPerBlock_NBlock_NPerBlock, index_t CBlockTransferScalarPerVector_NWaveNPerXdl, typename ComputeTypeA = InDataType, typename ComputeTypeB = ComputeTypeA, index_t MaxTransposeTransferSrcScalarPerVector = 1, index_t MaxTransposeTransferDstScalarPerVector = 1>
| using ck::tensor_operation::device::DeviceGroupedConvBwdWeight_Xdl_CShuffle< NDimSpatial, InLayout, WeiLayout, OutLayout, InDataType, WeiDataType, OutDataType, AccDataType, InElementwiseOperation, WeiElementwiseOperation, OutElementwiseOperation, ConvBackwardWeightSpecialization, BlockSize, MPerBlock, NPerBlock, K0PerBlock, K1, MPerXDL, NPerXDL, MXdlPerWave, NXdlPerWave, ABlockTransferThreadClusterLengths_K0_M_K1, ABlockTransferThreadClusterArrangeOrder, ABlockTransferSrcAccessOrder, ABlockTransferSrcVectorDim, ABlockTransferSrcScalarPerVector, ABlockTransferDstScalarPerVector_K1, ABlockLdsAddExtraM, BBlockTransferThreadClusterLengths_K0_N_K1, BBlockTransferThreadClusterArrangeOrder, BBlockTransferSrcAccessOrder, BBlockTransferSrcVectorDim, BBlockTransferSrcScalarPerVector, BBlockTransferDstScalarPerVector_K1, BBlockLdsAddExtraN, CShuffleMXdlPerWavePerShuffle, CShuffleNXdlPerWavePerShuffle, CBlockTransferClusterLengths_MBlock_MPerBlock_NBlock_NPerBlock, CBlockTransferScalarPerVector_NWaveNPerXdl, ComputeTypeA, ComputeTypeB, MaxTransposeTransferSrcScalarPerVector, MaxTransposeTransferDstScalarPerVector >::ABCGridDescs = decltype(GetABCGridDesc<NDimSpatial>()) |
◆ ABDataType
template<ck::index_t NDimSpatial, typename InLayout, typename WeiLayout, typename OutLayout, typename InDataType, typename WeiDataType, typename OutDataType, typename AccDataType, typename InElementwiseOperation, typename WeiElementwiseOperation, typename OutElementwiseOperation, ConvolutionBackwardWeightSpecialization ConvBackwardWeightSpecialization, ck::index_t BlockSize, ck::index_t MPerBlock, ck::index_t NPerBlock, ck::index_t K0PerBlock, ck::index_t K1, ck::index_t MPerXDL, ck::index_t NPerXDL, ck::index_t MXdlPerWave, ck::index_t NXdlPerWave, typename ABlockTransferThreadClusterLengths_K0_M_K1, typename ABlockTransferThreadClusterArrangeOrder, typename ABlockTransferSrcAccessOrder, ck::index_t ABlockTransferSrcVectorDim, ck::index_t ABlockTransferSrcScalarPerVector, ck::index_t ABlockTransferDstScalarPerVector_K1, bool ABlockLdsAddExtraM, typename BBlockTransferThreadClusterLengths_K0_N_K1, typename BBlockTransferThreadClusterArrangeOrder, typename BBlockTransferSrcAccessOrder, ck::index_t BBlockTransferSrcVectorDim, ck::index_t BBlockTransferSrcScalarPerVector, ck::index_t BBlockTransferDstScalarPerVector_K1, bool BBlockLdsAddExtraN, index_t CShuffleMXdlPerWavePerShuffle, index_t CShuffleNXdlPerWavePerShuffle, typename CBlockTransferClusterLengths_MBlock_MPerBlock_NBlock_NPerBlock, index_t CBlockTransferScalarPerVector_NWaveNPerXdl, typename ComputeTypeA = InDataType, typename ComputeTypeB = ComputeTypeA, index_t MaxTransposeTransferSrcScalarPerVector = 1, index_t MaxTransposeTransferDstScalarPerVector = 1>
| using ck::tensor_operation::device::DeviceGroupedConvBwdWeight_Xdl_CShuffle< NDimSpatial, InLayout, WeiLayout, OutLayout, InDataType, WeiDataType, OutDataType, AccDataType, InElementwiseOperation, WeiElementwiseOperation, OutElementwiseOperation, ConvBackwardWeightSpecialization, BlockSize, MPerBlock, NPerBlock, K0PerBlock, K1, MPerXDL, NPerXDL, MXdlPerWave, NXdlPerWave, ABlockTransferThreadClusterLengths_K0_M_K1, ABlockTransferThreadClusterArrangeOrder, ABlockTransferSrcAccessOrder, ABlockTransferSrcVectorDim, ABlockTransferSrcScalarPerVector, ABlockTransferDstScalarPerVector_K1, ABlockLdsAddExtraM, BBlockTransferThreadClusterLengths_K0_N_K1, BBlockTransferThreadClusterArrangeOrder, BBlockTransferSrcAccessOrder, BBlockTransferSrcVectorDim, BBlockTransferSrcScalarPerVector, BBlockTransferDstScalarPerVector_K1, BBlockLdsAddExtraN, CShuffleMXdlPerWavePerShuffle, CShuffleNXdlPerWavePerShuffle, CBlockTransferClusterLengths_MBlock_MPerBlock_NBlock_NPerBlock, CBlockTransferScalarPerVector_NWaveNPerXdl, ComputeTypeA, ComputeTypeB, MaxTransposeTransferSrcScalarPerVector, MaxTransposeTransferDstScalarPerVector >::ABDataType = InDataType |
◆ ADataType
template<ck::index_t NDimSpatial, typename InLayout, typename WeiLayout, typename OutLayout, typename InDataType, typename WeiDataType, typename OutDataType, typename AccDataType, typename InElementwiseOperation, typename WeiElementwiseOperation, typename OutElementwiseOperation, ConvolutionBackwardWeightSpecialization ConvBackwardWeightSpecialization, ck::index_t BlockSize, ck::index_t MPerBlock, ck::index_t NPerBlock, ck::index_t K0PerBlock, ck::index_t K1, ck::index_t MPerXDL, ck::index_t NPerXDL, ck::index_t MXdlPerWave, ck::index_t NXdlPerWave, typename ABlockTransferThreadClusterLengths_K0_M_K1, typename ABlockTransferThreadClusterArrangeOrder, typename ABlockTransferSrcAccessOrder, ck::index_t ABlockTransferSrcVectorDim, ck::index_t ABlockTransferSrcScalarPerVector, ck::index_t ABlockTransferDstScalarPerVector_K1, bool ABlockLdsAddExtraM, typename BBlockTransferThreadClusterLengths_K0_N_K1, typename BBlockTransferThreadClusterArrangeOrder, typename BBlockTransferSrcAccessOrder, ck::index_t BBlockTransferSrcVectorDim, ck::index_t BBlockTransferSrcScalarPerVector, ck::index_t BBlockTransferDstScalarPerVector_K1, bool BBlockLdsAddExtraN, index_t CShuffleMXdlPerWavePerShuffle, index_t CShuffleNXdlPerWavePerShuffle, typename CBlockTransferClusterLengths_MBlock_MPerBlock_NBlock_NPerBlock, index_t CBlockTransferScalarPerVector_NWaveNPerXdl, typename ComputeTypeA = InDataType, typename ComputeTypeB = ComputeTypeA, index_t MaxTransposeTransferSrcScalarPerVector = 1, index_t MaxTransposeTransferDstScalarPerVector = 1>
| using ck::tensor_operation::device::DeviceGroupedConvBwdWeight_Xdl_CShuffle< NDimSpatial, InLayout, WeiLayout, OutLayout, InDataType, WeiDataType, OutDataType, AccDataType, InElementwiseOperation, WeiElementwiseOperation, OutElementwiseOperation, ConvBackwardWeightSpecialization, BlockSize, MPerBlock, NPerBlock, K0PerBlock, K1, MPerXDL, NPerXDL, MXdlPerWave, NXdlPerWave, ABlockTransferThreadClusterLengths_K0_M_K1, ABlockTransferThreadClusterArrangeOrder, ABlockTransferSrcAccessOrder, ABlockTransferSrcVectorDim, ABlockTransferSrcScalarPerVector, ABlockTransferDstScalarPerVector_K1, ABlockLdsAddExtraM, BBlockTransferThreadClusterLengths_K0_N_K1, BBlockTransferThreadClusterArrangeOrder, BBlockTransferSrcAccessOrder, BBlockTransferSrcVectorDim, BBlockTransferSrcScalarPerVector, BBlockTransferDstScalarPerVector_K1, BBlockLdsAddExtraN, CShuffleMXdlPerWavePerShuffle, CShuffleNXdlPerWavePerShuffle, CBlockTransferClusterLengths_MBlock_MPerBlock_NBlock_NPerBlock, CBlockTransferScalarPerVector_NWaveNPerXdl, ComputeTypeA, ComputeTypeB, MaxTransposeTransferSrcScalarPerVector, MaxTransposeTransferDstScalarPerVector >::ADataType = OutDataType |
◆ AElementwiseOperation
template<ck::index_t NDimSpatial, typename InLayout, typename WeiLayout, typename OutLayout, typename InDataType, typename WeiDataType, typename OutDataType, typename AccDataType, typename InElementwiseOperation, typename WeiElementwiseOperation, typename OutElementwiseOperation, ConvolutionBackwardWeightSpecialization ConvBackwardWeightSpecialization, ck::index_t BlockSize, ck::index_t MPerBlock, ck::index_t NPerBlock, ck::index_t K0PerBlock, ck::index_t K1, ck::index_t MPerXDL, ck::index_t NPerXDL, ck::index_t MXdlPerWave, ck::index_t NXdlPerWave, typename ABlockTransferThreadClusterLengths_K0_M_K1, typename ABlockTransferThreadClusterArrangeOrder, typename ABlockTransferSrcAccessOrder, ck::index_t ABlockTransferSrcVectorDim, ck::index_t ABlockTransferSrcScalarPerVector, ck::index_t ABlockTransferDstScalarPerVector_K1, bool ABlockLdsAddExtraM, typename BBlockTransferThreadClusterLengths_K0_N_K1, typename BBlockTransferThreadClusterArrangeOrder, typename BBlockTransferSrcAccessOrder, ck::index_t BBlockTransferSrcVectorDim, ck::index_t BBlockTransferSrcScalarPerVector, ck::index_t BBlockTransferDstScalarPerVector_K1, bool BBlockLdsAddExtraN, index_t CShuffleMXdlPerWavePerShuffle, index_t CShuffleNXdlPerWavePerShuffle, typename CBlockTransferClusterLengths_MBlock_MPerBlock_NBlock_NPerBlock, index_t CBlockTransferScalarPerVector_NWaveNPerXdl, typename ComputeTypeA = InDataType, typename ComputeTypeB = ComputeTypeA, index_t MaxTransposeTransferSrcScalarPerVector = 1, index_t MaxTransposeTransferDstScalarPerVector = 1>
| using ck::tensor_operation::device::DeviceGroupedConvBwdWeight_Xdl_CShuffle< NDimSpatial, InLayout, WeiLayout, OutLayout, InDataType, WeiDataType, OutDataType, AccDataType, InElementwiseOperation, WeiElementwiseOperation, OutElementwiseOperation, ConvBackwardWeightSpecialization, BlockSize, MPerBlock, NPerBlock, K0PerBlock, K1, MPerXDL, NPerXDL, MXdlPerWave, NXdlPerWave, ABlockTransferThreadClusterLengths_K0_M_K1, ABlockTransferThreadClusterArrangeOrder, ABlockTransferSrcAccessOrder, ABlockTransferSrcVectorDim, ABlockTransferSrcScalarPerVector, ABlockTransferDstScalarPerVector_K1, ABlockLdsAddExtraM, BBlockTransferThreadClusterLengths_K0_N_K1, BBlockTransferThreadClusterArrangeOrder, BBlockTransferSrcAccessOrder, BBlockTransferSrcVectorDim, BBlockTransferSrcScalarPerVector, BBlockTransferDstScalarPerVector_K1, BBlockLdsAddExtraN, CShuffleMXdlPerWavePerShuffle, CShuffleNXdlPerWavePerShuffle, CBlockTransferClusterLengths_MBlock_MPerBlock_NBlock_NPerBlock, CBlockTransferScalarPerVector_NWaveNPerXdl, ComputeTypeA, ComputeTypeB, MaxTransposeTransferSrcScalarPerVector, MaxTransposeTransferDstScalarPerVector >::AElementwiseOperation = OutElementwiseOperation |
◆ AGridDesc_K0_M_K1
template<ck::index_t NDimSpatial, typename InLayout, typename WeiLayout, typename OutLayout, typename InDataType, typename WeiDataType, typename OutDataType, typename AccDataType, typename InElementwiseOperation, typename WeiElementwiseOperation, typename OutElementwiseOperation, ConvolutionBackwardWeightSpecialization ConvBackwardWeightSpecialization, ck::index_t BlockSize, ck::index_t MPerBlock, ck::index_t NPerBlock, ck::index_t K0PerBlock, ck::index_t K1, ck::index_t MPerXDL, ck::index_t NPerXDL, ck::index_t MXdlPerWave, ck::index_t NXdlPerWave, typename ABlockTransferThreadClusterLengths_K0_M_K1, typename ABlockTransferThreadClusterArrangeOrder, typename ABlockTransferSrcAccessOrder, ck::index_t ABlockTransferSrcVectorDim, ck::index_t ABlockTransferSrcScalarPerVector, ck::index_t ABlockTransferDstScalarPerVector_K1, bool ABlockLdsAddExtraM, typename BBlockTransferThreadClusterLengths_K0_N_K1, typename BBlockTransferThreadClusterArrangeOrder, typename BBlockTransferSrcAccessOrder, ck::index_t BBlockTransferSrcVectorDim, ck::index_t BBlockTransferSrcScalarPerVector, ck::index_t BBlockTransferDstScalarPerVector_K1, bool BBlockLdsAddExtraN, index_t CShuffleMXdlPerWavePerShuffle, index_t CShuffleNXdlPerWavePerShuffle, typename CBlockTransferClusterLengths_MBlock_MPerBlock_NBlock_NPerBlock, index_t CBlockTransferScalarPerVector_NWaveNPerXdl, typename ComputeTypeA = InDataType, typename ComputeTypeB = ComputeTypeA, index_t MaxTransposeTransferSrcScalarPerVector = 1, index_t MaxTransposeTransferDstScalarPerVector = 1>
| using ck::tensor_operation::device::DeviceGroupedConvBwdWeight_Xdl_CShuffle< NDimSpatial, InLayout, WeiLayout, OutLayout, InDataType, WeiDataType, OutDataType, AccDataType, InElementwiseOperation, WeiElementwiseOperation, OutElementwiseOperation, ConvBackwardWeightSpecialization, BlockSize, MPerBlock, NPerBlock, K0PerBlock, K1, MPerXDL, NPerXDL, MXdlPerWave, NXdlPerWave, ABlockTransferThreadClusterLengths_K0_M_K1, ABlockTransferThreadClusterArrangeOrder, ABlockTransferSrcAccessOrder, ABlockTransferSrcVectorDim, ABlockTransferSrcScalarPerVector, ABlockTransferDstScalarPerVector_K1, ABlockLdsAddExtraM, BBlockTransferThreadClusterLengths_K0_N_K1, BBlockTransferThreadClusterArrangeOrder, BBlockTransferSrcAccessOrder, BBlockTransferSrcVectorDim, BBlockTransferSrcScalarPerVector, BBlockTransferDstScalarPerVector_K1, BBlockLdsAddExtraN, CShuffleMXdlPerWavePerShuffle, CShuffleNXdlPerWavePerShuffle, CBlockTransferClusterLengths_MBlock_MPerBlock_NBlock_NPerBlock, CBlockTransferScalarPerVector_NWaveNPerXdl, ComputeTypeA, ComputeTypeB, MaxTransposeTransferSrcScalarPerVector, MaxTransposeTransferDstScalarPerVector >::AGridDesc_K0_M_K1 = remove_cvref_t<decltype(ABCGridDescs{}[I0])> |
◆ BDataType
template<ck::index_t NDimSpatial, typename InLayout, typename WeiLayout, typename OutLayout, typename InDataType, typename WeiDataType, typename OutDataType, typename AccDataType, typename InElementwiseOperation, typename WeiElementwiseOperation, typename OutElementwiseOperation, ConvolutionBackwardWeightSpecialization ConvBackwardWeightSpecialization, ck::index_t BlockSize, ck::index_t MPerBlock, ck::index_t NPerBlock, ck::index_t K0PerBlock, ck::index_t K1, ck::index_t MPerXDL, ck::index_t NPerXDL, ck::index_t MXdlPerWave, ck::index_t NXdlPerWave, typename ABlockTransferThreadClusterLengths_K0_M_K1, typename ABlockTransferThreadClusterArrangeOrder, typename ABlockTransferSrcAccessOrder, ck::index_t ABlockTransferSrcVectorDim, ck::index_t ABlockTransferSrcScalarPerVector, ck::index_t ABlockTransferDstScalarPerVector_K1, bool ABlockLdsAddExtraM, typename BBlockTransferThreadClusterLengths_K0_N_K1, typename BBlockTransferThreadClusterArrangeOrder, typename BBlockTransferSrcAccessOrder, ck::index_t BBlockTransferSrcVectorDim, ck::index_t BBlockTransferSrcScalarPerVector, ck::index_t BBlockTransferDstScalarPerVector_K1, bool BBlockLdsAddExtraN, index_t CShuffleMXdlPerWavePerShuffle, index_t CShuffleNXdlPerWavePerShuffle, typename CBlockTransferClusterLengths_MBlock_MPerBlock_NBlock_NPerBlock, index_t CBlockTransferScalarPerVector_NWaveNPerXdl, typename ComputeTypeA = InDataType, typename ComputeTypeB = ComputeTypeA, index_t MaxTransposeTransferSrcScalarPerVector = 1, index_t MaxTransposeTransferDstScalarPerVector = 1>
| using ck::tensor_operation::device::DeviceGroupedConvBwdWeight_Xdl_CShuffle< NDimSpatial, InLayout, WeiLayout, OutLayout, InDataType, WeiDataType, OutDataType, AccDataType, InElementwiseOperation, WeiElementwiseOperation, OutElementwiseOperation, ConvBackwardWeightSpecialization, BlockSize, MPerBlock, NPerBlock, K0PerBlock, K1, MPerXDL, NPerXDL, MXdlPerWave, NXdlPerWave, ABlockTransferThreadClusterLengths_K0_M_K1, ABlockTransferThreadClusterArrangeOrder, ABlockTransferSrcAccessOrder, ABlockTransferSrcVectorDim, ABlockTransferSrcScalarPerVector, ABlockTransferDstScalarPerVector_K1, ABlockLdsAddExtraM, BBlockTransferThreadClusterLengths_K0_N_K1, BBlockTransferThreadClusterArrangeOrder, BBlockTransferSrcAccessOrder, BBlockTransferSrcVectorDim, BBlockTransferSrcScalarPerVector, BBlockTransferDstScalarPerVector_K1, BBlockLdsAddExtraN, CShuffleMXdlPerWavePerShuffle, CShuffleNXdlPerWavePerShuffle, CBlockTransferClusterLengths_MBlock_MPerBlock_NBlock_NPerBlock, CBlockTransferScalarPerVector_NWaveNPerXdl, ComputeTypeA, ComputeTypeB, MaxTransposeTransferSrcScalarPerVector, MaxTransposeTransferDstScalarPerVector >::BDataType = InDataType |
◆ BElementwiseOperation
template<ck::index_t NDimSpatial, typename InLayout, typename WeiLayout, typename OutLayout, typename InDataType, typename WeiDataType, typename OutDataType, typename AccDataType, typename InElementwiseOperation, typename WeiElementwiseOperation, typename OutElementwiseOperation, ConvolutionBackwardWeightSpecialization ConvBackwardWeightSpecialization, ck::index_t BlockSize, ck::index_t MPerBlock, ck::index_t NPerBlock, ck::index_t K0PerBlock, ck::index_t K1, ck::index_t MPerXDL, ck::index_t NPerXDL, ck::index_t MXdlPerWave, ck::index_t NXdlPerWave, typename ABlockTransferThreadClusterLengths_K0_M_K1, typename ABlockTransferThreadClusterArrangeOrder, typename ABlockTransferSrcAccessOrder, ck::index_t ABlockTransferSrcVectorDim, ck::index_t ABlockTransferSrcScalarPerVector, ck::index_t ABlockTransferDstScalarPerVector_K1, bool ABlockLdsAddExtraM, typename BBlockTransferThreadClusterLengths_K0_N_K1, typename BBlockTransferThreadClusterArrangeOrder, typename BBlockTransferSrcAccessOrder, ck::index_t BBlockTransferSrcVectorDim, ck::index_t BBlockTransferSrcScalarPerVector, ck::index_t BBlockTransferDstScalarPerVector_K1, bool BBlockLdsAddExtraN, index_t CShuffleMXdlPerWavePerShuffle, index_t CShuffleNXdlPerWavePerShuffle, typename CBlockTransferClusterLengths_MBlock_MPerBlock_NBlock_NPerBlock, index_t CBlockTransferScalarPerVector_NWaveNPerXdl, typename ComputeTypeA = InDataType, typename ComputeTypeB = ComputeTypeA, index_t MaxTransposeTransferSrcScalarPerVector = 1, index_t MaxTransposeTransferDstScalarPerVector = 1>
| using ck::tensor_operation::device::DeviceGroupedConvBwdWeight_Xdl_CShuffle< NDimSpatial, InLayout, WeiLayout, OutLayout, InDataType, WeiDataType, OutDataType, AccDataType, InElementwiseOperation, WeiElementwiseOperation, OutElementwiseOperation, ConvBackwardWeightSpecialization, BlockSize, MPerBlock, NPerBlock, K0PerBlock, K1, MPerXDL, NPerXDL, MXdlPerWave, NXdlPerWave, ABlockTransferThreadClusterLengths_K0_M_K1, ABlockTransferThreadClusterArrangeOrder, ABlockTransferSrcAccessOrder, ABlockTransferSrcVectorDim, ABlockTransferSrcScalarPerVector, ABlockTransferDstScalarPerVector_K1, ABlockLdsAddExtraM, BBlockTransferThreadClusterLengths_K0_N_K1, BBlockTransferThreadClusterArrangeOrder, BBlockTransferSrcAccessOrder, BBlockTransferSrcVectorDim, BBlockTransferSrcScalarPerVector, BBlockTransferDstScalarPerVector_K1, BBlockLdsAddExtraN, CShuffleMXdlPerWavePerShuffle, CShuffleNXdlPerWavePerShuffle, CBlockTransferClusterLengths_MBlock_MPerBlock_NBlock_NPerBlock, CBlockTransferScalarPerVector_NWaveNPerXdl, ComputeTypeA, ComputeTypeB, MaxTransposeTransferSrcScalarPerVector, MaxTransposeTransferDstScalarPerVector >::BElementwiseOperation = InElementwiseOperation |
◆ BGridDesc_K0_N_K1
template<ck::index_t NDimSpatial, typename InLayout, typename WeiLayout, typename OutLayout, typename InDataType, typename WeiDataType, typename OutDataType, typename AccDataType, typename InElementwiseOperation, typename WeiElementwiseOperation, typename OutElementwiseOperation, ConvolutionBackwardWeightSpecialization ConvBackwardWeightSpecialization, ck::index_t BlockSize, ck::index_t MPerBlock, ck::index_t NPerBlock, ck::index_t K0PerBlock, ck::index_t K1, ck::index_t MPerXDL, ck::index_t NPerXDL, ck::index_t MXdlPerWave, ck::index_t NXdlPerWave, typename ABlockTransferThreadClusterLengths_K0_M_K1, typename ABlockTransferThreadClusterArrangeOrder, typename ABlockTransferSrcAccessOrder, ck::index_t ABlockTransferSrcVectorDim, ck::index_t ABlockTransferSrcScalarPerVector, ck::index_t ABlockTransferDstScalarPerVector_K1, bool ABlockLdsAddExtraM, typename BBlockTransferThreadClusterLengths_K0_N_K1, typename BBlockTransferThreadClusterArrangeOrder, typename BBlockTransferSrcAccessOrder, ck::index_t BBlockTransferSrcVectorDim, ck::index_t BBlockTransferSrcScalarPerVector, ck::index_t BBlockTransferDstScalarPerVector_K1, bool BBlockLdsAddExtraN, index_t CShuffleMXdlPerWavePerShuffle, index_t CShuffleNXdlPerWavePerShuffle, typename CBlockTransferClusterLengths_MBlock_MPerBlock_NBlock_NPerBlock, index_t CBlockTransferScalarPerVector_NWaveNPerXdl, typename ComputeTypeA = InDataType, typename ComputeTypeB = ComputeTypeA, index_t MaxTransposeTransferSrcScalarPerVector = 1, index_t MaxTransposeTransferDstScalarPerVector = 1>
| using ck::tensor_operation::device::DeviceGroupedConvBwdWeight_Xdl_CShuffle< NDimSpatial, InLayout, WeiLayout, OutLayout, InDataType, WeiDataType, OutDataType, AccDataType, InElementwiseOperation, WeiElementwiseOperation, OutElementwiseOperation, ConvBackwardWeightSpecialization, BlockSize, MPerBlock, NPerBlock, K0PerBlock, K1, MPerXDL, NPerXDL, MXdlPerWave, NXdlPerWave, ABlockTransferThreadClusterLengths_K0_M_K1, ABlockTransferThreadClusterArrangeOrder, ABlockTransferSrcAccessOrder, ABlockTransferSrcVectorDim, ABlockTransferSrcScalarPerVector, ABlockTransferDstScalarPerVector_K1, ABlockLdsAddExtraM, BBlockTransferThreadClusterLengths_K0_N_K1, BBlockTransferThreadClusterArrangeOrder, BBlockTransferSrcAccessOrder, BBlockTransferSrcVectorDim, BBlockTransferSrcScalarPerVector, BBlockTransferDstScalarPerVector_K1, BBlockLdsAddExtraN, CShuffleMXdlPerWavePerShuffle, CShuffleNXdlPerWavePerShuffle, CBlockTransferClusterLengths_MBlock_MPerBlock_NBlock_NPerBlock, CBlockTransferScalarPerVector_NWaveNPerXdl, ComputeTypeA, ComputeTypeB, MaxTransposeTransferSrcScalarPerVector, MaxTransposeTransferDstScalarPerVector >::BGridDesc_K0_N_K1 = remove_cvref_t<decltype(ABCGridDescs{}[I1])> |
◆ Block2CTileMap
template<ck::index_t NDimSpatial, typename InLayout, typename WeiLayout, typename OutLayout, typename InDataType, typename WeiDataType, typename OutDataType, typename AccDataType, typename InElementwiseOperation, typename WeiElementwiseOperation, typename OutElementwiseOperation, ConvolutionBackwardWeightSpecialization ConvBackwardWeightSpecialization, ck::index_t BlockSize, ck::index_t MPerBlock, ck::index_t NPerBlock, ck::index_t K0PerBlock, ck::index_t K1, ck::index_t MPerXDL, ck::index_t NPerXDL, ck::index_t MXdlPerWave, ck::index_t NXdlPerWave, typename ABlockTransferThreadClusterLengths_K0_M_K1, typename ABlockTransferThreadClusterArrangeOrder, typename ABlockTransferSrcAccessOrder, ck::index_t ABlockTransferSrcVectorDim, ck::index_t ABlockTransferSrcScalarPerVector, ck::index_t ABlockTransferDstScalarPerVector_K1, bool ABlockLdsAddExtraM, typename BBlockTransferThreadClusterLengths_K0_N_K1, typename BBlockTransferThreadClusterArrangeOrder, typename BBlockTransferSrcAccessOrder, ck::index_t BBlockTransferSrcVectorDim, ck::index_t BBlockTransferSrcScalarPerVector, ck::index_t BBlockTransferDstScalarPerVector_K1, bool BBlockLdsAddExtraN, index_t CShuffleMXdlPerWavePerShuffle, index_t CShuffleNXdlPerWavePerShuffle, typename CBlockTransferClusterLengths_MBlock_MPerBlock_NBlock_NPerBlock, index_t CBlockTransferScalarPerVector_NWaveNPerXdl, typename ComputeTypeA = InDataType, typename ComputeTypeB = ComputeTypeA, index_t MaxTransposeTransferSrcScalarPerVector = 1, index_t MaxTransposeTransferDstScalarPerVector = 1>
| using ck::tensor_operation::device::DeviceGroupedConvBwdWeight_Xdl_CShuffle< NDimSpatial, InLayout, WeiLayout, OutLayout, InDataType, WeiDataType, OutDataType, AccDataType, InElementwiseOperation, WeiElementwiseOperation, OutElementwiseOperation, ConvBackwardWeightSpecialization, BlockSize, MPerBlock, NPerBlock, K0PerBlock, K1, MPerXDL, NPerXDL, MXdlPerWave, NXdlPerWave, ABlockTransferThreadClusterLengths_K0_M_K1, ABlockTransferThreadClusterArrangeOrder, ABlockTransferSrcAccessOrder, ABlockTransferSrcVectorDim, ABlockTransferSrcScalarPerVector, ABlockTransferDstScalarPerVector_K1, ABlockLdsAddExtraM, BBlockTransferThreadClusterLengths_K0_N_K1, BBlockTransferThreadClusterArrangeOrder, BBlockTransferSrcAccessOrder, BBlockTransferSrcVectorDim, BBlockTransferSrcScalarPerVector, BBlockTransferDstScalarPerVector_K1, BBlockLdsAddExtraN, CShuffleMXdlPerWavePerShuffle, CShuffleNXdlPerWavePerShuffle, CBlockTransferClusterLengths_MBlock_MPerBlock_NBlock_NPerBlock, CBlockTransferScalarPerVector_NWaveNPerXdl, ComputeTypeA, ComputeTypeB, MaxTransposeTransferSrcScalarPerVector, MaxTransposeTransferDstScalarPerVector >::Block2CTileMap |
Initial value:
__host__ static __device__ constexpr auto MakeCBlockClusterAdaptor(const CGridDesc_M_N &c_m_n_grid_desc, index_t M01, index_t N01, index_t KBatch)
Definition gridwise_gemm_xdlops_bwd_weight.hpp:625
remove_cvref_t< decltype(ABCGridDescs{}[I2])> CGridDesc_M_N
Definition device_conv2d_backward_weight_xdl_c_shuffle_nhwc_kyxc_nhwk.hpp:285
◆ Block2TileMapTranspose
template<ck::index_t NDimSpatial, typename InLayout, typename WeiLayout, typename OutLayout, typename InDataType, typename WeiDataType, typename OutDataType, typename AccDataType, typename InElementwiseOperation, typename WeiElementwiseOperation, typename OutElementwiseOperation, ConvolutionBackwardWeightSpecialization ConvBackwardWeightSpecialization, ck::index_t BlockSize, ck::index_t MPerBlock, ck::index_t NPerBlock, ck::index_t K0PerBlock, ck::index_t K1, ck::index_t MPerXDL, ck::index_t NPerXDL, ck::index_t MXdlPerWave, ck::index_t NXdlPerWave, typename ABlockTransferThreadClusterLengths_K0_M_K1, typename ABlockTransferThreadClusterArrangeOrder, typename ABlockTransferSrcAccessOrder, ck::index_t ABlockTransferSrcVectorDim, ck::index_t ABlockTransferSrcScalarPerVector, ck::index_t ABlockTransferDstScalarPerVector_K1, bool ABlockLdsAddExtraM, typename BBlockTransferThreadClusterLengths_K0_N_K1, typename BBlockTransferThreadClusterArrangeOrder, typename BBlockTransferSrcAccessOrder, ck::index_t BBlockTransferSrcVectorDim, ck::index_t BBlockTransferSrcScalarPerVector, ck::index_t BBlockTransferDstScalarPerVector_K1, bool BBlockLdsAddExtraN, index_t CShuffleMXdlPerWavePerShuffle, index_t CShuffleNXdlPerWavePerShuffle, typename CBlockTransferClusterLengths_MBlock_MPerBlock_NBlock_NPerBlock, index_t CBlockTransferScalarPerVector_NWaveNPerXdl, typename ComputeTypeA = InDataType, typename ComputeTypeB = ComputeTypeA, index_t MaxTransposeTransferSrcScalarPerVector = 1, index_t MaxTransposeTransferDstScalarPerVector = 1>
| using ck::tensor_operation::device::DeviceGroupedConvBwdWeight_Xdl_CShuffle< NDimSpatial, InLayout, WeiLayout, OutLayout, InDataType, WeiDataType, OutDataType, AccDataType, InElementwiseOperation, WeiElementwiseOperation, OutElementwiseOperation, ConvBackwardWeightSpecialization, BlockSize, MPerBlock, NPerBlock, K0PerBlock, K1, MPerXDL, NPerXDL, MXdlPerWave, NXdlPerWave, ABlockTransferThreadClusterLengths_K0_M_K1, ABlockTransferThreadClusterArrangeOrder, ABlockTransferSrcAccessOrder, ABlockTransferSrcVectorDim, ABlockTransferSrcScalarPerVector, ABlockTransferDstScalarPerVector_K1, ABlockLdsAddExtraM, BBlockTransferThreadClusterLengths_K0_N_K1, BBlockTransferThreadClusterArrangeOrder, BBlockTransferSrcAccessOrder, BBlockTransferSrcVectorDim, BBlockTransferSrcScalarPerVector, BBlockTransferDstScalarPerVector_K1, BBlockLdsAddExtraN, CShuffleMXdlPerWavePerShuffle, CShuffleNXdlPerWavePerShuffle, CBlockTransferClusterLengths_MBlock_MPerBlock_NBlock_NPerBlock, CBlockTransferScalarPerVector_NWaveNPerXdl, ComputeTypeA, ComputeTypeB, MaxTransposeTransferSrcScalarPerVector, MaxTransposeTransferDstScalarPerVector >::Block2TileMapTranspose = BlockToCTileMap_M00_N0_M01Adapt<MPerBlock, NPerBlock> |
◆ CDataType
template<ck::index_t NDimSpatial, typename InLayout, typename WeiLayout, typename OutLayout, typename InDataType, typename WeiDataType, typename OutDataType, typename AccDataType, typename InElementwiseOperation, typename WeiElementwiseOperation, typename OutElementwiseOperation, ConvolutionBackwardWeightSpecialization ConvBackwardWeightSpecialization, ck::index_t BlockSize, ck::index_t MPerBlock, ck::index_t NPerBlock, ck::index_t K0PerBlock, ck::index_t K1, ck::index_t MPerXDL, ck::index_t NPerXDL, ck::index_t MXdlPerWave, ck::index_t NXdlPerWave, typename ABlockTransferThreadClusterLengths_K0_M_K1, typename ABlockTransferThreadClusterArrangeOrder, typename ABlockTransferSrcAccessOrder, ck::index_t ABlockTransferSrcVectorDim, ck::index_t ABlockTransferSrcScalarPerVector, ck::index_t ABlockTransferDstScalarPerVector_K1, bool ABlockLdsAddExtraM, typename BBlockTransferThreadClusterLengths_K0_N_K1, typename BBlockTransferThreadClusterArrangeOrder, typename BBlockTransferSrcAccessOrder, ck::index_t BBlockTransferSrcVectorDim, ck::index_t BBlockTransferSrcScalarPerVector, ck::index_t BBlockTransferDstScalarPerVector_K1, bool BBlockLdsAddExtraN, index_t CShuffleMXdlPerWavePerShuffle, index_t CShuffleNXdlPerWavePerShuffle, typename CBlockTransferClusterLengths_MBlock_MPerBlock_NBlock_NPerBlock, index_t CBlockTransferScalarPerVector_NWaveNPerXdl, typename ComputeTypeA = InDataType, typename ComputeTypeB = ComputeTypeA, index_t MaxTransposeTransferSrcScalarPerVector = 1, index_t MaxTransposeTransferDstScalarPerVector = 1>
| using ck::tensor_operation::device::DeviceGroupedConvBwdWeight_Xdl_CShuffle< NDimSpatial, InLayout, WeiLayout, OutLayout, InDataType, WeiDataType, OutDataType, AccDataType, InElementwiseOperation, WeiElementwiseOperation, OutElementwiseOperation, ConvBackwardWeightSpecialization, BlockSize, MPerBlock, NPerBlock, K0PerBlock, K1, MPerXDL, NPerXDL, MXdlPerWave, NXdlPerWave, ABlockTransferThreadClusterLengths_K0_M_K1, ABlockTransferThreadClusterArrangeOrder, ABlockTransferSrcAccessOrder, ABlockTransferSrcVectorDim, ABlockTransferSrcScalarPerVector, ABlockTransferDstScalarPerVector_K1, ABlockLdsAddExtraM, BBlockTransferThreadClusterLengths_K0_N_K1, BBlockTransferThreadClusterArrangeOrder, BBlockTransferSrcAccessOrder, BBlockTransferSrcVectorDim, BBlockTransferSrcScalarPerVector, BBlockTransferDstScalarPerVector_K1, BBlockLdsAddExtraN, CShuffleMXdlPerWavePerShuffle, CShuffleNXdlPerWavePerShuffle, CBlockTransferClusterLengths_MBlock_MPerBlock_NBlock_NPerBlock, CBlockTransferScalarPerVector_NWaveNPerXdl, ComputeTypeA, ComputeTypeB, MaxTransposeTransferSrcScalarPerVector, MaxTransposeTransferDstScalarPerVector >::CDataType = WeiDataType |
◆ CElementwiseOperation
template<ck::index_t NDimSpatial, typename InLayout, typename WeiLayout, typename OutLayout, typename InDataType, typename WeiDataType, typename OutDataType, typename AccDataType, typename InElementwiseOperation, typename WeiElementwiseOperation, typename OutElementwiseOperation, ConvolutionBackwardWeightSpecialization ConvBackwardWeightSpecialization, ck::index_t BlockSize, ck::index_t MPerBlock, ck::index_t NPerBlock, ck::index_t K0PerBlock, ck::index_t K1, ck::index_t MPerXDL, ck::index_t NPerXDL, ck::index_t MXdlPerWave, ck::index_t NXdlPerWave, typename ABlockTransferThreadClusterLengths_K0_M_K1, typename ABlockTransferThreadClusterArrangeOrder, typename ABlockTransferSrcAccessOrder, ck::index_t ABlockTransferSrcVectorDim, ck::index_t ABlockTransferSrcScalarPerVector, ck::index_t ABlockTransferDstScalarPerVector_K1, bool ABlockLdsAddExtraM, typename BBlockTransferThreadClusterLengths_K0_N_K1, typename BBlockTransferThreadClusterArrangeOrder, typename BBlockTransferSrcAccessOrder, ck::index_t BBlockTransferSrcVectorDim, ck::index_t BBlockTransferSrcScalarPerVector, ck::index_t BBlockTransferDstScalarPerVector_K1, bool BBlockLdsAddExtraN, index_t CShuffleMXdlPerWavePerShuffle, index_t CShuffleNXdlPerWavePerShuffle, typename CBlockTransferClusterLengths_MBlock_MPerBlock_NBlock_NPerBlock, index_t CBlockTransferScalarPerVector_NWaveNPerXdl, typename ComputeTypeA = InDataType, typename ComputeTypeB = ComputeTypeA, index_t MaxTransposeTransferSrcScalarPerVector = 1, index_t MaxTransposeTransferDstScalarPerVector = 1>
| using ck::tensor_operation::device::DeviceGroupedConvBwdWeight_Xdl_CShuffle< NDimSpatial, InLayout, WeiLayout, OutLayout, InDataType, WeiDataType, OutDataType, AccDataType, InElementwiseOperation, WeiElementwiseOperation, OutElementwiseOperation, ConvBackwardWeightSpecialization, BlockSize, MPerBlock, NPerBlock, K0PerBlock, K1, MPerXDL, NPerXDL, MXdlPerWave, NXdlPerWave, ABlockTransferThreadClusterLengths_K0_M_K1, ABlockTransferThreadClusterArrangeOrder, ABlockTransferSrcAccessOrder, ABlockTransferSrcVectorDim, ABlockTransferSrcScalarPerVector, ABlockTransferDstScalarPerVector_K1, ABlockLdsAddExtraM, BBlockTransferThreadClusterLengths_K0_N_K1, BBlockTransferThreadClusterArrangeOrder, BBlockTransferSrcAccessOrder, BBlockTransferSrcVectorDim, BBlockTransferSrcScalarPerVector, BBlockTransferDstScalarPerVector_K1, BBlockLdsAddExtraN, CShuffleMXdlPerWavePerShuffle, CShuffleNXdlPerWavePerShuffle, CBlockTransferClusterLengths_MBlock_MPerBlock_NBlock_NPerBlock, CBlockTransferScalarPerVector_NWaveNPerXdl, ComputeTypeA, ComputeTypeB, MaxTransposeTransferSrcScalarPerVector, MaxTransposeTransferDstScalarPerVector >::CElementwiseOperation = WeiElementwiseOperation |
◆ CGridDesc_M_N
template<ck::index_t NDimSpatial, typename InLayout, typename WeiLayout, typename OutLayout, typename InDataType, typename WeiDataType, typename OutDataType, typename AccDataType, typename InElementwiseOperation, typename WeiElementwiseOperation, typename OutElementwiseOperation, ConvolutionBackwardWeightSpecialization ConvBackwardWeightSpecialization, ck::index_t BlockSize, ck::index_t MPerBlock, ck::index_t NPerBlock, ck::index_t K0PerBlock, ck::index_t K1, ck::index_t MPerXDL, ck::index_t NPerXDL, ck::index_t MXdlPerWave, ck::index_t NXdlPerWave, typename ABlockTransferThreadClusterLengths_K0_M_K1, typename ABlockTransferThreadClusterArrangeOrder, typename ABlockTransferSrcAccessOrder, ck::index_t ABlockTransferSrcVectorDim, ck::index_t ABlockTransferSrcScalarPerVector, ck::index_t ABlockTransferDstScalarPerVector_K1, bool ABlockLdsAddExtraM, typename BBlockTransferThreadClusterLengths_K0_N_K1, typename BBlockTransferThreadClusterArrangeOrder, typename BBlockTransferSrcAccessOrder, ck::index_t BBlockTransferSrcVectorDim, ck::index_t BBlockTransferSrcScalarPerVector, ck::index_t BBlockTransferDstScalarPerVector_K1, bool BBlockLdsAddExtraN, index_t CShuffleMXdlPerWavePerShuffle, index_t CShuffleNXdlPerWavePerShuffle, typename CBlockTransferClusterLengths_MBlock_MPerBlock_NBlock_NPerBlock, index_t CBlockTransferScalarPerVector_NWaveNPerXdl, typename ComputeTypeA = InDataType, typename ComputeTypeB = ComputeTypeA, index_t MaxTransposeTransferSrcScalarPerVector = 1, index_t MaxTransposeTransferDstScalarPerVector = 1>
| using ck::tensor_operation::device::DeviceGroupedConvBwdWeight_Xdl_CShuffle< NDimSpatial, InLayout, WeiLayout, OutLayout, InDataType, WeiDataType, OutDataType, AccDataType, InElementwiseOperation, WeiElementwiseOperation, OutElementwiseOperation, ConvBackwardWeightSpecialization, BlockSize, MPerBlock, NPerBlock, K0PerBlock, K1, MPerXDL, NPerXDL, MXdlPerWave, NXdlPerWave, ABlockTransferThreadClusterLengths_K0_M_K1, ABlockTransferThreadClusterArrangeOrder, ABlockTransferSrcAccessOrder, ABlockTransferSrcVectorDim, ABlockTransferSrcScalarPerVector, ABlockTransferDstScalarPerVector_K1, ABlockLdsAddExtraM, BBlockTransferThreadClusterLengths_K0_N_K1, BBlockTransferThreadClusterArrangeOrder, BBlockTransferSrcAccessOrder, BBlockTransferSrcVectorDim, BBlockTransferSrcScalarPerVector, BBlockTransferDstScalarPerVector_K1, BBlockLdsAddExtraN, CShuffleMXdlPerWavePerShuffle, CShuffleNXdlPerWavePerShuffle, CBlockTransferClusterLengths_MBlock_MPerBlock_NBlock_NPerBlock, CBlockTransferScalarPerVector_NWaveNPerXdl, ComputeTypeA, ComputeTypeB, MaxTransposeTransferSrcScalarPerVector, MaxTransposeTransferDstScalarPerVector >::CGridDesc_M_N = remove_cvref_t<decltype(ABCGridDescs{}[I2])> |
◆ CGridDesc_MBlock_MPerBlock_NBlock_NPerBlock
template<ck::index_t NDimSpatial, typename InLayout, typename WeiLayout, typename OutLayout, typename InDataType, typename WeiDataType, typename OutDataType, typename AccDataType, typename InElementwiseOperation, typename WeiElementwiseOperation, typename OutElementwiseOperation, ConvolutionBackwardWeightSpecialization ConvBackwardWeightSpecialization, ck::index_t BlockSize, ck::index_t MPerBlock, ck::index_t NPerBlock, ck::index_t K0PerBlock, ck::index_t K1, ck::index_t MPerXDL, ck::index_t NPerXDL, ck::index_t MXdlPerWave, ck::index_t NXdlPerWave, typename ABlockTransferThreadClusterLengths_K0_M_K1, typename ABlockTransferThreadClusterArrangeOrder, typename ABlockTransferSrcAccessOrder, ck::index_t ABlockTransferSrcVectorDim, ck::index_t ABlockTransferSrcScalarPerVector, ck::index_t ABlockTransferDstScalarPerVector_K1, bool ABlockLdsAddExtraM, typename BBlockTransferThreadClusterLengths_K0_N_K1, typename BBlockTransferThreadClusterArrangeOrder, typename BBlockTransferSrcAccessOrder, ck::index_t BBlockTransferSrcVectorDim, ck::index_t BBlockTransferSrcScalarPerVector, ck::index_t BBlockTransferDstScalarPerVector_K1, bool BBlockLdsAddExtraN, index_t CShuffleMXdlPerWavePerShuffle, index_t CShuffleNXdlPerWavePerShuffle, typename CBlockTransferClusterLengths_MBlock_MPerBlock_NBlock_NPerBlock, index_t CBlockTransferScalarPerVector_NWaveNPerXdl, typename ComputeTypeA = InDataType, typename ComputeTypeB = ComputeTypeA, index_t MaxTransposeTransferSrcScalarPerVector = 1, index_t MaxTransposeTransferDstScalarPerVector = 1>
| using ck::tensor_operation::device::DeviceGroupedConvBwdWeight_Xdl_CShuffle< NDimSpatial, InLayout, WeiLayout, OutLayout, InDataType, WeiDataType, OutDataType, AccDataType, InElementwiseOperation, WeiElementwiseOperation, OutElementwiseOperation, ConvBackwardWeightSpecialization, BlockSize, MPerBlock, NPerBlock, K0PerBlock, K1, MPerXDL, NPerXDL, MXdlPerWave, NXdlPerWave, ABlockTransferThreadClusterLengths_K0_M_K1, ABlockTransferThreadClusterArrangeOrder, ABlockTransferSrcAccessOrder, ABlockTransferSrcVectorDim, ABlockTransferSrcScalarPerVector, ABlockTransferDstScalarPerVector_K1, ABlockLdsAddExtraM, BBlockTransferThreadClusterLengths_K0_N_K1, BBlockTransferThreadClusterArrangeOrder, BBlockTransferSrcAccessOrder, BBlockTransferSrcVectorDim, BBlockTransferSrcScalarPerVector, BBlockTransferDstScalarPerVector_K1, BBlockLdsAddExtraN, CShuffleMXdlPerWavePerShuffle, CShuffleNXdlPerWavePerShuffle, CBlockTransferClusterLengths_MBlock_MPerBlock_NBlock_NPerBlock, CBlockTransferScalarPerVector_NWaveNPerXdl, ComputeTypeA, ComputeTypeB, MaxTransposeTransferSrcScalarPerVector, MaxTransposeTransferDstScalarPerVector >::CGridDesc_MBlock_MPerBlock_NBlock_NPerBlock |
Initial value:
__host__ static __device__ constexpr auto MakeCGridDesc_MBlock_MPerBlock_NBlock_NPerBlock(const CGridDesc_M_N &c_m_n_grid_desc)
Definition gridwise_gemm_xdlops_bwd_weight.hpp:608
◆ DeviceOp
template<ck::index_t NDimSpatial, typename InLayout, typename WeiLayout, typename OutLayout, typename InDataType, typename WeiDataType, typename OutDataType, typename AccDataType, typename InElementwiseOperation, typename WeiElementwiseOperation, typename OutElementwiseOperation, ConvolutionBackwardWeightSpecialization ConvBackwardWeightSpecialization, ck::index_t BlockSize, ck::index_t MPerBlock, ck::index_t NPerBlock, ck::index_t K0PerBlock, ck::index_t K1, ck::index_t MPerXDL, ck::index_t NPerXDL, ck::index_t MXdlPerWave, ck::index_t NXdlPerWave, typename ABlockTransferThreadClusterLengths_K0_M_K1, typename ABlockTransferThreadClusterArrangeOrder, typename ABlockTransferSrcAccessOrder, ck::index_t ABlockTransferSrcVectorDim, ck::index_t ABlockTransferSrcScalarPerVector, ck::index_t ABlockTransferDstScalarPerVector_K1, bool ABlockLdsAddExtraM, typename BBlockTransferThreadClusterLengths_K0_N_K1, typename BBlockTransferThreadClusterArrangeOrder, typename BBlockTransferSrcAccessOrder, ck::index_t BBlockTransferSrcVectorDim, ck::index_t BBlockTransferSrcScalarPerVector, ck::index_t BBlockTransferDstScalarPerVector_K1, bool BBlockLdsAddExtraN, index_t CShuffleMXdlPerWavePerShuffle, index_t CShuffleNXdlPerWavePerShuffle, typename CBlockTransferClusterLengths_MBlock_MPerBlock_NBlock_NPerBlock, index_t CBlockTransferScalarPerVector_NWaveNPerXdl, typename ComputeTypeA = InDataType, typename ComputeTypeB = ComputeTypeA, index_t MaxTransposeTransferSrcScalarPerVector = 1, index_t MaxTransposeTransferDstScalarPerVector = 1>
| using ck::tensor_operation::device::DeviceGroupedConvBwdWeight_Xdl_CShuffle< NDimSpatial, InLayout, WeiLayout, OutLayout, InDataType, WeiDataType, OutDataType, AccDataType, InElementwiseOperation, WeiElementwiseOperation, OutElementwiseOperation, ConvBackwardWeightSpecialization, BlockSize, MPerBlock, NPerBlock, K0PerBlock, K1, MPerXDL, NPerXDL, MXdlPerWave, NXdlPerWave, ABlockTransferThreadClusterLengths_K0_M_K1, ABlockTransferThreadClusterArrangeOrder, ABlockTransferSrcAccessOrder, ABlockTransferSrcVectorDim, ABlockTransferSrcScalarPerVector, ABlockTransferDstScalarPerVector_K1, ABlockLdsAddExtraM, BBlockTransferThreadClusterLengths_K0_N_K1, BBlockTransferThreadClusterArrangeOrder, BBlockTransferSrcAccessOrder, BBlockTransferSrcVectorDim, BBlockTransferSrcScalarPerVector, BBlockTransferDstScalarPerVector_K1, BBlockLdsAddExtraN, CShuffleMXdlPerWavePerShuffle, CShuffleNXdlPerWavePerShuffle, CBlockTransferClusterLengths_MBlock_MPerBlock_NBlock_NPerBlock, CBlockTransferScalarPerVector_NWaveNPerXdl, ComputeTypeA, ComputeTypeB, MaxTransposeTransferSrcScalarPerVector, MaxTransposeTransferDstScalarPerVector >::DeviceOp = DeviceGroupedConvBwdWeight_Xdl_CShuffle |
◆ GKCYXTransposeDescType
template<ck::index_t NDimSpatial, typename InLayout, typename WeiLayout, typename OutLayout, typename InDataType, typename WeiDataType, typename OutDataType, typename AccDataType, typename InElementwiseOperation, typename WeiElementwiseOperation, typename OutElementwiseOperation, ConvolutionBackwardWeightSpecialization ConvBackwardWeightSpecialization, ck::index_t BlockSize, ck::index_t MPerBlock, ck::index_t NPerBlock, ck::index_t K0PerBlock, ck::index_t K1, ck::index_t MPerXDL, ck::index_t NPerXDL, ck::index_t MXdlPerWave, ck::index_t NXdlPerWave, typename ABlockTransferThreadClusterLengths_K0_M_K1, typename ABlockTransferThreadClusterArrangeOrder, typename ABlockTransferSrcAccessOrder, ck::index_t ABlockTransferSrcVectorDim, ck::index_t ABlockTransferSrcScalarPerVector, ck::index_t ABlockTransferDstScalarPerVector_K1, bool ABlockLdsAddExtraM, typename BBlockTransferThreadClusterLengths_K0_N_K1, typename BBlockTransferThreadClusterArrangeOrder, typename BBlockTransferSrcAccessOrder, ck::index_t BBlockTransferSrcVectorDim, ck::index_t BBlockTransferSrcScalarPerVector, ck::index_t BBlockTransferDstScalarPerVector_K1, bool BBlockLdsAddExtraN, index_t CShuffleMXdlPerWavePerShuffle, index_t CShuffleNXdlPerWavePerShuffle, typename CBlockTransferClusterLengths_MBlock_MPerBlock_NBlock_NPerBlock, index_t CBlockTransferScalarPerVector_NWaveNPerXdl, typename ComputeTypeA = InDataType, typename ComputeTypeB = ComputeTypeA, index_t MaxTransposeTransferSrcScalarPerVector = 1, index_t MaxTransposeTransferDstScalarPerVector = 1>
| using ck::tensor_operation::device::DeviceGroupedConvBwdWeight_Xdl_CShuffle< NDimSpatial, InLayout, WeiLayout, OutLayout, InDataType, WeiDataType, OutDataType, AccDataType, InElementwiseOperation, WeiElementwiseOperation, OutElementwiseOperation, ConvBackwardWeightSpecialization, BlockSize, MPerBlock, NPerBlock, K0PerBlock, K1, MPerXDL, NPerXDL, MXdlPerWave, NXdlPerWave, ABlockTransferThreadClusterLengths_K0_M_K1, ABlockTransferThreadClusterArrangeOrder, ABlockTransferSrcAccessOrder, ABlockTransferSrcVectorDim, ABlockTransferSrcScalarPerVector, ABlockTransferDstScalarPerVector_K1, ABlockLdsAddExtraM, BBlockTransferThreadClusterLengths_K0_N_K1, BBlockTransferThreadClusterArrangeOrder, BBlockTransferSrcAccessOrder, BBlockTransferSrcVectorDim, BBlockTransferSrcScalarPerVector, BBlockTransferDstScalarPerVector_K1, BBlockLdsAddExtraN, CShuffleMXdlPerWavePerShuffle, CShuffleNXdlPerWavePerShuffle, CBlockTransferClusterLengths_MBlock_MPerBlock_NBlock_NPerBlock, CBlockTransferScalarPerVector_NWaveNPerXdl, ComputeTypeA, ComputeTypeB, MaxTransposeTransferSrcScalarPerVector, MaxTransposeTransferDstScalarPerVector >::GKCYXTransposeDescType |
Initial value:
.template MakeGKCYXTransposeDesc<NDimSpatial>({}, {}))>
static constexpr auto conv_ngchw_to_nhwgc_transformer
Definition device_grouped_conv_bwd_data_multiple_d_xdl_cshuffle_v1.hpp:583
◆ GKYXCTransposeDescType
template<ck::index_t NDimSpatial, typename InLayout, typename WeiLayout, typename OutLayout, typename InDataType, typename WeiDataType, typename OutDataType, typename AccDataType, typename InElementwiseOperation, typename WeiElementwiseOperation, typename OutElementwiseOperation, ConvolutionBackwardWeightSpecialization ConvBackwardWeightSpecialization, ck::index_t BlockSize, ck::index_t MPerBlock, ck::index_t NPerBlock, ck::index_t K0PerBlock, ck::index_t K1, ck::index_t MPerXDL, ck::index_t NPerXDL, ck::index_t MXdlPerWave, ck::index_t NXdlPerWave, typename ABlockTransferThreadClusterLengths_K0_M_K1, typename ABlockTransferThreadClusterArrangeOrder, typename ABlockTransferSrcAccessOrder, ck::index_t ABlockTransferSrcVectorDim, ck::index_t ABlockTransferSrcScalarPerVector, ck::index_t ABlockTransferDstScalarPerVector_K1, bool ABlockLdsAddExtraM, typename BBlockTransferThreadClusterLengths_K0_N_K1, typename BBlockTransferThreadClusterArrangeOrder, typename BBlockTransferSrcAccessOrder, ck::index_t BBlockTransferSrcVectorDim, ck::index_t BBlockTransferSrcScalarPerVector, ck::index_t BBlockTransferDstScalarPerVector_K1, bool BBlockLdsAddExtraN, index_t CShuffleMXdlPerWavePerShuffle, index_t CShuffleNXdlPerWavePerShuffle, typename CBlockTransferClusterLengths_MBlock_MPerBlock_NBlock_NPerBlock, index_t CBlockTransferScalarPerVector_NWaveNPerXdl, typename ComputeTypeA = InDataType, typename ComputeTypeB = ComputeTypeA, index_t MaxTransposeTransferSrcScalarPerVector = 1, index_t MaxTransposeTransferDstScalarPerVector = 1>
| using ck::tensor_operation::device::DeviceGroupedConvBwdWeight_Xdl_CShuffle< NDimSpatial, InLayout, WeiLayout, OutLayout, InDataType, WeiDataType, OutDataType, AccDataType, InElementwiseOperation, WeiElementwiseOperation, OutElementwiseOperation, ConvBackwardWeightSpecialization, BlockSize, MPerBlock, NPerBlock, K0PerBlock, K1, MPerXDL, NPerXDL, MXdlPerWave, NXdlPerWave, ABlockTransferThreadClusterLengths_K0_M_K1, ABlockTransferThreadClusterArrangeOrder, ABlockTransferSrcAccessOrder, ABlockTransferSrcVectorDim, ABlockTransferSrcScalarPerVector, ABlockTransferDstScalarPerVector_K1, ABlockLdsAddExtraM, BBlockTransferThreadClusterLengths_K0_N_K1, BBlockTransferThreadClusterArrangeOrder, BBlockTransferSrcAccessOrder, BBlockTransferSrcVectorDim, BBlockTransferSrcScalarPerVector, BBlockTransferDstScalarPerVector_K1, BBlockLdsAddExtraN, CShuffleMXdlPerWavePerShuffle, CShuffleNXdlPerWavePerShuffle, CBlockTransferClusterLengths_MBlock_MPerBlock_NBlock_NPerBlock, CBlockTransferScalarPerVector_NWaveNPerXdl, ComputeTypeA, ComputeTypeB, MaxTransposeTransferSrcScalarPerVector, MaxTransposeTransferDstScalarPerVector >::GKYXCTransposeDescType |
Initial value:
.template MakeGKYXCTransposeDesc<NDimSpatial>({}, {}))>
◆ GridwiseElementwiseWeightTranspose
template<ck::index_t NDimSpatial, typename InLayout, typename WeiLayout, typename OutLayout, typename InDataType, typename WeiDataType, typename OutDataType, typename AccDataType, typename InElementwiseOperation, typename WeiElementwiseOperation, typename OutElementwiseOperation, ConvolutionBackwardWeightSpecialization ConvBackwardWeightSpecialization, ck::index_t BlockSize, ck::index_t MPerBlock, ck::index_t NPerBlock, ck::index_t K0PerBlock, ck::index_t K1, ck::index_t MPerXDL, ck::index_t NPerXDL, ck::index_t MXdlPerWave, ck::index_t NXdlPerWave, typename ABlockTransferThreadClusterLengths_K0_M_K1, typename ABlockTransferThreadClusterArrangeOrder, typename ABlockTransferSrcAccessOrder, ck::index_t ABlockTransferSrcVectorDim, ck::index_t ABlockTransferSrcScalarPerVector, ck::index_t ABlockTransferDstScalarPerVector_K1, bool ABlockLdsAddExtraM, typename BBlockTransferThreadClusterLengths_K0_N_K1, typename BBlockTransferThreadClusterArrangeOrder, typename BBlockTransferSrcAccessOrder, ck::index_t BBlockTransferSrcVectorDim, ck::index_t BBlockTransferSrcScalarPerVector, ck::index_t BBlockTransferDstScalarPerVector_K1, bool BBlockLdsAddExtraN, index_t CShuffleMXdlPerWavePerShuffle, index_t CShuffleNXdlPerWavePerShuffle, typename CBlockTransferClusterLengths_MBlock_MPerBlock_NBlock_NPerBlock, index_t CBlockTransferScalarPerVector_NWaveNPerXdl, typename ComputeTypeA = InDataType, typename ComputeTypeB = ComputeTypeA, index_t MaxTransposeTransferSrcScalarPerVector = 1, index_t MaxTransposeTransferDstScalarPerVector = 1>
| using ck::tensor_operation::device::DeviceGroupedConvBwdWeight_Xdl_CShuffle< NDimSpatial, InLayout, WeiLayout, OutLayout, InDataType, WeiDataType, OutDataType, AccDataType, InElementwiseOperation, WeiElementwiseOperation, OutElementwiseOperation, ConvBackwardWeightSpecialization, BlockSize, MPerBlock, NPerBlock, K0PerBlock, K1, MPerXDL, NPerXDL, MXdlPerWave, NXdlPerWave, ABlockTransferThreadClusterLengths_K0_M_K1, ABlockTransferThreadClusterArrangeOrder, ABlockTransferSrcAccessOrder, ABlockTransferSrcVectorDim, ABlockTransferSrcScalarPerVector, ABlockTransferDstScalarPerVector_K1, ABlockLdsAddExtraM, BBlockTransferThreadClusterLengths_K0_N_K1, BBlockTransferThreadClusterArrangeOrder, BBlockTransferSrcAccessOrder, BBlockTransferSrcVectorDim, BBlockTransferSrcScalarPerVector, BBlockTransferDstScalarPerVector_K1, BBlockLdsAddExtraN, CShuffleMXdlPerWavePerShuffle, CShuffleNXdlPerWavePerShuffle, CBlockTransferClusterLengths_MBlock_MPerBlock_NBlock_NPerBlock, CBlockTransferScalarPerVector_NWaveNPerXdl, ComputeTypeA, ComputeTypeB, MaxTransposeTransferSrcScalarPerVector, MaxTransposeTransferDstScalarPerVector >::GridwiseElementwiseWeightTranspose |
Initial value:
BlockSize,
MPerBlock,
NPerBlock,
MPerBlock / ClusterLengthMPerBlock,
NPerBlock / ClusterLengthNPerBlock,
I1,
I0>
Definition gridwise_elementwise_2d.hpp:278
Definition utility/sequence.hpp:43
Definition utility/tuple.hpp:117
static constexpr index_t ClusterLengthNPerBlock
Definition device_grouped_conv_bwd_data_multiple_d_xdl_cshuffle_v1.hpp:580
static constexpr auto I1
Definition device_grouped_conv_bwd_data_multiple_d_xdl_cshuffle_v1.hpp:336
static constexpr auto I0
Definition device_grouped_conv_bwd_data_multiple_d_xdl_cshuffle_v1.hpp:335
static constexpr index_t ClusterLengthMPerBlock
Definition device_grouped_conv_bwd_data_multiple_d_xdl_cshuffle_v1.hpp:578
BlockToCTileMap_M00_N0_M01Adapt< MPerBlock, NPerBlock > Block2TileMapTranspose
Definition device_grouped_conv_bwd_weight_xdl_cshuffle.hpp:317
Definition tensor_operation/gpu/element/unary_element_wise_operation.hpp:340
◆ GridwiseGemm32
template<ck::index_t NDimSpatial, typename InLayout, typename WeiLayout, typename OutLayout, typename InDataType, typename WeiDataType, typename OutDataType, typename AccDataType, typename InElementwiseOperation, typename WeiElementwiseOperation, typename OutElementwiseOperation, ConvolutionBackwardWeightSpecialization ConvBackwardWeightSpecialization, ck::index_t BlockSize, ck::index_t MPerBlock, ck::index_t NPerBlock, ck::index_t K0PerBlock, ck::index_t K1, ck::index_t MPerXDL, ck::index_t NPerXDL, ck::index_t MXdlPerWave, ck::index_t NXdlPerWave, typename ABlockTransferThreadClusterLengths_K0_M_K1, typename ABlockTransferThreadClusterArrangeOrder, typename ABlockTransferSrcAccessOrder, ck::index_t ABlockTransferSrcVectorDim, ck::index_t ABlockTransferSrcScalarPerVector, ck::index_t ABlockTransferDstScalarPerVector_K1, bool ABlockLdsAddExtraM, typename BBlockTransferThreadClusterLengths_K0_N_K1, typename BBlockTransferThreadClusterArrangeOrder, typename BBlockTransferSrcAccessOrder, ck::index_t BBlockTransferSrcVectorDim, ck::index_t BBlockTransferSrcScalarPerVector, ck::index_t BBlockTransferDstScalarPerVector_K1, bool BBlockLdsAddExtraN, index_t CShuffleMXdlPerWavePerShuffle, index_t CShuffleNXdlPerWavePerShuffle, typename CBlockTransferClusterLengths_MBlock_MPerBlock_NBlock_NPerBlock, index_t CBlockTransferScalarPerVector_NWaveNPerXdl, typename ComputeTypeA = InDataType, typename ComputeTypeB = ComputeTypeA, index_t MaxTransposeTransferSrcScalarPerVector = 1, index_t MaxTransposeTransferDstScalarPerVector = 1>
| using ck::tensor_operation::device::DeviceGroupedConvBwdWeight_Xdl_CShuffle< NDimSpatial, InLayout, WeiLayout, OutLayout, InDataType, WeiDataType, OutDataType, AccDataType, InElementwiseOperation, WeiElementwiseOperation, OutElementwiseOperation, ConvBackwardWeightSpecialization, BlockSize, MPerBlock, NPerBlock, K0PerBlock, K1, MPerXDL, NPerXDL, MXdlPerWave, NXdlPerWave, ABlockTransferThreadClusterLengths_K0_M_K1, ABlockTransferThreadClusterArrangeOrder, ABlockTransferSrcAccessOrder, ABlockTransferSrcVectorDim, ABlockTransferSrcScalarPerVector, ABlockTransferDstScalarPerVector_K1, ABlockLdsAddExtraM, BBlockTransferThreadClusterLengths_K0_N_K1, BBlockTransferThreadClusterArrangeOrder, BBlockTransferSrcAccessOrder, BBlockTransferSrcVectorDim, BBlockTransferSrcScalarPerVector, BBlockTransferDstScalarPerVector_K1, BBlockLdsAddExtraN, CShuffleMXdlPerWavePerShuffle, CShuffleNXdlPerWavePerShuffle, CBlockTransferClusterLengths_MBlock_MPerBlock_NBlock_NPerBlock, CBlockTransferScalarPerVector_NWaveNPerXdl, ComputeTypeA, ComputeTypeB, MaxTransposeTransferSrcScalarPerVector, MaxTransposeTransferDstScalarPerVector >::GridwiseGemm32 = GridwiseGemmBase<NXdlPerWave32> |
◆ GridwiseGemm64
template<ck::index_t NDimSpatial, typename InLayout, typename WeiLayout, typename OutLayout, typename InDataType, typename WeiDataType, typename OutDataType, typename AccDataType, typename InElementwiseOperation, typename WeiElementwiseOperation, typename OutElementwiseOperation, ConvolutionBackwardWeightSpecialization ConvBackwardWeightSpecialization, ck::index_t BlockSize, ck::index_t MPerBlock, ck::index_t NPerBlock, ck::index_t K0PerBlock, ck::index_t K1, ck::index_t MPerXDL, ck::index_t NPerXDL, ck::index_t MXdlPerWave, ck::index_t NXdlPerWave, typename ABlockTransferThreadClusterLengths_K0_M_K1, typename ABlockTransferThreadClusterArrangeOrder, typename ABlockTransferSrcAccessOrder, ck::index_t ABlockTransferSrcVectorDim, ck::index_t ABlockTransferSrcScalarPerVector, ck::index_t ABlockTransferDstScalarPerVector_K1, bool ABlockLdsAddExtraM, typename BBlockTransferThreadClusterLengths_K0_N_K1, typename BBlockTransferThreadClusterArrangeOrder, typename BBlockTransferSrcAccessOrder, ck::index_t BBlockTransferSrcVectorDim, ck::index_t BBlockTransferSrcScalarPerVector, ck::index_t BBlockTransferDstScalarPerVector_K1, bool BBlockLdsAddExtraN, index_t CShuffleMXdlPerWavePerShuffle, index_t CShuffleNXdlPerWavePerShuffle, typename CBlockTransferClusterLengths_MBlock_MPerBlock_NBlock_NPerBlock, index_t CBlockTransferScalarPerVector_NWaveNPerXdl, typename ComputeTypeA = InDataType, typename ComputeTypeB = ComputeTypeA, index_t MaxTransposeTransferSrcScalarPerVector = 1, index_t MaxTransposeTransferDstScalarPerVector = 1>
| using ck::tensor_operation::device::DeviceGroupedConvBwdWeight_Xdl_CShuffle< NDimSpatial, InLayout, WeiLayout, OutLayout, InDataType, WeiDataType, OutDataType, AccDataType, InElementwiseOperation, WeiElementwiseOperation, OutElementwiseOperation, ConvBackwardWeightSpecialization, BlockSize, MPerBlock, NPerBlock, K0PerBlock, K1, MPerXDL, NPerXDL, MXdlPerWave, NXdlPerWave, ABlockTransferThreadClusterLengths_K0_M_K1, ABlockTransferThreadClusterArrangeOrder, ABlockTransferSrcAccessOrder, ABlockTransferSrcVectorDim, ABlockTransferSrcScalarPerVector, ABlockTransferDstScalarPerVector_K1, ABlockLdsAddExtraM, BBlockTransferThreadClusterLengths_K0_N_K1, BBlockTransferThreadClusterArrangeOrder, BBlockTransferSrcAccessOrder, BBlockTransferSrcVectorDim, BBlockTransferSrcScalarPerVector, BBlockTransferDstScalarPerVector_K1, BBlockLdsAddExtraN, CShuffleMXdlPerWavePerShuffle, CShuffleNXdlPerWavePerShuffle, CBlockTransferClusterLengths_MBlock_MPerBlock_NBlock_NPerBlock, CBlockTransferScalarPerVector_NWaveNPerXdl, ComputeTypeA, ComputeTypeB, MaxTransposeTransferSrcScalarPerVector, MaxTransposeTransferDstScalarPerVector >::GridwiseGemm64 = GridwiseGemmBase<math::max(NXdlPerWave64, 1)> |
◆ GridwiseGemmBase
template<ck::index_t NDimSpatial, typename InLayout, typename WeiLayout, typename OutLayout, typename InDataType, typename WeiDataType, typename OutDataType, typename AccDataType, typename InElementwiseOperation, typename WeiElementwiseOperation, typename OutElementwiseOperation, ConvolutionBackwardWeightSpecialization ConvBackwardWeightSpecialization, ck::index_t BlockSize, ck::index_t MPerBlock, ck::index_t NPerBlock, ck::index_t K0PerBlock, ck::index_t K1, ck::index_t MPerXDL, ck::index_t NPerXDL, ck::index_t MXdlPerWave, ck::index_t NXdlPerWave, typename ABlockTransferThreadClusterLengths_K0_M_K1, typename ABlockTransferThreadClusterArrangeOrder, typename ABlockTransferSrcAccessOrder, ck::index_t ABlockTransferSrcVectorDim, ck::index_t ABlockTransferSrcScalarPerVector, ck::index_t ABlockTransferDstScalarPerVector_K1, bool ABlockLdsAddExtraM, typename BBlockTransferThreadClusterLengths_K0_N_K1, typename BBlockTransferThreadClusterArrangeOrder, typename BBlockTransferSrcAccessOrder, ck::index_t BBlockTransferSrcVectorDim, ck::index_t BBlockTransferSrcScalarPerVector, ck::index_t BBlockTransferDstScalarPerVector_K1, bool BBlockLdsAddExtraN, index_t CShuffleMXdlPerWavePerShuffle, index_t CShuffleNXdlPerWavePerShuffle, typename CBlockTransferClusterLengths_MBlock_MPerBlock_NBlock_NPerBlock, index_t CBlockTransferScalarPerVector_NWaveNPerXdl, typename ComputeTypeA = InDataType, typename ComputeTypeB = ComputeTypeA, index_t MaxTransposeTransferSrcScalarPerVector = 1, index_t MaxTransposeTransferDstScalarPerVector = 1>
template<index_t NXdlPerWave_>
| using ck::tensor_operation::device::DeviceGroupedConvBwdWeight_Xdl_CShuffle< NDimSpatial, InLayout, WeiLayout, OutLayout, InDataType, WeiDataType, OutDataType, AccDataType, InElementwiseOperation, WeiElementwiseOperation, OutElementwiseOperation, ConvBackwardWeightSpecialization, BlockSize, MPerBlock, NPerBlock, K0PerBlock, K1, MPerXDL, NPerXDL, MXdlPerWave, NXdlPerWave, ABlockTransferThreadClusterLengths_K0_M_K1, ABlockTransferThreadClusterArrangeOrder, ABlockTransferSrcAccessOrder, ABlockTransferSrcVectorDim, ABlockTransferSrcScalarPerVector, ABlockTransferDstScalarPerVector_K1, ABlockLdsAddExtraM, BBlockTransferThreadClusterLengths_K0_N_K1, BBlockTransferThreadClusterArrangeOrder, BBlockTransferSrcAccessOrder, BBlockTransferSrcVectorDim, BBlockTransferSrcScalarPerVector, BBlockTransferDstScalarPerVector_K1, BBlockLdsAddExtraN, CShuffleMXdlPerWavePerShuffle, CShuffleNXdlPerWavePerShuffle, CBlockTransferClusterLengths_MBlock_MPerBlock_NBlock_NPerBlock, CBlockTransferScalarPerVector_NWaveNPerXdl, ComputeTypeA, ComputeTypeB, MaxTransposeTransferSrcScalarPerVector, MaxTransposeTransferDstScalarPerVector >::GridwiseGemmBase |
◆ GridwiseInOutTranspose
template<ck::index_t NDimSpatial, typename InLayout, typename WeiLayout, typename OutLayout, typename InDataType, typename WeiDataType, typename OutDataType, typename AccDataType, typename InElementwiseOperation, typename WeiElementwiseOperation, typename OutElementwiseOperation, ConvolutionBackwardWeightSpecialization ConvBackwardWeightSpecialization, ck::index_t BlockSize, ck::index_t MPerBlock, ck::index_t NPerBlock, ck::index_t K0PerBlock, ck::index_t K1, ck::index_t MPerXDL, ck::index_t NPerXDL, ck::index_t MXdlPerWave, ck::index_t NXdlPerWave, typename ABlockTransferThreadClusterLengths_K0_M_K1, typename ABlockTransferThreadClusterArrangeOrder, typename ABlockTransferSrcAccessOrder, ck::index_t ABlockTransferSrcVectorDim, ck::index_t ABlockTransferSrcScalarPerVector, ck::index_t ABlockTransferDstScalarPerVector_K1, bool ABlockLdsAddExtraM, typename BBlockTransferThreadClusterLengths_K0_N_K1, typename BBlockTransferThreadClusterArrangeOrder, typename BBlockTransferSrcAccessOrder, ck::index_t BBlockTransferSrcVectorDim, ck::index_t BBlockTransferSrcScalarPerVector, ck::index_t BBlockTransferDstScalarPerVector_K1, bool BBlockLdsAddExtraN, index_t CShuffleMXdlPerWavePerShuffle, index_t CShuffleNXdlPerWavePerShuffle, typename CBlockTransferClusterLengths_MBlock_MPerBlock_NBlock_NPerBlock, index_t CBlockTransferScalarPerVector_NWaveNPerXdl, typename ComputeTypeA = InDataType, typename ComputeTypeB = ComputeTypeA, index_t MaxTransposeTransferSrcScalarPerVector = 1, index_t MaxTransposeTransferDstScalarPerVector = 1>
| using ck::tensor_operation::device::DeviceGroupedConvBwdWeight_Xdl_CShuffle< NDimSpatial, InLayout, WeiLayout, OutLayout, InDataType, WeiDataType, OutDataType, AccDataType, InElementwiseOperation, WeiElementwiseOperation, OutElementwiseOperation, ConvBackwardWeightSpecialization, BlockSize, MPerBlock, NPerBlock, K0PerBlock, K1, MPerXDL, NPerXDL, MXdlPerWave, NXdlPerWave, ABlockTransferThreadClusterLengths_K0_M_K1, ABlockTransferThreadClusterArrangeOrder, ABlockTransferSrcAccessOrder, ABlockTransferSrcVectorDim, ABlockTransferSrcScalarPerVector, ABlockTransferDstScalarPerVector_K1, ABlockLdsAddExtraM, BBlockTransferThreadClusterLengths_K0_N_K1, BBlockTransferThreadClusterArrangeOrder, BBlockTransferSrcAccessOrder, BBlockTransferSrcVectorDim, BBlockTransferSrcScalarPerVector, BBlockTransferDstScalarPerVector_K1, BBlockLdsAddExtraN, CShuffleMXdlPerWavePerShuffle, CShuffleNXdlPerWavePerShuffle, CBlockTransferClusterLengths_MBlock_MPerBlock_NBlock_NPerBlock, CBlockTransferScalarPerVector_NWaveNPerXdl, ComputeTypeA, ComputeTypeB, MaxTransposeTransferSrcScalarPerVector, MaxTransposeTransferDstScalarPerVector >::GridwiseInOutTranspose |
Initial value:
BlockSize,
MPerBlock,
NPerBlock,
MPerBlock / ClusterLengthMPerBlock,
NPerBlock / ClusterLengthNPerBlock,
I1,
I0>
static constexpr index_t ClusterLengthMPerBlock
Definition device_grouped_conv_bwd_weight_xdl_cshuffle.hpp:304
static constexpr auto I0
Definition device_grouped_conv_bwd_weight_xdl_cshuffle.hpp:192
static constexpr auto I1
Definition device_grouped_conv_bwd_weight_xdl_cshuffle.hpp:193
static constexpr index_t ClusterLengthNPerBlock
Definition device_grouped_conv_bwd_weight_xdl_cshuffle.hpp:306
◆ NGCHWTransposeDescType
template<ck::index_t NDimSpatial, typename InLayout, typename WeiLayout, typename OutLayout, typename InDataType, typename WeiDataType, typename OutDataType, typename AccDataType, typename InElementwiseOperation, typename WeiElementwiseOperation, typename OutElementwiseOperation, ConvolutionBackwardWeightSpecialization ConvBackwardWeightSpecialization, ck::index_t BlockSize, ck::index_t MPerBlock, ck::index_t NPerBlock, ck::index_t K0PerBlock, ck::index_t K1, ck::index_t MPerXDL, ck::index_t NPerXDL, ck::index_t MXdlPerWave, ck::index_t NXdlPerWave, typename ABlockTransferThreadClusterLengths_K0_M_K1, typename ABlockTransferThreadClusterArrangeOrder, typename ABlockTransferSrcAccessOrder, ck::index_t ABlockTransferSrcVectorDim, ck::index_t ABlockTransferSrcScalarPerVector, ck::index_t ABlockTransferDstScalarPerVector_K1, bool ABlockLdsAddExtraM, typename BBlockTransferThreadClusterLengths_K0_N_K1, typename BBlockTransferThreadClusterArrangeOrder, typename BBlockTransferSrcAccessOrder, ck::index_t BBlockTransferSrcVectorDim, ck::index_t BBlockTransferSrcScalarPerVector, ck::index_t BBlockTransferDstScalarPerVector_K1, bool BBlockLdsAddExtraN, index_t CShuffleMXdlPerWavePerShuffle, index_t CShuffleNXdlPerWavePerShuffle, typename CBlockTransferClusterLengths_MBlock_MPerBlock_NBlock_NPerBlock, index_t CBlockTransferScalarPerVector_NWaveNPerXdl, typename ComputeTypeA = InDataType, typename ComputeTypeB = ComputeTypeA, index_t MaxTransposeTransferSrcScalarPerVector = 1, index_t MaxTransposeTransferDstScalarPerVector = 1>
| using ck::tensor_operation::device::DeviceGroupedConvBwdWeight_Xdl_CShuffle< NDimSpatial, InLayout, WeiLayout, OutLayout, InDataType, WeiDataType, OutDataType, AccDataType, InElementwiseOperation, WeiElementwiseOperation, OutElementwiseOperation, ConvBackwardWeightSpecialization, BlockSize, MPerBlock, NPerBlock, K0PerBlock, K1, MPerXDL, NPerXDL, MXdlPerWave, NXdlPerWave, ABlockTransferThreadClusterLengths_K0_M_K1, ABlockTransferThreadClusterArrangeOrder, ABlockTransferSrcAccessOrder, ABlockTransferSrcVectorDim, ABlockTransferSrcScalarPerVector, ABlockTransferDstScalarPerVector_K1, ABlockLdsAddExtraM, BBlockTransferThreadClusterLengths_K0_N_K1, BBlockTransferThreadClusterArrangeOrder, BBlockTransferSrcAccessOrder, BBlockTransferSrcVectorDim, BBlockTransferSrcScalarPerVector, BBlockTransferDstScalarPerVector_K1, BBlockLdsAddExtraN, CShuffleMXdlPerWavePerShuffle, CShuffleNXdlPerWavePerShuffle, CBlockTransferClusterLengths_MBlock_MPerBlock_NBlock_NPerBlock, CBlockTransferScalarPerVector_NWaveNPerXdl, ComputeTypeA, ComputeTypeB, MaxTransposeTransferSrcScalarPerVector, MaxTransposeTransferDstScalarPerVector >::NGCHWTransposeDescType |
Initial value:
.template MakeNGCHWTransposeDesc<NDimSpatial>({}, {}))>
◆ NHWGCTransposeDescType
template<ck::index_t NDimSpatial, typename InLayout, typename WeiLayout, typename OutLayout, typename InDataType, typename WeiDataType, typename OutDataType, typename AccDataType, typename InElementwiseOperation, typename WeiElementwiseOperation, typename OutElementwiseOperation, ConvolutionBackwardWeightSpecialization ConvBackwardWeightSpecialization, ck::index_t BlockSize, ck::index_t MPerBlock, ck::index_t NPerBlock, ck::index_t K0PerBlock, ck::index_t K1, ck::index_t MPerXDL, ck::index_t NPerXDL, ck::index_t MXdlPerWave, ck::index_t NXdlPerWave, typename ABlockTransferThreadClusterLengths_K0_M_K1, typename ABlockTransferThreadClusterArrangeOrder, typename ABlockTransferSrcAccessOrder, ck::index_t ABlockTransferSrcVectorDim, ck::index_t ABlockTransferSrcScalarPerVector, ck::index_t ABlockTransferDstScalarPerVector_K1, bool ABlockLdsAddExtraM, typename BBlockTransferThreadClusterLengths_K0_N_K1, typename BBlockTransferThreadClusterArrangeOrder, typename BBlockTransferSrcAccessOrder, ck::index_t BBlockTransferSrcVectorDim, ck::index_t BBlockTransferSrcScalarPerVector, ck::index_t BBlockTransferDstScalarPerVector_K1, bool BBlockLdsAddExtraN, index_t CShuffleMXdlPerWavePerShuffle, index_t CShuffleNXdlPerWavePerShuffle, typename CBlockTransferClusterLengths_MBlock_MPerBlock_NBlock_NPerBlock, index_t CBlockTransferScalarPerVector_NWaveNPerXdl, typename ComputeTypeA = InDataType, typename ComputeTypeB = ComputeTypeA, index_t MaxTransposeTransferSrcScalarPerVector = 1, index_t MaxTransposeTransferDstScalarPerVector = 1>
| using ck::tensor_operation::device::DeviceGroupedConvBwdWeight_Xdl_CShuffle< NDimSpatial, InLayout, WeiLayout, OutLayout, InDataType, WeiDataType, OutDataType, AccDataType, InElementwiseOperation, WeiElementwiseOperation, OutElementwiseOperation, ConvBackwardWeightSpecialization, BlockSize, MPerBlock, NPerBlock, K0PerBlock, K1, MPerXDL, NPerXDL, MXdlPerWave, NXdlPerWave, ABlockTransferThreadClusterLengths_K0_M_K1, ABlockTransferThreadClusterArrangeOrder, ABlockTransferSrcAccessOrder, ABlockTransferSrcVectorDim, ABlockTransferSrcScalarPerVector, ABlockTransferDstScalarPerVector_K1, ABlockLdsAddExtraM, BBlockTransferThreadClusterLengths_K0_N_K1, BBlockTransferThreadClusterArrangeOrder, BBlockTransferSrcAccessOrder, BBlockTransferSrcVectorDim, BBlockTransferSrcScalarPerVector, BBlockTransferDstScalarPerVector_K1, BBlockLdsAddExtraN, CShuffleMXdlPerWavePerShuffle, CShuffleNXdlPerWavePerShuffle, CBlockTransferClusterLengths_MBlock_MPerBlock_NBlock_NPerBlock, CBlockTransferScalarPerVector_NWaveNPerXdl, ComputeTypeA, ComputeTypeB, MaxTransposeTransferSrcScalarPerVector, MaxTransposeTransferDstScalarPerVector >::NHWGCTransposeDescType |
Initial value:
.template MakeNHWGCTransposeDesc<NDimSpatial>({}, {}))>
Member Function Documentation
◆ GetABCGridDesc() [1/3]
template<ck::index_t NDimSpatial, typename InLayout, typename WeiLayout, typename OutLayout, typename InDataType, typename WeiDataType, typename OutDataType, typename AccDataType, typename InElementwiseOperation, typename WeiElementwiseOperation, typename OutElementwiseOperation, ConvolutionBackwardWeightSpecialization ConvBackwardWeightSpecialization, ck::index_t BlockSize, ck::index_t MPerBlock, ck::index_t NPerBlock, ck::index_t K0PerBlock, ck::index_t K1, ck::index_t MPerXDL, ck::index_t NPerXDL, ck::index_t MXdlPerWave, ck::index_t NXdlPerWave, typename ABlockTransferThreadClusterLengths_K0_M_K1, typename ABlockTransferThreadClusterArrangeOrder, typename ABlockTransferSrcAccessOrder, ck::index_t ABlockTransferSrcVectorDim, ck::index_t ABlockTransferSrcScalarPerVector, ck::index_t ABlockTransferDstScalarPerVector_K1, bool ABlockLdsAddExtraM, typename BBlockTransferThreadClusterLengths_K0_N_K1, typename BBlockTransferThreadClusterArrangeOrder, typename BBlockTransferSrcAccessOrder, ck::index_t BBlockTransferSrcVectorDim, ck::index_t BBlockTransferSrcScalarPerVector, ck::index_t BBlockTransferDstScalarPerVector_K1, bool BBlockLdsAddExtraN, index_t CShuffleMXdlPerWavePerShuffle, index_t CShuffleNXdlPerWavePerShuffle, typename CBlockTransferClusterLengths_MBlock_MPerBlock_NBlock_NPerBlock, index_t CBlockTransferScalarPerVector_NWaveNPerXdl, typename ComputeTypeA = InDataType, typename ComputeTypeB = ComputeTypeA, index_t MaxTransposeTransferSrcScalarPerVector = 1, index_t MaxTransposeTransferDstScalarPerVector = 1>
template<ck::index_t NDim, typename ck::enable_if< NDim==3, bool >::type = false>
|
inlinestatic |
◆ GetABCGridDesc() [2/3]
template<ck::index_t NDimSpatial, typename InLayout, typename WeiLayout, typename OutLayout, typename InDataType, typename WeiDataType, typename OutDataType, typename AccDataType, typename InElementwiseOperation, typename WeiElementwiseOperation, typename OutElementwiseOperation, ConvolutionBackwardWeightSpecialization ConvBackwardWeightSpecialization, ck::index_t BlockSize, ck::index_t MPerBlock, ck::index_t NPerBlock, ck::index_t K0PerBlock, ck::index_t K1, ck::index_t MPerXDL, ck::index_t NPerXDL, ck::index_t MXdlPerWave, ck::index_t NXdlPerWave, typename ABlockTransferThreadClusterLengths_K0_M_K1, typename ABlockTransferThreadClusterArrangeOrder, typename ABlockTransferSrcAccessOrder, ck::index_t ABlockTransferSrcVectorDim, ck::index_t ABlockTransferSrcScalarPerVector, ck::index_t ABlockTransferDstScalarPerVector_K1, bool ABlockLdsAddExtraM, typename BBlockTransferThreadClusterLengths_K0_N_K1, typename BBlockTransferThreadClusterArrangeOrder, typename BBlockTransferSrcAccessOrder, ck::index_t BBlockTransferSrcVectorDim, ck::index_t BBlockTransferSrcScalarPerVector, ck::index_t BBlockTransferDstScalarPerVector_K1, bool BBlockLdsAddExtraN, index_t CShuffleMXdlPerWavePerShuffle, index_t CShuffleNXdlPerWavePerShuffle, typename CBlockTransferClusterLengths_MBlock_MPerBlock_NBlock_NPerBlock, index_t CBlockTransferScalarPerVector_NWaveNPerXdl, typename ComputeTypeA = InDataType, typename ComputeTypeB = ComputeTypeA, index_t MaxTransposeTransferSrcScalarPerVector = 1, index_t MaxTransposeTransferDstScalarPerVector = 1>
template<ck::index_t NDim, typename ck::enable_if< NDim==2, bool >::type = false>
|
inlinestatic |
◆ GetABCGridDesc() [3/3]
template<ck::index_t NDimSpatial, typename InLayout, typename WeiLayout, typename OutLayout, typename InDataType, typename WeiDataType, typename OutDataType, typename AccDataType, typename InElementwiseOperation, typename WeiElementwiseOperation, typename OutElementwiseOperation, ConvolutionBackwardWeightSpecialization ConvBackwardWeightSpecialization, ck::index_t BlockSize, ck::index_t MPerBlock, ck::index_t NPerBlock, ck::index_t K0PerBlock, ck::index_t K1, ck::index_t MPerXDL, ck::index_t NPerXDL, ck::index_t MXdlPerWave, ck::index_t NXdlPerWave, typename ABlockTransferThreadClusterLengths_K0_M_K1, typename ABlockTransferThreadClusterArrangeOrder, typename ABlockTransferSrcAccessOrder, ck::index_t ABlockTransferSrcVectorDim, ck::index_t ABlockTransferSrcScalarPerVector, ck::index_t ABlockTransferDstScalarPerVector_K1, bool ABlockLdsAddExtraM, typename BBlockTransferThreadClusterLengths_K0_N_K1, typename BBlockTransferThreadClusterArrangeOrder, typename BBlockTransferSrcAccessOrder, ck::index_t BBlockTransferSrcVectorDim, ck::index_t BBlockTransferSrcScalarPerVector, ck::index_t BBlockTransferDstScalarPerVector_K1, bool BBlockLdsAddExtraN, index_t CShuffleMXdlPerWavePerShuffle, index_t CShuffleNXdlPerWavePerShuffle, typename CBlockTransferClusterLengths_MBlock_MPerBlock_NBlock_NPerBlock, index_t CBlockTransferScalarPerVector_NWaveNPerXdl, typename ComputeTypeA = InDataType, typename ComputeTypeB = ComputeTypeA, index_t MaxTransposeTransferSrcScalarPerVector = 1, index_t MaxTransposeTransferDstScalarPerVector = 1>
template<ck::index_t NDim, typename ck::enable_if< NDim==1, bool >::type = false>
|
inlinestatic |
◆ GetTypeString()
template<ck::index_t NDimSpatial, typename InLayout, typename WeiLayout, typename OutLayout, typename InDataType, typename WeiDataType, typename OutDataType, typename AccDataType, typename InElementwiseOperation, typename WeiElementwiseOperation, typename OutElementwiseOperation, ConvolutionBackwardWeightSpecialization ConvBackwardWeightSpecialization, ck::index_t BlockSize, ck::index_t MPerBlock, ck::index_t NPerBlock, ck::index_t K0PerBlock, ck::index_t K1, ck::index_t MPerXDL, ck::index_t NPerXDL, ck::index_t MXdlPerWave, ck::index_t NXdlPerWave, typename ABlockTransferThreadClusterLengths_K0_M_K1, typename ABlockTransferThreadClusterArrangeOrder, typename ABlockTransferSrcAccessOrder, ck::index_t ABlockTransferSrcVectorDim, ck::index_t ABlockTransferSrcScalarPerVector, ck::index_t ABlockTransferDstScalarPerVector_K1, bool ABlockLdsAddExtraM, typename BBlockTransferThreadClusterLengths_K0_N_K1, typename BBlockTransferThreadClusterArrangeOrder, typename BBlockTransferSrcAccessOrder, ck::index_t BBlockTransferSrcVectorDim, ck::index_t BBlockTransferSrcScalarPerVector, ck::index_t BBlockTransferDstScalarPerVector_K1, bool BBlockLdsAddExtraN, index_t CShuffleMXdlPerWavePerShuffle, index_t CShuffleNXdlPerWavePerShuffle, typename CBlockTransferClusterLengths_MBlock_MPerBlock_NBlock_NPerBlock, index_t CBlockTransferScalarPerVector_NWaveNPerXdl, typename ComputeTypeA = InDataType, typename ComputeTypeB = ComputeTypeA, index_t MaxTransposeTransferSrcScalarPerVector = 1, index_t MaxTransposeTransferDstScalarPerVector = 1>
|
inlineoverridevirtual |
Reimplemented from ck::tensor_operation::device::BaseOperator.
◆ GetWorkSpaceSize()
template<ck::index_t NDimSpatial, typename InLayout, typename WeiLayout, typename OutLayout, typename InDataType, typename WeiDataType, typename OutDataType, typename AccDataType, typename InElementwiseOperation, typename WeiElementwiseOperation, typename OutElementwiseOperation, ConvolutionBackwardWeightSpecialization ConvBackwardWeightSpecialization, ck::index_t BlockSize, ck::index_t MPerBlock, ck::index_t NPerBlock, ck::index_t K0PerBlock, ck::index_t K1, ck::index_t MPerXDL, ck::index_t NPerXDL, ck::index_t MXdlPerWave, ck::index_t NXdlPerWave, typename ABlockTransferThreadClusterLengths_K0_M_K1, typename ABlockTransferThreadClusterArrangeOrder, typename ABlockTransferSrcAccessOrder, ck::index_t ABlockTransferSrcVectorDim, ck::index_t ABlockTransferSrcScalarPerVector, ck::index_t ABlockTransferDstScalarPerVector_K1, bool ABlockLdsAddExtraM, typename BBlockTransferThreadClusterLengths_K0_N_K1, typename BBlockTransferThreadClusterArrangeOrder, typename BBlockTransferSrcAccessOrder, ck::index_t BBlockTransferSrcVectorDim, ck::index_t BBlockTransferSrcScalarPerVector, ck::index_t BBlockTransferDstScalarPerVector_K1, bool BBlockLdsAddExtraN, index_t CShuffleMXdlPerWavePerShuffle, index_t CShuffleNXdlPerWavePerShuffle, typename CBlockTransferClusterLengths_MBlock_MPerBlock_NBlock_NPerBlock, index_t CBlockTransferScalarPerVector_NWaveNPerXdl, typename ComputeTypeA = InDataType, typename ComputeTypeB = ComputeTypeA, index_t MaxTransposeTransferSrcScalarPerVector = 1, index_t MaxTransposeTransferDstScalarPerVector = 1>
|
inlineoverridevirtual |
Reimplemented from ck::tensor_operation::device::BaseOperator.
◆ IsSupportedArgument() [1/2]
template<ck::index_t NDimSpatial, typename InLayout, typename WeiLayout, typename OutLayout, typename InDataType, typename WeiDataType, typename OutDataType, typename AccDataType, typename InElementwiseOperation, typename WeiElementwiseOperation, typename OutElementwiseOperation, ConvolutionBackwardWeightSpecialization ConvBackwardWeightSpecialization, ck::index_t BlockSize, ck::index_t MPerBlock, ck::index_t NPerBlock, ck::index_t K0PerBlock, ck::index_t K1, ck::index_t MPerXDL, ck::index_t NPerXDL, ck::index_t MXdlPerWave, ck::index_t NXdlPerWave, typename ABlockTransferThreadClusterLengths_K0_M_K1, typename ABlockTransferThreadClusterArrangeOrder, typename ABlockTransferSrcAccessOrder, ck::index_t ABlockTransferSrcVectorDim, ck::index_t ABlockTransferSrcScalarPerVector, ck::index_t ABlockTransferDstScalarPerVector_K1, bool ABlockLdsAddExtraM, typename BBlockTransferThreadClusterLengths_K0_N_K1, typename BBlockTransferThreadClusterArrangeOrder, typename BBlockTransferSrcAccessOrder, ck::index_t BBlockTransferSrcVectorDim, ck::index_t BBlockTransferSrcScalarPerVector, ck::index_t BBlockTransferDstScalarPerVector_K1, bool BBlockLdsAddExtraN, index_t CShuffleMXdlPerWavePerShuffle, index_t CShuffleNXdlPerWavePerShuffle, typename CBlockTransferClusterLengths_MBlock_MPerBlock_NBlock_NPerBlock, index_t CBlockTransferScalarPerVector_NWaveNPerXdl, typename ComputeTypeA = InDataType, typename ComputeTypeB = ComputeTypeA, index_t MaxTransposeTransferSrcScalarPerVector = 1, index_t MaxTransposeTransferDstScalarPerVector = 1>
|
inlinestatic |
◆ IsSupportedArgument() [2/2]
template<ck::index_t NDimSpatial, typename InLayout, typename WeiLayout, typename OutLayout, typename InDataType, typename WeiDataType, typename OutDataType, typename AccDataType, typename InElementwiseOperation, typename WeiElementwiseOperation, typename OutElementwiseOperation, ConvolutionBackwardWeightSpecialization ConvBackwardWeightSpecialization, ck::index_t BlockSize, ck::index_t MPerBlock, ck::index_t NPerBlock, ck::index_t K0PerBlock, ck::index_t K1, ck::index_t MPerXDL, ck::index_t NPerXDL, ck::index_t MXdlPerWave, ck::index_t NXdlPerWave, typename ABlockTransferThreadClusterLengths_K0_M_K1, typename ABlockTransferThreadClusterArrangeOrder, typename ABlockTransferSrcAccessOrder, ck::index_t ABlockTransferSrcVectorDim, ck::index_t ABlockTransferSrcScalarPerVector, ck::index_t ABlockTransferDstScalarPerVector_K1, bool ABlockLdsAddExtraM, typename BBlockTransferThreadClusterLengths_K0_N_K1, typename BBlockTransferThreadClusterArrangeOrder, typename BBlockTransferSrcAccessOrder, ck::index_t BBlockTransferSrcVectorDim, ck::index_t BBlockTransferSrcScalarPerVector, ck::index_t BBlockTransferDstScalarPerVector_K1, bool BBlockLdsAddExtraN, index_t CShuffleMXdlPerWavePerShuffle, index_t CShuffleNXdlPerWavePerShuffle, typename CBlockTransferClusterLengths_MBlock_MPerBlock_NBlock_NPerBlock, index_t CBlockTransferScalarPerVector_NWaveNPerXdl, typename ComputeTypeA = InDataType, typename ComputeTypeB = ComputeTypeA, index_t MaxTransposeTransferSrcScalarPerVector = 1, index_t MaxTransposeTransferDstScalarPerVector = 1>
|
inlineoverridevirtual |
Reimplemented from ck::tensor_operation::device::BaseOperator.
◆ IsValidCompilationParameter()
template<ck::index_t NDimSpatial, typename InLayout, typename WeiLayout, typename OutLayout, typename InDataType, typename WeiDataType, typename OutDataType, typename AccDataType, typename InElementwiseOperation, typename WeiElementwiseOperation, typename OutElementwiseOperation, ConvolutionBackwardWeightSpecialization ConvBackwardWeightSpecialization, ck::index_t BlockSize, ck::index_t MPerBlock, ck::index_t NPerBlock, ck::index_t K0PerBlock, ck::index_t K1, ck::index_t MPerXDL, ck::index_t NPerXDL, ck::index_t MXdlPerWave, ck::index_t NXdlPerWave, typename ABlockTransferThreadClusterLengths_K0_M_K1, typename ABlockTransferThreadClusterArrangeOrder, typename ABlockTransferSrcAccessOrder, ck::index_t ABlockTransferSrcVectorDim, ck::index_t ABlockTransferSrcScalarPerVector, ck::index_t ABlockTransferDstScalarPerVector_K1, bool ABlockLdsAddExtraM, typename BBlockTransferThreadClusterLengths_K0_N_K1, typename BBlockTransferThreadClusterArrangeOrder, typename BBlockTransferSrcAccessOrder, ck::index_t BBlockTransferSrcVectorDim, ck::index_t BBlockTransferSrcScalarPerVector, ck::index_t BBlockTransferDstScalarPerVector_K1, bool BBlockLdsAddExtraN, index_t CShuffleMXdlPerWavePerShuffle, index_t CShuffleNXdlPerWavePerShuffle, typename CBlockTransferClusterLengths_MBlock_MPerBlock_NBlock_NPerBlock, index_t CBlockTransferScalarPerVector_NWaveNPerXdl, typename ComputeTypeA = InDataType, typename ComputeTypeB = ComputeTypeA, index_t MaxTransposeTransferSrcScalarPerVector = 1, index_t MaxTransposeTransferDstScalarPerVector = 1>
|
inlinestaticconstexpr |
◆ MakeArgument()
template<ck::index_t NDimSpatial, typename InLayout, typename WeiLayout, typename OutLayout, typename InDataType, typename WeiDataType, typename OutDataType, typename AccDataType, typename InElementwiseOperation, typename WeiElementwiseOperation, typename OutElementwiseOperation, ConvolutionBackwardWeightSpecialization ConvBackwardWeightSpecialization, ck::index_t BlockSize, ck::index_t MPerBlock, ck::index_t NPerBlock, ck::index_t K0PerBlock, ck::index_t K1, ck::index_t MPerXDL, ck::index_t NPerXDL, ck::index_t MXdlPerWave, ck::index_t NXdlPerWave, typename ABlockTransferThreadClusterLengths_K0_M_K1, typename ABlockTransferThreadClusterArrangeOrder, typename ABlockTransferSrcAccessOrder, ck::index_t ABlockTransferSrcVectorDim, ck::index_t ABlockTransferSrcScalarPerVector, ck::index_t ABlockTransferDstScalarPerVector_K1, bool ABlockLdsAddExtraM, typename BBlockTransferThreadClusterLengths_K0_N_K1, typename BBlockTransferThreadClusterArrangeOrder, typename BBlockTransferSrcAccessOrder, ck::index_t BBlockTransferSrcVectorDim, ck::index_t BBlockTransferSrcScalarPerVector, ck::index_t BBlockTransferDstScalarPerVector_K1, bool BBlockLdsAddExtraN, index_t CShuffleMXdlPerWavePerShuffle, index_t CShuffleNXdlPerWavePerShuffle, typename CBlockTransferClusterLengths_MBlock_MPerBlock_NBlock_NPerBlock, index_t CBlockTransferScalarPerVector_NWaveNPerXdl, typename ComputeTypeA = InDataType, typename ComputeTypeB = ComputeTypeA, index_t MaxTransposeTransferSrcScalarPerVector = 1, index_t MaxTransposeTransferDstScalarPerVector = 1>
|
inlinestatic |
◆ MakeArgumentPointer()
template<ck::index_t NDimSpatial, typename InLayout, typename WeiLayout, typename OutLayout, typename InDataType, typename WeiDataType, typename OutDataType, typename AccDataType, typename InElementwiseOperation, typename WeiElementwiseOperation, typename OutElementwiseOperation, ConvolutionBackwardWeightSpecialization ConvBackwardWeightSpecialization, ck::index_t BlockSize, ck::index_t MPerBlock, ck::index_t NPerBlock, ck::index_t K0PerBlock, ck::index_t K1, ck::index_t MPerXDL, ck::index_t NPerXDL, ck::index_t MXdlPerWave, ck::index_t NXdlPerWave, typename ABlockTransferThreadClusterLengths_K0_M_K1, typename ABlockTransferThreadClusterArrangeOrder, typename ABlockTransferSrcAccessOrder, ck::index_t ABlockTransferSrcVectorDim, ck::index_t ABlockTransferSrcScalarPerVector, ck::index_t ABlockTransferDstScalarPerVector_K1, bool ABlockLdsAddExtraM, typename BBlockTransferThreadClusterLengths_K0_N_K1, typename BBlockTransferThreadClusterArrangeOrder, typename BBlockTransferSrcAccessOrder, ck::index_t BBlockTransferSrcVectorDim, ck::index_t BBlockTransferSrcScalarPerVector, ck::index_t BBlockTransferDstScalarPerVector_K1, bool BBlockLdsAddExtraN, index_t CShuffleMXdlPerWavePerShuffle, index_t CShuffleNXdlPerWavePerShuffle, typename CBlockTransferClusterLengths_MBlock_MPerBlock_NBlock_NPerBlock, index_t CBlockTransferScalarPerVector_NWaveNPerXdl, typename ComputeTypeA = InDataType, typename ComputeTypeB = ComputeTypeA, index_t MaxTransposeTransferSrcScalarPerVector = 1, index_t MaxTransposeTransferDstScalarPerVector = 1>
|
inlineoverridevirtual |
◆ MakeInvoker()
template<ck::index_t NDimSpatial, typename InLayout, typename WeiLayout, typename OutLayout, typename InDataType, typename WeiDataType, typename OutDataType, typename AccDataType, typename InElementwiseOperation, typename WeiElementwiseOperation, typename OutElementwiseOperation, ConvolutionBackwardWeightSpecialization ConvBackwardWeightSpecialization, ck::index_t BlockSize, ck::index_t MPerBlock, ck::index_t NPerBlock, ck::index_t K0PerBlock, ck::index_t K1, ck::index_t MPerXDL, ck::index_t NPerXDL, ck::index_t MXdlPerWave, ck::index_t NXdlPerWave, typename ABlockTransferThreadClusterLengths_K0_M_K1, typename ABlockTransferThreadClusterArrangeOrder, typename ABlockTransferSrcAccessOrder, ck::index_t ABlockTransferSrcVectorDim, ck::index_t ABlockTransferSrcScalarPerVector, ck::index_t ABlockTransferDstScalarPerVector_K1, bool ABlockLdsAddExtraM, typename BBlockTransferThreadClusterLengths_K0_N_K1, typename BBlockTransferThreadClusterArrangeOrder, typename BBlockTransferSrcAccessOrder, ck::index_t BBlockTransferSrcVectorDim, ck::index_t BBlockTransferSrcScalarPerVector, ck::index_t BBlockTransferDstScalarPerVector_K1, bool BBlockLdsAddExtraN, index_t CShuffleMXdlPerWavePerShuffle, index_t CShuffleNXdlPerWavePerShuffle, typename CBlockTransferClusterLengths_MBlock_MPerBlock_NBlock_NPerBlock, index_t CBlockTransferScalarPerVector_NWaveNPerXdl, typename ComputeTypeA = InDataType, typename ComputeTypeB = ComputeTypeA, index_t MaxTransposeTransferSrcScalarPerVector = 1, index_t MaxTransposeTransferDstScalarPerVector = 1>
|
inlinestatic |
◆ MakeInvokerPointer()
template<ck::index_t NDimSpatial, typename InLayout, typename WeiLayout, typename OutLayout, typename InDataType, typename WeiDataType, typename OutDataType, typename AccDataType, typename InElementwiseOperation, typename WeiElementwiseOperation, typename OutElementwiseOperation, ConvolutionBackwardWeightSpecialization ConvBackwardWeightSpecialization, ck::index_t BlockSize, ck::index_t MPerBlock, ck::index_t NPerBlock, ck::index_t K0PerBlock, ck::index_t K1, ck::index_t MPerXDL, ck::index_t NPerXDL, ck::index_t MXdlPerWave, ck::index_t NXdlPerWave, typename ABlockTransferThreadClusterLengths_K0_M_K1, typename ABlockTransferThreadClusterArrangeOrder, typename ABlockTransferSrcAccessOrder, ck::index_t ABlockTransferSrcVectorDim, ck::index_t ABlockTransferSrcScalarPerVector, ck::index_t ABlockTransferDstScalarPerVector_K1, bool ABlockLdsAddExtraM, typename BBlockTransferThreadClusterLengths_K0_N_K1, typename BBlockTransferThreadClusterArrangeOrder, typename BBlockTransferSrcAccessOrder, ck::index_t BBlockTransferSrcVectorDim, ck::index_t BBlockTransferSrcScalarPerVector, ck::index_t BBlockTransferDstScalarPerVector_K1, bool BBlockLdsAddExtraN, index_t CShuffleMXdlPerWavePerShuffle, index_t CShuffleNXdlPerWavePerShuffle, typename CBlockTransferClusterLengths_MBlock_MPerBlock_NBlock_NPerBlock, index_t CBlockTransferScalarPerVector_NWaveNPerXdl, typename ComputeTypeA = InDataType, typename ComputeTypeB = ComputeTypeA, index_t MaxTransposeTransferSrcScalarPerVector = 1, index_t MaxTransposeTransferDstScalarPerVector = 1>
|
inlineoverridevirtual |
◆ SetWorkSpacePointer()
template<ck::index_t NDimSpatial, typename InLayout, typename WeiLayout, typename OutLayout, typename InDataType, typename WeiDataType, typename OutDataType, typename AccDataType, typename InElementwiseOperation, typename WeiElementwiseOperation, typename OutElementwiseOperation, ConvolutionBackwardWeightSpecialization ConvBackwardWeightSpecialization, ck::index_t BlockSize, ck::index_t MPerBlock, ck::index_t NPerBlock, ck::index_t K0PerBlock, ck::index_t K1, ck::index_t MPerXDL, ck::index_t NPerXDL, ck::index_t MXdlPerWave, ck::index_t NXdlPerWave, typename ABlockTransferThreadClusterLengths_K0_M_K1, typename ABlockTransferThreadClusterArrangeOrder, typename ABlockTransferSrcAccessOrder, ck::index_t ABlockTransferSrcVectorDim, ck::index_t ABlockTransferSrcScalarPerVector, ck::index_t ABlockTransferDstScalarPerVector_K1, bool ABlockLdsAddExtraM, typename BBlockTransferThreadClusterLengths_K0_N_K1, typename BBlockTransferThreadClusterArrangeOrder, typename BBlockTransferSrcAccessOrder, ck::index_t BBlockTransferSrcVectorDim, ck::index_t BBlockTransferSrcScalarPerVector, ck::index_t BBlockTransferDstScalarPerVector_K1, bool BBlockLdsAddExtraN, index_t CShuffleMXdlPerWavePerShuffle, index_t CShuffleNXdlPerWavePerShuffle, typename CBlockTransferClusterLengths_MBlock_MPerBlock_NBlock_NPerBlock, index_t CBlockTransferScalarPerVector_NWaveNPerXdl, typename ComputeTypeA = InDataType, typename ComputeTypeB = ComputeTypeA, index_t MaxTransposeTransferSrcScalarPerVector = 1, index_t MaxTransposeTransferDstScalarPerVector = 1>
|
inlineoverridevirtual |
Reimplemented from ck::tensor_operation::device::BaseOperator.
Member Data Documentation
◆ ABlockLdsM0PerBlock
template<ck::index_t NDimSpatial, typename InLayout, typename WeiLayout, typename OutLayout, typename InDataType, typename WeiDataType, typename OutDataType, typename AccDataType, typename InElementwiseOperation, typename WeiElementwiseOperation, typename OutElementwiseOperation, ConvolutionBackwardWeightSpecialization ConvBackwardWeightSpecialization, ck::index_t BlockSize, ck::index_t MPerBlock, ck::index_t NPerBlock, ck::index_t K0PerBlock, ck::index_t K1, ck::index_t MPerXDL, ck::index_t NPerXDL, ck::index_t MXdlPerWave, ck::index_t NXdlPerWave, typename ABlockTransferThreadClusterLengths_K0_M_K1, typename ABlockTransferThreadClusterArrangeOrder, typename ABlockTransferSrcAccessOrder, ck::index_t ABlockTransferSrcVectorDim, ck::index_t ABlockTransferSrcScalarPerVector, ck::index_t ABlockTransferDstScalarPerVector_K1, bool ABlockLdsAddExtraM, typename BBlockTransferThreadClusterLengths_K0_N_K1, typename BBlockTransferThreadClusterArrangeOrder, typename BBlockTransferSrcAccessOrder, ck::index_t BBlockTransferSrcVectorDim, ck::index_t BBlockTransferSrcScalarPerVector, ck::index_t BBlockTransferDstScalarPerVector_K1, bool BBlockLdsAddExtraN, index_t CShuffleMXdlPerWavePerShuffle, index_t CShuffleNXdlPerWavePerShuffle, typename CBlockTransferClusterLengths_MBlock_MPerBlock_NBlock_NPerBlock, index_t CBlockTransferScalarPerVector_NWaveNPerXdl, typename ComputeTypeA = InDataType, typename ComputeTypeB = ComputeTypeA, index_t MaxTransposeTransferSrcScalarPerVector = 1, index_t MaxTransposeTransferDstScalarPerVector = 1>
|
staticconstexpr |
◆ ABlockLdsM1Padding
template<ck::index_t NDimSpatial, typename InLayout, typename WeiLayout, typename OutLayout, typename InDataType, typename WeiDataType, typename OutDataType, typename AccDataType, typename InElementwiseOperation, typename WeiElementwiseOperation, typename OutElementwiseOperation, ConvolutionBackwardWeightSpecialization ConvBackwardWeightSpecialization, ck::index_t BlockSize, ck::index_t MPerBlock, ck::index_t NPerBlock, ck::index_t K0PerBlock, ck::index_t K1, ck::index_t MPerXDL, ck::index_t NPerXDL, ck::index_t MXdlPerWave, ck::index_t NXdlPerWave, typename ABlockTransferThreadClusterLengths_K0_M_K1, typename ABlockTransferThreadClusterArrangeOrder, typename ABlockTransferSrcAccessOrder, ck::index_t ABlockTransferSrcVectorDim, ck::index_t ABlockTransferSrcScalarPerVector, ck::index_t ABlockTransferDstScalarPerVector_K1, bool ABlockLdsAddExtraM, typename BBlockTransferThreadClusterLengths_K0_N_K1, typename BBlockTransferThreadClusterArrangeOrder, typename BBlockTransferSrcAccessOrder, ck::index_t BBlockTransferSrcVectorDim, ck::index_t BBlockTransferSrcScalarPerVector, ck::index_t BBlockTransferDstScalarPerVector_K1, bool BBlockLdsAddExtraN, index_t CShuffleMXdlPerWavePerShuffle, index_t CShuffleNXdlPerWavePerShuffle, typename CBlockTransferClusterLengths_MBlock_MPerBlock_NBlock_NPerBlock, index_t CBlockTransferScalarPerVector_NWaveNPerXdl, typename ComputeTypeA = InDataType, typename ComputeTypeB = ComputeTypeA, index_t MaxTransposeTransferSrcScalarPerVector = 1, index_t MaxTransposeTransferDstScalarPerVector = 1>
|
staticconstexpr |
◆ ABlockLdsM1PerBlock
template<ck::index_t NDimSpatial, typename InLayout, typename WeiLayout, typename OutLayout, typename InDataType, typename WeiDataType, typename OutDataType, typename AccDataType, typename InElementwiseOperation, typename WeiElementwiseOperation, typename OutElementwiseOperation, ConvolutionBackwardWeightSpecialization ConvBackwardWeightSpecialization, ck::index_t BlockSize, ck::index_t MPerBlock, ck::index_t NPerBlock, ck::index_t K0PerBlock, ck::index_t K1, ck::index_t MPerXDL, ck::index_t NPerXDL, ck::index_t MXdlPerWave, ck::index_t NXdlPerWave, typename ABlockTransferThreadClusterLengths_K0_M_K1, typename ABlockTransferThreadClusterArrangeOrder, typename ABlockTransferSrcAccessOrder, ck::index_t ABlockTransferSrcVectorDim, ck::index_t ABlockTransferSrcScalarPerVector, ck::index_t ABlockTransferDstScalarPerVector_K1, bool ABlockLdsAddExtraM, typename BBlockTransferThreadClusterLengths_K0_N_K1, typename BBlockTransferThreadClusterArrangeOrder, typename BBlockTransferSrcAccessOrder, ck::index_t BBlockTransferSrcVectorDim, ck::index_t BBlockTransferSrcScalarPerVector, ck::index_t BBlockTransferDstScalarPerVector_K1, bool BBlockLdsAddExtraN, index_t CShuffleMXdlPerWavePerShuffle, index_t CShuffleNXdlPerWavePerShuffle, typename CBlockTransferClusterLengths_MBlock_MPerBlock_NBlock_NPerBlock, index_t CBlockTransferScalarPerVector_NWaveNPerXdl, typename ComputeTypeA = InDataType, typename ComputeTypeB = ComputeTypeA, index_t MaxTransposeTransferSrcScalarPerVector = 1, index_t MaxTransposeTransferDstScalarPerVector = 1>
|
staticconstexpr |
◆ BankLength
template<ck::index_t NDimSpatial, typename InLayout, typename WeiLayout, typename OutLayout, typename InDataType, typename WeiDataType, typename OutDataType, typename AccDataType, typename InElementwiseOperation, typename WeiElementwiseOperation, typename OutElementwiseOperation, ConvolutionBackwardWeightSpecialization ConvBackwardWeightSpecialization, ck::index_t BlockSize, ck::index_t MPerBlock, ck::index_t NPerBlock, ck::index_t K0PerBlock, ck::index_t K1, ck::index_t MPerXDL, ck::index_t NPerXDL, ck::index_t MXdlPerWave, ck::index_t NXdlPerWave, typename ABlockTransferThreadClusterLengths_K0_M_K1, typename ABlockTransferThreadClusterArrangeOrder, typename ABlockTransferSrcAccessOrder, ck::index_t ABlockTransferSrcVectorDim, ck::index_t ABlockTransferSrcScalarPerVector, ck::index_t ABlockTransferDstScalarPerVector_K1, bool ABlockLdsAddExtraM, typename BBlockTransferThreadClusterLengths_K0_N_K1, typename BBlockTransferThreadClusterArrangeOrder, typename BBlockTransferSrcAccessOrder, ck::index_t BBlockTransferSrcVectorDim, ck::index_t BBlockTransferSrcScalarPerVector, ck::index_t BBlockTransferDstScalarPerVector_K1, bool BBlockLdsAddExtraN, index_t CShuffleMXdlPerWavePerShuffle, index_t CShuffleNXdlPerWavePerShuffle, typename CBlockTransferClusterLengths_MBlock_MPerBlock_NBlock_NPerBlock, index_t CBlockTransferScalarPerVector_NWaveNPerXdl, typename ComputeTypeA = InDataType, typename ComputeTypeB = ComputeTypeA, index_t MaxTransposeTransferSrcScalarPerVector = 1, index_t MaxTransposeTransferDstScalarPerVector = 1>
|
staticconstexpr |
◆ BBlockLdsN0PerBlock
template<ck::index_t NDimSpatial, typename InLayout, typename WeiLayout, typename OutLayout, typename InDataType, typename WeiDataType, typename OutDataType, typename AccDataType, typename InElementwiseOperation, typename WeiElementwiseOperation, typename OutElementwiseOperation, ConvolutionBackwardWeightSpecialization ConvBackwardWeightSpecialization, ck::index_t BlockSize, ck::index_t MPerBlock, ck::index_t NPerBlock, ck::index_t K0PerBlock, ck::index_t K1, ck::index_t MPerXDL, ck::index_t NPerXDL, ck::index_t MXdlPerWave, ck::index_t NXdlPerWave, typename ABlockTransferThreadClusterLengths_K0_M_K1, typename ABlockTransferThreadClusterArrangeOrder, typename ABlockTransferSrcAccessOrder, ck::index_t ABlockTransferSrcVectorDim, ck::index_t ABlockTransferSrcScalarPerVector, ck::index_t ABlockTransferDstScalarPerVector_K1, bool ABlockLdsAddExtraM, typename BBlockTransferThreadClusterLengths_K0_N_K1, typename BBlockTransferThreadClusterArrangeOrder, typename BBlockTransferSrcAccessOrder, ck::index_t BBlockTransferSrcVectorDim, ck::index_t BBlockTransferSrcScalarPerVector, ck::index_t BBlockTransferDstScalarPerVector_K1, bool BBlockLdsAddExtraN, index_t CShuffleMXdlPerWavePerShuffle, index_t CShuffleNXdlPerWavePerShuffle, typename CBlockTransferClusterLengths_MBlock_MPerBlock_NBlock_NPerBlock, index_t CBlockTransferScalarPerVector_NWaveNPerXdl, typename ComputeTypeA = InDataType, typename ComputeTypeB = ComputeTypeA, index_t MaxTransposeTransferSrcScalarPerVector = 1, index_t MaxTransposeTransferDstScalarPerVector = 1>
|
staticconstexpr |
◆ BBlockLdsN1Padding
template<ck::index_t NDimSpatial, typename InLayout, typename WeiLayout, typename OutLayout, typename InDataType, typename WeiDataType, typename OutDataType, typename AccDataType, typename InElementwiseOperation, typename WeiElementwiseOperation, typename OutElementwiseOperation, ConvolutionBackwardWeightSpecialization ConvBackwardWeightSpecialization, ck::index_t BlockSize, ck::index_t MPerBlock, ck::index_t NPerBlock, ck::index_t K0PerBlock, ck::index_t K1, ck::index_t MPerXDL, ck::index_t NPerXDL, ck::index_t MXdlPerWave, ck::index_t NXdlPerWave, typename ABlockTransferThreadClusterLengths_K0_M_K1, typename ABlockTransferThreadClusterArrangeOrder, typename ABlockTransferSrcAccessOrder, ck::index_t ABlockTransferSrcVectorDim, ck::index_t ABlockTransferSrcScalarPerVector, ck::index_t ABlockTransferDstScalarPerVector_K1, bool ABlockLdsAddExtraM, typename BBlockTransferThreadClusterLengths_K0_N_K1, typename BBlockTransferThreadClusterArrangeOrder, typename BBlockTransferSrcAccessOrder, ck::index_t BBlockTransferSrcVectorDim, ck::index_t BBlockTransferSrcScalarPerVector, ck::index_t BBlockTransferDstScalarPerVector_K1, bool BBlockLdsAddExtraN, index_t CShuffleMXdlPerWavePerShuffle, index_t CShuffleNXdlPerWavePerShuffle, typename CBlockTransferClusterLengths_MBlock_MPerBlock_NBlock_NPerBlock, index_t CBlockTransferScalarPerVector_NWaveNPerXdl, typename ComputeTypeA = InDataType, typename ComputeTypeB = ComputeTypeA, index_t MaxTransposeTransferSrcScalarPerVector = 1, index_t MaxTransposeTransferDstScalarPerVector = 1>
|
staticconstexpr |
◆ BBlockLdsN1PerBlock
template<ck::index_t NDimSpatial, typename InLayout, typename WeiLayout, typename OutLayout, typename InDataType, typename WeiDataType, typename OutDataType, typename AccDataType, typename InElementwiseOperation, typename WeiElementwiseOperation, typename OutElementwiseOperation, ConvolutionBackwardWeightSpecialization ConvBackwardWeightSpecialization, ck::index_t BlockSize, ck::index_t MPerBlock, ck::index_t NPerBlock, ck::index_t K0PerBlock, ck::index_t K1, ck::index_t MPerXDL, ck::index_t NPerXDL, ck::index_t MXdlPerWave, ck::index_t NXdlPerWave, typename ABlockTransferThreadClusterLengths_K0_M_K1, typename ABlockTransferThreadClusterArrangeOrder, typename ABlockTransferSrcAccessOrder, ck::index_t ABlockTransferSrcVectorDim, ck::index_t ABlockTransferSrcScalarPerVector, ck::index_t ABlockTransferDstScalarPerVector_K1, bool ABlockLdsAddExtraM, typename BBlockTransferThreadClusterLengths_K0_N_K1, typename BBlockTransferThreadClusterArrangeOrder, typename BBlockTransferSrcAccessOrder, ck::index_t BBlockTransferSrcVectorDim, ck::index_t BBlockTransferSrcScalarPerVector, ck::index_t BBlockTransferDstScalarPerVector_K1, bool BBlockLdsAddExtraN, index_t CShuffleMXdlPerWavePerShuffle, index_t CShuffleNXdlPerWavePerShuffle, typename CBlockTransferClusterLengths_MBlock_MPerBlock_NBlock_NPerBlock, index_t CBlockTransferScalarPerVector_NWaveNPerXdl, typename ComputeTypeA = InDataType, typename ComputeTypeB = ComputeTypeA, index_t MaxTransposeTransferSrcScalarPerVector = 1, index_t MaxTransposeTransferDstScalarPerVector = 1>
|
staticconstexpr |
◆ ClusterLengthMPerBlock
template<ck::index_t NDimSpatial, typename InLayout, typename WeiLayout, typename OutLayout, typename InDataType, typename WeiDataType, typename OutDataType, typename AccDataType, typename InElementwiseOperation, typename WeiElementwiseOperation, typename OutElementwiseOperation, ConvolutionBackwardWeightSpecialization ConvBackwardWeightSpecialization, ck::index_t BlockSize, ck::index_t MPerBlock, ck::index_t NPerBlock, ck::index_t K0PerBlock, ck::index_t K1, ck::index_t MPerXDL, ck::index_t NPerXDL, ck::index_t MXdlPerWave, ck::index_t NXdlPerWave, typename ABlockTransferThreadClusterLengths_K0_M_K1, typename ABlockTransferThreadClusterArrangeOrder, typename ABlockTransferSrcAccessOrder, ck::index_t ABlockTransferSrcVectorDim, ck::index_t ABlockTransferSrcScalarPerVector, ck::index_t ABlockTransferDstScalarPerVector_K1, bool ABlockLdsAddExtraM, typename BBlockTransferThreadClusterLengths_K0_N_K1, typename BBlockTransferThreadClusterArrangeOrder, typename BBlockTransferSrcAccessOrder, ck::index_t BBlockTransferSrcVectorDim, ck::index_t BBlockTransferSrcScalarPerVector, ck::index_t BBlockTransferDstScalarPerVector_K1, bool BBlockLdsAddExtraN, index_t CShuffleMXdlPerWavePerShuffle, index_t CShuffleNXdlPerWavePerShuffle, typename CBlockTransferClusterLengths_MBlock_MPerBlock_NBlock_NPerBlock, index_t CBlockTransferScalarPerVector_NWaveNPerXdl, typename ComputeTypeA = InDataType, typename ComputeTypeB = ComputeTypeA, index_t MaxTransposeTransferSrcScalarPerVector = 1, index_t MaxTransposeTransferDstScalarPerVector = 1>
|
staticconstexpr |
Initial value:
=
CBlockTransferClusterLengths_MBlock_MPerBlock_NBlock_NPerBlock::At(1)
◆ ClusterLengthNPerBlock
template<ck::index_t NDimSpatial, typename InLayout, typename WeiLayout, typename OutLayout, typename InDataType, typename WeiDataType, typename OutDataType, typename AccDataType, typename InElementwiseOperation, typename WeiElementwiseOperation, typename OutElementwiseOperation, ConvolutionBackwardWeightSpecialization ConvBackwardWeightSpecialization, ck::index_t BlockSize, ck::index_t MPerBlock, ck::index_t NPerBlock, ck::index_t K0PerBlock, ck::index_t K1, ck::index_t MPerXDL, ck::index_t NPerXDL, ck::index_t MXdlPerWave, ck::index_t NXdlPerWave, typename ABlockTransferThreadClusterLengths_K0_M_K1, typename ABlockTransferThreadClusterArrangeOrder, typename ABlockTransferSrcAccessOrder, ck::index_t ABlockTransferSrcVectorDim, ck::index_t ABlockTransferSrcScalarPerVector, ck::index_t ABlockTransferDstScalarPerVector_K1, bool ABlockLdsAddExtraM, typename BBlockTransferThreadClusterLengths_K0_N_K1, typename BBlockTransferThreadClusterArrangeOrder, typename BBlockTransferSrcAccessOrder, ck::index_t BBlockTransferSrcVectorDim, ck::index_t BBlockTransferSrcScalarPerVector, ck::index_t BBlockTransferDstScalarPerVector_K1, bool BBlockLdsAddExtraN, index_t CShuffleMXdlPerWavePerShuffle, index_t CShuffleNXdlPerWavePerShuffle, typename CBlockTransferClusterLengths_MBlock_MPerBlock_NBlock_NPerBlock, index_t CBlockTransferScalarPerVector_NWaveNPerXdl, typename ComputeTypeA = InDataType, typename ComputeTypeB = ComputeTypeA, index_t MaxTransposeTransferSrcScalarPerVector = 1, index_t MaxTransposeTransferDstScalarPerVector = 1>
|
staticconstexpr |
Initial value:
=
CBlockTransferClusterLengths_MBlock_MPerBlock_NBlock_NPerBlock::At(3)
◆ conv_ngchw_to_nhwgc_transformer
template<ck::index_t NDimSpatial, typename InLayout, typename WeiLayout, typename OutLayout, typename InDataType, typename WeiDataType, typename OutDataType, typename AccDataType, typename InElementwiseOperation, typename WeiElementwiseOperation, typename OutElementwiseOperation, ConvolutionBackwardWeightSpecialization ConvBackwardWeightSpecialization, ck::index_t BlockSize, ck::index_t MPerBlock, ck::index_t NPerBlock, ck::index_t K0PerBlock, ck::index_t K1, ck::index_t MPerXDL, ck::index_t NPerXDL, ck::index_t MXdlPerWave, ck::index_t NXdlPerWave, typename ABlockTransferThreadClusterLengths_K0_M_K1, typename ABlockTransferThreadClusterArrangeOrder, typename ABlockTransferSrcAccessOrder, ck::index_t ABlockTransferSrcVectorDim, ck::index_t ABlockTransferSrcScalarPerVector, ck::index_t ABlockTransferDstScalarPerVector_K1, bool ABlockLdsAddExtraM, typename BBlockTransferThreadClusterLengths_K0_N_K1, typename BBlockTransferThreadClusterArrangeOrder, typename BBlockTransferSrcAccessOrder, ck::index_t BBlockTransferSrcVectorDim, ck::index_t BBlockTransferSrcScalarPerVector, ck::index_t BBlockTransferDstScalarPerVector_K1, bool BBlockLdsAddExtraN, index_t CShuffleMXdlPerWavePerShuffle, index_t CShuffleNXdlPerWavePerShuffle, typename CBlockTransferClusterLengths_MBlock_MPerBlock_NBlock_NPerBlock, index_t CBlockTransferScalarPerVector_NWaveNPerXdl, typename ComputeTypeA = InDataType, typename ComputeTypeB = ComputeTypeA, index_t MaxTransposeTransferSrcScalarPerVector = 1, index_t MaxTransposeTransferDstScalarPerVector = 1>
|
staticconstexpr |
Initial value:
=
TransformConvNGCHWToNHWGC<InLayout,
WeiLayout,
OutLayout,
NDimSpatial,
MPerBlock / ClusterLengthMPerBlock,
NPerBlock / ClusterLengthNPerBlock>{}
Definition transform_conv_ngchw_to_nhwgc.hpp:31
◆ conv_to_gemm_transformer
template<ck::index_t NDimSpatial, typename InLayout, typename WeiLayout, typename OutLayout, typename InDataType, typename WeiDataType, typename OutDataType, typename AccDataType, typename InElementwiseOperation, typename WeiElementwiseOperation, typename OutElementwiseOperation, ConvolutionBackwardWeightSpecialization ConvBackwardWeightSpecialization, ck::index_t BlockSize, ck::index_t MPerBlock, ck::index_t NPerBlock, ck::index_t K0PerBlock, ck::index_t K1, ck::index_t MPerXDL, ck::index_t NPerXDL, ck::index_t MXdlPerWave, ck::index_t NXdlPerWave, typename ABlockTransferThreadClusterLengths_K0_M_K1, typename ABlockTransferThreadClusterArrangeOrder, typename ABlockTransferSrcAccessOrder, ck::index_t ABlockTransferSrcVectorDim, ck::index_t ABlockTransferSrcScalarPerVector, ck::index_t ABlockTransferDstScalarPerVector_K1, bool ABlockLdsAddExtraM, typename BBlockTransferThreadClusterLengths_K0_N_K1, typename BBlockTransferThreadClusterArrangeOrder, typename BBlockTransferSrcAccessOrder, ck::index_t BBlockTransferSrcVectorDim, ck::index_t BBlockTransferSrcScalarPerVector, ck::index_t BBlockTransferDstScalarPerVector_K1, bool BBlockLdsAddExtraN, index_t CShuffleMXdlPerWavePerShuffle, index_t CShuffleNXdlPerWavePerShuffle, typename CBlockTransferClusterLengths_MBlock_MPerBlock_NBlock_NPerBlock, index_t CBlockTransferScalarPerVector_NWaveNPerXdl, typename ComputeTypeA = InDataType, typename ComputeTypeB = ComputeTypeA, index_t MaxTransposeTransferSrcScalarPerVector = 1, index_t MaxTransposeTransferDstScalarPerVector = 1>
|
staticconstexpr |
Initial value:
=
TransformConvBwdWeightToGemm<NDimSpatial,
MPerBlock,
NPerBlock,
K0PerBlock,
ConvBackwardWeightSpecialization>{}
Definition tensor_operation/operator_transform/transform_conv_bwd_weight_to_gemm.hpp:24
static constexpr auto K1Number
Definition device_grouped_conv_bwd_weight_multiple_d_xdl_cshuffle.hpp:197
◆ ElePerBank
template<ck::index_t NDimSpatial, typename InLayout, typename WeiLayout, typename OutLayout, typename InDataType, typename WeiDataType, typename OutDataType, typename AccDataType, typename InElementwiseOperation, typename WeiElementwiseOperation, typename OutElementwiseOperation, ConvolutionBackwardWeightSpecialization ConvBackwardWeightSpecialization, ck::index_t BlockSize, ck::index_t MPerBlock, ck::index_t NPerBlock, ck::index_t K0PerBlock, ck::index_t K1, ck::index_t MPerXDL, ck::index_t NPerXDL, ck::index_t MXdlPerWave, ck::index_t NXdlPerWave, typename ABlockTransferThreadClusterLengths_K0_M_K1, typename ABlockTransferThreadClusterArrangeOrder, typename ABlockTransferSrcAccessOrder, ck::index_t ABlockTransferSrcVectorDim, ck::index_t ABlockTransferSrcScalarPerVector, ck::index_t ABlockTransferDstScalarPerVector_K1, bool ABlockLdsAddExtraM, typename BBlockTransferThreadClusterLengths_K0_N_K1, typename BBlockTransferThreadClusterArrangeOrder, typename BBlockTransferSrcAccessOrder, ck::index_t BBlockTransferSrcVectorDim, ck::index_t BBlockTransferSrcScalarPerVector, ck::index_t BBlockTransferDstScalarPerVector_K1, bool BBlockLdsAddExtraN, index_t CShuffleMXdlPerWavePerShuffle, index_t CShuffleNXdlPerWavePerShuffle, typename CBlockTransferClusterLengths_MBlock_MPerBlock_NBlock_NPerBlock, index_t CBlockTransferScalarPerVector_NWaveNPerXdl, typename ComputeTypeA = InDataType, typename ComputeTypeB = ComputeTypeA, index_t MaxTransposeTransferSrcScalarPerVector = 1, index_t MaxTransposeTransferDstScalarPerVector = 1>
|
staticconstexpr |
◆ I0
template<ck::index_t NDimSpatial, typename InLayout, typename WeiLayout, typename OutLayout, typename InDataType, typename WeiDataType, typename OutDataType, typename AccDataType, typename InElementwiseOperation, typename WeiElementwiseOperation, typename OutElementwiseOperation, ConvolutionBackwardWeightSpecialization ConvBackwardWeightSpecialization, ck::index_t BlockSize, ck::index_t MPerBlock, ck::index_t NPerBlock, ck::index_t K0PerBlock, ck::index_t K1, ck::index_t MPerXDL, ck::index_t NPerXDL, ck::index_t MXdlPerWave, ck::index_t NXdlPerWave, typename ABlockTransferThreadClusterLengths_K0_M_K1, typename ABlockTransferThreadClusterArrangeOrder, typename ABlockTransferSrcAccessOrder, ck::index_t ABlockTransferSrcVectorDim, ck::index_t ABlockTransferSrcScalarPerVector, ck::index_t ABlockTransferDstScalarPerVector_K1, bool ABlockLdsAddExtraM, typename BBlockTransferThreadClusterLengths_K0_N_K1, typename BBlockTransferThreadClusterArrangeOrder, typename BBlockTransferSrcAccessOrder, ck::index_t BBlockTransferSrcVectorDim, ck::index_t BBlockTransferSrcScalarPerVector, ck::index_t BBlockTransferDstScalarPerVector_K1, bool BBlockLdsAddExtraN, index_t CShuffleMXdlPerWavePerShuffle, index_t CShuffleNXdlPerWavePerShuffle, typename CBlockTransferClusterLengths_MBlock_MPerBlock_NBlock_NPerBlock, index_t CBlockTransferScalarPerVector_NWaveNPerXdl, typename ComputeTypeA = InDataType, typename ComputeTypeB = ComputeTypeA, index_t MaxTransposeTransferSrcScalarPerVector = 1, index_t MaxTransposeTransferDstScalarPerVector = 1>
|
staticconstexpr |
◆ I1
template<ck::index_t NDimSpatial, typename InLayout, typename WeiLayout, typename OutLayout, typename InDataType, typename WeiDataType, typename OutDataType, typename AccDataType, typename InElementwiseOperation, typename WeiElementwiseOperation, typename OutElementwiseOperation, ConvolutionBackwardWeightSpecialization ConvBackwardWeightSpecialization, ck::index_t BlockSize, ck::index_t MPerBlock, ck::index_t NPerBlock, ck::index_t K0PerBlock, ck::index_t K1, ck::index_t MPerXDL, ck::index_t NPerXDL, ck::index_t MXdlPerWave, ck::index_t NXdlPerWave, typename ABlockTransferThreadClusterLengths_K0_M_K1, typename ABlockTransferThreadClusterArrangeOrder, typename ABlockTransferSrcAccessOrder, ck::index_t ABlockTransferSrcVectorDim, ck::index_t ABlockTransferSrcScalarPerVector, ck::index_t ABlockTransferDstScalarPerVector_K1, bool ABlockLdsAddExtraM, typename BBlockTransferThreadClusterLengths_K0_N_K1, typename BBlockTransferThreadClusterArrangeOrder, typename BBlockTransferSrcAccessOrder, ck::index_t BBlockTransferSrcVectorDim, ck::index_t BBlockTransferSrcScalarPerVector, ck::index_t BBlockTransferDstScalarPerVector_K1, bool BBlockLdsAddExtraN, index_t CShuffleMXdlPerWavePerShuffle, index_t CShuffleNXdlPerWavePerShuffle, typename CBlockTransferClusterLengths_MBlock_MPerBlock_NBlock_NPerBlock, index_t CBlockTransferScalarPerVector_NWaveNPerXdl, typename ComputeTypeA = InDataType, typename ComputeTypeB = ComputeTypeA, index_t MaxTransposeTransferSrcScalarPerVector = 1, index_t MaxTransposeTransferDstScalarPerVector = 1>
|
staticconstexpr |
◆ I2
template<ck::index_t NDimSpatial, typename InLayout, typename WeiLayout, typename OutLayout, typename InDataType, typename WeiDataType, typename OutDataType, typename AccDataType, typename InElementwiseOperation, typename WeiElementwiseOperation, typename OutElementwiseOperation, ConvolutionBackwardWeightSpecialization ConvBackwardWeightSpecialization, ck::index_t BlockSize, ck::index_t MPerBlock, ck::index_t NPerBlock, ck::index_t K0PerBlock, ck::index_t K1, ck::index_t MPerXDL, ck::index_t NPerXDL, ck::index_t MXdlPerWave, ck::index_t NXdlPerWave, typename ABlockTransferThreadClusterLengths_K0_M_K1, typename ABlockTransferThreadClusterArrangeOrder, typename ABlockTransferSrcAccessOrder, ck::index_t ABlockTransferSrcVectorDim, ck::index_t ABlockTransferSrcScalarPerVector, ck::index_t ABlockTransferDstScalarPerVector_K1, bool ABlockLdsAddExtraM, typename BBlockTransferThreadClusterLengths_K0_N_K1, typename BBlockTransferThreadClusterArrangeOrder, typename BBlockTransferSrcAccessOrder, ck::index_t BBlockTransferSrcVectorDim, ck::index_t BBlockTransferSrcScalarPerVector, ck::index_t BBlockTransferDstScalarPerVector_K1, bool BBlockLdsAddExtraN, index_t CShuffleMXdlPerWavePerShuffle, index_t CShuffleNXdlPerWavePerShuffle, typename CBlockTransferClusterLengths_MBlock_MPerBlock_NBlock_NPerBlock, index_t CBlockTransferScalarPerVector_NWaveNPerXdl, typename ComputeTypeA = InDataType, typename ComputeTypeB = ComputeTypeA, index_t MaxTransposeTransferSrcScalarPerVector = 1, index_t MaxTransposeTransferDstScalarPerVector = 1>
|
staticconstexpr |
◆ I3
template<ck::index_t NDimSpatial, typename InLayout, typename WeiLayout, typename OutLayout, typename InDataType, typename WeiDataType, typename OutDataType, typename AccDataType, typename InElementwiseOperation, typename WeiElementwiseOperation, typename OutElementwiseOperation, ConvolutionBackwardWeightSpecialization ConvBackwardWeightSpecialization, ck::index_t BlockSize, ck::index_t MPerBlock, ck::index_t NPerBlock, ck::index_t K0PerBlock, ck::index_t K1, ck::index_t MPerXDL, ck::index_t NPerXDL, ck::index_t MXdlPerWave, ck::index_t NXdlPerWave, typename ABlockTransferThreadClusterLengths_K0_M_K1, typename ABlockTransferThreadClusterArrangeOrder, typename ABlockTransferSrcAccessOrder, ck::index_t ABlockTransferSrcVectorDim, ck::index_t ABlockTransferSrcScalarPerVector, ck::index_t ABlockTransferDstScalarPerVector_K1, bool ABlockLdsAddExtraM, typename BBlockTransferThreadClusterLengths_K0_N_K1, typename BBlockTransferThreadClusterArrangeOrder, typename BBlockTransferSrcAccessOrder, ck::index_t BBlockTransferSrcVectorDim, ck::index_t BBlockTransferSrcScalarPerVector, ck::index_t BBlockTransferDstScalarPerVector_K1, bool BBlockLdsAddExtraN, index_t CShuffleMXdlPerWavePerShuffle, index_t CShuffleNXdlPerWavePerShuffle, typename CBlockTransferClusterLengths_MBlock_MPerBlock_NBlock_NPerBlock, index_t CBlockTransferScalarPerVector_NWaveNPerXdl, typename ComputeTypeA = InDataType, typename ComputeTypeB = ComputeTypeA, index_t MaxTransposeTransferSrcScalarPerVector = 1, index_t MaxTransposeTransferDstScalarPerVector = 1>
|
staticconstexpr |
◆ I4
template<ck::index_t NDimSpatial, typename InLayout, typename WeiLayout, typename OutLayout, typename InDataType, typename WeiDataType, typename OutDataType, typename AccDataType, typename InElementwiseOperation, typename WeiElementwiseOperation, typename OutElementwiseOperation, ConvolutionBackwardWeightSpecialization ConvBackwardWeightSpecialization, ck::index_t BlockSize, ck::index_t MPerBlock, ck::index_t NPerBlock, ck::index_t K0PerBlock, ck::index_t K1, ck::index_t MPerXDL, ck::index_t NPerXDL, ck::index_t MXdlPerWave, ck::index_t NXdlPerWave, typename ABlockTransferThreadClusterLengths_K0_M_K1, typename ABlockTransferThreadClusterArrangeOrder, typename ABlockTransferSrcAccessOrder, ck::index_t ABlockTransferSrcVectorDim, ck::index_t ABlockTransferSrcScalarPerVector, ck::index_t ABlockTransferDstScalarPerVector_K1, bool ABlockLdsAddExtraM, typename BBlockTransferThreadClusterLengths_K0_N_K1, typename BBlockTransferThreadClusterArrangeOrder, typename BBlockTransferSrcAccessOrder, ck::index_t BBlockTransferSrcVectorDim, ck::index_t BBlockTransferSrcScalarPerVector, ck::index_t BBlockTransferDstScalarPerVector_K1, bool BBlockLdsAddExtraN, index_t CShuffleMXdlPerWavePerShuffle, index_t CShuffleNXdlPerWavePerShuffle, typename CBlockTransferClusterLengths_MBlock_MPerBlock_NBlock_NPerBlock, index_t CBlockTransferScalarPerVector_NWaveNPerXdl, typename ComputeTypeA = InDataType, typename ComputeTypeB = ComputeTypeA, index_t MaxTransposeTransferSrcScalarPerVector = 1, index_t MaxTransposeTransferDstScalarPerVector = 1>
|
staticconstexpr |
◆ I5
template<ck::index_t NDimSpatial, typename InLayout, typename WeiLayout, typename OutLayout, typename InDataType, typename WeiDataType, typename OutDataType, typename AccDataType, typename InElementwiseOperation, typename WeiElementwiseOperation, typename OutElementwiseOperation, ConvolutionBackwardWeightSpecialization ConvBackwardWeightSpecialization, ck::index_t BlockSize, ck::index_t MPerBlock, ck::index_t NPerBlock, ck::index_t K0PerBlock, ck::index_t K1, ck::index_t MPerXDL, ck::index_t NPerXDL, ck::index_t MXdlPerWave, ck::index_t NXdlPerWave, typename ABlockTransferThreadClusterLengths_K0_M_K1, typename ABlockTransferThreadClusterArrangeOrder, typename ABlockTransferSrcAccessOrder, ck::index_t ABlockTransferSrcVectorDim, ck::index_t ABlockTransferSrcScalarPerVector, ck::index_t ABlockTransferDstScalarPerVector_K1, bool ABlockLdsAddExtraM, typename BBlockTransferThreadClusterLengths_K0_N_K1, typename BBlockTransferThreadClusterArrangeOrder, typename BBlockTransferSrcAccessOrder, ck::index_t BBlockTransferSrcVectorDim, ck::index_t BBlockTransferSrcScalarPerVector, ck::index_t BBlockTransferDstScalarPerVector_K1, bool BBlockLdsAddExtraN, index_t CShuffleMXdlPerWavePerShuffle, index_t CShuffleNXdlPerWavePerShuffle, typename CBlockTransferClusterLengths_MBlock_MPerBlock_NBlock_NPerBlock, index_t CBlockTransferScalarPerVector_NWaveNPerXdl, typename ComputeTypeA = InDataType, typename ComputeTypeB = ComputeTypeA, index_t MaxTransposeTransferSrcScalarPerVector = 1, index_t MaxTransposeTransferDstScalarPerVector = 1>
|
staticconstexpr |
◆ K1Number
template<ck::index_t NDimSpatial, typename InLayout, typename WeiLayout, typename OutLayout, typename InDataType, typename WeiDataType, typename OutDataType, typename AccDataType, typename InElementwiseOperation, typename WeiElementwiseOperation, typename OutElementwiseOperation, ConvolutionBackwardWeightSpecialization ConvBackwardWeightSpecialization, ck::index_t BlockSize, ck::index_t MPerBlock, ck::index_t NPerBlock, ck::index_t K0PerBlock, ck::index_t K1, ck::index_t MPerXDL, ck::index_t NPerXDL, ck::index_t MXdlPerWave, ck::index_t NXdlPerWave, typename ABlockTransferThreadClusterLengths_K0_M_K1, typename ABlockTransferThreadClusterArrangeOrder, typename ABlockTransferSrcAccessOrder, ck::index_t ABlockTransferSrcVectorDim, ck::index_t ABlockTransferSrcScalarPerVector, ck::index_t ABlockTransferDstScalarPerVector_K1, bool ABlockLdsAddExtraM, typename BBlockTransferThreadClusterLengths_K0_N_K1, typename BBlockTransferThreadClusterArrangeOrder, typename BBlockTransferSrcAccessOrder, ck::index_t BBlockTransferSrcVectorDim, ck::index_t BBlockTransferSrcScalarPerVector, ck::index_t BBlockTransferDstScalarPerVector_K1, bool BBlockLdsAddExtraN, index_t CShuffleMXdlPerWavePerShuffle, index_t CShuffleNXdlPerWavePerShuffle, typename CBlockTransferClusterLengths_MBlock_MPerBlock_NBlock_NPerBlock, index_t CBlockTransferScalarPerVector_NWaveNPerXdl, typename ComputeTypeA = InDataType, typename ComputeTypeB = ComputeTypeA, index_t MaxTransposeTransferSrcScalarPerVector = 1, index_t MaxTransposeTransferDstScalarPerVector = 1>
|
staticconstexpr |
◆ NXdlPerWave32
template<ck::index_t NDimSpatial, typename InLayout, typename WeiLayout, typename OutLayout, typename InDataType, typename WeiDataType, typename OutDataType, typename AccDataType, typename InElementwiseOperation, typename WeiElementwiseOperation, typename OutElementwiseOperation, ConvolutionBackwardWeightSpecialization ConvBackwardWeightSpecialization, ck::index_t BlockSize, ck::index_t MPerBlock, ck::index_t NPerBlock, ck::index_t K0PerBlock, ck::index_t K1, ck::index_t MPerXDL, ck::index_t NPerXDL, ck::index_t MXdlPerWave, ck::index_t NXdlPerWave, typename ABlockTransferThreadClusterLengths_K0_M_K1, typename ABlockTransferThreadClusterArrangeOrder, typename ABlockTransferSrcAccessOrder, ck::index_t ABlockTransferSrcVectorDim, ck::index_t ABlockTransferSrcScalarPerVector, ck::index_t ABlockTransferDstScalarPerVector_K1, bool ABlockLdsAddExtraM, typename BBlockTransferThreadClusterLengths_K0_N_K1, typename BBlockTransferThreadClusterArrangeOrder, typename BBlockTransferSrcAccessOrder, ck::index_t BBlockTransferSrcVectorDim, ck::index_t BBlockTransferSrcScalarPerVector, ck::index_t BBlockTransferDstScalarPerVector_K1, bool BBlockLdsAddExtraN, index_t CShuffleMXdlPerWavePerShuffle, index_t CShuffleNXdlPerWavePerShuffle, typename CBlockTransferClusterLengths_MBlock_MPerBlock_NBlock_NPerBlock, index_t CBlockTransferScalarPerVector_NWaveNPerXdl, typename ComputeTypeA = InDataType, typename ComputeTypeB = ComputeTypeA, index_t MaxTransposeTransferSrcScalarPerVector = 1, index_t MaxTransposeTransferDstScalarPerVector = 1>
|
staticconstexpr |
◆ NXdlPerWave64
template<ck::index_t NDimSpatial, typename InLayout, typename WeiLayout, typename OutLayout, typename InDataType, typename WeiDataType, typename OutDataType, typename AccDataType, typename InElementwiseOperation, typename WeiElementwiseOperation, typename OutElementwiseOperation, ConvolutionBackwardWeightSpecialization ConvBackwardWeightSpecialization, ck::index_t BlockSize, ck::index_t MPerBlock, ck::index_t NPerBlock, ck::index_t K0PerBlock, ck::index_t K1, ck::index_t MPerXDL, ck::index_t NPerXDL, ck::index_t MXdlPerWave, ck::index_t NXdlPerWave, typename ABlockTransferThreadClusterLengths_K0_M_K1, typename ABlockTransferThreadClusterArrangeOrder, typename ABlockTransferSrcAccessOrder, ck::index_t ABlockTransferSrcVectorDim, ck::index_t ABlockTransferSrcScalarPerVector, ck::index_t ABlockTransferDstScalarPerVector_K1, bool ABlockLdsAddExtraM, typename BBlockTransferThreadClusterLengths_K0_N_K1, typename BBlockTransferThreadClusterArrangeOrder, typename BBlockTransferSrcAccessOrder, ck::index_t BBlockTransferSrcVectorDim, ck::index_t BBlockTransferSrcScalarPerVector, ck::index_t BBlockTransferDstScalarPerVector_K1, bool BBlockLdsAddExtraN, index_t CShuffleMXdlPerWavePerShuffle, index_t CShuffleNXdlPerWavePerShuffle, typename CBlockTransferClusterLengths_MBlock_MPerBlock_NBlock_NPerBlock, index_t CBlockTransferScalarPerVector_NWaveNPerXdl, typename ComputeTypeA = InDataType, typename ComputeTypeB = ComputeTypeA, index_t MaxTransposeTransferSrcScalarPerVector = 1, index_t MaxTransposeTransferDstScalarPerVector = 1>
|
staticconstexpr |
◆ TransposeTransferDstScalarPerVectorAligned
template<ck::index_t NDimSpatial, typename InLayout, typename WeiLayout, typename OutLayout, typename InDataType, typename WeiDataType, typename OutDataType, typename AccDataType, typename InElementwiseOperation, typename WeiElementwiseOperation, typename OutElementwiseOperation, ConvolutionBackwardWeightSpecialization ConvBackwardWeightSpecialization, ck::index_t BlockSize, ck::index_t MPerBlock, ck::index_t NPerBlock, ck::index_t K0PerBlock, ck::index_t K1, ck::index_t MPerXDL, ck::index_t NPerXDL, ck::index_t MXdlPerWave, ck::index_t NXdlPerWave, typename ABlockTransferThreadClusterLengths_K0_M_K1, typename ABlockTransferThreadClusterArrangeOrder, typename ABlockTransferSrcAccessOrder, ck::index_t ABlockTransferSrcVectorDim, ck::index_t ABlockTransferSrcScalarPerVector, ck::index_t ABlockTransferDstScalarPerVector_K1, bool ABlockLdsAddExtraM, typename BBlockTransferThreadClusterLengths_K0_N_K1, typename BBlockTransferThreadClusterArrangeOrder, typename BBlockTransferSrcAccessOrder, ck::index_t BBlockTransferSrcVectorDim, ck::index_t BBlockTransferSrcScalarPerVector, ck::index_t BBlockTransferDstScalarPerVector_K1, bool BBlockLdsAddExtraN, index_t CShuffleMXdlPerWavePerShuffle, index_t CShuffleNXdlPerWavePerShuffle, typename CBlockTransferClusterLengths_MBlock_MPerBlock_NBlock_NPerBlock, index_t CBlockTransferScalarPerVector_NWaveNPerXdl, typename ComputeTypeA = InDataType, typename ComputeTypeB = ComputeTypeA, index_t MaxTransposeTransferSrcScalarPerVector = 1, index_t MaxTransposeTransferDstScalarPerVector = 1>
|
staticconstexpr |
Initial value:
=
std::min(MPerBlock / ClusterLengthMPerBlock, MaxTransposeTransferDstScalarPerVector)
◆ TransposeTransferSrcScalarPerVectorAligned
template<ck::index_t NDimSpatial, typename InLayout, typename WeiLayout, typename OutLayout, typename InDataType, typename WeiDataType, typename OutDataType, typename AccDataType, typename InElementwiseOperation, typename WeiElementwiseOperation, typename OutElementwiseOperation, ConvolutionBackwardWeightSpecialization ConvBackwardWeightSpecialization, ck::index_t BlockSize, ck::index_t MPerBlock, ck::index_t NPerBlock, ck::index_t K0PerBlock, ck::index_t K1, ck::index_t MPerXDL, ck::index_t NPerXDL, ck::index_t MXdlPerWave, ck::index_t NXdlPerWave, typename ABlockTransferThreadClusterLengths_K0_M_K1, typename ABlockTransferThreadClusterArrangeOrder, typename ABlockTransferSrcAccessOrder, ck::index_t ABlockTransferSrcVectorDim, ck::index_t ABlockTransferSrcScalarPerVector, ck::index_t ABlockTransferDstScalarPerVector_K1, bool ABlockLdsAddExtraM, typename BBlockTransferThreadClusterLengths_K0_N_K1, typename BBlockTransferThreadClusterArrangeOrder, typename BBlockTransferSrcAccessOrder, ck::index_t BBlockTransferSrcVectorDim, ck::index_t BBlockTransferSrcScalarPerVector, ck::index_t BBlockTransferDstScalarPerVector_K1, bool BBlockLdsAddExtraN, index_t CShuffleMXdlPerWavePerShuffle, index_t CShuffleNXdlPerWavePerShuffle, typename CBlockTransferClusterLengths_MBlock_MPerBlock_NBlock_NPerBlock, index_t CBlockTransferScalarPerVector_NWaveNPerXdl, typename ComputeTypeA = InDataType, typename ComputeTypeB = ComputeTypeA, index_t MaxTransposeTransferSrcScalarPerVector = 1, index_t MaxTransposeTransferDstScalarPerVector = 1>
|
staticconstexpr |
Initial value:
=
std::min(NPerBlock / ClusterLengthNPerBlock, MaxTransposeTransferSrcScalarPerVector)
The documentation for this struct was generated from the following file: