AUTO cumulative throughput mode ignore candidate device that fail to … (#15420)

* AUTO cumulative throughput mode ignore candidate device that fail to load device

* Simplify the judgement logic of whether Auto set to Multi

* Add description about _AutoSetToMulti variable

* Update variable name to _AutoCallMulti

* Refine logic of AUTO execution_devices

* Add loading error massage

* Add test case

* Add filter to execution_devices of MULTI

* Add execution_devices test in load fail sitution

* Simplify the logic of execution_devices

* Update auto_executable_network.cpp

* Update src/plugins/auto/multi_executable_network.cpp

Co-authored-by: yanlan song <bell.song@intel.com>

* Update src/plugins/auto/auto_executable_network.cpp

Co-authored-by: yanlan song <bell.song@intel.com>

* Update test case

---------

Co-authored-by: Chen Peter <peter.chen@intel.com>
Co-authored-by: yanlan song <bell.song@intel.com>
This commit is contained in:
authored and GitHub committed 2023-03-07 11:52:25 +08:00
1 parent 6e7bef529f
commit 83b57e2a64
6 files changed
+303 -30

No files matched your search

@@ -136,10 +136,16 @@ IE::Parameter MultiExecutableNetwork::GetMetric(const std::string& name) const {
IE_SET_METRIC_RETURN(SUPPORTED_CONFIG_KEYS, configKeys);
} else if (name == ov::execution_devices) {
std::vector<std::string> exeDevices = {};
for (auto n : _multiSContext->_devicePriorities) {
exeDevices.push_back(n.deviceName);
std::vector<std::string> exeDevicesUnsort = {};
for (const auto & n : _multiSContext->_networksPerDevice) {
exeDevicesUnsort.push_back(n.first);
}
return decltype(ov::available_devices)::value_type {exeDevices};
for (const auto & n : _multiSContext->_devicePriorities) {
if (std::find(exeDevicesUnsort.begin(), exeDevicesUnsort.end(), n.deviceName) != exeDevicesUnsort.end()) {
exeDevices.push_back(n.deviceName);
}
}
return decltype(ov::execution_devices)::value_type {exeDevices};
} else {
IE_THROW() << "Unsupported ExecutableNetwork metric key: " << name;
}