Improved properties handling between Core and plugins (#16296)
* [HETERO]: adopt setting device properties in benchmark_app/speech_sample for HETERO Fix IEClassHeteroExecutableNetworkGetMetricTest_SUPPORTED_METRICS test Fix NumStreamsAndDefaultPerfHintToHWTest/PerHintAndDefaultPerfHintToHWTest tests [HETERO][MULTI][AUTO] Make ov::device::properties regular property [PYTHON] Update python BA with device properties Update after rebase Update src/plugins/auto/auto_executable_network.cpp Co-authored-by: Ilya Lavrenov <ilya.lavrenov@intel.com> Update src/plugins/auto/multi_executable_network.cpp Co-authored-by: Ilya Lavrenov <ilya.lavrenov@intel.com> Fix merge conflicts, apply some review comments * Multiple improvements * [HETERO]: adopt setting device properties in benchmark_app/speech_sample for HETERO Fix IEClassHeteroExecutableNetworkGetMetricTest_SUPPORTED_METRICS test Fix NumStreamsAndDefaultPerfHintToHWTest/PerHintAndDefaultPerfHintToHWTest tests [HETERO][MULTI][AUTO] Make ov::device::properties regular property [PYTHON] Update python BA with device properties Update after rebase Update src/plugins/auto/auto_executable_network.cpp Co-authored-by: Ilya Lavrenov <ilya.lavrenov@intel.com> Update src/plugins/auto/multi_executable_network.cpp Co-authored-by: Ilya Lavrenov <ilya.lavrenov@intel.com> Fix merge conflicts, apply some review comments * Code style, bugfix after merging improvement * More improvements * Even more improvements * Commit changes in core_impl.cpp * Added parsing of any maps * Fixed code-style * Fixed AB mock tests build * Fixed comparison * Added new AB config key * Improvements and fixes (#147) * Fix BA, fix GetSupportedConfig call for virtual plugins (#148) * Fix GPU tests (#149) * Fix BA, fix GetSupportedConfig call for virtual plugins * Fix GPU tests * Code style * Improvements 10 * Fixed incorrect tests * Revert removal cache_dir * Revert removal cache_dir * Fixed clean * Supported device ID in CPU * More fixed tests * clang-format * Fix legacy GPU tests (#150) * Removed clone_map * clang-format * Added clone_map back --------- Co-authored-by: Nadezhda Ageeva <nadezhda.ageeva@intel.com> Co-authored-by: Nadezhda Ageeva <nkogteva@gmail.com>
This commit is contained in:
@@ -28,6 +28,7 @@ namespace AutoBatchPlugin {
|
||||
using namespace InferenceEngine;
|
||||
|
||||
std::vector<std::string> supported_configKeys = {CONFIG_KEY(AUTO_BATCH_DEVICE_CONFIG),
|
||||
ov::device::priorities.name(),
|
||||
CONFIG_KEY(AUTO_BATCH_TIMEOUT),
|
||||
CONFIG_KEY(CACHE_DIR)};
|
||||
|
||||
@@ -694,14 +695,8 @@ DeviceInformation AutoBatchInferencePlugin::ParseMetaDevice(const std::string& d
|
||||
DeviceIDParser deviceParser(deviceWithID);
|
||||
std::string deviceName = deviceParser.getDeviceName();
|
||||
std::map<std::string, std::string> tconfig = mergeConfigs(_config, config);
|
||||
|
||||
// set device ID if any
|
||||
std::string deviceIDLocal = deviceParser.getDeviceID();
|
||||
if (!deviceIDLocal.empty()) {
|
||||
tconfig[PluginConfigParams::KEY_DEVICE_ID] = deviceIDLocal;
|
||||
}
|
||||
// passthrough the cache dir to core->loadnetwork when underlying device does not support cache dir
|
||||
auto deviceConfig = GetCore()->GetSupportedConfig(deviceName, tconfig);
|
||||
auto deviceConfig = GetCore()->GetSupportedConfig(deviceWithID, tconfig);
|
||||
if (tconfig.find(CONFIG_KEY(CACHE_DIR)) != tconfig.end() &&
|
||||
deviceConfig.find(CONFIG_KEY(CACHE_DIR)) == deviceConfig.end()) {
|
||||
auto tmpiter = tconfig.find(CONFIG_KEY(CACHE_DIR));
|
||||
@@ -730,6 +725,8 @@ DeviceInformation AutoBatchInferencePlugin::ParseMetaDevice(const std::string& d
|
||||
RemoteContext::Ptr AutoBatchInferencePlugin::CreateContext(const InferenceEngine::ParamMap& config) {
|
||||
auto cfg = config;
|
||||
auto it = cfg.find(CONFIG_KEY(AUTO_BATCH_DEVICE_CONFIG));
|
||||
if (it == cfg.end())
|
||||
it = cfg.find(ov::device::priorities.name());
|
||||
if (it == cfg.end())
|
||||
IE_THROW() << "Value for KEY_AUTO_BATCH_DEVICE_CONFIG is not set";
|
||||
|
||||
@@ -762,7 +759,7 @@ void AutoBatchInferencePlugin::CheckConfig(const std::map<std::string, std::stri
|
||||
const auto val = kvp.second;
|
||||
if (supported_configKeys.end() == std::find(supported_configKeys.begin(), supported_configKeys.end(), name))
|
||||
IE_THROW() << "Unsupported config key: " << name;
|
||||
if (name == CONFIG_KEY(AUTO_BATCH_DEVICE_CONFIG)) {
|
||||
if (name == CONFIG_KEY(AUTO_BATCH_DEVICE_CONFIG) || name == ov::device::priorities.name()) {
|
||||
ParseBatchDevice(val);
|
||||
} else if (name == CONFIG_KEY(AUTO_BATCH_TIMEOUT)) {
|
||||
try {
|
||||
@@ -826,6 +823,8 @@ InferenceEngine::IExecutableNetworkInternal::Ptr AutoBatchInferencePlugin::LoadN
|
||||
}
|
||||
auto fullConfig = mergeConfigs(_config, config);
|
||||
auto device_batch = fullConfig.find(CONFIG_KEY(AUTO_BATCH_DEVICE_CONFIG));
|
||||
if (device_batch == fullConfig.end())
|
||||
device_batch = fullConfig.find(ov::device::priorities.name());
|
||||
if (device_batch == fullConfig.end()) {
|
||||
IE_THROW() << "KEY_AUTO_BATCH key is not set for BATCH device";
|
||||
}
|
||||
@@ -997,13 +996,13 @@ InferenceEngine::QueryNetworkResult AutoBatchInferencePlugin::QueryNetwork(
|
||||
return InferenceEngine::QueryNetworkResult();
|
||||
auto cfg = config;
|
||||
for (auto c : cfg) {
|
||||
if (c.first == CONFIG_KEY(AUTO_BATCH_DEVICE_CONFIG)) {
|
||||
if (c.first == CONFIG_KEY(AUTO_BATCH_DEVICE_CONFIG) || c.first == ov::device::priorities.name()) {
|
||||
auto val = c.second;
|
||||
cfg.erase(c.first);
|
||||
auto metaDevice = ParseMetaDevice(val, cfg);
|
||||
return core->QueryNetwork(network, metaDevice.deviceName, cfg);
|
||||
}
|
||||
}
|
||||
IE_THROW() << "Value for KEY_AUTO_BATCH is not set";
|
||||
IE_THROW() << "Value for KEY_AUTO_BATCH_DEVICE_CONFIG is not set";
|
||||
}
|
||||
} // namespace AutoBatchPlugin
|
||||
|
||||
@@ -178,8 +178,6 @@ protected:
|
||||
DeviceInformation ParseMetaDevice(const std::string& devicesBatchCfg,
|
||||
const std::map<std::string, std::string>& config) const;
|
||||
|
||||
std::map<std::string, std::string> GetSupportedConfig(const std::map<std::string, std::string>& config,
|
||||
const DeviceName& deviceName) const;
|
||||
static DeviceInformation ParseBatchDevice(const std::string& deviceWithBatch);
|
||||
|
||||
InferenceEngine::IExecutableNetworkInternal::Ptr LoadNetworkImpl(
|
||||
|
||||
@@ -323,7 +323,7 @@ TEST_P(PluginMetricTest, GetPluginMetricTest) {
|
||||
}
|
||||
|
||||
const char supported_metric[] = "SUPPORTED_METRICS FULL_DEVICE_NAME SUPPORTED_CONFIG_KEYS";
|
||||
const char supported_config_keys[] = "AUTO_BATCH_DEVICE_CONFIG AUTO_BATCH_TIMEOUT CACHE_DIR";
|
||||
const char supported_config_keys[] = "AUTO_BATCH_DEVICE_CONFIG MULTI_DEVICE_PRIORITIES AUTO_BATCH_TIMEOUT CACHE_DIR";
|
||||
|
||||
const std::vector<BatchDeviceConfigParams> batchDeviceTestConfigs = {
|
||||
BatchDeviceConfigParams{"CPU(4)", "CPU", 4, false},
|
||||
|
||||
Reference in New Issue
Block a user