diff options
-rw-r--r-- | arm_compute/core/NEON/NEFixedPoint.h | 4 | ||||
-rw-r--r-- | examples/graph_alexnet.cpp | 3 | ||||
-rw-r--r-- | examples/graph_googlenet.cpp | 8 | ||||
-rw-r--r-- | examples/graph_inception_v3.cpp | 8 | ||||
-rw-r--r-- | examples/graph_inception_v4.cpp | 8 | ||||
-rw-r--r-- | examples/graph_resnet50.cpp | 8 | ||||
-rw-r--r-- | examples/graph_squeezenet.cpp | 8 | ||||
-rw-r--r-- | examples/graph_squeezenet_v1_1.cpp | 8 | ||||
-rw-r--r-- | src/runtime/CL/functions/CLConvolutionLayer.cpp | 4 | ||||
-rw-r--r-- | src/runtime/NEON/functions/NEConvolutionLayer.cpp | 8 | ||||
-rw-r--r-- | tests/validation/CL/ConvolutionLayer.cpp | 14 | ||||
-rw-r--r-- | tests/validation/CL/DilatedConvolutionLayer.cpp | 4 | ||||
-rw-r--r-- | tests/validation/NEON/ConvolutionLayer.cpp | 6 |
13 files changed, 43 insertions, 48 deletions
diff --git a/arm_compute/core/NEON/NEFixedPoint.h b/arm_compute/core/NEON/NEFixedPoint.h index 5719b63618..504ec6c444 100644 --- a/arm_compute/core/NEON/NEFixedPoint.h +++ b/arm_compute/core/NEON/NEFixedPoint.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2017 ARM Limited. + * Copyright (c) 2017-2018 ARM Limited. * * SPDX-License-Identifier: MIT * @@ -1222,4 +1222,4 @@ qint16x8_t vqpowq_qs16(qint16x8_t a, qint16x8_t b, int fixed_point_position); float32x4x2_t vmax2q_f32(float32x4x2_t a, float32x4x2_t b); } // namespace arm_compute #include "arm_compute/core/NEON/NEFixedPoint.inl" -#endif /* __ARM_COMPUTE_NEFIXEDPOINT_H__ */ +#endif /* __ARM_COMPUTE_NEFIXEDPOINT_H__ */
\ No newline at end of file diff --git a/examples/graph_alexnet.cpp b/examples/graph_alexnet.cpp index b97ca54c78..ffcd8b8411 100644 --- a/examples/graph_alexnet.cpp +++ b/examples/graph_alexnet.cpp @@ -56,10 +56,9 @@ public: const int target = argc > 1 ? std::strtol(argv[1], nullptr, 10) : 0; Target target_hint = set_target_hint(target); - // TODO (geopin01) : Get GPU target somehow and set gemm also for midgard ? const bool is_neon = (target_hint == Target::NEON); ConvolutionMethod convolution_5x5_hint = is_neon ? ConvolutionMethod::GEMM : ConvolutionMethod::DIRECT; - ConvolutionMethod convolution_3x3_hint = is_neon ? ConvolutionMethod::GEMM : ConvolutionMethod::DEFAULT; + ConvolutionMethod convolution_3x3_hint = ConvolutionMethod::DEFAULT; FastMathHint fast_math_hint = FastMathHint::DISABLED; // Parse arguments diff --git a/examples/graph_googlenet.cpp b/examples/graph_googlenet.cpp index bac3c7c6d5..a47fc9d588 100644 --- a/examples/graph_googlenet.cpp +++ b/examples/graph_googlenet.cpp @@ -52,10 +52,9 @@ public: std::unique_ptr<IPreprocessor> preprocessor = arm_compute::support::cpp14::make_unique<CaffePreproccessor>(mean_rgb); // Set target. 0 (NEON), 1 (OpenCL), 2 (OpenCL with Tuner). By default it is NEON - const int target = argc > 1 ? std::strtol(argv[1], nullptr, 10) : 0; - Target target_hint = set_target_hint(target); - ConvolutionMethod convolution_hint = target_hint == Target::NEON ? ConvolutionMethod::GEMM : ConvolutionMethod::DEFAULT; - FastMathHint fast_math_hint = FastMathHint::DISABLED; + const int target = argc > 1 ? std::strtol(argv[1], nullptr, 10) : 0; + Target target_hint = set_target_hint(target); + FastMathHint fast_math_hint = FastMathHint::DISABLED; // Parse arguments if(argc < 2) @@ -107,7 +106,6 @@ public: get_weights_accessor(data_path, "/cnn_data/googlenet_model/conv1/conv1_7x7_s2_w.npy"), get_weights_accessor(data_path, "/cnn_data/googlenet_model/conv1/conv1_7x7_s2_b.npy"), PadStrideInfo(2, 2, 3, 3)) - << convolution_hint << ActivationLayer(ActivationLayerInfo(ActivationLayerInfo::ActivationFunction::RELU)) << PoolingLayer(PoolingLayerInfo(PoolingType::MAX, 3, PadStrideInfo(2, 2, 0, 0, DimensionRoundingType::CEIL))) << NormalizationLayer(NormalizationLayerInfo(NormType::CROSS_MAP, 5, 0.0001f, 0.75f)) diff --git a/examples/graph_inception_v3.cpp b/examples/graph_inception_v3.cpp index 8e30fd97f2..1d4eb53233 100644 --- a/examples/graph_inception_v3.cpp +++ b/examples/graph_inception_v3.cpp @@ -51,10 +51,9 @@ public: std::unique_ptr<IPreprocessor> preprocessor = arm_compute::support::cpp14::make_unique<TFPreproccessor>(); // Set target. 0 (NEON), 1 (OpenCL), 2 (OpenCL with Tuner). By default it is NEON - const int target = argc > 1 ? std::strtol(argv[1], nullptr, 10) : 0; - Target target_hint = set_target_hint(target); - ConvolutionMethod convolution_hint = target_hint == Target::NEON ? ConvolutionMethod::GEMM : ConvolutionMethod::DEFAULT; - FastMathHint fast_math_hint = FastMathHint::DISABLED; + const int target = argc > 1 ? std::strtol(argv[1], nullptr, 10) : 0; + Target target_hint = set_target_hint(target); + FastMathHint fast_math_hint = FastMathHint::DISABLED; // Parse arguments if(argc < 2) @@ -111,7 +110,6 @@ public: get_random_accessor(1.f, 1.f), get_weights_accessor(data_path, "/cnn_data/inceptionv3_model/Conv2d_1a_3x3_BatchNorm_beta.npy"), 0.001f) - << convolution_hint << ActivationLayer(ActivationLayerInfo(ActivationLayerInfo::ActivationFunction::RELU)) << ConvolutionLayer(3U, 3U, 32U, get_weights_accessor(data_path, "/cnn_data/inceptionv3_model/Conv2d_2a_3x3_weights.npy"), diff --git a/examples/graph_inception_v4.cpp b/examples/graph_inception_v4.cpp index 827370ec5e..ed95baa99e 100644 --- a/examples/graph_inception_v4.cpp +++ b/examples/graph_inception_v4.cpp @@ -54,10 +54,9 @@ public: std::unique_ptr<IPreprocessor> preprocessor = arm_compute::support::cpp14::make_unique<TFPreproccessor>(); // Set target. 0 (NEON), 1 (OpenCL). By default it is NEON - const int target = argc > 1 ? std::strtol(argv[1], nullptr, 10) : 0; - Target target_hint = set_target_hint(target); - ConvolutionMethod convolution_hint = target_hint == Target::NEON ? ConvolutionMethod::GEMM : ConvolutionMethod::DEFAULT; - FastMathHint fast_math_hint = FastMathHint::DISABLED; + const int target = argc > 1 ? std::strtol(argv[1], nullptr, 10) : 0; + Target target_hint = set_target_hint(target); + FastMathHint fast_math_hint = FastMathHint::DISABLED; // Parse arguments if(argc < 2) @@ -114,7 +113,6 @@ public: get_weights_accessor(data_path, "/cnn_data/inceptionv4_model/Conv2d_1a_3x3_BatchNorm_beta.npy"), 0.001f) << ActivationLayer(ActivationLayerInfo(ActivationLayerInfo::ActivationFunction::RELU)) - << convolution_hint // Conv2d_2a_3x3 << ConvolutionLayer(3U, 3U, 32U, get_weights_accessor(data_path, "/cnn_data/inceptionv4_model/Conv2d_2a_3x3_weights.npy"), diff --git a/examples/graph_resnet50.cpp b/examples/graph_resnet50.cpp index 6fac372550..7332bb8b15 100644 --- a/examples/graph_resnet50.cpp +++ b/examples/graph_resnet50.cpp @@ -52,10 +52,9 @@ public: false /* Do not convert to BGR */); // Set target. 0 (NEON), 1 (OpenCL), 2 (OpenCL with Tuner). By default it is NEON - const int target = argc > 1 ? std::strtol(argv[1], nullptr, 10) : 0; - Target target_hint = set_target_hint(target); - ConvolutionMethod convolution_hint = target_hint == Target::NEON ? ConvolutionMethod::GEMM : ConvolutionMethod::DEFAULT; - FastMathHint fast_math_hint = FastMathHint::DISABLED; + const int target = argc > 1 ? std::strtol(argv[1], nullptr, 10) : 0; + Target target_hint = set_target_hint(target); + FastMathHint fast_math_hint = FastMathHint::DISABLED; // Parse arguments if(argc < 2) @@ -108,7 +107,6 @@ public: std::unique_ptr<arm_compute::graph::ITensorAccessor>(nullptr), PadStrideInfo(2, 2, 3, 3)) .set_name("conv1/convolution") - << convolution_hint << BatchNormalizationLayer( get_weights_accessor(data_path, "/cnn_data/resnet50_model/conv1_BatchNorm_moving_mean.npy"), get_weights_accessor(data_path, "/cnn_data/resnet50_model/conv1_BatchNorm_moving_variance.npy"), diff --git a/examples/graph_squeezenet.cpp b/examples/graph_squeezenet.cpp index 2627c96774..4d7bcf1ca8 100644 --- a/examples/graph_squeezenet.cpp +++ b/examples/graph_squeezenet.cpp @@ -53,10 +53,9 @@ public: std::unique_ptr<IPreprocessor> preprocessor = arm_compute::support::cpp14::make_unique<CaffePreproccessor>(mean_rgb); // Set target. 0 (NEON), 1 (OpenCL), 2 (OpenCL with Tuner). By default it is NEON - const int target = argc > 1 ? std::strtol(argv[1], nullptr, 10) : 0; - Target target_hint = set_target_hint(target); - ConvolutionMethod convolution_hint = target_hint == Target::NEON ? ConvolutionMethod::GEMM : ConvolutionMethod::DEFAULT; - FastMathHint fast_math_hint = FastMathHint::DISABLED; + const int target = argc > 1 ? std::strtol(argv[1], nullptr, 10) : 0; + Target target_hint = set_target_hint(target); + FastMathHint fast_math_hint = FastMathHint::DISABLED; // Parse arguments if(argc < 2) @@ -110,7 +109,6 @@ public: PadStrideInfo(2, 2, 0, 0)) << ActivationLayer(ActivationLayerInfo(ActivationLayerInfo::ActivationFunction::RELU)) << PoolingLayer(PoolingLayerInfo(PoolingType::MAX, 3, PadStrideInfo(2, 2, 0, 0, DimensionRoundingType::CEIL))) - << convolution_hint << ConvolutionLayer( 1U, 1U, 16U, get_weights_accessor(data_path, "/cnn_data/squeezenet_v1.0_model/fire2_squeeze1x1_w.npy"), diff --git a/examples/graph_squeezenet_v1_1.cpp b/examples/graph_squeezenet_v1_1.cpp index c4a5433352..f5fede2f70 100644 --- a/examples/graph_squeezenet_v1_1.cpp +++ b/examples/graph_squeezenet_v1_1.cpp @@ -56,10 +56,9 @@ public: std::unique_ptr<IPreprocessor> preprocessor = arm_compute::support::cpp14::make_unique<CaffePreproccessor>(mean_rgb); // Set target. 0 (NEON), 1 (OpenCL), 2 (OpenCL with Tuner). By default it is NEON - const int target = argc > 1 ? std::strtol(argv[1], nullptr, 10) : 0; - Target target_hint = set_target_hint(target); - ConvolutionMethod convolution_hint = target_hint == Target::NEON ? ConvolutionMethod::GEMM : ConvolutionMethod::DEFAULT; - FastMathHint fast_math_hint = FastMathHint::DISABLED; + const int target = argc > 1 ? std::strtol(argv[1], nullptr, 10) : 0; + Target target_hint = set_target_hint(target); + FastMathHint fast_math_hint = FastMathHint::DISABLED; // Parse arguments if(argc < 2) @@ -112,7 +111,6 @@ public: get_weights_accessor(data_path, "/cnn_data/squeezenet_v1_1_model/conv1_w.npy"), get_weights_accessor(data_path, "/cnn_data/squeezenet_v1_1_model/conv1_b.npy"), PadStrideInfo(2, 2, 0, 0)) - << convolution_hint << ActivationLayer(ActivationLayerInfo(ActivationLayerInfo::ActivationFunction::RELU)) << PoolingLayer(PoolingLayerInfo(PoolingType::MAX, 3, PadStrideInfo(2, 2, 0, 0, DimensionRoundingType::CEIL))) << ConvolutionMethod::DEFAULT diff --git a/src/runtime/CL/functions/CLConvolutionLayer.cpp b/src/runtime/CL/functions/CLConvolutionLayer.cpp index 3d4fb113b2..faec4bbf5a 100644 --- a/src/runtime/CL/functions/CLConvolutionLayer.cpp +++ b/src/runtime/CL/functions/CLConvolutionLayer.cpp @@ -123,7 +123,9 @@ ConvolutionMethod CLConvolutionLayer::get_convolution_method(const ITensorInfo * ARM_COMPUTE_UNUSED(weights_info); ARM_COMPUTE_UNUSED(gpu_target); - if(dilation != Size2D(1U, 1U)) + const size_t idx_c = get_data_layout_dimension_index(input->data_layout(), DataLayoutDimension::CHANNEL); + + if(dilation != Size2D(1U, 1U) || (input->dimension(idx_c) < 16)) { return ConvolutionMethod::GEMM; } diff --git a/src/runtime/NEON/functions/NEConvolutionLayer.cpp b/src/runtime/NEON/functions/NEConvolutionLayer.cpp index 0ad4babedc..69fb948d3f 100644 --- a/src/runtime/NEON/functions/NEConvolutionLayer.cpp +++ b/src/runtime/NEON/functions/NEConvolutionLayer.cpp @@ -104,16 +104,16 @@ ConvolutionMethod NEConvolutionLayer::get_convolution_method(const ITensorInfo * const ITensorInfo *output, const PadStrideInfo &conv_info, const WeightsInfo &weights_info, const Size2D &dilation, const ActivationLayerInfo &act_info) { - ARM_COMPUTE_ERROR_ON_NULLPTR(input); - ARM_COMPUTE_ERROR_ON_NULLPTR(output); - ARM_COMPUTE_ERROR_ON_NULLPTR(weights); + ARM_COMPUTE_ERROR_ON_NULLPTR(input, output, weights); ARM_COMPUTE_UNUSED(output); ARM_COMPUTE_UNUSED(weights_info); const size_t idx_w = get_data_layout_dimension_index(input->data_layout(), DataLayoutDimension::WIDTH); const size_t idx_h = get_data_layout_dimension_index(input->data_layout(), DataLayoutDimension::HEIGHT); + const size_t idx_c = get_data_layout_dimension_index(input->data_layout(), DataLayoutDimension::CHANNEL); - if((input->data_type() == DataType::F32) && (input->data_layout() == DataLayout::NCHW) && (weights->dimension(idx_w) == 3) && (weights->dimension(idx_h) == 3) && (weights->num_dimensions() <= 4) + if((input->data_type() == DataType::F32) && (input->data_layout() == DataLayout::NCHW) && (input->dimension(idx_c) > 16) && (weights->dimension(idx_w) == 3) && (weights->dimension(idx_h) == 3) + && (weights->num_dimensions() <= 4) && (conv_info.stride().first == 1) && (conv_info.stride().second == 1) && (dilation == Size2D(1U, 1U)) && (!act_info.enabled())) { //FIXME Until COMPMID-1041 is implemented Winograd is slower than GEMM on A53. diff --git a/tests/validation/CL/ConvolutionLayer.cpp b/tests/validation/CL/ConvolutionLayer.cpp index 935a6ebefa..0c40953524 100644 --- a/tests/validation/CL/ConvolutionLayer.cpp +++ b/tests/validation/CL/ConvolutionLayer.cpp @@ -77,22 +77,25 @@ DATA_TEST_CASE(ValidateConvolutionMethod, framework::DatasetMode::ALL, zip(zip(z framework::dataset::make("InputInfo", { TensorInfo(TensorShape(17U, 31U, 2U), 1, DataType::F32, 0), TensorInfo(TensorShape(17U, 31U, 2U), 1, DataType::F32, 0), TensorInfo(TensorShape(23U, 27U, 5U, 4U), 1, DataType::F32, 0), + TensorInfo(TensorShape(23U, 27U, 31U, 4U), 1, DataType::F32, 0), TensorInfo(TensorShape(3U, 3U, 2U, 1U), 1, DataType::F32, 0), TensorInfo(TensorShape(33U, 27U, 7U, 4U), 1, DataType::F32, 0), - TensorInfo(TensorShape(17U, 31U, 2U), 1, DataType::F32, 0), + TensorInfo(TensorShape(17U, 31U, 32U), 1, DataType::F32, 0), TensorInfo(TensorShape(17U, 31U, 2U), 1, DataType::F32, 0) }), framework::dataset::make("WeightsInfo", { TensorInfo(TensorShape(5U, 5U, 2U, 19U), 1, DataType::F32, 0), TensorInfo(TensorShape(5U, 5U, 2U, 19U), 1, DataType::F32, 0), TensorInfo(TensorShape(3U, 3U, 5U, 21U), 1, DataType::F32, 0), + TensorInfo(TensorShape(3U, 3U, 31U, 21U), 1, DataType::F32, 0), TensorInfo(TensorShape(3U, 3U, 5U, 21U), 1, DataType::F32, 0), TensorInfo(TensorShape(5U, 5U, 7U, 16U), 1, DataType::F16, 0), - TensorInfo(TensorShape(5U, 5U, 2U, 19U), 1, DataType::F32, 0), + TensorInfo(TensorShape(5U, 5U, 32U, 19U), 1, DataType::F32, 0), TensorInfo(TensorShape(5U, 5U, 2U, 19U), 1, DataType::F32, 0) })), framework::dataset::make("OutputInfo", { TensorInfo(TensorShape(15U, 15U, 19U), 1, DataType::F32, 0), TensorInfo(TensorShape(15U, 15U, 19U), 1, DataType::F32, 0), TensorInfo(TensorShape(21U, 25U, 21U, 4U), 1, DataType::F32, 0), + TensorInfo(TensorShape(21U, 25U, 21U, 4U), 1, DataType::F32, 0), TensorInfo(TensorShape(11U, 25U, 21U), 1, DataType::F32, 0), TensorInfo(TensorShape(11U, 12U, 16U, 4U), 1, DataType::F32, 0), TensorInfo(TensorShape(17U, 31U, 19U), 1, DataType::F32, 0), @@ -101,6 +104,7 @@ DATA_TEST_CASE(ValidateConvolutionMethod, framework::DatasetMode::ALL, zip(zip(z framework::dataset::make("ConvInfo", { PadStrideInfo(1, 2, 1, 1), PadStrideInfo(1, 2, 1, 1), PadStrideInfo(1, 1, 0, 0), + PadStrideInfo(1, 1, 0, 0), PadStrideInfo(2, 1, 0, 0), PadStrideInfo(3, 2, 1, 0), PadStrideInfo(1, 1, 2, 2), @@ -109,6 +113,7 @@ DATA_TEST_CASE(ValidateConvolutionMethod, framework::DatasetMode::ALL, zip(zip(z framework::dataset::make("GpuTarget", { GPUTarget::BIFROST, GPUTarget::MIDGARD, GPUTarget::G71, + GPUTarget::G71, GPUTarget::MIDGARD, GPUTarget::BIFROST, GPUTarget::BIFROST, @@ -122,12 +127,13 @@ DATA_TEST_CASE(ValidateConvolutionMethod, framework::DatasetMode::ALL, zip(zip(z Size2D(1U, 1U), Size2D(1U, 1U), Size2D(1U, 1U), + Size2D(1U, 1U), Size2D(2U, 1U), })), -framework::dataset::make("EnableFastMath", { false, false, false, false, false, true, true })), +framework::dataset::make("EnableFastMath", { false, false, false, false, false, false, true, true })), framework::dataset::make("Expected", { - ConvolutionMethod::GEMM, ConvolutionMethod::GEMM, ConvolutionMethod::WINOGRAD, ConvolutionMethod::GEMM, ConvolutionMethod::GEMM, ConvolutionMethod::WINOGRAD, ConvolutionMethod::GEMM, + ConvolutionMethod::GEMM, ConvolutionMethod::GEMM, ConvolutionMethod::GEMM, ConvolutionMethod::WINOGRAD, ConvolutionMethod::GEMM, ConvolutionMethod::GEMM, ConvolutionMethod::WINOGRAD, ConvolutionMethod::GEMM, })), input_info, weights_info, output_info, conv_info, gpu_target, dilation, enable_fast_math, expected) { diff --git a/tests/validation/CL/DilatedConvolutionLayer.cpp b/tests/validation/CL/DilatedConvolutionLayer.cpp index 9da7c32d7c..25931c0f4c 100644 --- a/tests/validation/CL/DilatedConvolutionLayer.cpp +++ b/tests/validation/CL/DilatedConvolutionLayer.cpp @@ -66,13 +66,13 @@ TEST_SUITE(DilatedConvolutionLayer) DATA_TEST_CASE(ValidateConvolutionMethod, framework::DatasetMode::ALL, zip(zip(zip(zip(zip(zip( framework::dataset::make("InputInfo", { TensorInfo(TensorShape(17U, 31U, 2U), 1, DataType::F32, 0), TensorInfo(TensorShape(17U, 31U, 2U), 1, DataType::F32, 0), - TensorInfo(TensorShape(23U, 27U, 5U, 4U), 1, DataType::F32, 0), + TensorInfo(TensorShape(23U, 27U, 23U, 4U), 1, DataType::F32, 0), TensorInfo(TensorShape(3U, 3U, 2U, 1U), 1, DataType::F32, 0), TensorInfo(TensorShape(33U, 27U, 7U, 4U), 1, DataType::F32, 0) }), framework::dataset::make("WeightsInfo", { TensorInfo(TensorShape(5U, 5U, 2U, 19U), 1, DataType::F32, 0), TensorInfo(TensorShape(5U, 5U, 2U, 19U), 1, DataType::F32, 0), - TensorInfo(TensorShape(3U, 3U, 5U, 21U), 1, DataType::F32, 0), + TensorInfo(TensorShape(3U, 3U, 23U, 21U), 1, DataType::F32, 0), TensorInfo(TensorShape(3U, 3U, 5U, 21U), 1, DataType::F32, 0), TensorInfo(TensorShape(5U, 5U, 7U, 16U), 1, DataType::F16, 0) })), diff --git a/tests/validation/NEON/ConvolutionLayer.cpp b/tests/validation/NEON/ConvolutionLayer.cpp index 4f59345f6c..330480e4d8 100644 --- a/tests/validation/NEON/ConvolutionLayer.cpp +++ b/tests/validation/NEON/ConvolutionLayer.cpp @@ -78,12 +78,12 @@ TEST_SUITE(NEON) TEST_SUITE(ConvolutionLayer) DATA_TEST_CASE(ValidateConvolutionMethod, framework::DatasetMode::ALL, zip(zip(zip(zip( framework::dataset::make("InputInfo", { TensorInfo(TensorShape(8U, 8U, 2U), 1, DataType::F32, 0), - TensorInfo(TensorShape(23U, 27U, 5U, 4U), 1, DataType::F32, 0), + TensorInfo(TensorShape(23U, 27U, 32U, 4U), 1, DataType::F32, 0), TensorInfo(TensorShape(3U, 3U, 2U, 1U), 1, DataType::F32, 0), TensorInfo(TensorShape(33U, 27U, 7U, 4U), 1, DataType::F32, 0) }), framework::dataset::make("WeightsInfo", { TensorInfo(TensorShape(3U, 3U, 5U, 21U), 1, DataType::F32, 0), - TensorInfo(TensorShape(3U, 3U, 5U, 21U), 1, DataType::F32, 0), + TensorInfo(TensorShape(3U, 3U, 32U, 21U), 1, DataType::F32, 0), TensorInfo(TensorShape(3U, 3U, 5U, 21U), 1, DataType::F32, 0), TensorInfo(TensorShape(5U, 5U, 7U, 16U), 1, DataType::F16, 0) })), @@ -97,7 +97,7 @@ DATA_TEST_CASE(ValidateConvolutionMethod, framework::DatasetMode::ALL, zip(zip(z PadStrideInfo(2, 1, 0, 0), PadStrideInfo(3, 2, 1, 0) })), - framework::dataset::make("Expected", { ConvolutionMethod::WINOGRAD, ConvolutionMethod::WINOGRAD, ConvolutionMethod::GEMM, ConvolutionMethod::GEMM })), + framework::dataset::make("Expected", { ConvolutionMethod::GEMM, ConvolutionMethod::WINOGRAD, ConvolutionMethod::GEMM, ConvolutionMethod::GEMM })), input_info, weights_info, output_info, conv_info, expected) { ConvolutionMethod is_valid = NEConvolutionLayer::get_convolution_method(&input_info.clone()->set_is_resizable(false), |