@@ -165,9 +165,6 @@ std::shared_ptr<IGraph> PluginCompilerAdapter::compileWS(const std::shared_ptr<o
165165 OV_ITT_TASK_CHAIN (COMPILE_BLOB, itt::domains::NPUPlugin, " PluginCompilerAdapter" , " compileWS" );
166166 OPENVINO_ASSERT (_zeGraphExt);
167167
168- std::vector<std::shared_ptr<NetworkDescription>> initNetworkDescriptions;
169- std::shared_ptr<NetworkDescription> mainNetworkDescription;
170-
171168 _logger.debug (" compile start" );
172169
173170 FilteredConfig localConfig = config;
@@ -186,29 +183,23 @@ std::shared_ptr<IGraph> PluginCompilerAdapter::compileWS(const std::shared_ptr<o
186183 std::vector<GraphDescriptor> initGraphDescriptors;
187184 std::vector<ov::Tensor> tensorsInits;
188185 std::vector<NetworkMetadata> initNetworkMetadata;
186+ std::vector<std::shared_ptr<NetworkDescription>> initNetworkDescriptions;
189187
190188 ov::Tensor tensorMain;
191189 GraphDescriptor mainGraphDesc;
192190 NetworkMetadata mainNetworkMetadata;
191+ std::shared_ptr<NetworkDescription> mainNetworkDescription;
193192
194193 switch (localConfig.get <SEPARATE_WEIGHTS_VERSION>()) {
195194 case ov::intel_npu::WSVersion::ONE_SHOT: {
196195 std::vector<std::shared_ptr<NetworkDescription>> initMainNetworkDescriptions =
197196 _compiler->compileWsOneShot (model, localConfig);
198197
199- #if 0 // TODO: it is not clear whether we should change the name
200- OPENVINO_ASSERT(isMain(initMainNetworkDescriptions.back()->metadata.name),
201- "Unexpected network name for main:",
202- initMainNetworkDescriptions.back()->metadata.name);
203- #endif
204-
205198 mainNetworkDescription = initMainNetworkDescriptions.back ();
206199 initMainNetworkDescriptions.pop_back ();
207200 initNetworkDescriptions = std::move (initMainNetworkDescriptions);
208201
209- ov::Tensor tensorMain = make_tensor_from_vector (mainNetworkDescription->compiledNetwork );
210- GraphDescriptor mainGraphDesc;
211- NetworkMetadata mainNetworkMetadata;
202+ tensorMain = make_tensor_from_vector (mainNetworkDescription->compiledNetwork );
212203 if (_zeGraphExt) {
213204 // Depending on the config, we may get an error when trying to
214205 // get the graph handle from the compiled network
@@ -221,9 +212,6 @@ std::shared_ptr<IGraph> PluginCompilerAdapter::compileWS(const std::shared_ptr<o
221212 }
222213 }
223214
224- std::vector<GraphDescriptor> initGraphDescriptors;
225- std::vector<ov::Tensor> tensorsInits;
226- std::vector<NetworkMetadata> initNetworkMetadata;
227215 initGraphDescriptors.reserve (initNetworkDescriptions.size ());
228216 tensorsInits.reserve (initNetworkDescriptions.size ());
229217 initNetworkMetadata.reserve (initNetworkDescriptions.size ());
@@ -245,6 +233,11 @@ std::shared_ptr<IGraph> PluginCompilerAdapter::compileWS(const std::shared_ptr<o
245233 }
246234 } break ;
247235 case ov::intel_npu::WSVersion::ITERATIVE: {
236+ OPENVINO_ASSERT (_zeGraphExt,
237+ " The \" iterative\" implementation of the weights separation feature requires a Level Zero "
238+ " graph handle to compile a model." );
239+
240+ // The state of the model needs to be reset every iteration
248241 const std::shared_ptr<ov::Model> originalModel = model->clone ();
249242 std::shared_ptr<ov::Model> targetModel = model;
250243 size_t i = 0 ;
@@ -256,18 +249,18 @@ std::shared_ptr<IGraph> PluginCompilerAdapter::compileWS(const std::shared_ptr<o
256249 NetworkMetadata networkMetadata = _zeGraphExt->getNetworkMeta (graphDesc);
257250
258251 if (isInitMetadata (networkDescription->metadata )) {
259- initNetworkDescriptions.push_back (networkDescription);
260252 targetModel = originalModel->clone ();
261253 initGraphDescriptors.push_back (graphDesc);
262254 tensorsInits.push_back (std::move (tensor));
263255 initNetworkMetadata.push_back (std::move (networkMetadata));
256+ initNetworkDescriptions.push_back (networkDescription);
264257 continue ;
265258 }
266259
267- mainNetworkDescription = std::move (networkDescription);
268260 tensorMain = std::move (tensor);
269261 mainGraphDesc = graphDesc;
270262 mainNetworkMetadata = std::move (networkMetadata);
263+ mainNetworkDescription = std::move (networkDescription);
271264 break ;
272265 }
273266 } break ;
0 commit comments