Browse Source

No session in tf_singleop_task and add cpu kernels cache.

pull/398/head
unknown 4 years ago
parent
commit
5cc537011a
6 changed files with 18 additions and 13 deletions
  1. +4
    -4
      ge/graph/load/new_model_manager/task_info/kernel_task_info.cc
  2. +2
    -2
      ge/hybrid/node_executor/aicpu/aicpu_ext_info.cc
  3. +2
    -2
      ge/hybrid/node_executor/aicpu/aicpu_node_executor.cc
  4. +3
    -3
      ge/single_op/single_op_model.cc
  5. +5
    -0
      ge/single_op/task/aicpu_task_builder.cc
  6. +2
    -2
      ge/single_op/task/op_task.cc

+ 4
- 4
ge/graph/load/new_model_manager/task_info/kernel_task_info.cc View File

@@ -969,7 +969,7 @@ Status KernelTaskInfo::InitAicpuTaskExtInfo(const std::string &ext_info) {

auto ext_info_data = copy_ext_info.get();
size_t offset = 0;
while (offset + sizeof(aicpu::FWKAdapter::ExtInfo) <= ext_info_len_) {
while (offset + sizeof(aicpu::FWKAdapter::ExtInfo) <= ext_info.size()) {
auto aicpu_ext_info = reinterpret_cast<aicpu::FWKAdapter::ExtInfo *>(ext_info_data + offset);
GELOGD("Ext infoType=%d, infoLen=%u.", aicpu_ext_info->infoType, aicpu_ext_info->infoLen);
if (aicpu_ext_info->infoType == aicpu::FWKAdapter::FWK_ADPT_EXT_SESSION_INFO) {
@@ -977,11 +977,11 @@ Status KernelTaskInfo::InitAicpuTaskExtInfo(const std::string &ext_info) {
"Parse ext session info failed as infoLen must be %zu but %u.",
sizeof(SessionInfo), aicpu_ext_info->infoLen);
SessionInfo *session_info = reinterpret_cast<SessionInfo *>(aicpu_ext_info->infoMsg);
session_info_->sessionId = davinci_model_->GetSessionId();
session_info_->sessFlag = true;
session_info->sessionId = davinci_model_->GetSessionId();
session_info->sessFlag = true;
GELOGD("Update aicpu_task ext_info session_info session_id is %lu", session_info->sessionId);
}
offset += sizeof(AicpuExtInfo);
offset += sizeof(aicpu::FWKAdapter::ExtInfo);
offset += aicpu_ext_info->infoLen;
}



+ 2
- 2
ge/hybrid/node_executor/aicpu/aicpu_ext_info.cc View File

@@ -141,7 +141,7 @@ Status AicpuExtInfoHandler::UpdateSessionInfo(uint64_t session_id, uint64_t kern
GELOGD("There is no session info in ext_info, no need update.");
return SUCCESS;
}
session_info_->sessionId = session_id;
session_info_->kernelId = kernel_id;
session_info_->sessFlag = sess_flag;
@@ -153,7 +153,7 @@ Status AicpuExtInfoHandler::UpdateSessionInfoSessionId(uint64_t session_id) {
GELOGD("There is no session info in ext_info, no need update.");
return SUCCESS;
}
session_info_->sessionId = session_id;
session_info_->sessFlag = true;
return SUCCESS;


+ 2
- 2
ge/hybrid/node_executor/aicpu/aicpu_node_executor.cc View File

@@ -57,9 +57,9 @@ Status AicpuNodeTaskBase::InitExtInfo(const std::string &kernel_ext_info, int64_
GE_CHK_STATUS_RET(aicpu_ext_handle_.Parse(kernel_ext_info),
"Node[%s] parse kernel ext info failed, kernel_ext_info_size=%zu.",
node_name_.c_str(), kernel_ext_info.size());
}
GELOGD("To update aicpu_task ext_info session_info session_id to %lu", session_id);
GE_CHK_STATUS_RET(aicpu_ext_handle_.UpdateSessionInfoSessionId(session_id));
GE_CHK_STATUS_RET(aicpu_ext_handle_.UpdateSessionInfoSessionId(session_id),
"UpdateSessionInfoSessionId failed.");

// copy task args buf
GE_CHK_STATUS_RET(AllocTensorBuffer(aicpu_ext_handle_.GetExtInfoLen(), ext_info_addr_dev_),


+ 3
- 3
ge/single_op/single_op_model.cc View File

@@ -252,8 +252,8 @@ Status SingleOpModel::BuildTaskList(SingleOp &single_op) {
} else if (kernel_type == cce::ccKernelType::AI_CPU || kernel_type == cce::ccKernelType::CUST_AI_CPU) {
GELOGD("Building AICPU_CC task");
OpTask *task = nullptr;
uint64_t singleop_kernel_id = aicpu_kernel_id++
GELOGI("Build singleOp CCTask, kernel_id = %lu", singleop_kernel_id);;
uint64_t singleop_kernel_id = aicpu_kernel_id++;
GELOGI("Build singleOp CCTask, kernel_id = %lu", singleop_kernel_id);
auto ret = BuildCpuKernelTask(task_def.kernel(), &task, singleop_kernel_id);
if (ret != SUCCESS) {
return ret;
@@ -368,7 +368,7 @@ Status SingleOpModel::BuildCpuKernelTask(const domi::KernelDef &kernel_def, OpTa
}

auto builder = AiCpuCCTaskBuilder(iter->second->GetOpDesc(), kernel_def);
auto ret = builder.BuildTask(*aicpucc_task, uint64_t kernel_id);
auto ret = builder.BuildTask(*aicpucc_task, kernel_id);
if (ret != SUCCESS) {
GELOGE(ret, "build aicpu_CC op task failed");
return ret;


+ 5
- 0
ge/single_op/task/aicpu_task_builder.cc View File

@@ -141,6 +141,11 @@ namespace ge {
fwk_op_kernel.fwkKernelBase.fwk_kernel.sessionID = ULLONG_MAX;
fwk_op_kernel.fwkKernelBase.fwk_kernel.kernelID = kernel_id;
fwk_op_kernel.fwkKernelBase.fwk_kernel.opType = aicpu::FWKAdapter::FWKOperateType::FWK_ADPT_KERNEL_RUN_NO_SESS;
ret = SetKernelArgs(&task.args_, fwk_op_kernel);
if (ret != SUCCESS) {
return ret;
}

task.arg_size_ = sizeof(STR_FWK_OP_KERNEL);
task.op_type_ = op_desc_->GetName();
task.task_info_ = kernel_def_.task_info();


+ 2
- 2
ge/single_op/task/op_task.cc View File

@@ -269,12 +269,12 @@ Status AiCpuBaseTask::SetExtInfoAndType(const std::string &kernel_ext_info, uint
}

GE_CHK_STATUS_RET(aicpu_ext_handle_->UpdateSessionInfo(ULLONG_MAX, kernel_id, false),
"UpdateOutputShapeAndType failed.");
"UpdateSessionInfo failed.");

GE_CHK_RT_RET(rtMalloc(&ext_info_addr_dev_, aicpu_ext_handle_->GetExtInfoLen(), RT_MEMORY_HBM));
GE_CHK_RT_RET(rtMemcpy(ext_info_addr_dev_, aicpu_ext_handle_->GetExtInfoLen(),
aicpu_ext_handle_->GetExtInfo(), aicpu_ext_handle_->GetExtInfoLen(),
RT_MEMCPY_HOST_TO_DEVICE))
RT_MEMCPY_HOST_TO_DEVICE));
return SUCCESS;
}



Loading…
Cancel
Save