From 2a3dcc6d5156639a9fb97eac34e5b283ce59fe3f Mon Sep 17 00:00:00 2001 From: joye Date: Tue, 3 Jun 2025 08:54:34 +0800 Subject: [PATCH] delete a typo error --- ...evice_grouped_conv_bwd_data_multiple_d.hpp | 113 +++++++++--------- 1 file changed, 56 insertions(+), 57 deletions(-) diff --git a/include/ck/tensor_operation/gpu/device/device_grouped_conv_bwd_data_multiple_d.hpp b/include/ck/tensor_operation/gpu/device/device_grouped_conv_bwd_data_multiple_d.hpp index 43c34ce92b..9c44bda5ca 100644 --- a/include/ck/tensor_operation/gpu/device/device_grouped_conv_bwd_data_multiple_d.hpp +++ b/include/ck/tensor_operation/gpu/device/device_grouped_conv_bwd_data_multiple_d.hpp @@ -1,4 +1,4 @@ -` // SPDX-License-Identifier: MIT +// SPDX-License-Identifier: MIT // Copyright (c) 2018-2025, Advanced Micro Devices, Inc. All rights reserved. #pragma once @@ -7,65 +7,64 @@ #include "ck/tensor_operation/gpu/device/device_base.hpp" - namespace ck +namespace ck { +namespace tensor_operation { +namespace device { + +// Conv backward data multiple D: +// input : output image A[G, N, K, Ho, Wo] +// input : weight B[G, K, C, Y, X], +// input : D0[G, N, K, Ho, Wo], D1[G, N, K, Ho, Wo], ... +// output : input image E[G, N, C, Hi, Wi], +// C = a_op(A) * b_op(B) +// E = cde_op(C, D0, D1, ...) +template +struct DeviceGroupedConvBwdDataMultipleD : public BaseOperator { - namespace tensor_operation { - namespace device { + static constexpr index_t NumDTensor = DsDataType::Size(); - // Conv backward data multiple D: - // input : output image A[G, N, K, Ho, Wo] - // input : weight B[G, K, C, Y, X], - // input : D0[G, N, K, Ho, Wo], D1[G, N, K, Ho, Wo], ... - // output : input image E[G, N, C, Hi, Wi], - // C = a_op(A) * b_op(B) - // E = cde_op(C, D0, D1, ...) - template - struct DeviceGroupedConvBwdDataMultipleD : public BaseOperator - { - static constexpr index_t NumDTensor = DsDataType::Size(); + static_assert(NumDTensor == DsLayout::Size(), "wrong! Inconsistent NumDTensor"); - static_assert(NumDTensor == DsLayout::Size(), "wrong! Inconsistent NumDTensor"); + virtual std::unique_ptr MakeArgumentPointer( + const void* p_a, // output image + const void* p_b, // weight + const std::array& p_ds, // bias + void* p_e, // input image + const std::array& a_g_n_k_wos_lengths, // output image + const std::array& a_g_n_k_wos_strides, // output image + const std::array& b_g_k_c_xs_lengths, // weight + const std::array& b_g_k_c_xs_strides, // weight + const std::array, NumDTensor>& + ds_g_n_k_wos_lengths, // bias + const std::array, NumDTensor>& + ds_g_n_k_wos_strides, // bias + const std::array& e_g_n_c_wis_lengths, // input image + const std::array& e_g_n_c_wis_strides, // input image + const std::array& conv_filter_strides, + const std::array& conv_filter_dilations, + const std::array& input_left_pads, + const std::array& input_right_pads, + const AElementwiseOperation& a_element_op, + const BElementwiseOperation& b_element_op, + const CDEElementwiseOperation& cde_element_op, + const ck::index_t split_k = 1) = 0; - virtual std::unique_ptr MakeArgumentPointer( - const void* p_a, // output image - const void* p_b, // weight - const std::array& p_ds, // bias - void* p_e, // input image - const std::array& a_g_n_k_wos_lengths, // output image - const std::array& a_g_n_k_wos_strides, // output image - const std::array& b_g_k_c_xs_lengths, // weight - const std::array& b_g_k_c_xs_strides, // weight - const std::array, NumDTensor>& - ds_g_n_k_wos_lengths, // bias - const std::array, NumDTensor>& - ds_g_n_k_wos_strides, // bias - const std::array& e_g_n_c_wis_lengths, // input image - const std::array& e_g_n_c_wis_strides, // input image - const std::array& conv_filter_strides, - const std::array& conv_filter_dilations, - const std::array& input_left_pads, - const std::array& input_right_pads, - const AElementwiseOperation& a_element_op, - const BElementwiseOperation& b_element_op, - const CDEElementwiseOperation& cde_element_op, - const ck::index_t split_k = 1) = 0; + virtual std::unique_ptr MakeInvokerPointer() = 0; +}; - virtual std::unique_ptr MakeInvokerPointer() = 0; - }; - - } // namespace device - } // namespace tensor_operation +} // namespace device +} // namespace tensor_operation } // namespace ck