From 67a2ca609f386d9d4edf08625766d7e3a768906f Mon Sep 17 00:00:00 2001 From: zhangxiaokun Date: Mon, 19 Jul 2021 21:21:19 +0800 Subject: [PATCH] Detach MemManager from VarManager --- ge/graph/execute/model_executor.cc | 8 ++++++-- ge/graph/load/model_manager/davinci_model.cc | 2 ++ ge/graph/passes/dimension_adjust_pass.cc | 2 ++ ge/graph/passes/dimension_adjust_pass.h | 2 -- ge/hybrid/model/hybrid_model_builder.cc | 1 + 5 files changed, 11 insertions(+), 4 deletions(-) diff --git a/ge/graph/execute/model_executor.cc b/ge/graph/execute/model_executor.cc index b4b1706b..bd0049dc 100644 --- a/ge/graph/execute/model_executor.cc +++ b/ge/graph/execute/model_executor.cc @@ -42,6 +42,12 @@ namespace ge { /// @return Status result of function /// Status ModelExecutor::Initialize(const map &options, uint64_t session_id) { + if (init_flag_) { + GELOGW("ModelExecutor has already initialized."); + return SUCCESS; + } + + session_id_ = session_id; graph_run_listener_ = MakeShared(sync_run_mutex_, condition_); if (graph_run_listener_ == nullptr) { REPORT_CALL_ERROR("E19999", "New GraphModelListener fail"); @@ -66,7 +72,6 @@ Status ModelExecutor::Initialize(const map &options, uint64_t se return status; } - VarManager::Instance(session_id)->SetMemManager(&MemManager::Instance()); size_t total_mem_size = 0; GE_CHK_STATUS_RET_NOLOG(GetTotalMemorySize(total_mem_size)); status = VarManager::Instance(session_id)->SetMemoryMallocSize(options, total_mem_size); @@ -76,7 +81,6 @@ Status ModelExecutor::Initialize(const map &options, uint64_t se return status; } - session_id_ = session_id; train_graph_flag_ = ParseTrainGraphFlag(); thread_run_flag_.store(true); run_thread_ = std::thread(&ModelExecutor::RunThread, this); diff --git a/ge/graph/load/model_manager/davinci_model.cc b/ge/graph/load/model_manager/davinci_model.cc index aba06173..01a882a7 100755 --- a/ge/graph/load/model_manager/davinci_model.cc +++ b/ge/graph/load/model_manager/davinci_model.cc @@ -494,6 +494,8 @@ void DavinciModel::InitRuntimeParams() { ret = ge::AttrUtils::GetInt(ge_model_, ATTR_MODEL_ZERO_COPY_MEMORY_SIZE, value); runtime_param_.zero_copy_size = ret ? value : 0; + + VarManager::Instance(session_id_)->SetMemManager(&MemManager::Instance()); GELOGI("InitRuntimeParams(), %s.", runtime_param_.ToString().c_str()); } diff --git a/ge/graph/passes/dimension_adjust_pass.cc b/ge/graph/passes/dimension_adjust_pass.cc index 03cf3053..d8eb0afa 100755 --- a/ge/graph/passes/dimension_adjust_pass.cc +++ b/ge/graph/passes/dimension_adjust_pass.cc @@ -20,6 +20,8 @@ #include #include #include "graph/utils/node_utils.h" +#include "inc/kernel.h" +#include "inc/kernel_factory.h" namespace ge { namespace { diff --git a/ge/graph/passes/dimension_adjust_pass.h b/ge/graph/passes/dimension_adjust_pass.h index cba283ed..34baa28e 100755 --- a/ge/graph/passes/dimension_adjust_pass.h +++ b/ge/graph/passes/dimension_adjust_pass.h @@ -26,8 +26,6 @@ #include "graph/utils/attr_utils.h" #include "graph/utils/graph_utils.h" #include "graph/utils/op_desc_utils.h" -#include "inc/kernel.h" -#include "inc/kernel_factory.h" #include "graph/passes/pass_utils.h" namespace ge { diff --git a/ge/hybrid/model/hybrid_model_builder.cc b/ge/hybrid/model/hybrid_model_builder.cc index 44115240..0e04aaa3 100755 --- a/ge/hybrid/model/hybrid_model_builder.cc +++ b/ge/hybrid/model/hybrid_model_builder.cc @@ -1537,6 +1537,7 @@ Status HybridModelBuilder::InitRuntimeParams() { var_manager_ = VarManager::Instance(runtime_param_.session_id); GE_CHECK_NOTNULL(var_manager_); + var_manager_->SetMemManager(&MemManager::Instance()); return SUCCESS; }