@@ -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