DeviceGroupedConvBwdWeight_Explicit_Xdl< NDimSpatial, InLayout, WeiLayout, OutLayout, InDataType, WeiDataType, OutDataType, InElementwiseOperation, WeiElementwiseOperation, OutElementwiseOperation, DeviceGemmV3Op > Struct Template Reference

DeviceGroupedConvBwdWeight_Explicit_Xdl&lt; NDimSpatial, InLayout, WeiLayout, OutLayout, InDataType, WeiDataType, OutDataType, InElementwiseOperation, WeiElementwiseOperation, OutElementwiseOperation, DeviceGemmV3Op &gt; Struct Template Reference#

Composable Kernel: ck::tensor_operation::device::DeviceGroupedConvBwdWeight_Explicit_Xdl< NDimSpatial, InLayout, WeiLayout, OutLayout, InDataType, WeiDataType, OutDataType, InElementwiseOperation, WeiElementwiseOperation, OutElementwiseOperation, DeviceGemmV3Op > Struct Template Reference
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 >:
ck::tensor_operation::device::DeviceGroupedConvBwdWeight< NDimSpatial, InLayout, WeiLayout, OutLayout, InDataType, WeiDataType, OutDataType, InElementwiseOperation, WeiElementwiseOperation, OutElementwiseOperation, ComputeTypeA, ComputeTypeB > ck::tensor_operation::device::BaseOperator

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< BaseArgumentMakeArgumentPointer (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< BaseInvokerMakeInvokerPointer () 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
BaseOperatoroperator= (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>
auto ck::tensor_operation::device::DeviceGroupedConvBwdWeight_Explicit_Xdl< NDimSpatial, InLayout, WeiLayout, OutLayout, InDataType, WeiDataType, OutDataType, InElementwiseOperation, WeiElementwiseOperation, OutElementwiseOperation, DeviceGemmV3Op >::GetElementwiseCGridDesc ( index_t merged_filter_dims)
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>
std::string ck::tensor_operation::device::DeviceGroupedConvBwdWeight_Explicit_Xdl< NDimSpatial, InLayout, WeiLayout, OutLayout, InDataType, WeiDataType, OutDataType, InElementwiseOperation, WeiElementwiseOperation, OutElementwiseOperation, DeviceGemmV3Op >::GetTypeString ( ) const
inlineoverridevirtual

◆ 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>
size_t ck::tensor_operation::device::DeviceGroupedConvBwdWeight_Explicit_Xdl< NDimSpatial, InLayout, WeiLayout, OutLayout, InDataType, WeiDataType, OutDataType, InElementwiseOperation, WeiElementwiseOperation, OutElementwiseOperation, DeviceGemmV3Op >::GetWorkSpaceSize ( const BaseArgument * p_arg) const
inlineoverridevirtual

◆ 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>
bool ck::tensor_operation::device::DeviceGroupedConvBwdWeight_Explicit_Xdl< NDimSpatial, InLayout, WeiLayout, OutLayout, InDataType, WeiDataType, OutDataType, InElementwiseOperation, WeiElementwiseOperation, OutElementwiseOperation, DeviceGemmV3Op >::IsSupportedArgument ( const Argument & arg)
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>
bool ck::tensor_operation::device::DeviceGroupedConvBwdWeight_Explicit_Xdl< NDimSpatial, InLayout, WeiLayout, OutLayout, InDataType, WeiDataType, OutDataType, InElementwiseOperation, WeiElementwiseOperation, OutElementwiseOperation, DeviceGemmV3Op >::IsSupportedArgument ( const BaseArgument * p_arg)
inlineoverridevirtual

◆ 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>
constexpr bool ck::tensor_operation::device::DeviceGroupedConvBwdWeight_Explicit_Xdl< NDimSpatial, InLayout, WeiLayout, OutLayout, InDataType, WeiDataType, OutDataType, InElementwiseOperation, WeiElementwiseOperation, OutElementwiseOperation, DeviceGemmV3Op >::IsValidCompilationParameter ( )
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>
auto ck::tensor_operation::device::DeviceGroupedConvBwdWeight_Explicit_Xdl< NDimSpatial, InLayout, WeiLayout, OutLayout, InDataType, WeiDataType, OutDataType, InElementwiseOperation, WeiElementwiseOperation, OutElementwiseOperation, DeviceGemmV3Op >::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 )
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>
std::unique_ptr< BaseArgument > ck::tensor_operation::device::DeviceGroupedConvBwdWeight_Explicit_Xdl< NDimSpatial, InLayout, WeiLayout, OutLayout, InDataType, WeiDataType, OutDataType, InElementwiseOperation, WeiElementwiseOperation, OutElementwiseOperation, DeviceGemmV3Op >::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 )
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>
auto ck::tensor_operation::device::DeviceGroupedConvBwdWeight_Explicit_Xdl< NDimSpatial, InLayout, WeiLayout, OutLayout, InDataType, WeiDataType, OutDataType, InElementwiseOperation, WeiElementwiseOperation, OutElementwiseOperation, DeviceGemmV3Op >::MakeInvoker ( )
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>
std::unique_ptr< BaseInvoker > ck::tensor_operation::device::DeviceGroupedConvBwdWeight_Explicit_Xdl< NDimSpatial, InLayout, WeiLayout, OutLayout, InDataType, WeiDataType, OutDataType, InElementwiseOperation, WeiElementwiseOperation, OutElementwiseOperation, DeviceGemmV3Op >::MakeInvokerPointer ( )
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>
void ck::tensor_operation::device::DeviceGroupedConvBwdWeight_Explicit_Xdl< NDimSpatial, InLayout, WeiLayout, OutLayout, InDataType, WeiDataType, OutDataType, InElementwiseOperation, WeiElementwiseOperation, OutElementwiseOperation, DeviceGemmV3Op >::SetWorkSpacePointer ( BaseArgument * p_arg,
void * p_workspace,
const StreamConfig & = StreamConfig{} ) const
inlineoverridevirtual

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>
index_t ck::tensor_operation::device::DeviceGroupedConvBwdWeight_Explicit_Xdl< NDimSpatial, InLayout, WeiLayout, OutLayout, InDataType, WeiDataType, OutDataType, InElementwiseOperation, WeiElementwiseOperation, OutElementwiseOperation, DeviceGemmV3Op >::ElementwiseBlockSize = 256
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>
index_t ck::tensor_operation::device::DeviceGroupedConvBwdWeight_Explicit_Xdl< NDimSpatial, InLayout, WeiLayout, OutLayout, InDataType, WeiDataType, OutDataType, InElementwiseOperation, WeiElementwiseOperation, OutElementwiseOperation, DeviceGemmV3Op >::ElemsPerBlock = 256
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>
auto ck::tensor_operation::device::DeviceGroupedConvBwdWeight_Explicit_Xdl< NDimSpatial, InLayout, WeiLayout, OutLayout, InDataType, WeiDataType, OutDataType, InElementwiseOperation, WeiElementwiseOperation, OutElementwiseOperation, DeviceGemmV3Op >::I0 = Number<0>{}
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>
auto ck::tensor_operation::device::DeviceGroupedConvBwdWeight_Explicit_Xdl< NDimSpatial, InLayout, WeiLayout, OutLayout, InDataType, WeiDataType, OutDataType, InElementwiseOperation, WeiElementwiseOperation, OutElementwiseOperation, DeviceGemmV3Op >::I1 = Number<1>{}
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>
auto ck::tensor_operation::device::DeviceGroupedConvBwdWeight_Explicit_Xdl< NDimSpatial, InLayout, WeiLayout, OutLayout, InDataType, WeiDataType, OutDataType, InElementwiseOperation, WeiElementwiseOperation, OutElementwiseOperation, DeviceGemmV3Op >::I2 = Number<2>{}
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>
bool ck::tensor_operation::device::DeviceGroupedConvBwdWeight_Explicit_Xdl< NDimSpatial, InLayout, WeiLayout, OutLayout, InDataType, WeiDataType, OutDataType, InElementwiseOperation, WeiElementwiseOperation, OutElementwiseOperation, DeviceGemmV3Op >::IsTwoStageNeeded
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: