diff --git a/example/17_convnd_bwd_data_xdl/convnd_bwd_data_xdl.cpp b/example/17_convnd_bwd_data_xdl/convnd_bwd_data_xdl.cpp index 60c66e621b..9bc9c88995 100644 --- a/example/17_convnd_bwd_data_xdl/convnd_bwd_data_xdl.cpp +++ b/example/17_convnd_bwd_data_xdl/convnd_bwd_data_xdl.cpp @@ -83,7 +83,7 @@ using ReferenceConvBwdDataInstance = OutElementOp, NumDimSpatial>; -void PrintUseMsg() +void print_use_msg() { std::cout << "arg1: verification (0=no, 1=yes)\n" << "arg2: initialization (0=no init, 1=random value, 2= init to 1 )\n" @@ -99,7 +99,7 @@ void PrintUseMsg() << " , (ie RightPy, RightPx for 2D)\n" << std::endl; } -ck::conv_util::ConvParams ParseConvParams(int num_dim_spatial, char* argv[]) +ck::conv_util::ConvParams parse_conv_params(int num_dim_spatial, char* argv[]) { // (N, K, C) + num_dim_spatial * 6 (filter, input, strides, dilations, pad left, pad right) ck::conv_util::ConvParams params; @@ -144,8 +144,8 @@ ck::conv_util::ConvParams ParseConvParams(int num_dim_spatial, char* argv[]) return params; } -HostTensorDescriptor GetInputHostTensorDescriptor(const std::vector& dims, - int num_dim_spatial = 2) +HostTensorDescriptor get_input_host_tensor_descriptor(const std::vector& dims, + int num_dim_spatial = 2) { namespace tl = ck::tensor_layout::convolution; @@ -165,8 +165,8 @@ HostTensorDescriptor GetInputHostTensorDescriptor(const std::vector } } } -HostTensorDescriptor GetFiltersHostTensorDescriptor(const std::vector& dims, - int num_dim_spatial = 2) +HostTensorDescriptor get_filters_host_tensor_descriptor(const std::vector& dims, + int num_dim_spatial = 2) { namespace tl = ck::tensor_layout::convolution; @@ -187,8 +187,8 @@ HostTensorDescriptor GetFiltersHostTensorDescriptor(const std::vector& dims, - int num_dim_spatial = 2) +HostTensorDescriptor get_output_host_tensor_descriptor(const std::vector& dims, + int num_dim_spatial = 2) { namespace tl = ck::tensor_layout::convolution; @@ -210,7 +210,7 @@ HostTensorDescriptor GetOutputHostTensorDescriptor(const std::vector in_n_c_hi_wi_host_result( - GetInputHostTensorDescriptor(input_dims, num_dim_spatial)); + get_input_host_tensor_descriptor(input_dims, num_dim_spatial)); Tensor in_n_c_hi_wi_device_result( - GetInputHostTensorDescriptor(input_dims, num_dim_spatial)); - Tensor wei_k_c_y_x(GetFiltersHostTensorDescriptor(filter_dims, num_dim_spatial)); - Tensor out_n_k_ho_wo(GetOutputHostTensorDescriptor(output_dims, num_dim_spatial)); + get_input_host_tensor_descriptor(input_dims, num_dim_spatial)); + Tensor wei_k_c_y_x( + get_filters_host_tensor_descriptor(filter_dims, num_dim_spatial)); + Tensor out_n_k_ho_wo( + get_output_host_tensor_descriptor(output_dims, num_dim_spatial)); std::cout << "in_n_c_hi_wi: " << in_n_c_hi_wi_host_result.mDesc << std::endl; std::cout << "wei_k_c_y_x: " << wei_k_c_y_x.mDesc << std::endl; @@ -318,11 +320,10 @@ int main(int argc, char* argv[]) out_device_buf.ToDevice(out_n_k_ho_wo.mData.data()); wei_device_buf.ToDevice(wei_k_c_y_x.mData.data()); // reset input to zero - in_n_c_hi_wi_device_result.GenerateTensorValue(GeneratorTensor_1{0}); - in_device_buf.ToDevice(in_n_c_hi_wi_device_result.mData.data()); + in_device_buf.SetZero(); // do GEMM - auto conv = GetConvInstance(num_dim_spatial); + auto conv = get_conv_instance(num_dim_spatial); auto invoker = conv->MakeInvokerPointer(); auto argument = conv->MakeArgumentPointer(static_cast(in_device_buf.GetDeviceBuffer()), diff --git a/include/ck/tensor_operation/gpu/device/device_convnd_bwd_data_xdl_ndhwc_kzyxc_ndhwk.hpp b/include/ck/tensor_operation/gpu/device/device_convnd_bwd_data_xdl_ndhwc_kzyxc_ndhwk.hpp index b8c64522db..9182b0ef1f 100644 --- a/include/ck/tensor_operation/gpu/device/device_convnd_bwd_data_xdl_ndhwc_kzyxc_ndhwk.hpp +++ b/include/ck/tensor_operation/gpu/device/device_convnd_bwd_data_xdl_ndhwc_kzyxc_ndhwk.hpp @@ -917,21 +917,21 @@ struct DeviceConvndBwdDataXdl_Input_N_Di_Hi_Wi_C_Weight_K_Z_Y_X_C_Output_N_Do_Ho } // function end - template ::type = false> + template ::type = false> static auto GetABCGridDesc() { return MakeABCGridDescriptor_A_K0_M_K1_B_K0_N_K1_C_M_N<1>( 1, 1, 1, {1}, {1}, {1}, {1}, {1}, {1}, {1}, {0}); } - template ::type = false> + template ::type = false> static auto GetABCGridDesc() { return MakeABCGridDescriptor_A_K0_M_K1_B_K0_N_K1_C_M_N<2>( 1, 1, 1, {1, 1}, {1, 1}, {1, 1}, {1, 1}, {1, 1}, {1, 1}, {1, 1}, {0, 0}); } - template ::type = false> + template ::type = false> static auto GetABCGridDesc() { return MakeABCGridDescriptor_A_K0_M_K1_B_K0_N_K1_C_M_N<3>(1, diff --git a/library/include/ck/library/reference_tensor_operation/cpu/reference_conv_bwd_data.hpp b/library/include/ck/library/reference_tensor_operation/cpu/reference_conv_bwd_data.hpp index 75a2965963..0f210a23e1 100644 --- a/library/include/ck/library/reference_tensor_operation/cpu/reference_conv_bwd_data.hpp +++ b/library/include/ck/library/reference_tensor_operation/cpu/reference_conv_bwd_data.hpp @@ -18,8 +18,8 @@ template = 1 && NumDimSpatial <= 3, bool>::type = false> + ck::index_t NumDimSpatial = 2, + typename ck::enable_if= 1 && NumDimSpatial <= 3, bool>::type = false> struct ReferenceConvBwdData : public device::BaseOperator { // Argument diff --git a/profiler/include/profile_convnd_bwd_data_impl.hpp b/profiler/include/profile_convnd_bwd_data_impl.hpp index 0f4a9b891f..87254e7a0c 100644 --- a/profiler/include/profile_convnd_bwd_data_impl.hpp +++ b/profiler/include/profile_convnd_bwd_data_impl.hpp @@ -336,8 +336,7 @@ bool profile_convnd_bwd_data_impl(int do_verification, wei_device_buf.ToDevice(weights.mData.data()); // reset input to zero - input_device_result.GenerateTensorValue(GeneratorTensor_1{0}); - in_device_buf.ToDevice(input_device_result.mData.data()); + in_device_buf.SetZero(); if(do_verification) {