Skip to content

Commit 59630db

Browse files
Fixing the thing
1 parent ba27d5f commit 59630db

File tree

1 file changed

+27
-10
lines changed

1 file changed

+27
-10
lines changed

src/plugins/intel_npu/src/plugin/src/plugin.cpp

Lines changed: 27 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -641,6 +641,25 @@ std::shared_ptr<ov::ICompiledModel> Plugin::compile_model(const std::shared_ptr<
641641
_logger.warning("Model received in config will be ignored as it was already provided by parameter.");
642642
}
643643

644+
// There is an on-going migration from "USE_BASE_MODEL_SERIALIZER" to "MODEL_SERIALIZER_VERSION". Until done, make
645+
// sure only the option supported by the compiler is registered in the config.
646+
bool useBaseModelSerializer = true;
647+
bool modelSerializerChosenExplicitly = false;
648+
const std::string useBaseModelSerializerKey = ov::intel_npu::use_base_model_serializer.name();
649+
const std::string modelSerializerVersionKey = ov::intel_npu::model_serializer_version.name();
650+
if (localProperties.count(useBaseModelSerializerKey)) {
651+
modelSerializerChosenExplicitly = true;
652+
useBaseModelSerializer = localProperties.at(useBaseModelSerializerKey).as<bool>();
653+
localProperties.erase(useBaseModelSerializerKey);
654+
localProperties.erase(modelSerializerVersionKey);
655+
} else if (localProperties.count(modelSerializerVersionKey)) {
656+
modelSerializerChosenExplicitly = true;
657+
const auto modelSerializerVersion =
658+
localProperties.at(modelSerializerVersionKey).as<ov::intel_npu::ModelSerializerVersion>();
659+
useBaseModelSerializer = !(modelSerializerVersion == ov::intel_npu::ModelSerializerVersion::NO_WEIGHTS_COPY);
660+
localProperties.erase(modelSerializerVersionKey);
661+
}
662+
644663
const std::map<std::string, std::string> localPropertiesMap = any_copy(localProperties);
645664
update_log_level(localPropertiesMap);
646665

@@ -748,16 +767,14 @@ std::shared_ptr<ov::ICompiledModel> Plugin::compile_model(const std::shared_ptr<
748767
localConfig.update({{ov::intel_npu::weightless_blob.name(), cacheModeOptimizeSize ? "YES" : "NO"}});
749768
}
750769

751-
// There is an on-going migration from "USE_BASE_MODEL_SERIALIZER" to "MODEL_SERIALIZER_VERSION". Until done, make
752-
// sure both options have the same value if only one is defined.
753-
if (localConfig.has<MODEL_SERIALIZER_VERSION>() && !localConfig.has<USE_BASE_MODEL_SERIALIZER>()) {
754-
const bool useBaseModelSerializer =
755-
(localConfig.get<MODEL_SERIALIZER_VERSION>() == ov::intel_npu::ModelSerializerVersion::AUTO ||
756-
localConfig.get<MODEL_SERIALIZER_VERSION>() == ov::intel_npu::ModelSerializerVersion::ALL_WEIGHTS_COPY);
757-
localConfig.update({{ov::intel_npu::use_base_model_serializer.name(), useBaseModelSerializer ? "YES" : "NO"}});
758-
} else if (!localConfig.has<MODEL_SERIALIZER_VERSION>() && localConfig.has<USE_BASE_MODEL_SERIALIZER>()) {
759-
localConfig.update({{ov::intel_npu::model_serializer_version.name(),
760-
localConfig.get<USE_BASE_MODEL_SERIALIZER>() ? "ALL_WEIGHTS_COPY" : "NO_WEIGHTS_COPY"}});
770+
if (modelSerializerChosenExplicitly) {
771+
if (localConfig.isAvailable(ov::intel_npu::use_base_model_serializer.name())) {
772+
localConfig.update(
773+
{{ov::intel_npu::use_base_model_serializer.name(), useBaseModelSerializer ? "YES" : "NO"}});
774+
} else if (localConfig.isAvailable(ov::intel_npu::model_serializer_version.name())) {
775+
localConfig.update({{ov::intel_npu::model_serializer_version.name(),
776+
useBaseModelSerializer ? "ALL_WEIGHTS_COPY" : "NO_WEIGHTS_COPY"}});
777+
}
761778
}
762779

763780
std::shared_ptr<intel_npu::IGraph> graph;

0 commit comments

Comments
 (0)