|
|
@@ -286,6 +286,17 @@ ge::Status ModelManager::DoLoadHybridModelOnline(uint32_t model_id, const string |
|
|
|
return SUCCESS; |
|
|
|
} |
|
|
|
|
|
|
|
bool ModelManager::IsNeedHybridLoad(ge::GeRootModel &ge_root_model) { |
|
|
|
auto root_graph = ge_root_model.GetRootGraph(); |
|
|
|
if (root_graph == nullptr) { |
|
|
|
GELOGE(FAILED, "no model on root model"); |
|
|
|
return false; |
|
|
|
} |
|
|
|
bool is_shape_unknown = root_graph->GetGraphUnknownFlag(); |
|
|
|
bool is_dsp_partitioned_graph = false; |
|
|
|
(void)AttrUtils::GetBool(root_graph, ATTR_NAME_DYNAMIC_SHAPE_PARTITIONED, is_dsp_partitioned_graph); |
|
|
|
return is_shape_unknown || is_dsp_partitioned_graph || GetContext().GetHostExecFlag(); |
|
|
|
} |
|
|
|
/// |
|
|
|
/// @ingroup domi_ome |
|
|
|
/// @brief load model online |
|
|
@@ -299,10 +310,7 @@ Status ModelManager::LoadModelOnline(uint32_t &model_id, const shared_ptr<ge::Ge |
|
|
|
} |
|
|
|
auto name_to_model = ge_root_model->GetSubgraphInstanceNameToModel(); |
|
|
|
string model_name = ""; |
|
|
|
bool is_shape_unknown = ge_root_model->GetRootGraph()->GetGraphUnknownFlag(); |
|
|
|
bool is_dsp_partitioned_graph = false; |
|
|
|
(void)AttrUtils::GetBool(ge_root_model->GetRootGraph(), ATTR_NAME_DYNAMIC_SHAPE_PARTITIONED, is_shape_unknown); |
|
|
|
if (is_shape_unknown || is_dsp_partitioned_graph || GetContext().GetHostExecFlag()) { |
|
|
|
if (IsNeedHybridLoad(*ge_root_model)) { |
|
|
|
return DoLoadHybridModelOnline(model_id, model_name, ge_root_model, listener); |
|
|
|
} |
|
|
|
|
|
|
|