[CPU] Fixed KEY_LP_TRANSFORMS_MODE internal propery behavior (#17945)

This commit is contained in:
Gorokhov Dmitriy authored and GitHub committed 2023-06-08 21:09:37 +04:00
1 parent 55ddbcaf23
commit e564c50d35
1 file changed
+15 -3
+15 -3
View File
@@ -387,6 +387,20 @@ StreamCfg Engine::GetNumStreams(InferenceEngine::IStreamsExecutor::ThreadBinding
return stream_cfg;
}
static bool shouldEnableLPT(const std::map<std::string, std::string>& modelConfig, const Config& engineConfig) {
const auto& enableLPT = modelConfig.find(InferenceEngine::PluginConfigInternalParams::KEY_LP_TRANSFORMS_MODE);
if (enableLPT == modelConfig.end()) // model config has higher priority
return engineConfig.lpTransformsMode == Config::LPTransformsMode::On;
const auto& val = enableLPT->second;
if (val == PluginConfigParams::YES)
return true;
else if (val == PluginConfigParams::NO)
return false;
else
IE_THROW() << "Wrong value for property key LP_TRANSFORMS_MODE. Expected values: YES/NO";
}
static bool shouldEnforceBF16(const std::map<std::string, std::string>& modelConfig, const Config& engineConfig) {
// For BF16 execution, the machine should have AVX512 at least
if (!dnnl::impl::cpu::x64::mayiuse(dnnl::impl::cpu::x64::avx512_core))
@@ -454,9 +468,7 @@ Engine::LoadExeNetworkImpl(const InferenceEngine::CNNNetwork &network, const std
auto config = orig_config;
CNNNetwork clonedNetwork = InferenceEngine::details::cloneNetwork(network);
const auto& lptProp = config.find(InferenceEngine::PluginConfigInternalParams::KEY_LP_TRANSFORMS_MODE);
const bool enableLPT = (lptProp != config.end() && lptProp->second == PluginConfigParams::YES) /* enabled in the orig_config*/
|| Config::LPTransformsMode::On == engConfig.lpTransformsMode /* or already enabled for the plugin */;
const bool enableLPT = shouldEnableLPT(config, engConfig);
const bool enableBF16 = shouldEnforceBF16(config, engConfig);
const Config::SnippetsMode snippetsMode = getSnippetsMode(config, engConfig);