[VPU] Fix eltwise broadcast (#1001)
authorAndrew Bakalin <andrew.bakalin@intel.com>
Tue, 23 Jun 2020 12:03:50 +0000 (15:03 +0300)
committerGitHub <noreply@github.com>
Tue, 23 Jun 2020 12:03:50 +0000 (15:03 +0300)
* [VPU][Tests] Extend eltwise test cases

* [VPU] Fix Myriad2

* [VPU] Update firmware

* [VPU] Review fixes

* [VPU] Update old deprecated tests

inference-engine/cmake/vpu_dependencies.cmake
inference-engine/tests/functional/plugin/myriad/CMakeLists.txt
inference-engine/tests/functional/plugin/myriad/shared_tests_instances/single_layer_tests/eltwise.cpp
inference-engine/tests/functional/plugin/myriad/subgraph_tests/dsr_tests_common.hpp
inference-engine/tests/functional/plugin/myriad/subgraph_tests/nonzero_broadcast.cpp
inference-engine/tests_deprecated/functional/vpu/common/layers/myriad_layers_eltwise_test.hpp

index 626a819..8cab213 100644 (file)
@@ -19,7 +19,7 @@ set(VPU_SUPPORTED_FIRMWARES usb-ma2450 usb-ma2x8x pcie-ma248x)
 # Default packages
 #
 
-set(FIRMWARE_PACKAGE_VERSION 1237)
+set(FIRMWARE_PACKAGE_VERSION 1239)
 set(VPU_CLC_MA2X8X_VERSION "movi-cltools-20.02.0")
 
 #
index 62daa07..19aba37 100644 (file)
@@ -10,6 +10,8 @@ disable_deprecated_warnings()
 addIeTargetTest(
         NAME ${TARGET_NAME}
         ROOT ${CMAKE_CURRENT_SOURCE_DIR}
+        INCLUDES
+            ${CMAKE_CURRENT_SOURCE_DIR}
         DEPENDENCIES
             myriadPlugin
         LINK_LIBRARIES
index a7fed61..af8b893 100644 (file)
@@ -2,20 +2,28 @@
 // SPDX-License-Identifier: Apache-2.0
 //
 
-#include <vector>
 #include "single_layer_tests/eltwise.hpp"
 #include "common_test_utils/test_constants.hpp"
+#include "common/myriad_common_test_utils.hpp"
+#include <vpu/private_plugin_config.hpp>
+
+#include <vector>
 
 using namespace LayerTestsDefinitions;
 using namespace LayerTestsDefinitions::EltwiseParams;
 
 namespace {
+
+typedef std::map<std::string, std::string> Config;
+
 std::vector<std::vector<std::vector<size_t>>> inShapes = {
         {{2}},
         {{1, 1, 1, 3}},
         {{1, 2, 4}},
         {{1, 4, 4}},
         {{1, 4, 4, 1}},
+        {{16, 16, 96}, {96}},
+        {{52, 1, 52, 3, 2}, {2}}
 };
 
 std::vector<InferenceEngine::Precision> netPrecisions = {
@@ -39,7 +47,14 @@ std::vector<ngraph::helpers::EltwiseTypes> eltwiseOpTypes = {
         ngraph::helpers::EltwiseTypes::ADD
 };
 
-std::map<std::string, std::string> additional_config = {};
+Config getConfig() {
+    Config config;
+    config[VPU_CONFIG_KEY(DETECT_NETWORK_BATCH)] = CONFIG_VALUE(NO);
+    if (CommonTestUtils::vpu::CheckMyriad2()) {
+        config[VPU_CONFIG_KEY(DISABLE_REORDER)] = CONFIG_VALUE(YES);
+    }
+    return config;
+}
 
 const auto multiply_params = ::testing::Combine(
         ::testing::ValuesIn(inShapes),
@@ -48,7 +63,8 @@ const auto multiply_params = ::testing::Combine(
         ::testing::ValuesIn(opTypes),
         ::testing::ValuesIn(netPrecisions),
         ::testing::Values(CommonTestUtils::DEVICE_MYRIAD),
-        ::testing::Values(additional_config));
+        ::testing::Values(getConfig()));
 
 INSTANTIATE_TEST_CASE_P(CompareWithRefs, EltwiseLayerTest, multiply_params, EltwiseLayerTest::getTestCaseName);
+
 }  // namespace
index 2905eff..6eab25e 100644 (file)
@@ -4,7 +4,7 @@
 
 #pragma once
 
-#include "../common/myriad_common_test_utils.hpp"
+#include "common/myriad_common_test_utils.hpp"
 
 #include <vpu/ngraph/operations/dynamic_shape_resolver.hpp>
 #include <vpu/ngraph/transformations/dynamic_to_static_shape.hpp>
index 3cc1704..bd983be 100644 (file)
@@ -6,7 +6,7 @@
 
 #include "vpu/private_plugin_config.hpp"
 
-#include "../common/myriad_common_test_utils.hpp"
+#include "common/myriad_common_test_utils.hpp"
 #include <functional_test_utils/layer_test_utils.hpp>
 #include <ngraph_functions/builders.hpp>
 
index c420120..c15e165 100644 (file)
@@ -191,18 +191,18 @@ SizeVector convertDims(SizeVector dims)
 {
     SizeVector ret(4);
     if (dims.size() == 1) {
-        ret[0] = dims[0];
-        ret[1] = 1;
+        ret[0] = 1;
+        ret[1] = dims[0];
         ret[2] = 1;
         ret[3] = 1;
         return ret;
     }
 
     if (dims.size() == 2) {
-        ret[0] = dims[1];
-        ret[1] = 1;
-        ret[2] = 1;
-        ret[3] = dims[0];
+        ret[0] = 1;
+        ret[1] = dims[1];
+        ret[2] = dims[0];
+        ret[3] = 1;
         return ret;
     }
 
@@ -337,7 +337,12 @@ protected:
                 GTEST_SKIP_("Please look at #-19681");
                 // inpt[2].resize(2);
             } else {
-                inpt[rand()%count].resize(rand()%ndims + 1);
+                const auto inputToResize = rand() % count;
+                const auto newSize = rand() % ndims + 1;
+                inpt[inputToResize].resize(newSize);
+                for (int i = 0; i < newSize; i++) {
+                    inpt[inputToResize][newSize - i - 1] = dims[ndims - i - 1];
+                }
             }
             for (int i = 0; i < count; ++i) {
                 for (int j = 0; j < inpt[i].size(); j++) {
@@ -352,6 +357,9 @@ protected:
         SetOutputTensors({dims});
 
         _config[VPU_CONFIG_KEY(DETECT_NETWORK_BATCH)] = CONFIG_VALUE(NO);
+        if (!CheckMyriadX()) {
+            _config[VPU_CONFIG_KEY(DISABLE_REORDER)] = CONFIG_VALUE(YES);
+        }
 
         ASSERT_NO_FATAL_FAILURE(makeSingleLayerNetwork(LayerInitParams("Eltwise").params(_params)));
         ASSERT_TRUE(Infer());