diff --git a/cmake/googletest.cmake b/cmake/googletest.cmake index c7e70cc8a9..f869ba483e 100644 --- a/cmake/googletest.cmake +++ b/cmake/googletest.cmake @@ -18,6 +18,7 @@ list(APPEND GTEST_CMAKE_CXX_FLAGS -Wno-switch-enum -Wno-zero-as-null-pointer-constant -Wno-unused-member-function + -Wno-comma ) message(STATUS "Suppressing googltest warnings with flags: ${GTEST_CMAKE_CXX_FLAGS}") @@ -33,4 +34,5 @@ FetchContent_MakeAvailable(googletest) target_compile_options(gtest PRIVATE ${GTEST_CMAKE_CXX_FLAGS}) target_compile_options(gtest_main PRIVATE ${GTEST_CMAKE_CXX_FLAGS}) +target_compile_options(gmock PRIVATE ${GTEST_CMAKE_CXX_FLAGS}) diff --git a/example/06_conv2d_fwd_bias_relu/CMakeLists.txt b/example/06_conv2d_fwd_bias_relu/CMakeLists.txt index df8f70606c..4e1dd1f3e6 100644 --- a/example/06_conv2d_fwd_bias_relu/CMakeLists.txt +++ b/example/06_conv2d_fwd_bias_relu/CMakeLists.txt @@ -1,2 +1,2 @@ add_example_executable(example_conv2d_fwd_xdl_bias_relu conv2d_fwd_xdl_bias_relu.cpp) -target_link_libraries(example_conv2d_fwd_xdl_bias_relu PRIVATE conv_fwd_util) +target_link_libraries(example_conv2d_fwd_xdl_bias_relu PRIVATE conv_util) diff --git a/example/06_conv2d_fwd_bias_relu/conv2d_fwd_xdl_bias_relu.cpp b/example/06_conv2d_fwd_bias_relu/conv2d_fwd_xdl_bias_relu.cpp index 751ce16b90..53095bde0d 100644 --- a/example/06_conv2d_fwd_bias_relu/conv2d_fwd_xdl_bias_relu.cpp +++ b/example/06_conv2d_fwd_bias_relu/conv2d_fwd_xdl_bias_relu.cpp @@ -7,7 +7,7 @@ #include "check_err.hpp" #include "config.hpp" -#include "conv_fwd_util.hpp" +#include "conv_util.hpp" #include "device.hpp" #include "device_conv2d_fwd_xdl_c_shuffle_bias_activation_nhwc_kyxc_nhwk.hpp" #include "device_tensor.hpp" @@ -120,40 +120,40 @@ ck::utils::conv::ConvParams ParseConvParams(int argc, char* argv[]) ck::utils::conv::ConvParams params; int arg_idx = 4; - params.num_dim_spatial = num_dim_spatial; - params.N = std::stoi(argv[arg_idx++]); - params.K = std::stoi(argv[arg_idx++]); - params.C = std::stoi(argv[arg_idx++]); + params.num_dim_spatial_ = num_dim_spatial; + params.N_ = std::stoi(argv[arg_idx++]); + params.K_ = std::stoi(argv[arg_idx++]); + params.C_ = std::stoi(argv[arg_idx++]); - params.filter_spatial_lengths.resize(num_dim_spatial); + params.filter_spatial_lengths_.resize(num_dim_spatial); for(int i = 0; i < num_dim_spatial; ++i) { - params.filter_spatial_lengths[i] = std::stoi(argv[arg_idx++]); + params.filter_spatial_lengths_[i] = std::stoi(argv[arg_idx++]); } - params.input_spatial_lengths.resize(num_dim_spatial); + params.input_spatial_lengths_.resize(num_dim_spatial); for(int i = 0; i < num_dim_spatial; ++i) { - params.input_spatial_lengths[i] = std::stoi(argv[arg_idx++]); + params.input_spatial_lengths_[i] = std::stoi(argv[arg_idx++]); } - params.conv_filter_strides.resize(num_dim_spatial); + params.conv_filter_strides_.resize(num_dim_spatial); for(int i = 0; i < num_dim_spatial; ++i) { - params.conv_filter_strides[i] = std::stoi(argv[arg_idx++]); + params.conv_filter_strides_[i] = std::stoi(argv[arg_idx++]); } - params.conv_filter_dilations.resize(num_dim_spatial); + params.conv_filter_dilations_.resize(num_dim_spatial); for(int i = 0; i < num_dim_spatial; ++i) { - params.conv_filter_dilations[i] = std::stoi(argv[arg_idx++]); + params.conv_filter_dilations_[i] = std::stoi(argv[arg_idx++]); } - params.input_left_pads.resize(num_dim_spatial); + params.input_left_pads_.resize(num_dim_spatial); for(int i = 0; i < num_dim_spatial; ++i) { - params.input_left_pads[i] = std::stoi(argv[arg_idx++]); + params.input_left_pads_[i] = std::stoi(argv[arg_idx++]); } - params.input_right_pads.resize(num_dim_spatial); + params.input_right_pads_.resize(num_dim_spatial); for(int i = 0; i < num_dim_spatial; ++i) { - params.input_right_pads[i] = std::stoi(argv[arg_idx++]); + params.input_right_pads_[i] = std::stoi(argv[arg_idx++]); } return params; @@ -184,21 +184,21 @@ int main(int argc, char* argv[]) params = ParseConvParams(argc, argv); } - std::vector input_dims{static_cast(params.N), - static_cast(params.C)}; + std::vector input_dims{static_cast(params.N_), + static_cast(params.C_)}; input_dims.insert(std::end(input_dims), - std::begin(params.input_spatial_lengths), - std::end(params.input_spatial_lengths)); + std::begin(params.input_spatial_lengths_), + std::end(params.input_spatial_lengths_)); - std::vector filter_dims{static_cast(params.K), - static_cast(params.C)}; + std::vector filter_dims{static_cast(params.K_), + static_cast(params.C_)}; filter_dims.insert(std::end(filter_dims), - std::begin(params.filter_spatial_lengths), - std::end(params.filter_spatial_lengths)); + std::begin(params.filter_spatial_lengths_), + std::end(params.filter_spatial_lengths_)); const std::vector& output_spatial_lengths = params.GetOutputSpatialLengths(); - std::vector output_dims{static_cast(params.N), - static_cast(params.K)}; + std::vector output_dims{static_cast(params.N_), + static_cast(params.K_)}; output_dims.insert(std::end(output_dims), std::begin(output_spatial_lengths), std::end(output_spatial_lengths)); @@ -211,7 +211,7 @@ int main(int argc, char* argv[]) get_output_host_tensor_descriptor(output_dims, num_dim_spatial)); // bias: assume contiguous 1d vector Tensor bias( - HostTensorDescriptor(std::vector({static_cast(params.K)}))); + HostTensorDescriptor(std::vector({static_cast(params.K_)}))); std::cout << "input: " << input.mDesc << std::endl; std::cout << "weights: " << weights.mDesc << std::endl; @@ -248,16 +248,16 @@ int main(int argc, char* argv[]) static_cast(wei_device_buf.GetDeviceBuffer()), static_cast(out_device_buf.GetDeviceBuffer()), static_cast(bias_device_buf.GetDeviceBuffer()), - params.N, - params.K, - params.C, - params.input_spatial_lengths, - params.filter_spatial_lengths, + params.N_, + params.K_, + params.C_, + params.input_spatial_lengths_, + params.filter_spatial_lengths_, output_spatial_lengths, - params.conv_filter_strides, - params.conv_filter_dilations, - params.input_left_pads, - params.input_right_pads, + params.conv_filter_strides_, + params.conv_filter_dilations_, + params.input_left_pads_, + params.input_right_pads_, InElementOp{}, WeiElementOp{}, OutElementOp{}); @@ -272,15 +272,15 @@ int main(int argc, char* argv[]) float ave_time = invoker.Run(argument, nrepeat); std::size_t flop = get_flops( - params.N, params.C, params.K, params.filter_spatial_lengths, output_spatial_lengths); + params.N_, params.C_, params.K_, params.filter_spatial_lengths_, output_spatial_lengths); std::size_t num_btype = - get_btype(params.N, - params.C, - params.K, - params.input_spatial_lengths, - params.filter_spatial_lengths, + get_btype(params.N_, + params.C_, + params.K_, + params.input_spatial_lengths_, + params.filter_spatial_lengths_, output_spatial_lengths) + - sizeof(OutDataType) * (params.K); + sizeof(OutDataType) * (params.K_); float tflops = static_cast(flop) / 1.E9 / ave_time; float gb_per_sec = num_btype / 1.E6 / ave_time; @@ -296,10 +296,10 @@ int main(int argc, char* argv[]) weights, host_output, bias, - params.conv_filter_strides, - params.conv_filter_dilations, - params.input_left_pads, - params.input_right_pads, + params.conv_filter_strides_, + params.conv_filter_dilations_, + params.input_left_pads_, + params.input_right_pads_, InElementOp{}, WeiElementOp{}, OutElementOp{}); diff --git a/example/07_conv2d_fwd_bias_relu_add/CMakeLists.txt b/example/07_conv2d_fwd_bias_relu_add/CMakeLists.txt index 8bc5980025..5f6426ff1f 100644 --- a/example/07_conv2d_fwd_bias_relu_add/CMakeLists.txt +++ b/example/07_conv2d_fwd_bias_relu_add/CMakeLists.txt @@ -1,2 +1,2 @@ add_example_executable(example_conv2d_fwd_xdl_bias_relu_add conv2d_fwd_xdl_bias_relu_add.cpp) -target_link_libraries(example_conv2d_fwd_xdl_bias_relu_add PRIVATE conv_fwd_util) +target_link_libraries(example_conv2d_fwd_xdl_bias_relu_add PRIVATE conv_util) diff --git a/example/07_conv2d_fwd_bias_relu_add/conv2d_fwd_xdl_bias_relu_add.cpp b/example/07_conv2d_fwd_bias_relu_add/conv2d_fwd_xdl_bias_relu_add.cpp index e6339fcd23..c2b4ca0b5d 100644 --- a/example/07_conv2d_fwd_bias_relu_add/conv2d_fwd_xdl_bias_relu_add.cpp +++ b/example/07_conv2d_fwd_bias_relu_add/conv2d_fwd_xdl_bias_relu_add.cpp @@ -7,7 +7,7 @@ #include "check_err.hpp" #include "config.hpp" -#include "conv_fwd_util.hpp" +#include "conv_util.hpp" #include "device.hpp" #include "device_conv2d_fwd_xdl_c_shuffle_bias_activation_add_nhwc_kyxc_nhwk.hpp" #include "device_tensor.hpp" @@ -117,40 +117,40 @@ ck::utils::conv::ConvParams ParseConvParams(int argc, char* argv[]) ck::utils::conv::ConvParams params; int arg_idx = 4; - params.num_dim_spatial = num_dim_spatial; - params.N = std::stoi(argv[arg_idx++]); - params.K = std::stoi(argv[arg_idx++]); - params.C = std::stoi(argv[arg_idx++]); + params.num_dim_spatial_ = num_dim_spatial; + params.N_ = std::stoi(argv[arg_idx++]); + params.K_ = std::stoi(argv[arg_idx++]); + params.C_ = std::stoi(argv[arg_idx++]); - params.filter_spatial_lengths.resize(num_dim_spatial); + params.filter_spatial_lengths_.resize(num_dim_spatial); for(int i = 0; i < num_dim_spatial; ++i) { - params.filter_spatial_lengths[i] = std::stoi(argv[arg_idx++]); + params.filter_spatial_lengths_[i] = std::stoi(argv[arg_idx++]); } - params.input_spatial_lengths.resize(num_dim_spatial); + params.input_spatial_lengths_.resize(num_dim_spatial); for(int i = 0; i < num_dim_spatial; ++i) { - params.input_spatial_lengths[i] = std::stoi(argv[arg_idx++]); + params.input_spatial_lengths_[i] = std::stoi(argv[arg_idx++]); } - params.conv_filter_strides.resize(num_dim_spatial); + params.conv_filter_strides_.resize(num_dim_spatial); for(int i = 0; i < num_dim_spatial; ++i) { - params.conv_filter_strides[i] = std::stoi(argv[arg_idx++]); + params.conv_filter_strides_[i] = std::stoi(argv[arg_idx++]); } - params.conv_filter_dilations.resize(num_dim_spatial); + params.conv_filter_dilations_.resize(num_dim_spatial); for(int i = 0; i < num_dim_spatial; ++i) { - params.conv_filter_dilations[i] = std::stoi(argv[arg_idx++]); + params.conv_filter_dilations_[i] = std::stoi(argv[arg_idx++]); } - params.input_left_pads.resize(num_dim_spatial); + params.input_left_pads_.resize(num_dim_spatial); for(int i = 0; i < num_dim_spatial; ++i) { - params.input_left_pads[i] = std::stoi(argv[arg_idx++]); + params.input_left_pads_[i] = std::stoi(argv[arg_idx++]); } - params.input_right_pads.resize(num_dim_spatial); + params.input_right_pads_.resize(num_dim_spatial); for(int i = 0; i < num_dim_spatial; ++i) { - params.input_right_pads[i] = std::stoi(argv[arg_idx++]); + params.input_right_pads_[i] = std::stoi(argv[arg_idx++]); } return params; @@ -181,21 +181,21 @@ int main(int argc, char* argv[]) params = ParseConvParams(argc, argv); } - std::vector input_dims{static_cast(params.N), - static_cast(params.C)}; + std::vector input_dims{static_cast(params.N_), + static_cast(params.C_)}; input_dims.insert(std::end(input_dims), - std::begin(params.input_spatial_lengths), - std::end(params.input_spatial_lengths)); + std::begin(params.input_spatial_lengths_), + std::end(params.input_spatial_lengths_)); - std::vector filter_dims{static_cast(params.K), - static_cast(params.C)}; + std::vector filter_dims{static_cast(params.K_), + static_cast(params.C_)}; filter_dims.insert(std::end(filter_dims), - std::begin(params.filter_spatial_lengths), - std::end(params.filter_spatial_lengths)); + std::begin(params.filter_spatial_lengths_), + std::end(params.filter_spatial_lengths_)); const std::vector& output_spatial_lengths = params.GetOutputSpatialLengths(); - std::vector output_dims{static_cast(params.N), - static_cast(params.K)}; + std::vector output_dims{static_cast(params.N_), + static_cast(params.K_)}; output_dims.insert(std::end(output_dims), std::begin(output_spatial_lengths), std::end(output_spatial_lengths)); @@ -209,7 +209,7 @@ int main(int argc, char* argv[]) // bias: assume contiguous 1d vector Tensor bias( - HostTensorDescriptor(std::vector({static_cast(params.K)}))); + HostTensorDescriptor(std::vector({static_cast(params.K_)}))); // residual: assume same layout as output tensor Tensor residual(get_output_host_tensor_descriptor(output_dims, num_dim_spatial)); @@ -259,16 +259,16 @@ int main(int argc, char* argv[]) static_cast(out_device_buf.GetDeviceBuffer()), static_cast(bias_device_buf.GetDeviceBuffer()), static_cast(resi_device_buf.GetDeviceBuffer()), - params.N, - params.K, - params.C, - params.input_spatial_lengths, - params.filter_spatial_lengths, + params.N_, + params.K_, + params.C_, + params.input_spatial_lengths_, + params.filter_spatial_lengths_, output_spatial_lengths, - params.conv_filter_strides, - params.conv_filter_dilations, - params.input_left_pads, - params.input_right_pads, + params.conv_filter_strides_, + params.conv_filter_dilations_, + params.input_left_pads_, + params.input_right_pads_, in_element_op, wei_element_op, out_element_op); @@ -283,17 +283,17 @@ int main(int argc, char* argv[]) float ave_time = invoker.Run(argument, nrepeat); std::size_t flop = get_flops( - params.N, params.C, params.K, params.filter_spatial_lengths, output_spatial_lengths); + params.N_, params.C_, params.K_, params.filter_spatial_lengths_, output_spatial_lengths); std::size_t num_btype = - get_btype(params.N, - params.C, - params.K, - params.input_spatial_lengths, - params.filter_spatial_lengths, + get_btype(params.N_, + params.C_, + params.K_, + params.input_spatial_lengths_, + params.filter_spatial_lengths_, output_spatial_lengths) + - sizeof(OutDataType) * (params.K) + + sizeof(OutDataType) * (params.K_) + sizeof(OutDataType) * - (params.N * params.K * output_spatial_lengths[0] * output_spatial_lengths[1]); + (params.N_ * params.K_ * output_spatial_lengths[0] * output_spatial_lengths[1]); float tflops = static_cast(flop) / 1.E9 / ave_time; float gb_per_sec = num_btype / 1.E6 / ave_time; @@ -310,10 +310,10 @@ int main(int argc, char* argv[]) host_output, bias, residual, - params.conv_filter_strides, - params.conv_filter_dilations, - params.input_left_pads, - params.input_right_pads, + params.conv_filter_strides_, + params.conv_filter_dilations_, + params.input_left_pads_, + params.input_right_pads_, in_element_op, wei_element_op, out_element_op); diff --git a/example/09_convnd_fwd/CMakeLists.txt b/example/09_convnd_fwd/CMakeLists.txt index f602862a04..9ffae06233 100644 --- a/example/09_convnd_fwd/CMakeLists.txt +++ b/example/09_convnd_fwd/CMakeLists.txt @@ -1,6 +1,6 @@ add_example_executable(example_convnd_fwd_xdl convnd_fwd_xdl.cpp) -target_link_libraries(example_convnd_fwd_xdl PRIVATE conv_fwd_util) +target_link_libraries(example_convnd_fwd_xdl PRIVATE conv_util) add_example_executable(example_convnd_fwd_xdl_int8 convnd_fwd_xdl_int8.cpp) -target_link_libraries(example_convnd_fwd_xdl_int8 PRIVATE conv_fwd_util) +target_link_libraries(example_convnd_fwd_xdl_int8 PRIVATE conv_util) add_example_executable(example_convnd_fwd_xdl_fp16 convnd_fwd_xdl_fp16.cpp) -target_link_libraries(example_convnd_fwd_xdl_fp16 PRIVATE conv_fwd_util) +target_link_libraries(example_convnd_fwd_xdl_fp16 PRIVATE conv_util) diff --git a/example/09_convnd_fwd/convnd_fwd_xdl.cpp b/example/09_convnd_fwd/convnd_fwd_xdl.cpp index e8895b8639..71f49b5e71 100644 --- a/example/09_convnd_fwd/convnd_fwd_xdl.cpp +++ b/example/09_convnd_fwd/convnd_fwd_xdl.cpp @@ -5,7 +5,7 @@ #include "check_err.hpp" #include "config.hpp" -#include "conv_fwd_util.hpp" +#include "conv_util.hpp" #include "device.hpp" #include "device_tensor.hpp" #include "device_convnd_fwd_xdl_nhwc_kyxc_nhwk.hpp" @@ -134,40 +134,40 @@ ck::utils::conv::ConvParams parse_conv_params(int num_dim_spatial, int argc, cha ck::utils::conv::ConvParams params; int arg_idx = 5; - params.num_dim_spatial = num_dim_spatial; - params.N = std::stoi(argv[arg_idx++]); - params.K = std::stoi(argv[arg_idx++]); - params.C = std::stoi(argv[arg_idx++]); + params.num_dim_spatial_ = num_dim_spatial; + params.N_ = std::stoi(argv[arg_idx++]); + params.K_ = std::stoi(argv[arg_idx++]); + params.C_ = std::stoi(argv[arg_idx++]); - params.filter_spatial_lengths.resize(num_dim_spatial); + params.filter_spatial_lengths_.resize(num_dim_spatial); for(int i = 0; i < num_dim_spatial; ++i) { - params.filter_spatial_lengths[i] = std::stoi(argv[arg_idx++]); + params.filter_spatial_lengths_[i] = std::stoi(argv[arg_idx++]); } - params.input_spatial_lengths.resize(num_dim_spatial); + params.input_spatial_lengths_.resize(num_dim_spatial); for(int i = 0; i < num_dim_spatial; ++i) { - params.input_spatial_lengths[i] = std::stoi(argv[arg_idx++]); + params.input_spatial_lengths_[i] = std::stoi(argv[arg_idx++]); } - params.conv_filter_strides.resize(num_dim_spatial); + params.conv_filter_strides_.resize(num_dim_spatial); for(int i = 0; i < num_dim_spatial; ++i) { - params.conv_filter_strides[i] = std::stoi(argv[arg_idx++]); + params.conv_filter_strides_[i] = std::stoi(argv[arg_idx++]); } - params.conv_filter_dilations.resize(num_dim_spatial); + params.conv_filter_dilations_.resize(num_dim_spatial); for(int i = 0; i < num_dim_spatial; ++i) { - params.conv_filter_dilations[i] = std::stoi(argv[arg_idx++]); + params.conv_filter_dilations_[i] = std::stoi(argv[arg_idx++]); } - params.input_left_pads.resize(num_dim_spatial); + params.input_left_pads_.resize(num_dim_spatial); for(int i = 0; i < num_dim_spatial; ++i) { - params.input_left_pads[i] = std::stoi(argv[arg_idx++]); + params.input_left_pads_[i] = std::stoi(argv[arg_idx++]); } - params.input_right_pads.resize(num_dim_spatial); + params.input_right_pads_.resize(num_dim_spatial); for(int i = 0; i < num_dim_spatial; ++i) { - params.input_right_pads[i] = std::stoi(argv[arg_idx++]); + params.input_right_pads_[i] = std::stoi(argv[arg_idx++]); } return params; @@ -199,21 +199,21 @@ int main(int argc, char* argv[]) params = parse_conv_params(num_dim_spatial, argc, argv); } - std::vector input_dims{static_cast(params.N), - static_cast(params.C)}; + std::vector input_dims{static_cast(params.N_), + static_cast(params.C_)}; input_dims.insert(std::end(input_dims), - std::begin(params.input_spatial_lengths), - std::end(params.input_spatial_lengths)); + std::begin(params.input_spatial_lengths_), + std::end(params.input_spatial_lengths_)); - std::vector filter_dims{static_cast(params.K), - static_cast(params.C)}; + std::vector filter_dims{static_cast(params.K_), + static_cast(params.C_)}; filter_dims.insert(std::end(filter_dims), - std::begin(params.filter_spatial_lengths), - std::end(params.filter_spatial_lengths)); + std::begin(params.filter_spatial_lengths_), + std::end(params.filter_spatial_lengths_)); const std::vector& output_spatial_lengths = params.GetOutputSpatialLengths(); - std::vector output_dims{static_cast(params.N), - static_cast(params.K)}; + std::vector output_dims{static_cast(params.N_), + static_cast(params.K_)}; output_dims.insert(std::end(output_dims), std::begin(output_spatial_lengths), std::end(output_spatial_lengths)); @@ -255,16 +255,16 @@ int main(int argc, char* argv[]) conv->MakeArgumentPointer(static_cast(in_device_buf.GetDeviceBuffer()), static_cast(wei_device_buf.GetDeviceBuffer()), static_cast(out_device_buf.GetDeviceBuffer()), - params.N, - params.K, - params.C, - params.input_spatial_lengths, - params.filter_spatial_lengths, + params.N_, + params.K_, + params.C_, + params.input_spatial_lengths_, + params.filter_spatial_lengths_, output_spatial_lengths, - params.conv_filter_strides, - params.conv_filter_dilations, - params.input_left_pads, - params.input_right_pads, + params.conv_filter_strides_, + params.conv_filter_dilations_, + params.input_left_pads_, + params.input_right_pads_, InElementOp{}, WeiElementOp{}, OutElementOp{}); @@ -279,13 +279,13 @@ int main(int argc, char* argv[]) float ave_time = invoker->Run(argument.get(), nrepeat); std::size_t flop = get_flops( - params.N, params.C, params.K, params.filter_spatial_lengths, output_spatial_lengths); + params.N_, params.C_, params.K_, params.filter_spatial_lengths_, output_spatial_lengths); std::size_t num_btype = - get_btype(params.N, - params.C, - params.K, - params.input_spatial_lengths, - params.filter_spatial_lengths, + get_btype(params.N_, + params.C_, + params.K_, + params.input_spatial_lengths_, + params.filter_spatial_lengths_, output_spatial_lengths); float tflops = static_cast(flop) / 1.E9 / ave_time; @@ -301,10 +301,10 @@ int main(int argc, char* argv[]) auto ref_argument = ref_conv.MakeArgument(input, weights, host_output, - params.conv_filter_strides, - params.conv_filter_dilations, - params.input_left_pads, - params.input_right_pads, + params.conv_filter_strides_, + params.conv_filter_dilations_, + params.input_left_pads_, + params.input_right_pads_, InElementOp{}, WeiElementOp{}, OutElementOp{}); diff --git a/example/09_convnd_fwd/convnd_fwd_xdl_fp16.cpp b/example/09_convnd_fwd/convnd_fwd_xdl_fp16.cpp index eaa5683978..c1361a8db3 100644 --- a/example/09_convnd_fwd/convnd_fwd_xdl_fp16.cpp +++ b/example/09_convnd_fwd/convnd_fwd_xdl_fp16.cpp @@ -5,7 +5,7 @@ #include "check_err.hpp" #include "config.hpp" -#include "conv_fwd_util.hpp" +#include "conv_util.hpp" #include "device.hpp" #include "device_tensor.hpp" #include "device_convnd_fwd_xdl_nhwc_kyxc_nhwk.hpp" @@ -137,40 +137,40 @@ ck::utils::conv::ConvParams parse_conv_params(int num_dim_spatial, int argc, cha ck::utils::conv::ConvParams params; int arg_idx = 5; - params.num_dim_spatial = num_dim_spatial; - params.N = std::stoi(argv[arg_idx++]); - params.K = std::stoi(argv[arg_idx++]); - params.C = std::stoi(argv[arg_idx++]); + params.num_dim_spatial_ = num_dim_spatial; + params.N_ = std::stoi(argv[arg_idx++]); + params.K_ = std::stoi(argv[arg_idx++]); + params.C_ = std::stoi(argv[arg_idx++]); - params.filter_spatial_lengths.resize(num_dim_spatial); + params.filter_spatial_lengths_.resize(num_dim_spatial); for(int i = 0; i < num_dim_spatial; ++i) { - params.filter_spatial_lengths[i] = std::stoi(argv[arg_idx++]); + params.filter_spatial_lengths_[i] = std::stoi(argv[arg_idx++]); } - params.input_spatial_lengths.resize(num_dim_spatial); + params.input_spatial_lengths_.resize(num_dim_spatial); for(int i = 0; i < num_dim_spatial; ++i) { - params.input_spatial_lengths[i] = std::stoi(argv[arg_idx++]); + params.input_spatial_lengths_[i] = std::stoi(argv[arg_idx++]); } - params.conv_filter_strides.resize(num_dim_spatial); + params.conv_filter_strides_.resize(num_dim_spatial); for(int i = 0; i < num_dim_spatial; ++i) { - params.conv_filter_strides[i] = std::stoi(argv[arg_idx++]); + params.conv_filter_strides_[i] = std::stoi(argv[arg_idx++]); } - params.conv_filter_dilations.resize(num_dim_spatial); + params.conv_filter_dilations_.resize(num_dim_spatial); for(int i = 0; i < num_dim_spatial; ++i) { - params.conv_filter_dilations[i] = std::stoi(argv[arg_idx++]); + params.conv_filter_dilations_[i] = std::stoi(argv[arg_idx++]); } - params.input_left_pads.resize(num_dim_spatial); + params.input_left_pads_.resize(num_dim_spatial); for(int i = 0; i < num_dim_spatial; ++i) { - params.input_left_pads[i] = std::stoi(argv[arg_idx++]); + params.input_left_pads_[i] = std::stoi(argv[arg_idx++]); } - params.input_right_pads.resize(num_dim_spatial); + params.input_right_pads_.resize(num_dim_spatial); for(int i = 0; i < num_dim_spatial; ++i) { - params.input_right_pads[i] = std::stoi(argv[arg_idx++]); + params.input_right_pads_[i] = std::stoi(argv[arg_idx++]); } return params; @@ -202,21 +202,21 @@ int main(int argc, char* argv[]) params = parse_conv_params(num_dim_spatial, argc, argv); } - std::vector input_dims{static_cast(params.N), - static_cast(params.C)}; + std::vector input_dims{static_cast(params.N_), + static_cast(params.C_)}; input_dims.insert(std::end(input_dims), - std::begin(params.input_spatial_lengths), - std::end(params.input_spatial_lengths)); + std::begin(params.input_spatial_lengths_), + std::end(params.input_spatial_lengths_)); - std::vector filter_dims{static_cast(params.K), - static_cast(params.C)}; + std::vector filter_dims{static_cast(params.K_), + static_cast(params.C_)}; filter_dims.insert(std::end(filter_dims), - std::begin(params.filter_spatial_lengths), - std::end(params.filter_spatial_lengths)); + std::begin(params.filter_spatial_lengths_), + std::end(params.filter_spatial_lengths_)); const std::vector& output_spatial_lengths = params.GetOutputSpatialLengths(); - std::vector output_dims{static_cast(params.N), - static_cast(params.K)}; + std::vector output_dims{static_cast(params.N_), + static_cast(params.K_)}; output_dims.insert(std::end(output_dims), std::begin(output_spatial_lengths), std::end(output_spatial_lengths)); @@ -256,16 +256,16 @@ int main(int argc, char* argv[]) conv->MakeArgumentPointer(static_cast(in_device_buf.GetDeviceBuffer()), static_cast(wei_device_buf.GetDeviceBuffer()), static_cast(out_device_buf.GetDeviceBuffer()), - params.N, - params.K, - params.C, - params.input_spatial_lengths, - params.filter_spatial_lengths, + params.N_, + params.K_, + params.C_, + params.input_spatial_lengths_, + params.filter_spatial_lengths_, output_spatial_lengths, - params.conv_filter_strides, - params.conv_filter_dilations, - params.input_left_pads, - params.input_right_pads, + params.conv_filter_strides_, + params.conv_filter_dilations_, + params.input_left_pads_, + params.input_right_pads_, InElementOp{}, WeiElementOp{}, OutElementOp{}); @@ -280,13 +280,13 @@ int main(int argc, char* argv[]) float ave_time = invoker->Run(argument.get(), nrepeat); std::size_t flop = get_flops( - params.N, params.C, params.K, params.filter_spatial_lengths, output_spatial_lengths); + params.N_, params.C_, params.K_, params.filter_spatial_lengths_, output_spatial_lengths); std::size_t num_btype = get_btype( - params.N, - params.C, - params.K, - params.input_spatial_lengths, - params.filter_spatial_lengths, + params.N_, + params.C_, + params.K_, + params.input_spatial_lengths_, + params.filter_spatial_lengths_, output_spatial_lengths); float tflops = static_cast(flop) / 1.E9 / ave_time; @@ -302,10 +302,10 @@ int main(int argc, char* argv[]) auto ref_argument = ref_conv.MakeArgument(input, weights, host_output, - params.conv_filter_strides, - params.conv_filter_dilations, - params.input_left_pads, - params.input_right_pads, + params.conv_filter_strides_, + params.conv_filter_dilations_, + params.input_left_pads_, + params.input_right_pads_, InElementOp{}, WeiElementOp{}, OutElementOp{}); diff --git a/example/09_convnd_fwd/convnd_fwd_xdl_int8.cpp b/example/09_convnd_fwd/convnd_fwd_xdl_int8.cpp index 34b4645770..3d3e34dfd9 100644 --- a/example/09_convnd_fwd/convnd_fwd_xdl_int8.cpp +++ b/example/09_convnd_fwd/convnd_fwd_xdl_int8.cpp @@ -5,7 +5,7 @@ #include "check_err.hpp" #include "config.hpp" -#include "conv_fwd_util.hpp" +#include "conv_util.hpp" #include "device.hpp" #include "device_tensor.hpp" #include "device_convnd_fwd_xdl_nhwc_kyxc_nhwk.hpp" @@ -139,40 +139,40 @@ ck::utils::conv::ConvParams parse_conv_params(int num_dim_spatial, int argc, cha ck::utils::conv::ConvParams params; int arg_idx = 5; - params.num_dim_spatial = num_dim_spatial; - params.N = std::stoi(argv[arg_idx++]); - params.K = std::stoi(argv[arg_idx++]); - params.C = std::stoi(argv[arg_idx++]); + params.num_dim_spatial_ = num_dim_spatial; + params.N_ = std::stoi(argv[arg_idx++]); + params.K_ = std::stoi(argv[arg_idx++]); + params.C_ = std::stoi(argv[arg_idx++]); - params.filter_spatial_lengths.resize(num_dim_spatial); + params.filter_spatial_lengths_.resize(num_dim_spatial); for(int i = 0; i < num_dim_spatial; ++i) { - params.filter_spatial_lengths[i] = std::stoi(argv[arg_idx++]); + params.filter_spatial_lengths_[i] = std::stoi(argv[arg_idx++]); } - params.input_spatial_lengths.resize(num_dim_spatial); + params.input_spatial_lengths_.resize(num_dim_spatial); for(int i = 0; i < num_dim_spatial; ++i) { - params.input_spatial_lengths[i] = std::stoi(argv[arg_idx++]); + params.input_spatial_lengths_[i] = std::stoi(argv[arg_idx++]); } - params.conv_filter_strides.resize(num_dim_spatial); + params.conv_filter_strides_.resize(num_dim_spatial); for(int i = 0; i < num_dim_spatial; ++i) { - params.conv_filter_strides[i] = std::stoi(argv[arg_idx++]); + params.conv_filter_strides_[i] = std::stoi(argv[arg_idx++]); } - params.conv_filter_dilations.resize(num_dim_spatial); + params.conv_filter_dilations_.resize(num_dim_spatial); for(int i = 0; i < num_dim_spatial; ++i) { - params.conv_filter_dilations[i] = std::stoi(argv[arg_idx++]); + params.conv_filter_dilations_[i] = std::stoi(argv[arg_idx++]); } - params.input_left_pads.resize(num_dim_spatial); + params.input_left_pads_.resize(num_dim_spatial); for(int i = 0; i < num_dim_spatial; ++i) { - params.input_left_pads[i] = std::stoi(argv[arg_idx++]); + params.input_left_pads_[i] = std::stoi(argv[arg_idx++]); } - params.input_right_pads.resize(num_dim_spatial); + params.input_right_pads_.resize(num_dim_spatial); for(int i = 0; i < num_dim_spatial; ++i) { - params.input_right_pads[i] = std::stoi(argv[arg_idx++]); + params.input_right_pads_[i] = std::stoi(argv[arg_idx++]); } return params; @@ -204,21 +204,21 @@ int main(int argc, char* argv[]) params = parse_conv_params(num_dim_spatial, argc, argv); } - std::vector input_dims{static_cast(params.N), - static_cast(params.C)}; + std::vector input_dims{static_cast(params.N_), + static_cast(params.C_)}; input_dims.insert(std::end(input_dims), - std::begin(params.input_spatial_lengths), - std::end(params.input_spatial_lengths)); + std::begin(params.input_spatial_lengths_), + std::end(params.input_spatial_lengths_)); - std::vector filter_dims{static_cast(params.K), - static_cast(params.C)}; + std::vector filter_dims{static_cast(params.K_), + static_cast(params.C_)}; filter_dims.insert(std::end(filter_dims), - std::begin(params.filter_spatial_lengths), - std::end(params.filter_spatial_lengths)); + std::begin(params.filter_spatial_lengths_), + std::end(params.filter_spatial_lengths_)); const std::vector& output_spatial_lengths = params.GetOutputSpatialLengths(); - std::vector output_dims{static_cast(params.N), - static_cast(params.K)}; + std::vector output_dims{static_cast(params.N_), + static_cast(params.K_)}; output_dims.insert(std::end(output_dims), std::begin(output_spatial_lengths), std::end(output_spatial_lengths)); @@ -258,16 +258,16 @@ int main(int argc, char* argv[]) conv->MakeArgumentPointer(static_cast(in_device_buf.GetDeviceBuffer()), static_cast(wei_device_buf.GetDeviceBuffer()), static_cast(out_device_buf.GetDeviceBuffer()), - params.N, - params.K, - params.C, - params.input_spatial_lengths, - params.filter_spatial_lengths, + params.N_, + params.K_, + params.C_, + params.input_spatial_lengths_, + params.filter_spatial_lengths_, output_spatial_lengths, - params.conv_filter_strides, - params.conv_filter_dilations, - params.input_left_pads, - params.input_right_pads, + params.conv_filter_strides_, + params.conv_filter_dilations_, + params.input_left_pads_, + params.input_right_pads_, InElementOp{}, WeiElementOp{}, OutElementOp{}); @@ -282,13 +282,13 @@ int main(int argc, char* argv[]) float ave_time = invoker->Run(argument.get(), nrepeat); std::size_t flop = get_flops( - params.N, params.C, params.K, params.filter_spatial_lengths, output_spatial_lengths); + params.N_, params.C_, params.K_, params.filter_spatial_lengths_, output_spatial_lengths); std::size_t num_btype = get_btype( - params.N, - params.C, - params.K, - params.input_spatial_lengths, - params.filter_spatial_lengths, + params.N_, + params.C_, + params.K_, + params.input_spatial_lengths_, + params.filter_spatial_lengths_, output_spatial_lengths); float tflops = static_cast(flop) / 1.E9 / ave_time; @@ -304,10 +304,10 @@ int main(int argc, char* argv[]) auto ref_argument = ref_conv.MakeArgument(input, weights, host_output, - params.conv_filter_strides, - params.conv_filter_dilations, - params.input_left_pads, - params.input_right_pads, + params.conv_filter_strides_, + params.conv_filter_dilations_, + params.input_left_pads_, + params.input_right_pads_, InElementOp{}, WeiElementOp{}, OutElementOp{}); diff --git a/example/10_conv2d_bwd_data/CMakeLists.txt b/example/10_conv2d_bwd_data/CMakeLists.txt index f300bc9645..17aca1481b 100644 --- a/example/10_conv2d_bwd_data/CMakeLists.txt +++ b/example/10_conv2d_bwd_data/CMakeLists.txt @@ -1,2 +1,2 @@ add_example_executable(example_conv2d_bwd_data_xdl conv2d_bwd_data_xdl.cpp) -target_link_libraries(example_conv2d_bwd_data_xdl PRIVATE conv_fwd_util) +target_link_libraries(example_conv2d_bwd_data_xdl PRIVATE conv_util) diff --git a/example/11_conv2d_bwd_weight/CMakeLists.txt b/example/11_conv2d_bwd_weight/CMakeLists.txt index ff001eab72..3d771b5569 100644 --- a/example/11_conv2d_bwd_weight/CMakeLists.txt +++ b/example/11_conv2d_bwd_weight/CMakeLists.txt @@ -1,2 +1,2 @@ add_example_executable(example_conv2d_bwd_weight_xdl conv2d_bwd_weight_xdl.cpp) -target_link_libraries(example_conv2d_bwd_weight_xdl PRIVATE conv_fwd_util) +target_link_libraries(example_conv2d_bwd_weight_xdl PRIVATE conv_util) diff --git a/example/17_convnd_bwd_data_xdl/CMakeLists.txt b/example/17_convnd_bwd_data_xdl/CMakeLists.txt index 0ed906f8f7..963f311703 100644 --- a/example/17_convnd_bwd_data_xdl/CMakeLists.txt +++ b/example/17_convnd_bwd_data_xdl/CMakeLists.txt @@ -1,2 +1,2 @@ add_example_executable(example_convnd_bwd_data_xdl convnd_bwd_data_xdl.cpp) -target_link_libraries(example_convnd_bwd_data_xdl PRIVATE conv_fwd_util) +target_link_libraries(example_convnd_bwd_data_xdl PRIVATE conv_util) 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 962627ce90..1b375ea339 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 @@ -6,7 +6,7 @@ #include #include "config.hpp" -#include "conv_fwd_util.hpp" +#include "conv_util.hpp" #include "print.hpp" #include "device.hpp" #include "host_tensor.hpp" @@ -105,40 +105,40 @@ ck::utils::conv::ConvParams parse_conv_params(int num_dim_spatial, char* argv[]) ck::utils::conv::ConvParams params; int arg_idx = 5; - params.num_dim_spatial = num_dim_spatial; - params.N = std::stoi(argv[arg_idx++]); - params.K = std::stoi(argv[arg_idx++]); - params.C = std::stoi(argv[arg_idx++]); + params.num_dim_spatial_ = num_dim_spatial; + params.N_ = std::stoi(argv[arg_idx++]); + params.K_ = std::stoi(argv[arg_idx++]); + params.C_ = std::stoi(argv[arg_idx++]); - params.filter_spatial_lengths.resize(num_dim_spatial); + params.filter_spatial_lengths_.resize(num_dim_spatial); for(int i = 0; i < num_dim_spatial; ++i) { - params.filter_spatial_lengths[i] = std::stoi(argv[arg_idx++]); + params.filter_spatial_lengths_[i] = std::stoi(argv[arg_idx++]); } - params.input_spatial_lengths.resize(num_dim_spatial); + params.input_spatial_lengths_.resize(num_dim_spatial); for(int i = 0; i < num_dim_spatial; ++i) { - params.input_spatial_lengths[i] = std::stoi(argv[arg_idx++]); + params.input_spatial_lengths_[i] = std::stoi(argv[arg_idx++]); } - params.conv_filter_strides.resize(num_dim_spatial); + params.conv_filter_strides_.resize(num_dim_spatial); for(int i = 0; i < num_dim_spatial; ++i) { - params.conv_filter_strides[i] = std::stoi(argv[arg_idx++]); + params.conv_filter_strides_[i] = std::stoi(argv[arg_idx++]); } - params.conv_filter_dilations.resize(num_dim_spatial); + params.conv_filter_dilations_.resize(num_dim_spatial); for(int i = 0; i < num_dim_spatial; ++i) { - params.conv_filter_dilations[i] = std::stoi(argv[arg_idx++]); + params.conv_filter_dilations_[i] = std::stoi(argv[arg_idx++]); } - params.input_left_pads.resize(num_dim_spatial); + params.input_left_pads_.resize(num_dim_spatial); for(int i = 0; i < num_dim_spatial; ++i) { - params.input_left_pads[i] = std::stoi(argv[arg_idx++]); + params.input_left_pads_[i] = std::stoi(argv[arg_idx++]); } - params.input_right_pads.resize(num_dim_spatial); + params.input_right_pads_.resize(num_dim_spatial); for(int i = 0; i < num_dim_spatial; ++i) { - params.input_right_pads[i] = std::stoi(argv[arg_idx++]); + params.input_right_pads_[i] = std::stoi(argv[arg_idx++]); } return params; @@ -171,7 +171,7 @@ int main(int argc, char* argv[]) int num_dim_spatial = 2; ck::utils::conv::ConvParams params; - params.C = 128; + params.C_ = 128; if(argc == 4) { @@ -202,21 +202,21 @@ int main(int argc, char* argv[]) exit(1); } - std::vector input_dims{static_cast(params.N), - static_cast(params.C)}; + std::vector input_dims{static_cast(params.N_), + static_cast(params.C_)}; input_dims.insert(std::end(input_dims), - std::begin(params.input_spatial_lengths), - std::end(params.input_spatial_lengths)); + std::begin(params.input_spatial_lengths_), + std::end(params.input_spatial_lengths_)); - std::vector filter_dims{static_cast(params.K), - static_cast(params.C)}; + std::vector filter_dims{static_cast(params.K_), + static_cast(params.C_)}; filter_dims.insert(std::end(filter_dims), - std::begin(params.filter_spatial_lengths), - std::end(params.filter_spatial_lengths)); + std::begin(params.filter_spatial_lengths_), + std::end(params.filter_spatial_lengths_)); const std::vector& output_spatial_lengths = params.GetOutputSpatialLengths(); - std::vector output_dims{static_cast(params.N), - static_cast(params.K)}; + std::vector output_dims{static_cast(params.N_), + static_cast(params.K_)}; output_dims.insert(std::end(output_dims), std::begin(output_spatial_lengths), std::end(output_spatial_lengths)); @@ -263,16 +263,16 @@ int main(int argc, char* argv[]) conv->MakeArgumentPointer(static_cast(in_device_buf.GetDeviceBuffer()), static_cast(wei_device_buf.GetDeviceBuffer()), static_cast(out_device_buf.GetDeviceBuffer()), - params.N, - params.K, - params.C, - params.input_spatial_lengths, - params.filter_spatial_lengths, + params.N_, + params.K_, + params.C_, + params.input_spatial_lengths_, + params.filter_spatial_lengths_, output_spatial_lengths, - params.conv_filter_strides, - params.conv_filter_dilations, - params.input_left_pads, - params.input_right_pads, + params.conv_filter_strides_, + params.conv_filter_dilations_, + params.input_left_pads_, + params.input_right_pads_, InElementOp{}, WeiElementOp{}, OutElementOp{}); @@ -287,13 +287,13 @@ int main(int argc, char* argv[]) float ave_time = invoker->Run(argument.get(), nrepeat); std::size_t flop = ck::utils::conv::get_flops( - params.N, params.C, params.K, params.filter_spatial_lengths, output_spatial_lengths); + params.N_, params.C_, params.K_, params.filter_spatial_lengths_, output_spatial_lengths); std::size_t num_btype = ck::utils::conv::get_btype( - params.N, - params.C, - params.K, - params.input_spatial_lengths, - params.filter_spatial_lengths, + params.N_, + params.C_, + params.K_, + params.input_spatial_lengths_, + params.filter_spatial_lengths_, output_spatial_lengths); float tflops = static_cast(flop) / 1.E9 / ave_time; @@ -310,10 +310,10 @@ int main(int argc, char* argv[]) auto ref_argument = ref_conv.MakeArgument(in_n_c_hi_wi_host_result, wei_k_c_y_x, out_n_k_ho_wo, - params.conv_filter_strides, - params.conv_filter_dilations, - params.input_left_pads, - params.input_right_pads, + params.conv_filter_strides_, + params.conv_filter_dilations_, + params.input_left_pads_, + params.input_right_pads_, InElementOp{}, WeiElementOp{}, OutElementOp{}); diff --git a/include/ck/tensor_operation/gpu/device/device_conv3d_fwd_naive_ndhwc_kzyxc_ndhwk.hpp b/include/ck/tensor_operation/gpu/device/device_conv3d_fwd_naive_ndhwc_kzyxc_ndhwk.hpp index c3ebe58865..1bfe0bb256 100644 --- a/include/ck/tensor_operation/gpu/device/device_conv3d_fwd_naive_ndhwc_kzyxc_ndhwk.hpp +++ b/include/ck/tensor_operation/gpu/device/device_conv3d_fwd_naive_ndhwc_kzyxc_ndhwk.hpp @@ -4,7 +4,7 @@ #include #include #include -#include "conv_fwd_util.hpp" +#include "conv_util.hpp" #include "device.hpp" #include "device_conv_fwd.hpp" #include "common_header.hpp" diff --git a/library/include/ck/library/utility/conv_fwd_util.hpp b/library/include/ck/library/utility/conv_util.hpp similarity index 95% rename from library/include/ck/library/utility/conv_fwd_util.hpp rename to library/include/ck/library/utility/conv_util.hpp index a29eb814fd..c881b89705 100644 --- a/library/include/ck/library/utility/conv_fwd_util.hpp +++ b/library/include/ck/library/utility/conv_util.hpp @@ -146,19 +146,19 @@ struct ConvParams const std::vector& left_pads, const std::vector& right_pads); - ck::index_t num_dim_spatial; - ck::index_t N; - ck::index_t K; - ck::index_t C; + ck::index_t num_dim_spatial_; + ck::index_t N_; + ck::index_t K_; + ck::index_t C_; - std::vector filter_spatial_lengths; - std::vector input_spatial_lengths; + std::vector filter_spatial_lengths_; + std::vector input_spatial_lengths_; - std::vector conv_filter_strides; - std::vector conv_filter_dilations; + std::vector conv_filter_strides_; + std::vector conv_filter_dilations_; - std::vector input_left_pads; - std::vector input_right_pads; + std::vector input_left_pads_; + std::vector input_right_pads_; std::vector GetOutputSpatialLengths() const; }; @@ -268,10 +268,10 @@ void run_reference_convolution_forward(const ConvParams& params, auto ref_argument = ref_conv.MakeArgument(input, weights, output, - params.conv_filter_strides, - params.conv_filter_dilations, - params.input_left_pads, - params.input_right_pads, + params.conv_filter_strides_, + params.conv_filter_dilations_, + params.input_left_pads_, + params.input_right_pads_, PassThrough{}, PassThrough{}, PassThrough{}); @@ -437,17 +437,17 @@ class ConvFwdOpInstance : public ck::utils::OpInstance input_dims{static_cast(params_.N), - static_cast(params_.C)}; + std::vector input_dims{static_cast(params_.N_), + static_cast(params_.C_)}; input_dims.insert(std::end(input_dims), - std::begin(params_.input_spatial_lengths), - std::end(params_.input_spatial_lengths)); + std::begin(params_.input_spatial_lengths_), + std::end(params_.input_spatial_lengths_)); - std::vector filter_dims{static_cast(params_.K), - static_cast(params_.C)}; + std::vector filter_dims{static_cast(params_.K_), + static_cast(params_.C_)}; filter_dims.insert(std::end(filter_dims), - std::begin(params_.filter_spatial_lengths), - std::end(params_.filter_spatial_lengths)); + std::begin(params_.filter_spatial_lengths_), + std::end(params_.filter_spatial_lengths_)); auto input = std::make_unique>( get_host_tensor_descriptor(input_dims, InLayout{})); @@ -465,8 +465,8 @@ class ConvFwdOpInstance : public ck::utils::OpInstance GetOutputTensor() const override { - std::vector output_dims{static_cast(params_.N), - static_cast(params_.K)}; + std::vector output_dims{static_cast(params_.N_), + static_cast(params_.K_)}; output_dims.insert(std::end(output_dims), std::begin(output_spatial_lengths_), std::end(output_spatial_lengths_)); @@ -522,16 +522,16 @@ class ConvFwdOpInstance : public ck::utils::OpInstance(in_device_buffers[0]->GetDeviceBuffer()), static_cast(in_device_buffers[1]->GetDeviceBuffer()), static_cast(out_device_buffer->GetDeviceBuffer()), - params_.N, - params_.K, - params_.C, - params_.input_spatial_lengths, - params_.filter_spatial_lengths, + params_.N_, + params_.K_, + params_.C_, + params_.input_spatial_lengths_, + params_.filter_spatial_lengths_, output_spatial_lengths_, - params_.conv_filter_strides, - params_.conv_filter_dilations, - params_.input_left_pads, - params_.input_right_pads, + params_.conv_filter_strides_, + params_.conv_filter_dilations_, + params_.input_left_pads_, + params_.input_right_pads_, InElementwiseOp{}, WeiElementwiseOp{}, OutElementwiseOp{}); @@ -539,20 +539,20 @@ class ConvFwdOpInstance : public ck::utils::OpInstance(params_.N, - params_.C, - params_.K, - params_.input_spatial_lengths, - params_.filter_spatial_lengths, + return get_btype(params_.N_, + params_.C_, + params_.K_, + params_.input_spatial_lengths_, + params_.filter_spatial_lengths_, output_spatial_lengths_); } diff --git a/library/src/utility/CMakeLists.txt b/library/src/utility/CMakeLists.txt index 3580ba1a8f..0914855d59 100644 --- a/library/src/utility/CMakeLists.txt +++ b/library/src/utility/CMakeLists.txt @@ -8,14 +8,14 @@ include_directories(BEFORE ${PROJECT_SOURCE_DIR}/library/include/ck/library/utility ) -set(CONV_FWD_UTIL_SOURCE - conv_fwd_util.cpp +set(CONV_UTIL_SOURCE + conv_util.cpp ) -add_library(conv_fwd_util SHARED ${CONV_FWD_UTIL_SOURCE}) -target_link_libraries(conv_fwd_util PRIVATE host_tensor) -target_compile_features(conv_fwd_util PUBLIC) -set_target_properties(conv_fwd_util PROPERTIES POSITION_INDEPENDENT_CODE ON) -target_include_directories(conv_fwd_util SYSTEM PUBLIC $) +add_library(conv_util SHARED ${CONV_UTIL_SOURCE}) +target_link_libraries(conv_util PRIVATE host_tensor) +target_compile_features(conv_util PUBLIC) +set_target_properties(conv_util PROPERTIES POSITION_INDEPENDENT_CODE ON) +target_include_directories(conv_util SYSTEM PUBLIC $) -clang_tidy_check(conv_fwd_util) +clang_tidy_check(conv_util) diff --git a/library/src/utility/conv_fwd_util.cpp b/library/src/utility/conv_util.cpp similarity index 62% rename from library/src/utility/conv_fwd_util.cpp rename to library/src/utility/conv_util.cpp index 01bfeda16d..a60d1a3495 100644 --- a/library/src/utility/conv_fwd_util.cpp +++ b/library/src/utility/conv_util.cpp @@ -1,5 +1,5 @@ -#include "conv_fwd_util.hpp" +#include "conv_util.hpp" namespace ck { namespace utils { @@ -37,16 +37,16 @@ std::size_t get_flops(ck::index_t N, } ConvParams::ConvParams() - : num_dim_spatial(2), - N(128), - K(256), - C(192), - filter_spatial_lengths(2, 3), - input_spatial_lengths(2, 71), - conv_filter_strides(2, 2), - conv_filter_dilations(2, 1), - input_left_pads(2, 1), - input_right_pads(2, 1) + : num_dim_spatial_(2), + N_(128), + K_(256), + C_(192), + filter_spatial_lengths_(2, 3), + input_spatial_lengths_(2, 71), + conv_filter_strides_(2, 2), + conv_filter_dilations_(2, 1), + input_left_pads_(2, 1), + input_right_pads_(2, 1) { } @@ -60,23 +60,23 @@ ConvParams::ConvParams(ck::index_t n_dim, const std::vector& dilations, const std::vector& left_pads, const std::vector& right_pads) - : num_dim_spatial(n_dim), - N(n_batch), - K(n_out_channels), - C(n_in_channels), - filter_spatial_lengths(filters_len), - input_spatial_lengths(input_len), - conv_filter_strides(strides), - conv_filter_dilations(dilations), - input_left_pads(left_pads), - input_right_pads(right_pads) + : num_dim_spatial_(n_dim), + N_(n_batch), + K_(n_out_channels), + C_(n_in_channels), + filter_spatial_lengths_(filters_len), + input_spatial_lengths_(input_len), + conv_filter_strides_(strides), + conv_filter_dilations_(dilations), + input_left_pads_(left_pads), + input_right_pads_(right_pads) { - if(ck::type_convert(filter_spatial_lengths.size()) != num_dim_spatial || - ck::type_convert(input_spatial_lengths.size()) != num_dim_spatial || - ck::type_convert(conv_filter_strides.size()) != num_dim_spatial || - ck::type_convert(conv_filter_dilations.size()) != num_dim_spatial || - ck::type_convert(input_left_pads.size()) != num_dim_spatial || - ck::type_convert(input_right_pads.size()) != num_dim_spatial) + if(ck::type_convert(filter_spatial_lengths_.size()) != num_dim_spatial_ || + ck::type_convert(input_spatial_lengths_.size()) != num_dim_spatial_ || + ck::type_convert(conv_filter_strides_.size()) != num_dim_spatial_ || + ck::type_convert(conv_filter_dilations_.size()) != num_dim_spatial_ || + ck::type_convert(input_left_pads_.size()) != num_dim_spatial_ || + ck::type_convert(input_right_pads_.size()) != num_dim_spatial_) { throw( std::runtime_error("ConvParams::GetOutputSpatialLengths: " @@ -86,27 +86,28 @@ ConvParams::ConvParams(ck::index_t n_dim, std::vector ConvParams::GetOutputSpatialLengths() const { - if(ck::type_convert(filter_spatial_lengths.size()) != num_dim_spatial || - ck::type_convert(input_spatial_lengths.size()) != num_dim_spatial || - ck::type_convert(conv_filter_strides.size()) != num_dim_spatial || - ck::type_convert(conv_filter_dilations.size()) != num_dim_spatial || - ck::type_convert(input_left_pads.size()) != num_dim_spatial || - ck::type_convert(input_right_pads.size()) != num_dim_spatial) + if(ck::type_convert(filter_spatial_lengths_.size()) != num_dim_spatial_ || + ck::type_convert(input_spatial_lengths_.size()) != num_dim_spatial_ || + ck::type_convert(conv_filter_strides_.size()) != num_dim_spatial_ || + ck::type_convert(conv_filter_dilations_.size()) != num_dim_spatial_ || + ck::type_convert(input_left_pads_.size()) != num_dim_spatial_ || + ck::type_convert(input_right_pads_.size()) != num_dim_spatial_) { throw( std::runtime_error("ConvParams::GetOutputSpatialLengths: " "parameter size is different from number of declared dimensions!")); } - std::vector out_spatial_len(num_dim_spatial, 0); - for(ck::index_t i = 0; i < num_dim_spatial; ++i) + std::vector out_spatial_len(num_dim_spatial_, 0); + for(ck::index_t i = 0; i < num_dim_spatial_; ++i) { // XEff = (X - 1) * conv_dilation_w + 1; // Wo = (Wi + in_left_pad_w + in_right_pad_w - XEff) / conv_stride_w + 1; - const ck::index_t idx_eff = (filter_spatial_lengths[i] - 1) * conv_filter_dilations[i] + 1; + const ck::index_t idx_eff = + (filter_spatial_lengths_[i] - 1) * conv_filter_dilations_[i] + 1; out_spatial_len[i] = - (input_spatial_lengths[i] + input_left_pads[i] + input_right_pads[i] - idx_eff) / - conv_filter_strides[i] + + (input_spatial_lengths_[i] + input_left_pads_[i] + input_right_pads_[i] - idx_eff) / + conv_filter_strides_[i] + 1; } return out_spatial_len; @@ -116,40 +117,40 @@ ConvParams parse_conv_params(int num_dim_spatial, int arg_idx, char* const argv[ { ck::utils::conv::ConvParams params; - params.num_dim_spatial = num_dim_spatial; - params.N = std::stoi(argv[arg_idx++]); - params.K = std::stoi(argv[arg_idx++]); - params.C = std::stoi(argv[arg_idx++]); + params.num_dim_spatial_ = num_dim_spatial; + params.N_ = std::stoi(argv[arg_idx++]); + params.K_ = std::stoi(argv[arg_idx++]); + params.C_ = std::stoi(argv[arg_idx++]); - params.filter_spatial_lengths.resize(num_dim_spatial); + params.filter_spatial_lengths_.resize(num_dim_spatial); for(int i = 0; i < num_dim_spatial; ++i) { - params.filter_spatial_lengths[i] = std::stoi(argv[arg_idx++]); + params.filter_spatial_lengths_[i] = std::stoi(argv[arg_idx++]); } - params.input_spatial_lengths.resize(num_dim_spatial); + params.input_spatial_lengths_.resize(num_dim_spatial); for(int i = 0; i < num_dim_spatial; ++i) { - params.input_spatial_lengths[i] = std::stoi(argv[arg_idx++]); + params.input_spatial_lengths_[i] = std::stoi(argv[arg_idx++]); } - params.conv_filter_strides.resize(num_dim_spatial); + params.conv_filter_strides_.resize(num_dim_spatial); for(int i = 0; i < num_dim_spatial; ++i) { - params.conv_filter_strides[i] = std::stoi(argv[arg_idx++]); + params.conv_filter_strides_[i] = std::stoi(argv[arg_idx++]); } - params.conv_filter_dilations.resize(num_dim_spatial); + params.conv_filter_dilations_.resize(num_dim_spatial); for(int i = 0; i < num_dim_spatial; ++i) { - params.conv_filter_dilations[i] = std::stoi(argv[arg_idx++]); + params.conv_filter_dilations_[i] = std::stoi(argv[arg_idx++]); } - params.input_left_pads.resize(num_dim_spatial); + params.input_left_pads_.resize(num_dim_spatial); for(int i = 0; i < num_dim_spatial; ++i) { - params.input_left_pads[i] = std::stoi(argv[arg_idx++]); + params.input_left_pads_[i] = std::stoi(argv[arg_idx++]); } - params.input_right_pads.resize(num_dim_spatial); + params.input_right_pads_.resize(num_dim_spatial); for(int i = 0; i < num_dim_spatial; ++i) { - params.input_right_pads[i] = std::stoi(argv[arg_idx++]); + params.input_right_pads_[i] = std::stoi(argv[arg_idx++]); } return params; @@ -228,12 +229,12 @@ HostTensorDescriptor get_input_host_tensor_descriptor(const std::vector #include -#include "conv_fwd_util.hpp" +#include "conv_util.hpp" #include "element_wise_operation.hpp" #include "fill.hpp" #include "profile_convnd_fwd.hpp" diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt index cc0778de4c..bd3466ecad 100644 --- a/test/CMakeLists.txt +++ b/test/CMakeLists.txt @@ -1,4 +1,5 @@ include_directories(BEFORE + ${PROJECT_SOURCE_DIR}/ ${PROJECT_SOURCE_DIR}/include/ck ${PROJECT_SOURCE_DIR}/include/ck/utility ${PROJECT_SOURCE_DIR}/include/ck/tensor_description @@ -41,7 +42,7 @@ function(add_gtest_executable TEST_NAME) add_dependencies(tests ${TEST_NAME}) add_dependencies(check ${TEST_NAME}) # suppress gtest warnings - target_compile_options(${TEST_NAME} PRIVATE -Wno-global-constructors) + target_compile_options(${TEST_NAME} PRIVATE -Wno-global-constructors -Wno-undef) target_link_libraries(${TEST_NAME} PRIVATE gtest_main) gtest_discover_tests(${TEST_NAME}) endfunction(add_gtest_executable TEST_NAME) diff --git a/test/conv2d_bwd_weight/CMakeLists.txt b/test/conv2d_bwd_weight/CMakeLists.txt index 7b515b6b8e..ecd5336c1f 100644 --- a/test/conv2d_bwd_weight/CMakeLists.txt +++ b/test/conv2d_bwd_weight/CMakeLists.txt @@ -4,4 +4,4 @@ include_directories(BEFORE ) add_test_executable(test_conv2d_bwd_weight conv2d_bwd_weight.cpp) -target_link_libraries(test_conv2d_bwd_weight PRIVATE host_tensor device_conv2d_bwd_weight_instance conv_fwd_util) +target_link_libraries(test_conv2d_bwd_weight PRIVATE host_tensor device_conv2d_bwd_weight_instance conv_util) diff --git a/test/conv2d_bwd_weight/conv2d_bwd_weight.cpp b/test/conv2d_bwd_weight/conv2d_bwd_weight.cpp index bb3ed985e3..085473f695 100644 --- a/test/conv2d_bwd_weight/conv2d_bwd_weight.cpp +++ b/test/conv2d_bwd_weight/conv2d_bwd_weight.cpp @@ -6,7 +6,7 @@ #include #include -#include "conv_fwd_util.hpp" +#include "conv_util.hpp" #include "profile_conv_bwd_weight_impl.hpp" int test_self() @@ -32,16 +32,16 @@ int test_self() 1, // init_method, 0, // do_log, 1, // nrepeat, - param.N, - param.K, - param.C, - param.input_spatial_lengths, - param.filter_spatial_lengths, + param.N_, + param.K_, + param.C_, + param.input_spatial_lengths_, + param.filter_spatial_lengths_, param.GetOutputSpatialLengths(), - param.conv_filter_strides, - param.conv_filter_dilations, - param.input_left_pads, - param.input_right_pads, + param.conv_filter_strides_, + param.conv_filter_dilations_, + param.input_left_pads_, + param.input_right_pads_, 2); // fp16 @@ -56,16 +56,16 @@ int test_self() 1, // init_method, 0, // do_log, 1, // nrepeat, - param.N, - param.K, - param.C, - param.input_spatial_lengths, - param.filter_spatial_lengths, + param.N_, + param.K_, + param.C_, + param.input_spatial_lengths_, + param.filter_spatial_lengths_, param.GetOutputSpatialLengths(), - param.conv_filter_strides, - param.conv_filter_dilations, - param.input_left_pads, - param.input_right_pads, + param.conv_filter_strides_, + param.conv_filter_dilations_, + param.input_left_pads_, + param.input_right_pads_, 2); } return pass; @@ -159,16 +159,16 @@ int main(int argc, char* argv[]) init_method, 0, 1, - param.N, - param.K, - param.C, - param.input_spatial_lengths, - param.filter_spatial_lengths, + param.N_, + param.K_, + param.C_, + param.input_spatial_lengths_, + param.filter_spatial_lengths_, param.GetOutputSpatialLengths(), - param.conv_filter_strides, - param.conv_filter_dilations, - param.input_left_pads, - param.input_right_pads, + param.conv_filter_strides_, + param.conv_filter_dilations_, + param.input_left_pads_, + param.input_right_pads_, split_k); } else if(data_type == 1) @@ -184,16 +184,16 @@ int main(int argc, char* argv[]) init_method, 0, 1, - param.N, - param.K, - param.C, - param.input_spatial_lengths, - param.filter_spatial_lengths, + param.N_, + param.K_, + param.C_, + param.input_spatial_lengths_, + param.filter_spatial_lengths_, param.GetOutputSpatialLengths(), - param.conv_filter_strides, - param.conv_filter_dilations, - param.input_left_pads, - param.input_right_pads, + param.conv_filter_strides_, + param.conv_filter_dilations_, + param.input_left_pads_, + param.input_right_pads_, split_k); } else diff --git a/test/conv_util/CMakeLists.txt b/test/conv_util/CMakeLists.txt index 70b3e851be..795c9ec0ac 100644 --- a/test/conv_util/CMakeLists.txt +++ b/test/conv_util/CMakeLists.txt @@ -1,2 +1,2 @@ add_gtest_executable(test_conv_util conv_util.cpp) -target_link_libraries(test_conv_util PRIVATE host_tensor conv_fwd_util) +target_link_libraries(test_conv_util PRIVATE host_tensor conv_util) diff --git a/test/conv_util/conv_util.cpp b/test/conv_util/conv_util.cpp index 453225e800..98f55b872e 100644 --- a/test/conv_util/conv_util.cpp +++ b/test/conv_util/conv_util.cpp @@ -1,10 +1,10 @@ #include #include #include -#include "gtest/gtest.h" +#include #include "config.hpp" -#include "conv_fwd_util.hpp" +#include "conv_util.hpp" #include "tensor_layout.hpp" #include "check_err.hpp" @@ -15,13 +15,13 @@ class TestConvUtil : public ::testing::Test public: void SetNDParams(std::size_t ndims) { - conv_params.num_dim_spatial = ndims; - conv_params.filter_spatial_lengths = std::vector(ndims, 3); - conv_params.input_spatial_lengths = std::vector(ndims, 71); - conv_params.conv_filter_strides = std::vector(ndims, 2); - conv_params.conv_filter_dilations = std::vector(ndims, 1); - conv_params.input_left_pads = std::vector(ndims, 1); - conv_params.input_right_pads = std::vector(ndims, 1); + conv_params.num_dim_spatial_ = ndims; + conv_params.filter_spatial_lengths_ = std::vector(ndims, 3); + conv_params.input_spatial_lengths_ = std::vector(ndims, 71); + conv_params.conv_filter_strides_ = std::vector(ndims, 2); + conv_params.conv_filter_dilations_ = std::vector(ndims, 1); + conv_params.input_left_pads_ = std::vector(ndims, 1); + conv_params.input_right_pads_ = std::vector(ndims, 1); } protected: @@ -44,29 +44,29 @@ TEST_F(TestConvUtil, ConvParamsGetOutputSpatialLengths2D) std::vector{36, 36}, "Error: ConvParams 2D default constructor.")); - conv_params.conv_filter_strides = std::vector{1, 1}; - out_spatial_len = conv_params.GetOutputSpatialLengths(); + conv_params.conv_filter_strides_ = std::vector{1, 1}; + out_spatial_len = conv_params.GetOutputSpatialLengths(); EXPECT_TRUE(ck::utils::check_err( out_spatial_len, std::vector{71, 71}, "Error: ConvParams 2D stride {1,1}.")); - conv_params.conv_filter_strides = std::vector{2, 2}; - conv_params.input_left_pads = std::vector{2, 2}; - conv_params.input_right_pads = std::vector{2, 2}; - out_spatial_len = conv_params.GetOutputSpatialLengths(); + conv_params.conv_filter_strides_ = std::vector{2, 2}; + conv_params.input_left_pads_ = std::vector{2, 2}; + conv_params.input_right_pads_ = std::vector{2, 2}; + out_spatial_len = conv_params.GetOutputSpatialLengths(); EXPECT_TRUE(ck::utils::check_err(out_spatial_len, std::vector{37, 37}, "Error: ConvParams 2D padding left/right {2,2}.")); - conv_params.conv_filter_dilations = std::vector{2, 2}; - out_spatial_len = conv_params.GetOutputSpatialLengths(); + conv_params.conv_filter_dilations_ = std::vector{2, 2}; + out_spatial_len = conv_params.GetOutputSpatialLengths(); EXPECT_TRUE(ck::utils::check_err( out_spatial_len, std::vector{36, 36}, "Error: ConvParams 2D dilation {2,2}.")); - conv_params.conv_filter_strides = std::vector{3, 3}; - conv_params.input_left_pads = std::vector{1, 1}; - conv_params.input_right_pads = std::vector{1, 1}; - conv_params.conv_filter_dilations = std::vector{2, 2}; - out_spatial_len = conv_params.GetOutputSpatialLengths(); + conv_params.conv_filter_strides_ = std::vector{3, 3}; + conv_params.input_left_pads_ = std::vector{1, 1}; + conv_params.input_right_pads_ = std::vector{1, 1}; + conv_params.conv_filter_dilations_ = std::vector{2, 2}; + out_spatial_len = conv_params.GetOutputSpatialLengths(); EXPECT_TRUE( ck::utils::check_err(out_spatial_len, std::vector{23, 23}, @@ -81,29 +81,29 @@ TEST_F(TestConvUtil, ConvParamsGetOutputSpatialLengths1D) EXPECT_TRUE(ck::utils::check_err( out_spatial_len, std::vector{36}, "Error: ConvParams 1D.")); - conv_params.conv_filter_strides = std::vector{1}; - out_spatial_len = conv_params.GetOutputSpatialLengths(); + conv_params.conv_filter_strides_ = std::vector{1}; + out_spatial_len = conv_params.GetOutputSpatialLengths(); EXPECT_TRUE(ck::utils::check_err( out_spatial_len, std::vector{71}, "Error: ConvParams 1D stride {1}.")); - conv_params.conv_filter_strides = std::vector{2}; - conv_params.input_left_pads = std::vector{2}; - conv_params.input_right_pads = std::vector{2}; - out_spatial_len = conv_params.GetOutputSpatialLengths(); + conv_params.conv_filter_strides_ = std::vector{2}; + conv_params.input_left_pads_ = std::vector{2}; + conv_params.input_right_pads_ = std::vector{2}; + out_spatial_len = conv_params.GetOutputSpatialLengths(); EXPECT_TRUE(ck::utils::check_err(out_spatial_len, std::vector{37}, "Error: ConvParams 1D padding left/right {2}.")); - conv_params.conv_filter_dilations = std::vector{2}; - out_spatial_len = conv_params.GetOutputSpatialLengths(); + conv_params.conv_filter_dilations_ = std::vector{2}; + out_spatial_len = conv_params.GetOutputSpatialLengths(); EXPECT_TRUE(ck::utils::check_err( out_spatial_len, std::vector{36}, "Error: ConvParams 1D dilation {2}.")); - conv_params.conv_filter_strides = std::vector{3}; - conv_params.input_left_pads = std::vector{1}; - conv_params.input_right_pads = std::vector{1}; - conv_params.conv_filter_dilations = std::vector{2}; - out_spatial_len = conv_params.GetOutputSpatialLengths(); + conv_params.conv_filter_strides_ = std::vector{3}; + conv_params.input_left_pads_ = std::vector{1}; + conv_params.input_right_pads_ = std::vector{1}; + conv_params.conv_filter_dilations_ = std::vector{2}; + out_spatial_len = conv_params.GetOutputSpatialLengths(); EXPECT_TRUE( ck::utils::check_err(out_spatial_len, std::vector{23}, @@ -118,31 +118,31 @@ TEST_F(TestConvUtil, ConvParamsGetOutputSpatialLengths3D) EXPECT_TRUE(ck::utils::check_err( out_spatial_len, std::vector{36, 36, 36}, "Error: ConvParams 3D.")); - conv_params.conv_filter_strides = std::vector{1, 1, 1}; - out_spatial_len = conv_params.GetOutputSpatialLengths(); + conv_params.conv_filter_strides_ = std::vector{1, 1, 1}; + out_spatial_len = conv_params.GetOutputSpatialLengths(); EXPECT_TRUE(ck::utils::check_err(out_spatial_len, std::vector{71, 71, 71}, "Error: ConvParams 3D stride {1, 1, 1}.")); - conv_params.conv_filter_strides = std::vector{2, 2, 2}; - conv_params.input_left_pads = std::vector{2, 2, 2}; - conv_params.input_right_pads = std::vector{2, 2, 2}; - out_spatial_len = conv_params.GetOutputSpatialLengths(); + conv_params.conv_filter_strides_ = std::vector{2, 2, 2}; + conv_params.input_left_pads_ = std::vector{2, 2, 2}; + conv_params.input_right_pads_ = std::vector{2, 2, 2}; + out_spatial_len = conv_params.GetOutputSpatialLengths(); EXPECT_TRUE(ck::utils::check_err(out_spatial_len, std::vector{37, 37, 37}, "Error: ConvParams 3D padding left/right {2, 2, 2}.")); - conv_params.conv_filter_dilations = std::vector{2, 2, 2}; - out_spatial_len = conv_params.GetOutputSpatialLengths(); + conv_params.conv_filter_dilations_ = std::vector{2, 2, 2}; + out_spatial_len = conv_params.GetOutputSpatialLengths(); EXPECT_TRUE(ck::utils::check_err(out_spatial_len, std::vector{36, 36, 36}, "Error: ConvParams 3D dilation {2, 2, 2}.")); - conv_params.conv_filter_strides = std::vector{3, 3, 3}; - conv_params.input_left_pads = std::vector{1, 1, 1}; - conv_params.input_right_pads = std::vector{1, 1, 1}; - conv_params.conv_filter_dilations = std::vector{2, 2, 2}; - out_spatial_len = conv_params.GetOutputSpatialLengths(); + conv_params.conv_filter_strides_ = std::vector{3, 3, 3}; + conv_params.input_left_pads_ = std::vector{1, 1, 1}; + conv_params.input_right_pads_ = std::vector{1, 1, 1}; + conv_params.conv_filter_dilations_ = std::vector{2, 2, 2}; + out_spatial_len = conv_params.GetOutputSpatialLengths(); EXPECT_TRUE(ck::utils::check_err( out_spatial_len, std::vector{23, 23, 23}, diff --git a/test/convnd_bwd_data/CMakeLists.txt b/test/convnd_bwd_data/CMakeLists.txt index 58e6e7d3d0..55d71a41d3 100644 --- a/test/convnd_bwd_data/CMakeLists.txt +++ b/test/convnd_bwd_data/CMakeLists.txt @@ -4,4 +4,4 @@ include_directories(BEFORE ) add_test_executable(test_convnd_bwd_data convnd_bwd_data.cpp) -target_link_libraries(test_convnd_bwd_data PRIVATE host_tensor device_convnd_bwd_data_instance conv_fwd_util) +target_link_libraries(test_convnd_bwd_data PRIVATE host_tensor device_convnd_bwd_data_instance conv_util) diff --git a/test/convnd_bwd_data/convnd_bwd_data.cpp b/test/convnd_bwd_data/convnd_bwd_data.cpp index cbc215033b..0b6ddb1405 100644 --- a/test/convnd_bwd_data/convnd_bwd_data.cpp +++ b/test/convnd_bwd_data/convnd_bwd_data.cpp @@ -31,16 +31,16 @@ int main() 1, // init_method, 0, // do_log, 1, // nrepeat, - param.N, - param.K, - param.C, - param.input_spatial_lengths, - param.filter_spatial_lengths, + param.N_, + param.K_, + param.C_, + param.input_spatial_lengths_, + param.filter_spatial_lengths_, param.GetOutputSpatialLengths(), - param.conv_filter_strides, - param.conv_filter_dilations, - param.input_left_pads, - param.input_right_pads); + param.conv_filter_strides_, + param.conv_filter_dilations_, + param.input_left_pads_, + param.input_right_pads_); pass &= ck::profiler::profile_convnd_bwd_data_impl<1, ck::half_t, @@ -54,16 +54,16 @@ int main() 1, // init_method, 0, // do_log, 1, // nrepeat, - param.N, - param.K, - param.C, - param.input_spatial_lengths, - param.filter_spatial_lengths, + param.N_, + param.K_, + param.C_, + param.input_spatial_lengths_, + param.filter_spatial_lengths_, param.GetOutputSpatialLengths(), - param.conv_filter_strides, - param.conv_filter_dilations, - param.input_left_pads, - param.input_right_pads); + param.conv_filter_strides_, + param.conv_filter_dilations_, + param.input_left_pads_, + param.input_right_pads_); pass &= ck::profiler::profile_convnd_bwd_data_impl<1, ck::bhalf_t, @@ -77,16 +77,16 @@ int main() 1, // init_method, 0, // do_log, 1, // nrepeat, - param.N, - param.K, - param.C, - param.input_spatial_lengths, - param.filter_spatial_lengths, + param.N_, + param.K_, + param.C_, + param.input_spatial_lengths_, + param.filter_spatial_lengths_, param.GetOutputSpatialLengths(), - param.conv_filter_strides, - param.conv_filter_dilations, - param.input_left_pads, - param.input_right_pads); + param.conv_filter_strides_, + param.conv_filter_dilations_, + param.input_left_pads_, + param.input_right_pads_); pass &= ck::profiler::profile_convnd_bwd_data_impl<1, int8_t, @@ -100,16 +100,16 @@ int main() 1, // init_method, 0, // do_log, 1, // nrepeat, - param.N, - param.K, - param.C, - param.input_spatial_lengths, - param.filter_spatial_lengths, + param.N_, + param.K_, + param.C_, + param.input_spatial_lengths_, + param.filter_spatial_lengths_, param.GetOutputSpatialLengths(), - param.conv_filter_strides, - param.conv_filter_dilations, - param.input_left_pads, - param.input_right_pads); + param.conv_filter_strides_, + param.conv_filter_dilations_, + param.input_left_pads_, + param.input_right_pads_); } // check 2d @@ -132,16 +132,16 @@ int main() 1, // init_method, 0, // do_log, 1, // nrepeat, - param.N, - param.K, - param.C, - param.input_spatial_lengths, - param.filter_spatial_lengths, + param.N_, + param.K_, + param.C_, + param.input_spatial_lengths_, + param.filter_spatial_lengths_, param.GetOutputSpatialLengths(), - param.conv_filter_strides, - param.conv_filter_dilations, - param.input_left_pads, - param.input_right_pads); + param.conv_filter_strides_, + param.conv_filter_dilations_, + param.input_left_pads_, + param.input_right_pads_); pass &= ck::profiler::profile_convnd_bwd_data_impl<2, ck::half_t, @@ -155,16 +155,16 @@ int main() 1, // init_method, 0, // do_log, 1, // nrepeat, - param.N, - param.K, - param.C, - param.input_spatial_lengths, - param.filter_spatial_lengths, + param.N_, + param.K_, + param.C_, + param.input_spatial_lengths_, + param.filter_spatial_lengths_, param.GetOutputSpatialLengths(), - param.conv_filter_strides, - param.conv_filter_dilations, - param.input_left_pads, - param.input_right_pads); + param.conv_filter_strides_, + param.conv_filter_dilations_, + param.input_left_pads_, + param.input_right_pads_); pass &= ck::profiler::profile_convnd_bwd_data_impl<2, ck::bhalf_t, @@ -178,16 +178,16 @@ int main() 1, // init_method, 0, // do_log, 1, // nrepeat, - param.N, - param.K, - param.C, - param.input_spatial_lengths, - param.filter_spatial_lengths, + param.N_, + param.K_, + param.C_, + param.input_spatial_lengths_, + param.filter_spatial_lengths_, param.GetOutputSpatialLengths(), - param.conv_filter_strides, - param.conv_filter_dilations, - param.input_left_pads, - param.input_right_pads); + param.conv_filter_strides_, + param.conv_filter_dilations_, + param.input_left_pads_, + param.input_right_pads_); pass &= ck::profiler::profile_convnd_bwd_data_impl<2, int8_t, @@ -201,16 +201,16 @@ int main() 1, // init_method, 0, // do_log, 1, // nrepeat, - param.N, - param.K, - param.C, - param.input_spatial_lengths, - param.filter_spatial_lengths, + param.N_, + param.K_, + param.C_, + param.input_spatial_lengths_, + param.filter_spatial_lengths_, param.GetOutputSpatialLengths(), - param.conv_filter_strides, - param.conv_filter_dilations, - param.input_left_pads, - param.input_right_pads); + param.conv_filter_strides_, + param.conv_filter_dilations_, + param.input_left_pads_, + param.input_right_pads_); } // check 3d @@ -236,16 +236,16 @@ int main() 1, // init_method, 0, // do_log, 1, // nrepeat, - param.N, - param.K, - param.C, - param.input_spatial_lengths, - param.filter_spatial_lengths, + param.N_, + param.K_, + param.C_, + param.input_spatial_lengths_, + param.filter_spatial_lengths_, param.GetOutputSpatialLengths(), - param.conv_filter_strides, - param.conv_filter_dilations, - param.input_left_pads, - param.input_right_pads); + param.conv_filter_strides_, + param.conv_filter_dilations_, + param.input_left_pads_, + param.input_right_pads_); pass &= ck::profiler::profile_convnd_bwd_data_impl<3, ck::half_t, @@ -259,16 +259,16 @@ int main() 1, // init_method, 0, // do_log, 1, // nrepeat, - param.N, - param.K, - param.C, - param.input_spatial_lengths, - param.filter_spatial_lengths, + param.N_, + param.K_, + param.C_, + param.input_spatial_lengths_, + param.filter_spatial_lengths_, param.GetOutputSpatialLengths(), - param.conv_filter_strides, - param.conv_filter_dilations, - param.input_left_pads, - param.input_right_pads); + param.conv_filter_strides_, + param.conv_filter_dilations_, + param.input_left_pads_, + param.input_right_pads_); pass &= ck::profiler::profile_convnd_bwd_data_impl<3, ck::bhalf_t, @@ -282,16 +282,16 @@ int main() 1, // init_method, 0, // do_log, 1, // nrepeat, - param.N, - param.K, - param.C, - param.input_spatial_lengths, - param.filter_spatial_lengths, + param.N_, + param.K_, + param.C_, + param.input_spatial_lengths_, + param.filter_spatial_lengths_, param.GetOutputSpatialLengths(), - param.conv_filter_strides, - param.conv_filter_dilations, - param.input_left_pads, - param.input_right_pads); + param.conv_filter_strides_, + param.conv_filter_dilations_, + param.input_left_pads_, + param.input_right_pads_); pass &= ck::profiler::profile_convnd_bwd_data_impl<3, int8_t, @@ -305,16 +305,16 @@ int main() 1, // init_method, 0, // do_log, 1, // nrepeat, - param.N, - param.K, - param.C, - param.input_spatial_lengths, - param.filter_spatial_lengths, + param.N_, + param.K_, + param.C_, + param.input_spatial_lengths_, + param.filter_spatial_lengths_, param.GetOutputSpatialLengths(), - param.conv_filter_strides, - param.conv_filter_dilations, - param.input_left_pads, - param.input_right_pads); + param.conv_filter_strides_, + param.conv_filter_dilations_, + param.input_left_pads_, + param.input_right_pads_); } if(pass) diff --git a/test/convnd_fwd/CMakeLists.txt b/test/convnd_fwd/CMakeLists.txt index 1d2ae3e4e3..34e698681b 100644 --- a/test/convnd_fwd/CMakeLists.txt +++ b/test/convnd_fwd/CMakeLists.txt @@ -1,13 +1,13 @@ add_custom_target(test_convnd_fwd) add_gtest_executable(test_conv1d_fwd conv1d_fwd.cpp) -target_link_libraries(test_conv1d_fwd PRIVATE host_tensor device_conv1d_fwd_instance conv_fwd_util) +target_link_libraries(test_conv1d_fwd PRIVATE host_tensor device_conv1d_fwd_instance conv_util) add_dependencies(test_convnd_fwd test_conv1d_fwd) add_gtest_executable(test_conv2d_fwd conv2d_fwd.cpp) -target_link_libraries(test_conv2d_fwd PRIVATE host_tensor device_conv2d_fwd_instance conv_fwd_util) +target_link_libraries(test_conv2d_fwd PRIVATE host_tensor device_conv2d_fwd_instance conv_util) add_dependencies(test_convnd_fwd test_conv2d_fwd) add_gtest_executable(test_conv3d_fwd conv3d_fwd.cpp) -target_link_libraries(test_conv3d_fwd PRIVATE host_tensor device_conv3d_fwd_instance conv_fwd_util) +target_link_libraries(test_conv3d_fwd PRIVATE host_tensor device_conv3d_fwd_instance conv_util) add_dependencies(test_convnd_fwd test_conv3d_fwd) diff --git a/test/convnd_fwd/conv1d_fwd.cpp b/test/convnd_fwd/conv1d_fwd.cpp index c161b2795e..b6b6a89b2c 100644 --- a/test/convnd_fwd/conv1d_fwd.cpp +++ b/test/convnd_fwd/conv1d_fwd.cpp @@ -6,7 +6,7 @@ #include "data_type.hpp" #include "element_wise_operation.hpp" -#include "conv_fwd_util.hpp" +#include "library/include/ck/library/utility/conv_util.hpp" #include "conv_util.hpp" namespace { @@ -19,13 +19,13 @@ bool test_conv1d_nwc_instances(const std::vector{3}; - params.input_spatial_lengths = std::vector{71}; - params.conv_filter_strides = std::vector{2}; - params.conv_filter_dilations = std::vector{1}; - params.input_left_pads = std::vector{1}; - params.input_right_pads = std::vector{1}; + params.num_dim_spatial_ = 1; + params.filter_spatial_lengths_ = std::vector{3}; + params.input_spatial_lengths_ = std::vector{71}; + params.conv_filter_strides_ = std::vector{2}; + params.conv_filter_dilations_ = std::vector{1}; + params.input_left_pads_ = std::vector{1}; + params.input_right_pads_ = std::vector{1}; conv::ConvFwdOpInstance conv_instance(params); @@ -44,16 +44,16 @@ TEST(Conv1DFwdNWC, TestConv1D) namespace ctl = ck::tensor_layout::convolution; ck::utils::conv::ConvParams params; - params.num_dim_spatial = 1; - params.N = 2; - params.K = 16; - params.C = 4; - params.filter_spatial_lengths = std::vector{3}; - params.input_spatial_lengths = std::vector{16}; - params.conv_filter_strides = std::vector{1}; - params.conv_filter_dilations = std::vector{1}; - params.input_left_pads = std::vector{1}; - params.input_right_pads = std::vector{1}; + params.num_dim_spatial_ = 1; + params.N_ = 2; + params.K_ = 16; + params.C_ = 4; + params.filter_spatial_lengths_ = std::vector{3}; + params.input_spatial_lengths_ = std::vector{16}; + params.conv_filter_strides_ = std::vector{1}; + params.conv_filter_dilations_ = std::vector{1}; + params.input_left_pads_ = std::vector{1}; + params.input_right_pads_ = std::vector{1}; std::vector conv_ptrs; test::conv::get_test_convolution_fwd_instance<1>(conv_ptrs); diff --git a/test/convnd_fwd/conv2d_fwd.cpp b/test/convnd_fwd/conv2d_fwd.cpp index e3815f778a..05e46147be 100644 --- a/test/convnd_fwd/conv2d_fwd.cpp +++ b/test/convnd_fwd/conv2d_fwd.cpp @@ -6,7 +6,7 @@ #include "data_type.hpp" #include "element_wise_operation.hpp" -#include "conv_fwd_util.hpp" +#include "ck/library/utility/conv_util.hpp" #include "conv_util.hpp" namespace { @@ -18,13 +18,13 @@ bool test_conv2d_nhwc_instances(const std::vector{3, 3}; - params.input_spatial_lengths = std::vector{71, 71}; - params.conv_filter_strides = std::vector{2, 2}; - params.conv_filter_dilations = std::vector{1, 1}; - params.input_left_pads = std::vector{1, 1}; - params.input_right_pads = std::vector{1, 1}; + params.num_dim_spatial_ = 2; + params.filter_spatial_lengths_ = std::vector{3, 3}; + params.input_spatial_lengths_ = std::vector{71, 71}; + params.conv_filter_strides_ = std::vector{2, 2}; + params.conv_filter_dilations_ = std::vector{1, 1}; + params.input_left_pads_ = std::vector{1, 1}; + params.input_right_pads_ = std::vector{1, 1}; conv::ConvFwdOpInstance conv_instance(params); @@ -42,11 +42,11 @@ TEST(Conv2DFwdNHWC, TestConv2D) using namespace ck::utils; ck::utils::conv::ConvParams params; - params.N = 2; - params.K = 16; - params.C = 4; - params.input_spatial_lengths = std::vector{16, 16}; - params.conv_filter_strides = std::vector{1, 1}; + params.N_ = 2; + params.K_ = 16; + params.C_ = 4; + params.input_spatial_lengths_ = std::vector{16, 16}; + params.conv_filter_strides_ = std::vector{1, 1}; std::vector conv_ptrs; test::conv::get_test_convolution_fwd_instance<2>(conv_ptrs); diff --git a/test/convnd_fwd/conv3d_fwd.cpp b/test/convnd_fwd/conv3d_fwd.cpp index fc3da3e9c7..c6f0e7ec07 100644 --- a/test/convnd_fwd/conv3d_fwd.cpp +++ b/test/convnd_fwd/conv3d_fwd.cpp @@ -7,7 +7,7 @@ #include "data_type.hpp" #include "element_wise_operation.hpp" -#include "conv_fwd_util.hpp" +#include "library/include/ck/library/utility/conv_util.hpp" #include "conv_util.hpp" namespace { @@ -20,14 +20,14 @@ bool test_conv3d_ndhwc_instances(const std::vector{3, 3, 2}; - params.input_spatial_lengths = std::vector{32, 32, 2}; - params.conv_filter_strides = std::vector{2, 2, 2}; - params.conv_filter_dilations = std::vector{1, 1, 1}; - params.input_left_pads = std::vector{1, 1, 1}; - params.input_right_pads = std::vector{1, 1, 1}; + params.N_ = 64; + params.num_dim_spatial_ = 3; + params.filter_spatial_lengths_ = std::vector{3, 3, 2}; + params.input_spatial_lengths_ = std::vector{32, 32, 2}; + params.conv_filter_strides_ = std::vector{2, 2, 2}; + params.conv_filter_dilations_ = std::vector{1, 1, 1}; + params.input_left_pads_ = std::vector{1, 1, 1}; + params.input_right_pads_ = std::vector{1, 1, 1}; conv::ConvFwdOpInstance conv_instance(params); @@ -46,16 +46,16 @@ TEST(Conv3DFwdNDHWC, TestConv3D) namespace ctl = ck::tensor_layout::convolution; conv::ConvParams params; - params.num_dim_spatial = 3; - params.N = 2; - params.K = 16; - params.C = 4; - params.filter_spatial_lengths = std::vector{3, 3, 3}; - params.input_spatial_lengths = std::vector{16, 16, 16}; - params.conv_filter_strides = std::vector{1, 1, 1}; - params.conv_filter_dilations = std::vector{1, 1, 1}; - params.input_left_pads = std::vector{1, 1, 1}; - params.input_right_pads = std::vector{1, 1, 1}; + params.num_dim_spatial_ = 3; + params.N_ = 2; + params.K_ = 16; + params.C_ = 4; + params.filter_spatial_lengths_ = std::vector{3, 3, 3}; + params.input_spatial_lengths_ = std::vector{16, 16, 16}; + params.conv_filter_strides_ = std::vector{1, 1, 1}; + params.conv_filter_dilations_ = std::vector{1, 1, 1}; + params.input_left_pads_ = std::vector{1, 1, 1}; + params.input_right_pads_ = std::vector{1, 1, 1}; std::vector conv_ptrs; test::conv::get_test_convolution_fwd_instance<3>(conv_ptrs); @@ -77,16 +77,16 @@ TEST(Conv3DFwdNDHWC, InputOver2GB) // >2GB Input conv::ConvParams params; - params.num_dim_spatial = 3; - params.N = 2; - params.K = 16; - params.C = 32; - params.filter_spatial_lengths = std::vector{3, 3, 3}; - params.input_spatial_lengths = std::vector{32, 1000, 1000}; - params.conv_filter_strides = std::vector{1, 1, 1}; - params.conv_filter_dilations = std::vector{1, 1, 1}; - params.input_left_pads = std::vector{1, 1, 1}; - params.input_right_pads = std::vector{1, 1, 1}; + params.num_dim_spatial_ = 3; + params.N_ = 2; + params.K_ = 16; + params.C_ = 32; + params.filter_spatial_lengths_ = std::vector{3, 3, 3}; + params.input_spatial_lengths_ = std::vector{32, 1000, 1000}; + params.conv_filter_strides_ = std::vector{1, 1, 1}; + params.conv_filter_dilations_ = std::vector{1, 1, 1}; + params.input_left_pads_ = std::vector{1, 1, 1}; + params.input_right_pads_ = std::vector{1, 1, 1}; std::vector conv_ptrs; test::conv::get_test_convolution_fwd_instance<3>(conv_ptrs); @@ -94,16 +94,16 @@ TEST(Conv3DFwdNDHWC, InputOver2GB) auto arg = conv_ptrs.back()->MakeArgumentPointer(nullptr, nullptr, nullptr, - params.N, - params.K, - params.C, - params.input_spatial_lengths, - params.filter_spatial_lengths, + params.N_, + params.K_, + params.C_, + params.input_spatial_lengths_, + params.filter_spatial_lengths_, params.GetOutputSpatialLengths(), - params.conv_filter_strides, - params.conv_filter_dilations, - params.input_left_pads, - params.input_right_pads, + params.conv_filter_strides_, + params.conv_filter_dilations_, + params.input_left_pads_, + params.input_right_pads_, PassThrough{}, PassThrough{}, PassThrough{}); @@ -117,16 +117,16 @@ TEST(Conv3DFwdNDHWC, FiltersOver2GB) // >2GB Filters conv::ConvParams params; - params.num_dim_spatial = 3; - params.N = 2; - params.K = 16; - params.C = 32; - params.filter_spatial_lengths = std::vector{4, 1000, 1000}; - params.input_spatial_lengths = std::vector{16, 16, 16}; - params.conv_filter_strides = std::vector{1, 1, 1}; - params.conv_filter_dilations = std::vector{1, 1, 1}; - params.input_left_pads = std::vector{1, 1, 1}; - params.input_right_pads = std::vector{1, 1, 1}; + params.num_dim_spatial_ = 3; + params.N_ = 2; + params.K_ = 16; + params.C_ = 32; + params.filter_spatial_lengths_ = std::vector{4, 1000, 1000}; + params.input_spatial_lengths_ = std::vector{16, 16, 16}; + params.conv_filter_strides_ = std::vector{1, 1, 1}; + params.conv_filter_dilations_ = std::vector{1, 1, 1}; + params.input_left_pads_ = std::vector{1, 1, 1}; + params.input_right_pads_ = std::vector{1, 1, 1}; std::vector conv_ptrs; test::conv::get_test_convolution_fwd_instance<3>(conv_ptrs); @@ -134,16 +134,16 @@ TEST(Conv3DFwdNDHWC, FiltersOver2GB) auto arg = conv_ptrs.back()->MakeArgumentPointer(nullptr, nullptr, nullptr, - params.N, - params.K, - params.C, - params.input_spatial_lengths, - params.filter_spatial_lengths, + params.N_, + params.K_, + params.C_, + params.input_spatial_lengths_, + params.filter_spatial_lengths_, params.GetOutputSpatialLengths(), - params.conv_filter_strides, - params.conv_filter_dilations, - params.input_left_pads, - params.input_right_pads, + params.conv_filter_strides_, + params.conv_filter_dilations_, + params.input_left_pads_, + params.input_right_pads_, PassThrough{}, PassThrough{}, PassThrough{}); @@ -157,32 +157,32 @@ TEST(Conv3DFwdNDHWC, OutputOver2GB) // >2GB Output conv::ConvParams params; - params.num_dim_spatial = 3; - params.N = 2; - params.K = 16; - params.C = 2; - params.filter_spatial_lengths = std::vector{1, 1, 1}; - params.input_spatial_lengths = std::vector{1000, 1000, 30}; - params.conv_filter_strides = std::vector{1, 1, 1}; - params.conv_filter_dilations = std::vector{1, 1, 1}; - params.input_left_pads = std::vector{2, 2, 2}; - params.input_right_pads = std::vector{2, 2, 2}; + params.num_dim_spatial_ = 3; + params.N_ = 2; + params.K_ = 16; + params.C_ = 2; + params.filter_spatial_lengths_ = std::vector{1, 1, 1}; + params.input_spatial_lengths_ = std::vector{1000, 1000, 30}; + params.conv_filter_strides_ = std::vector{1, 1, 1}; + params.conv_filter_dilations_ = std::vector{1, 1, 1}; + params.input_left_pads_ = std::vector{2, 2, 2}; + params.input_right_pads_ = std::vector{2, 2, 2}; std::vector conv_ptrs; test::conv::get_test_convolution_fwd_instance<3>(conv_ptrs); auto arg = conv_ptrs.back()->MakeArgumentPointer(nullptr, nullptr, nullptr, - params.N, - params.K, - params.C, - params.input_spatial_lengths, - params.filter_spatial_lengths, + params.N_, + params.K_, + params.C_, + params.input_spatial_lengths_, + params.filter_spatial_lengths_, params.GetOutputSpatialLengths(), - params.conv_filter_strides, - params.conv_filter_dilations, - params.input_left_pads, - params.input_right_pads, + params.conv_filter_strides_, + params.conv_filter_dilations_, + params.input_left_pads_, + params.input_right_pads_, PassThrough{}, PassThrough{}, PassThrough{}); diff --git a/test/convnd_fwd/conv_util.hpp b/test/convnd_fwd/conv_util.hpp index 4f77101563..09f641b415 100644 --- a/test/convnd_fwd/conv_util.hpp +++ b/test/convnd_fwd/conv_util.hpp @@ -4,7 +4,6 @@ #include #include "config.hpp" -#include "conv_fwd_util.hpp" #include "device_convnd_fwd_xdl_nhwc_kyxc_nhwk.hpp" #include "element_wise_operation.hpp" #include "host_tensor.hpp" diff --git a/test/reference_conv_fwd/CMakeLists.txt b/test/reference_conv_fwd/CMakeLists.txt index e5a7b31aff..04b720b169 100644 --- a/test/reference_conv_fwd/CMakeLists.txt +++ b/test/reference_conv_fwd/CMakeLists.txt @@ -1,2 +1,2 @@ add_gtest_executable(test_reference_conv_fwd reference_conv_fwd.cpp) -target_link_libraries(test_reference_conv_fwd PRIVATE host_tensor conv_fwd_util) +target_link_libraries(test_reference_conv_fwd PRIVATE host_tensor conv_util) diff --git a/test/reference_conv_fwd/reference_conv_fwd.cpp b/test/reference_conv_fwd/reference_conv_fwd.cpp index f660559e62..69b223989f 100644 --- a/test/reference_conv_fwd/reference_conv_fwd.cpp +++ b/test/reference_conv_fwd/reference_conv_fwd.cpp @@ -8,7 +8,7 @@ #include "check_err.hpp" #include "config.hpp" -#include "conv_fwd_util.hpp" +#include "conv_util.hpp" #include "element_wise_operation.hpp" #include "fill.hpp" #include "host_tensor.hpp" @@ -34,21 +34,21 @@ run_reference_convolution_forward(const ck::utils::conv::ConvParams& params, const FillInputOp& fill_input_op = FillInputOp{}, const FillWeightsOp& fill_weights_op = FillWeightsOp{0.5f}) { - std::vector input_dims{static_cast(params.N), - static_cast(params.C)}; + std::vector input_dims{static_cast(params.N_), + static_cast(params.C_)}; input_dims.insert(std::end(input_dims), - std::begin(params.input_spatial_lengths), - std::end(params.input_spatial_lengths)); + std::begin(params.input_spatial_lengths_), + std::end(params.input_spatial_lengths_)); - std::vector filter_dims{static_cast(params.K), - static_cast(params.C)}; + std::vector filter_dims{static_cast(params.K_), + static_cast(params.C_)}; filter_dims.insert(std::end(filter_dims), - std::begin(params.filter_spatial_lengths), - std::end(params.filter_spatial_lengths)); + std::begin(params.filter_spatial_lengths_), + std::end(params.filter_spatial_lengths_)); const std::vector& output_spatial_lengths = params.GetOutputSpatialLengths(); - std::vector output_dims{static_cast(params.N), - static_cast(params.K)}; + std::vector output_dims{static_cast(params.N_), + static_cast(params.K_)}; output_dims.insert(std::end(output_dims), std::begin(output_spatial_lengths), std::end(output_spatial_lengths)); @@ -74,10 +74,10 @@ run_reference_convolution_forward(const ck::utils::conv::ConvParams& params, auto ref_argument = ref_conv.MakeArgument(input, weights, host_output, - params.conv_filter_strides, - params.conv_filter_dilations, - params.input_left_pads, - params.input_right_pads, + params.conv_filter_strides_, + params.conv_filter_dilations_, + params.input_left_pads_, + params.input_right_pads_, InElementOp{}, WeiElementOp{}, OutElementOp{}); @@ -91,15 +91,15 @@ run_reference_convolution_forward(const ck::utils::conv::ConvParams& params, TEST(ReferenceConvolutionFWD, Conv2DNHWC) { ck::utils::conv::ConvParams params; - params.N = 1; - params.K = 1; - params.C = 2; - params.filter_spatial_lengths = std::vector{3, 3}; - params.input_spatial_lengths = std::vector{6, 6}; - params.conv_filter_strides = std::vector{1, 1}; - params.conv_filter_dilations = std::vector{1, 1}; - params.input_left_pads = std::vector{0, 0}; - params.input_right_pads = std::vector{0, 0}; + params.N_ = 1; + params.K_ = 1; + params.C_ = 2; + params.filter_spatial_lengths_ = std::vector{3, 3}; + params.input_spatial_lengths_ = std::vector{6, 6}; + params.conv_filter_strides_ = std::vector{1, 1}; + params.conv_filter_dilations_ = std::vector{1, 1}; + params.input_left_pads_ = std::vector{0, 0}; + params.input_right_pads_ = std::vector{0, 0}; auto out_tensor = run_reference_convolution_forward<2>(params); std::vector ref_dims{1, 1, 4, 4}; @@ -127,15 +127,15 @@ TEST(ReferenceConvolutionFWD, Conv2DNHWC) TEST(ReferenceConvolutionFWD, Conv2DNHWCStridesDilationsPadding) { ck::utils::conv::ConvParams params; - params.N = 1; - params.K = 2; - params.C = 2; - params.filter_spatial_lengths = std::vector{3, 3}; - params.input_spatial_lengths = std::vector{12, 12}; - params.conv_filter_strides = std::vector{2, 2}; - params.conv_filter_dilations = std::vector{2, 2}; - params.input_left_pads = std::vector{1, 1}; - params.input_right_pads = std::vector{1, 1}; + params.N_ = 1; + params.K_ = 2; + params.C_ = 2; + params.filter_spatial_lengths_ = std::vector{3, 3}; + params.input_spatial_lengths_ = std::vector{12, 12}; + params.conv_filter_strides_ = std::vector{2, 2}; + params.conv_filter_dilations_ = std::vector{2, 2}; + params.input_left_pads_ = std::vector{1, 1}; + params.input_right_pads_ = std::vector{1, 1}; auto out_tensor = run_reference_convolution_forward<2>(params); std::vector ref_dims = std::vector{1, 2, 5, 5}; @@ -153,16 +153,16 @@ TEST(ReferenceConvolutionFWD, Conv2DNHWCStridesDilationsPadding) TEST(ReferenceConvolutionFWD, Conv1DNWC) { ck::utils::conv::ConvParams params; - params.num_dim_spatial = 1; - params.N = 1; - params.K = 1; - params.C = 2; - params.filter_spatial_lengths = std::vector{3}; - params.input_spatial_lengths = std::vector{6}; - params.conv_filter_strides = std::vector{1}; - params.conv_filter_dilations = std::vector{1}; - params.input_left_pads = std::vector{0}; - params.input_right_pads = std::vector{0}; + params.num_dim_spatial_ = 1; + params.N_ = 1; + params.K_ = 1; + params.C_ = 2; + params.filter_spatial_lengths_ = std::vector{3}; + params.input_spatial_lengths_ = std::vector{6}; + params.conv_filter_strides_ = std::vector{1}; + params.conv_filter_dilations_ = std::vector{1}; + params.input_left_pads_ = std::vector{0}; + params.input_right_pads_ = std::vector{0}; auto out_tensor = run_reference_convolution_forward<1, @@ -182,16 +182,16 @@ TEST(ReferenceConvolutionFWD, Conv1DNWC) TEST(ReferenceConvolutionFWD, Conv1DNWCStridesDilationsPadding) { ck::utils::conv::ConvParams params; - params.num_dim_spatial = 1; - params.N = 1; - params.K = 2; - params.C = 2; - params.filter_spatial_lengths = std::vector{3}; - params.input_spatial_lengths = std::vector{12}; - params.conv_filter_strides = std::vector{2}; - params.conv_filter_dilations = std::vector{2}; - params.input_left_pads = std::vector{1}; - params.input_right_pads = std::vector{1}; + params.num_dim_spatial_ = 1; + params.N_ = 1; + params.K_ = 2; + params.C_ = 2; + params.filter_spatial_lengths_ = std::vector{3}; + params.input_spatial_lengths_ = std::vector{12}; + params.conv_filter_strides_ = std::vector{2}; + params.conv_filter_dilations_ = std::vector{2}; + params.input_left_pads_ = std::vector{1}; + params.input_right_pads_ = std::vector{1}; auto out_tensor = run_reference_convolution_forward<1, @@ -211,16 +211,16 @@ TEST(ReferenceConvolutionFWD, Conv1DNWCStridesDilationsPadding) TEST(ReferenceConvolutionFWD, Conv1DNWCSameOutputSize) { ck::utils::conv::ConvParams params; - params.num_dim_spatial = 1; - params.N = 2; - params.K = 16; - params.C = 4; - params.filter_spatial_lengths = std::vector{3}; - params.input_spatial_lengths = std::vector{16}; - params.conv_filter_strides = std::vector{1}; - params.conv_filter_dilations = std::vector{1}; - params.input_left_pads = std::vector{1}; - params.input_right_pads = std::vector{1}; + params.num_dim_spatial_ = 1; + params.N_ = 2; + params.K_ = 16; + params.C_ = 4; + params.filter_spatial_lengths_ = std::vector{3}; + params.input_spatial_lengths_ = std::vector{16}; + params.conv_filter_strides_ = std::vector{1}; + params.conv_filter_dilations_ = std::vector{1}; + params.input_left_pads_ = std::vector{1}; + params.input_right_pads_ = std::vector{1}; auto out_tensor2 = run_reference_convolution_forward<1, float, @@ -305,16 +305,16 @@ TEST(ReferenceConvolutionFWD, Conv1DNWCSameOutputSize) TEST(ReferenceConvolutionFWD, Conv3DNCDHW) { ck::utils::conv::ConvParams params; - params.num_dim_spatial = 3; - params.N = 1; - params.K = 1; - params.C = 2; - params.filter_spatial_lengths = std::vector{3, 3, 3}; - params.input_spatial_lengths = std::vector{6, 6, 6}; - params.conv_filter_strides = std::vector{1, 1, 1}; - params.conv_filter_dilations = std::vector{1, 1, 1}; - params.input_left_pads = std::vector{0, 0, 0}; - params.input_right_pads = std::vector{0, 0, 0}; + params.num_dim_spatial_ = 3; + params.N_ = 1; + params.K_ = 1; + params.C_ = 2; + params.filter_spatial_lengths_ = std::vector{3, 3, 3}; + params.input_spatial_lengths_ = std::vector{6, 6, 6}; + params.conv_filter_strides_ = std::vector{1, 1, 1}; + params.conv_filter_dilations_ = std::vector{1, 1, 1}; + params.input_left_pads_ = std::vector{0, 0, 0}; + params.input_right_pads_ = std::vector{0, 0, 0}; auto out_tensor = run_reference_convolution_forward<3, float, @@ -344,16 +344,16 @@ TEST(ReferenceConvolutionFWD, Conv3DNCDHW) TEST(ReferenceConvolutionFWD, Conv3DNCDHWStridesDilations) { ck::utils::conv::ConvParams params; - params.num_dim_spatial = 3; - params.N = 1; - params.K = 2; - params.C = 2; - params.filter_spatial_lengths = std::vector{3, 3, 3}; - params.input_spatial_lengths = std::vector{12, 12, 12}; - params.conv_filter_strides = std::vector{3, 3, 3}; - params.conv_filter_dilations = std::vector{1, 1, 1}; - params.input_left_pads = std::vector{0, 0, 0}; - params.input_right_pads = std::vector{0, 0, 0}; + params.num_dim_spatial_ = 3; + params.N_ = 1; + params.K_ = 2; + params.C_ = 2; + params.filter_spatial_lengths_ = std::vector{3, 3, 3}; + params.input_spatial_lengths_ = std::vector{12, 12, 12}; + params.conv_filter_strides_ = std::vector{3, 3, 3}; + params.conv_filter_dilations_ = std::vector{1, 1, 1}; + params.input_left_pads_ = std::vector{0, 0, 0}; + params.input_right_pads_ = std::vector{0, 0, 0}; auto out_tensor = run_reference_convolution_forward<3, float,