Browse Source

Pre Merge pull request !1706 from 王涛/master

pull/1706/MERGE
王涛 Gitee 4 years ago
parent
commit
c34dfe32a1
4 changed files with 13 additions and 3 deletions
  1. +2
    -0
      ge/graph/load/model_manager/davinci_model.cc
  2. +7
    -0
      ge/graph/load/model_manager/davinci_model.h
  3. +2
    -1
      ge/graph/load/model_manager/task_info/task_info.h
  4. +2
    -2
      ge/hybrid/node_executor/compiledsubgraph/known_node_executor.cc

+ 2
- 0
ge/graph/load/model_manager/davinci_model.cc View File

@@ -488,6 +488,8 @@ void DavinciModel::InitRuntimeParams() {
session_scope_mem_info.memory_size = static_cast<size_t>(ret ? value : 0);
runtime_param_.memory_infos[kSessionScopeMemory | RT_MEMORY_HBM] = std::move(session_scope_mem_info);

ret = ge::AttrUtils::GetInt(ge_model_, ATTR_MODEL_ZERO_COPY_MEMORY_SIZE, value);
runtime_param_.zero_copy_size = ret ? (uint64_t)value : 0;
GELOGI("InitRuntimeParams(), %s.", runtime_param_.ToString().c_str());
}



+ 7
- 0
ge/graph/load/model_manager/davinci_model.h View File

@@ -248,6 +248,13 @@ class DavinciModel {
// get total mem size
size_t TotalMemSize() const { return runtime_param_.mem_size; }

// get total useful size: total mem size - zero copy size;
// In known subgraph, no need to allocate zero copy memory during initialization
size_t TotalMemSizeExcludeZeroCopy() const {
return runtime_param_.mem_size > runtime_param_.zero_copy_size
? runtime_param_.mem_size - runtime_param_.zero_copy_size : 0;
}

// model name
string Name() const { return name_; }



+ 2
- 1
ge/graph/load/model_manager/task_info/task_info.h View File

@@ -49,7 +49,7 @@ struct RuntimeParam {
<< ", label_num:" << label_num << ", logic_mem_base:" << logic_mem_base
<< ", logic_weight_base:" << logic_weight_base << ", logic_var_base:" << logic_var_base
<< ", memory_size:" << mem_size << ", weight_size:" << weight_size << ", var_size:" << var_size
<< ", ex_memory_info:";
<< ", zero_copy_size:" << zero_copy_size << ", ex_memory_info:";
for (auto it : memory_infos) {
ss << "[memory_type:" << it.first << ", memory_size:" << it.second.memory_size << "]";
}
@@ -65,6 +65,7 @@ struct RuntimeParam {
uint64_t var_size = 0;
uint64_t logic_var_base = 0;
uint8_t *var_base = nullptr;
uint64_t zero_copy_size = 0;
std::map<uint64_t, MemInfo> memory_infos;
uint32_t batch_num = 0;
uint32_t stream_num = 0;


+ 2
- 2
ge/hybrid/node_executor/compiledsubgraph/known_node_executor.cc View File

@@ -101,10 +101,10 @@ Status KnownNodeTask::Init(TaskContext &context) {
GE_CHK_STATUS_RET(context.AllocateOutputs(), "[Allocate][Outputs] failed for %s.", context.GetNodeName());
// allocate mem base
void *buffer = nullptr;
if (davinci_model_->TotalMemSize() != 0) {
if (davinci_model_->TotalMemSizeExcludeZeroCopy != 0) {
RECORD_EXECUTION_EVENT(context.GetExecutionContext(), context.GetNodeName(),
"[KnownNodeTask_AllocateWorkspace] Start");
GE_CHK_STATUS_RET(context.AllocateWorkspace(davinci_model_->TotalMemSize(), &buffer,
GE_CHK_STATUS_RET(context.AllocateWorkspace(davinci_model_->TotalMemSizeExcludeZeroCopy(), &buffer,
davinci_model_->GetRuntimeParam().mem_base),
"[Allocate][Workspace] failed for %s.", context.GetNodeName());
RECORD_EXECUTION_EVENT(context.GetExecutionContext(), context.GetNodeName(),


Loading…
Cancel
Save