transform_conv_bwd_data_to_gemm_v1.hpp Source File#
transform_conv_bwd_data_to_gemm_v1.hpp
Go to the documentation of this file.
425 const IndexType do_right_transformer_start_idx = math::integer_divide_ceil((Di_ / 2) + InLeftPadD_ - ((Z_ - 1) * ConvDilationD_), ConvStrideD_);
426 const IndexType ho_right_transformer_start_idx = math::integer_divide_ceil((Hi_ / 2) + InLeftPadH_ - ((Y_ - 1) * ConvDilationH_), ConvStrideH_);
427 const IndexType wo_right_transformer_start_idx = math::integer_divide_ceil((Wi_ / 2) + InLeftPadW_ - ((X_ - 1) * ConvDilationW_), ConvStrideW_);
429 const IndexType do_left_transformer_end_idx = math::integer_divide_ceil((Di_ / 2 - 1) + InLeftPadD_, ConvStrideD_);
430 const IndexType ho_left_transformer_end_idx = math::integer_divide_ceil((Hi_ / 2 - 1) + InLeftPadH_, ConvStrideH_);
431 const IndexType wo_left_transformer_end_idx = math::integer_divide_ceil((Wi_ / 2 - 1) + InLeftPadW_, ConvStrideW_);
__host__ __device__ constexpr index_t gcd(index_t x, index_t y)
Definition utility/math.hpp:154
__host__ __device__ constexpr auto integer_divide_floor(X x, Y y)
Definition utility/math.hpp:66
__host__ __device__ constexpr auto integer_divide_ceil(X x, Y y)
Definition utility/math.hpp:72
__host__ __device__ constexpr auto PadTensorDescriptor(const TensorDesc &desc, const TileLengths &tile_lengths, DoPads)
Definition matrix_padder.hpp:19
ConvolutionBackwardDataSpecialization
Definition convolution_backward_data_specialization.hpp:11
Definition convolution_backward_data_specialization.hpp:7
Definition ck.hpp:268
__host__ __device__ constexpr auto make_pass_through_transform(const LowLength &low_length)
Definition multi_index_transform_helper.hpp:12
__host__ __device__ constexpr auto make_naive_tensor_descriptor(const Tuple< Lengths... > &lengths, const Tuple< Strides... > &strides)
Definition tensor_descriptor_helper.hpp:49
__host__ __device__ constexpr auto make_slice_transform(const LowLength &low_length, const SliceBegin &slice_begin, const SliceEnd &slice_end)
Definition multi_index_transform_helper.hpp:163
__host__ __device__ constexpr auto make_freeze_transform(const LowerIndex &low_idx)
Definition multi_index_transform_helper.hpp:151
__host__ __device__ constexpr auto make_pad_transform(const LowLength &low_length, const LeftPad &left_pad, const RightPad &right_pad, integral_constant< bool, SkipIsValidCheck >=integral_constant< bool, false >{})
Definition multi_index_transform_helper.hpp:19
__host__ __device__ constexpr auto make_embed_transform(const UpLengths &up_lengths, const Coefficients &coefficients)
Definition multi_index_transform_helper.hpp:48
__host__ __device__ constexpr auto make_merge_transform(const LowLengths &low_lengths)
Definition multi_index_transform_helper.hpp:55
__host__ __device__ constexpr auto make_naive_tensor_descriptor_packed(const Tuple< Lengths... > &lengths)
Definition tensor_descriptor_helper.hpp:101
__host__ __device__ constexpr auto make_conv_bwd_data_out_transform(index_t N, index_t Ho, index_t Wo, index_t K, index_t YDot, index_t XDot, index_t HTilde, index_t WTilde, index_t ConvDilationH, index_t ConvDilationW, index_t HTildeSlice, index_t WTildeSlice, index_t YDotSlice, index_t XDotSlice, index_t IHTildeSliceBegin, index_t IWTildeSliceBegin, index_t GcdStrideDilationH, index_t GcdStrideDilationW, index_t K0, index_t K1, index_t MPerBlock, index_t GemmKPerBlock)
Definition multi_index_transform_helper.hpp:97
__host__ __device__ constexpr auto make_tuple(Xs &&... xs)
Definition utility/tuple.hpp:211
__host__ __device__ constexpr auto transform_tensor_descriptor(const OldTensorDescriptor &old_tensor_desc, const NewTransforms &new_transforms, NewLowerDimensionOldVisibleIdss, NewUpperDimensionNewVisibleIdss)
Definition tensor_description/tensor_descriptor.hpp:319
__host__ __device__ constexpr auto make_unmerge_transform(const UpLengths &up_lengths, integral_constant< bool, Use24BitIntegerCalculation >=integral_constant< bool, false >{})
Definition multi_index_transform_helper.hpp:90
Definition utility/sequence.hpp:43
index_t WiStride_
Definition transform_conv_bwd_data_to_gemm_v1.hpp:1513
index_t InLeftPadW_
Definition transform_conv_bwd_data_to_gemm_v1.hpp:1519
index_t InLeftPadD_
Definition transform_conv_bwd_data_to_gemm_v1.hpp:1519
index_t WTilde_
Definition transform_conv_bwd_data_to_gemm_v1.hpp:1524
index_t InLeftPadH_
Definition transform_conv_bwd_data_to_gemm_v1.hpp:1519
index_t GcdStrideDilationD_
Definition transform_conv_bwd_data_to_gemm_v1.hpp:1522
index_t ConvStrideH_
Definition transform_conv_bwd_data_to_gemm_v1.hpp:1517
index_t Ho_
Definition transform_conv_bwd_data_to_gemm_v1.hpp:1510
index_t IdxZTilde_
Definition transform_conv_bwd_data_to_gemm_v1.hpp:1521
index_t ConvStrideD_
Definition transform_conv_bwd_data_to_gemm_v1.hpp:1517
__host__ __device__ auto MakeADescriptor_AK0_M_AK1() const
Definition transform_conv_bwd_data_to_gemm_v1.hpp:659
index_t XDot_
Definition transform_conv_bwd_data_to_gemm_v1.hpp:1525
index_t Y_
Definition transform_conv_bwd_data_to_gemm_v1.hpp:1511
__host__ __device__ TransformConvBwdDataToGemm_v1(const TransformConvBwdDataToGemm_v1Base &transform_conv_bwd_data_to_gemm_base)
Definition transform_conv_bwd_data_to_gemm_v1.hpp:135
__host__ __device__ auto MakeWeiGridDesc() const
Definition transform_conv_bwd_data_to_gemm_v1.hpp:608
index_t GcdStrideDilationW_
Definition transform_conv_bwd_data_to_gemm_v1.hpp:1522
index_t Hi_
Definition transform_conv_bwd_data_to_gemm_v1.hpp:1509
index_t IdxYTilde_
Definition transform_conv_bwd_data_to_gemm_v1.hpp:1521
__host__ __device__ auto MakeInGridDesc() const
Definition transform_conv_bwd_data_to_gemm_v1.hpp:625
index_t ZDot_
Definition transform_conv_bwd_data_to_gemm_v1.hpp:1525
index_t KStrideTensorB_
Definition transform_conv_bwd_data_to_gemm_v1.hpp:1515
index_t NStrideTensorC_
Definition transform_conv_bwd_data_to_gemm_v1.hpp:1516
index_t N_
Definition transform_conv_bwd_data_to_gemm_v1.hpp:1508
index_t K_
Definition transform_conv_bwd_data_to_gemm_v1.hpp:1512
index_t Wo_
Definition transform_conv_bwd_data_to_gemm_v1.hpp:1510
index_t Wi_
Definition transform_conv_bwd_data_to_gemm_v1.hpp:1509
index_t CStrideTensorB_
Definition transform_conv_bwd_data_to_gemm_v1.hpp:1515
__host__ __device__ TransformConvBwdDataToGemm_v1(const ConvDimsType &a_g_n_k_wos_lengths, const ConvDimsType &a_g_n_k_wos_strides, const ConvDimsType &b_g_k_c_xs_lengths, const ConvDimsType &b_g_k_c_xs_strides, const ConvDimsType &c_g_n_c_wis_lengths, const ConvDimsType &c_g_n_c_wis_strides, const ConvSpatialDimsType &conv_filter_strides, const ConvSpatialDimsType &conv_filter_dilations, const ConvSpatialDimsType &input_left_pads, const ConvSpatialDimsType &input_right_pads, const ConvSpatialDimsType &tildes, const index_t batch_k=1)
Definition transform_conv_bwd_data_to_gemm_v1.hpp:206
index_t InRightPadH_
Definition transform_conv_bwd_data_to_gemm_v1.hpp:1520
index_t DoStride_
Definition transform_conv_bwd_data_to_gemm_v1.hpp:1514
__host__ __device__ auto MakeOutGridDesc() const
Definition transform_conv_bwd_data_to_gemm_v1.hpp:503
index_t Do_
Definition transform_conv_bwd_data_to_gemm_v1.hpp:1510
index_t HoStride_
Definition transform_conv_bwd_data_to_gemm_v1.hpp:1514
index_t KStrideTensorA_
Definition transform_conv_bwd_data_to_gemm_v1.hpp:1515
index_t batch_k_
Definition transform_conv_bwd_data_to_gemm_v1.hpp:1526
index_t ConvDilationH_
Definition transform_conv_bwd_data_to_gemm_v1.hpp:1518
index_t GcdStrideDilationH_
Definition transform_conv_bwd_data_to_gemm_v1.hpp:1522
index_t DiStride_
Definition transform_conv_bwd_data_to_gemm_v1.hpp:1513
index_t NStrideTensorA_
Definition transform_conv_bwd_data_to_gemm_v1.hpp:1516
index_t ZTilde_
Definition transform_conv_bwd_data_to_gemm_v1.hpp:1523
index_t HTilde_
Definition transform_conv_bwd_data_to_gemm_v1.hpp:1524
index_t C_
Definition transform_conv_bwd_data_to_gemm_v1.hpp:1512
index_t CStrideTensorC_
Definition transform_conv_bwd_data_to_gemm_v1.hpp:1515
index_t XTilde_
Definition transform_conv_bwd_data_to_gemm_v1.hpp:1523
__host__ __device__ auto MakeBDescriptor_BK0_N_BK1() const
Definition transform_conv_bwd_data_to_gemm_v1.hpp:943
__host__ __device__ constexpr TransformConvBwdDataToGemm_v1()
Definition transform_conv_bwd_data_to_gemm_v1.hpp:132
index_t X_
Definition transform_conv_bwd_data_to_gemm_v1.hpp:1511
index_t Di_
Definition transform_conv_bwd_data_to_gemm_v1.hpp:1509
index_t YDot_
Definition transform_conv_bwd_data_to_gemm_v1.hpp:1525
index_t HiStride_
Definition transform_conv_bwd_data_to_gemm_v1.hpp:1513
index_t IdxXTilde_
Definition transform_conv_bwd_data_to_gemm_v1.hpp:1521
index_t Z_
Definition transform_conv_bwd_data_to_gemm_v1.hpp:1511
__host__ __device__ auto MakeCDescriptor_M_N() const
Definition transform_conv_bwd_data_to_gemm_v1.hpp:1150
index_t YTilde_
Definition transform_conv_bwd_data_to_gemm_v1.hpp:1523
index_t ConvDilationW_
Definition transform_conv_bwd_data_to_gemm_v1.hpp:1518
index_t ConvDilationD_
Definition transform_conv_bwd_data_to_gemm_v1.hpp:1518
index_t DTilde_
Definition transform_conv_bwd_data_to_gemm_v1.hpp:1524
index_t InRightPadW_
Definition transform_conv_bwd_data_to_gemm_v1.hpp:1520
index_t WoStride_
Definition transform_conv_bwd_data_to_gemm_v1.hpp:1514
index_t InRightPadD_
Definition transform_conv_bwd_data_to_gemm_v1.hpp:1520
index_t ConvStrideW_
Definition transform_conv_bwd_data_to_gemm_v1.hpp:1517