DeviceGroupedConvBwdWeight_Explicit_Xdl< NDimSpatial, InLayout, WeiLayout, OutLayout, InDataType, WeiDataType, OutDataType, InElementwiseOperation, WeiElementwiseOperation, OutElementwiseOperation, DeviceGemmV3Op > 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_Explicit_Xdl< NDimSpatial, InLayout, WeiLayout, OutLayout, InDataType, WeiDataType, OutDataType, InElementwiseOperation, WeiElementwiseOperation, OutElementwiseOperation, DeviceGemmV3Op > Struct Template Reference
#include <device_grouped_conv_bwd_weight_explicit_xdl.hpp>
Inheritance diagram for ck::tensor_operation::device::DeviceGroupedConvBwdWeight_Explicit_Xdl< NDimSpatial, InLayout, WeiLayout, OutLayout, InDataType, WeiDataType, OutDataType, InElementwiseOperation, WeiElementwiseOperation, OutElementwiseOperation, DeviceGemmV3Op >:
Classes | |
| struct | Argument |
| struct | Invoker |
Public Types | |
| using | DeviceOp = DeviceGroupedConvBwdWeight_Explicit_Xdl |
| using | TwoStageIntermediateType = typename DeviceGemmV3Op::CDataType_ |
| using | CElementwiseGridDesc = remove_cvref_t<decltype(GetElementwiseCGridDesc(I1))> |
| using | Block2TileMapElementwise = BlockToCTileMap_M00_N0_M01Adapt<1, ElemsPerBlock> |
| using | GridwiseElementwiseCast |
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 | |
| static auto | GetElementwiseCGridDesc (index_t merged_filter_dims) |
| 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 constexpr auto | I0 = Number<0>{} |
| static constexpr auto | I1 = Number<1>{} |
| static constexpr auto | I2 = Number<2>{} |
| static constexpr bool | IsTwoStageNeeded |
| static constexpr index_t | ElementwiseBlockSize = 256 |
| static constexpr index_t | ElemsPerBlock = 256 |
Member Typedef Documentation
◆ Block2TileMapElementwise
template<ck::index_t NDimSpatial, typename InLayout, typename WeiLayout, typename OutLayout, typename InDataType, typename WeiDataType, typename OutDataType, typename InElementwiseOperation, typename WeiElementwiseOperation, typename OutElementwiseOperation, typename DeviceGemmV3Op>
| using ck::tensor_operation::device::DeviceGroupedConvBwdWeight_Explicit_Xdl< NDimSpatial, InLayout, WeiLayout, OutLayout, InDataType, WeiDataType, OutDataType, InElementwiseOperation, WeiElementwiseOperation, OutElementwiseOperation, DeviceGemmV3Op >::Block2TileMapElementwise = BlockToCTileMap_M00_N0_M01Adapt<1, ElemsPerBlock> |
◆ CElementwiseGridDesc
template<ck::index_t NDimSpatial, typename InLayout, typename WeiLayout, typename OutLayout, typename InDataType, typename WeiDataType, typename OutDataType, typename InElementwiseOperation, typename WeiElementwiseOperation, typename OutElementwiseOperation, typename DeviceGemmV3Op>
| using ck::tensor_operation::device::DeviceGroupedConvBwdWeight_Explicit_Xdl< NDimSpatial, InLayout, WeiLayout, OutLayout, InDataType, WeiDataType, OutDataType, InElementwiseOperation, WeiElementwiseOperation, OutElementwiseOperation, DeviceGemmV3Op >::CElementwiseGridDesc = remove_cvref_t<decltype(GetElementwiseCGridDesc(I1))> |
◆ DeviceOp
template<ck::index_t NDimSpatial, typename InLayout, typename WeiLayout, typename OutLayout, typename InDataType, typename WeiDataType, typename OutDataType, typename InElementwiseOperation, typename WeiElementwiseOperation, typename OutElementwiseOperation, typename DeviceGemmV3Op>
| using ck::tensor_operation::device::DeviceGroupedConvBwdWeight_Explicit_Xdl< NDimSpatial, InLayout, WeiLayout, OutLayout, InDataType, WeiDataType, OutDataType, InElementwiseOperation, WeiElementwiseOperation, OutElementwiseOperation, DeviceGemmV3Op >::DeviceOp = DeviceGroupedConvBwdWeight_Explicit_Xdl |
◆ GridwiseElementwiseCast
template<ck::index_t NDimSpatial, typename InLayout, typename WeiLayout, typename OutLayout, typename InDataType, typename WeiDataType, typename OutDataType, typename InElementwiseOperation, typename WeiElementwiseOperation, typename OutElementwiseOperation, typename DeviceGemmV3Op>
| using ck::tensor_operation::device::DeviceGroupedConvBwdWeight_Explicit_Xdl< NDimSpatial, InLayout, WeiLayout, OutLayout, InDataType, WeiDataType, OutDataType, InElementwiseOperation, WeiElementwiseOperation, OutElementwiseOperation, DeviceGemmV3Op >::GridwiseElementwiseCast |
Initial value:
WeiElementwiseOperation,
I1,
I1,
I1,
I1>
Definition gridwise_elementwise_2d.hpp:278
Definition utility/sequence.hpp:43
Definition utility/tuple.hpp:117
static constexpr index_t ElemsPerBlock
Definition device_grouped_conv_bwd_weight_explicit_xdl.hpp:63
static constexpr index_t ElementwiseBlockSize
Definition device_grouped_conv_bwd_weight_explicit_xdl.hpp:62
static constexpr auto I1
Definition device_grouped_conv_bwd_weight_explicit_xdl.hpp:52
BlockToCTileMap_M00_N0_M01Adapt< 1, ElemsPerBlock > Block2TileMapElementwise
Definition device_grouped_conv_bwd_weight_explicit_xdl.hpp:80
◆ TwoStageIntermediateType
template<ck::index_t NDimSpatial, typename InLayout, typename WeiLayout, typename OutLayout, typename InDataType, typename WeiDataType, typename OutDataType, typename InElementwiseOperation, typename WeiElementwiseOperation, typename OutElementwiseOperation, typename DeviceGemmV3Op>
| using ck::tensor_operation::device::DeviceGroupedConvBwdWeight_Explicit_Xdl< NDimSpatial, InLayout, WeiLayout, OutLayout, InDataType, WeiDataType, OutDataType, InElementwiseOperation, WeiElementwiseOperation, OutElementwiseOperation, DeviceGemmV3Op >::TwoStageIntermediateType = typename DeviceGemmV3Op::CDataType_ |
Member Function Documentation
◆ GetElementwiseCGridDesc()
template<ck::index_t NDimSpatial, typename InLayout, typename WeiLayout, typename OutLayout, typename InDataType, typename WeiDataType, typename OutDataType, typename InElementwiseOperation, typename WeiElementwiseOperation, typename OutElementwiseOperation, typename DeviceGemmV3Op>
|
inlinestatic |
◆ GetTypeString()
template<ck::index_t NDimSpatial, typename InLayout, typename WeiLayout, typename OutLayout, typename InDataType, typename WeiDataType, typename OutDataType, typename InElementwiseOperation, typename WeiElementwiseOperation, typename OutElementwiseOperation, typename DeviceGemmV3Op>
|
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 InElementwiseOperation, typename WeiElementwiseOperation, typename OutElementwiseOperation, typename DeviceGemmV3Op>
|
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 InElementwiseOperation, typename WeiElementwiseOperation, typename OutElementwiseOperation, typename DeviceGemmV3Op>
|
inlinestatic |
◆ IsSupportedArgument() [2/2]
template<ck::index_t NDimSpatial, typename InLayout, typename WeiLayout, typename OutLayout, typename InDataType, typename WeiDataType, typename OutDataType, typename InElementwiseOperation, typename WeiElementwiseOperation, typename OutElementwiseOperation, typename DeviceGemmV3Op>
|
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 InElementwiseOperation, typename WeiElementwiseOperation, typename OutElementwiseOperation, typename DeviceGemmV3Op>
|
inlinestaticconstexpr |
◆ MakeArgument()
template<ck::index_t NDimSpatial, typename InLayout, typename WeiLayout, typename OutLayout, typename InDataType, typename WeiDataType, typename OutDataType, typename InElementwiseOperation, typename WeiElementwiseOperation, typename OutElementwiseOperation, typename DeviceGemmV3Op>
|
inlinestatic |
◆ MakeArgumentPointer()
template<ck::index_t NDimSpatial, typename InLayout, typename WeiLayout, typename OutLayout, typename InDataType, typename WeiDataType, typename OutDataType, typename InElementwiseOperation, typename WeiElementwiseOperation, typename OutElementwiseOperation, typename DeviceGemmV3Op>
|
inlineoverridevirtual |
◆ MakeInvoker()
template<ck::index_t NDimSpatial, typename InLayout, typename WeiLayout, typename OutLayout, typename InDataType, typename WeiDataType, typename OutDataType, typename InElementwiseOperation, typename WeiElementwiseOperation, typename OutElementwiseOperation, typename DeviceGemmV3Op>
|
inlinestatic |
◆ MakeInvokerPointer()
template<ck::index_t NDimSpatial, typename InLayout, typename WeiLayout, typename OutLayout, typename InDataType, typename WeiDataType, typename OutDataType, typename InElementwiseOperation, typename WeiElementwiseOperation, typename OutElementwiseOperation, typename DeviceGemmV3Op>
|
inlineoverridevirtual |
◆ SetWorkSpacePointer()
template<ck::index_t NDimSpatial, typename InLayout, typename WeiLayout, typename OutLayout, typename InDataType, typename WeiDataType, typename OutDataType, typename InElementwiseOperation, typename WeiElementwiseOperation, typename OutElementwiseOperation, typename DeviceGemmV3Op>
|
inlineoverridevirtual |
Reimplemented from ck::tensor_operation::device::BaseOperator.
Member Data Documentation
◆ ElementwiseBlockSize
template<ck::index_t NDimSpatial, typename InLayout, typename WeiLayout, typename OutLayout, typename InDataType, typename WeiDataType, typename OutDataType, typename InElementwiseOperation, typename WeiElementwiseOperation, typename OutElementwiseOperation, typename DeviceGemmV3Op>
|
staticconstexpr |
◆ ElemsPerBlock
template<ck::index_t NDimSpatial, typename InLayout, typename WeiLayout, typename OutLayout, typename InDataType, typename WeiDataType, typename OutDataType, typename InElementwiseOperation, typename WeiElementwiseOperation, typename OutElementwiseOperation, typename DeviceGemmV3Op>
|
staticconstexpr |
◆ I0
template<ck::index_t NDimSpatial, typename InLayout, typename WeiLayout, typename OutLayout, typename InDataType, typename WeiDataType, typename OutDataType, typename InElementwiseOperation, typename WeiElementwiseOperation, typename OutElementwiseOperation, typename DeviceGemmV3Op>
|
staticconstexpr |
◆ I1
template<ck::index_t NDimSpatial, typename InLayout, typename WeiLayout, typename OutLayout, typename InDataType, typename WeiDataType, typename OutDataType, typename InElementwiseOperation, typename WeiElementwiseOperation, typename OutElementwiseOperation, typename DeviceGemmV3Op>
|
staticconstexpr |
◆ I2
template<ck::index_t NDimSpatial, typename InLayout, typename WeiLayout, typename OutLayout, typename InDataType, typename WeiDataType, typename OutDataType, typename InElementwiseOperation, typename WeiElementwiseOperation, typename OutElementwiseOperation, typename DeviceGemmV3Op>
|
staticconstexpr |
◆ IsTwoStageNeeded
template<ck::index_t NDimSpatial, typename InLayout, typename WeiLayout, typename OutLayout, typename InDataType, typename WeiDataType, typename OutDataType, typename InElementwiseOperation, typename WeiElementwiseOperation, typename OutElementwiseOperation, typename DeviceGemmV3Op>
|
staticconstexpr |
Initial value:
=
sizeof(WeiDataType) % 4 != 0 &&
DeviceGemmV3Op::CDEShuffleBlockTransferScalarPerVectors_::At(I0) % 2 != 0
static constexpr auto I0
Definition device_grouped_conv_bwd_weight_explicit_xdl.hpp:51
The documentation for this struct was generated from the following file: