diff --git a/inference-engine/src/vpu/myriad_plugin/myriad_metrics.cpp b/inference-engine/src/vpu/myriad_plugin/myriad_metrics.cpp index f65b7c94982..2ce1362be49 100644 --- a/inference-engine/src/vpu/myriad_plugin/myriad_metrics.cpp +++ b/inference-engine/src/vpu/myriad_plugin/myriad_metrics.cpp @@ -26,6 +26,8 @@ MyriadMetrics::MyriadMetrics() { METRIC_KEY(OPTIMIZATION_CAPABILITIES), METRIC_KEY(RANGE_FOR_ASYNC_INFER_REQUESTS), METRIC_KEY(DEVICE_THERMAL), + METRIC_KEY(DEVICE_ARCHITECTURE), + METRIC_KEY(IMPORT_EXPORT_SUPPORT), }; IE_SUPPRESS_DEPRECATED_START @@ -114,6 +116,14 @@ const std::unordered_set& MyriadMetrics::OptimizationCapabilities() return _optimizationCapabilities; } +std::string MyriadMetrics::DeviceArchitecture(const std::map & options) const { + // TODO: Task 49309. Return same architecture for devices which can share same cache + // E.g. when device "MYRIAD.ma2480-1" is loaded, options.at("DEVICE_ID") will be "ma2480-1" + // For DEVICE_ID="ma2480-0" and DEVICE_ID="ma2480-1" this method shall return same string, like "ma2480" + // In this case inference engine will be able to reuse cached model and total reduce load network time + return "MYRIAD"; +} + RangeType MyriadMetrics::RangeForAsyncInferRequests( const std::map& config) const { diff --git a/inference-engine/src/vpu/myriad_plugin/myriad_metrics.h b/inference-engine/src/vpu/myriad_plugin/myriad_metrics.h index 8b452469a67..12617b5f646 100644 --- a/inference-engine/src/vpu/myriad_plugin/myriad_metrics.h +++ b/inference-engine/src/vpu/myriad_plugin/myriad_metrics.h @@ -36,6 +36,7 @@ public: const std::vector &devicePool) const; std::string FullName(std::string deviceName) const; + std::string DeviceArchitecture(const std::map & options) const; float DevicesThermal(const DevicePtr& device) const; const std::unordered_set& SupportedMetrics() const; const std::unordered_set& SupportedConfigKeys() const; diff --git a/inference-engine/src/vpu/myriad_plugin/myriad_plugin.cpp b/inference-engine/src/vpu/myriad_plugin/myriad_plugin.cpp index 1fc8367c3d4..0b0dec0af8b 100644 --- a/inference-engine/src/vpu/myriad_plugin/myriad_plugin.cpp +++ b/inference-engine/src/vpu/myriad_plugin/myriad_plugin.cpp @@ -207,6 +207,10 @@ InferenceEngine::Parameter Engine::GetMetric(const std::string& name, IE_SET_METRIC_RETURN(SUPPORTED_CONFIG_KEYS, std::vector{optimizationCapabilities.cbegin(), optimizationCapabilities.cend()}); } else if (name == METRIC_KEY(RANGE_FOR_ASYNC_INFER_REQUESTS)) { IE_SET_METRIC_RETURN(RANGE_FOR_ASYNC_INFER_REQUESTS, _metrics->RangeForAsyncInferRequests(_config)); + } else if (name == METRIC_KEY(DEVICE_ARCHITECTURE)) { + IE_SET_METRIC_RETURN(DEVICE_ARCHITECTURE, _metrics->DeviceArchitecture(options)); + } else if (name == METRIC_KEY(IMPORT_EXPORT_SUPPORT)) { + IE_SET_METRIC_RETURN(IMPORT_EXPORT_SUPPORT, true); } else if (name == METRIC_KEY(DEVICE_THERMAL)) { const auto& device = getDeviceByName(getSpecifiedDeviceName()); if (device != nullptr) { diff --git a/inference-engine/tests/functional/plugin/myriad/shared_tests_instances/behavior/caching_tests.cpp b/inference-engine/tests/functional/plugin/myriad/shared_tests_instances/behavior/caching_tests.cpp index 01c4ef0010e..a44060245f6 100644 --- a/inference-engine/tests/functional/plugin/myriad/shared_tests_instances/behavior/caching_tests.cpp +++ b/inference-engine/tests/functional/plugin/myriad/shared_tests_instances/behavior/caching_tests.cpp @@ -7,7 +7,7 @@ using namespace LayerTestsDefinitions; namespace { - static const std::vector precisionsMyriad = { + static const std::vector nightly_precisionsMyriad = { ngraph::element::f32, ngraph::element::f16, ngraph::element::i32, @@ -15,14 +15,34 @@ namespace { ngraph::element::u8, }; + static const std::vector smoke_precisionsMyriad = { + ngraph::element::f32, + }; + static const std::vector batchSizesMyriad = { 1, 2 }; + static std::vector smoke_functions() { + auto funcs = LoadNetworkCacheTestBase::getStandardFunctions(); + if (funcs.size() > 1) { + funcs.erase(funcs.begin() + 1, funcs.end()); + } + return funcs; + } + INSTANTIATE_TEST_CASE_P(smoke_CachingSupportCase_Myriad, LoadNetworkCacheTestBase, + ::testing::Combine( + ::testing::ValuesIn(smoke_functions()), + ::testing::ValuesIn(smoke_precisionsMyriad), + ::testing::ValuesIn(batchSizesMyriad), + ::testing::Values(CommonTestUtils::DEVICE_MYRIAD)), + LoadNetworkCacheTestBase::getTestCaseName); + + INSTANTIATE_TEST_CASE_P(nightly_CachingSupportCase_Myriad, LoadNetworkCacheTestBase, ::testing::Combine( ::testing::ValuesIn(LoadNetworkCacheTestBase::getStandardFunctions()), - ::testing::ValuesIn(precisionsMyriad), + ::testing::ValuesIn(nightly_precisionsMyriad), ::testing::ValuesIn(batchSizesMyriad), ::testing::Values(CommonTestUtils::DEVICE_MYRIAD)), LoadNetworkCacheTestBase::getTestCaseName); diff --git a/inference-engine/tests/functional/plugin/myriad/shared_tests_instances/skip_tests_config.cpp b/inference-engine/tests/functional/plugin/myriad/shared_tests_instances/skip_tests_config.cpp index f092bd99352..562636ceca2 100644 --- a/inference-engine/tests/functional/plugin/myriad/shared_tests_instances/skip_tests_config.cpp +++ b/inference-engine/tests/functional/plugin/myriad/shared_tests_instances/skip_tests_config.cpp @@ -35,5 +35,7 @@ std::vector disabledTestPatterns() { ".*ProposalLayerTest.*", // TODO: Issue 48183 R"(.*CTCGreedyDecoderSeqLen.*?\(1.1.1\).*)", + // TODO: Issue 51472 + ".*CachingSupportCase.*_batch2_.*", }; }