Browse Source

Pre Merge pull request !1184 from 赵之轩/my_dev2

pull/1184/MERGE
赵之轩 Gitee 4 years ago
parent
commit
8d2ca6bfb1
2 changed files with 26 additions and 14 deletions
  1. +15
    -9
      ge/hybrid/node_executor/aicore/aicore_op_task.cc
  2. +11
    -5
      ge/single_op/task/op_task.cc

+ 15
- 9
ge/hybrid/node_executor/aicore/aicore_op_task.cc View File

@@ -302,8 +302,8 @@ Status AiCoreOpTask::UpdateTilingInfo(TaskContext &context) {


GELOGD("[%s] Start to update tiling info for task: [%s]", node->GetName().c_str(), stub_name_.c_str()); GELOGD("[%s] Start to update tiling info for task: [%s]", node->GetName().c_str(), stub_name_.c_str());
OpRunInfo tiling_info; OpRunInfo tiling_info;
tiling_info.block_dim = -1; // codex: Using uninitialized value
tiling_info.clear_atomic = true;
tiling_info.SetBlockDim(-1); // codex: Using uninitialized value
tiling_info.SetClearAtomic(true);


auto execution_context = context.GetExecutionContext(); auto execution_context = context.GetExecutionContext();


@@ -314,12 +314,18 @@ Status AiCoreOpTask::UpdateTilingInfo(TaskContext &context) {
GetContext().SetSessionId(execution_context->session_id); GetContext().SetSessionId(execution_context->session_id);


// update op args by tiling info // update op args by tiling info
block_dim_ = static_cast<uint32_t>(tiling_info.block_dim);
op_desc->SetWorkspaceBytes(tiling_info.workspaces);
clear_atomic_ = tiling_info.clear_atomic;

tiling_data_ = tiling_info.tiling_data.str();
tiling_key_ = tiling_info.tiling_key;
block_dim_ = static_cast<uint32_t>(tiling_info.GetBlockDim());
vector<int64_t> workspaces;
for (size_t i = 0; i < tiling_info.GetWorkSpaceNum(); ++i) {
int64_t workspace = 0;
GE_CHK_STATUS_RET(tiling_info.GetWorkSpace(i, workspace));
workspaces.emplace_back(workspace);
}
op_desc->SetWorkspaceBytes(workspaces);
clear_atomic_ = tiling_info.GetClearAtomic();

tiling_data_ = tiling_info.ByteBufferGet().str(); // todo
tiling_key_ = tiling_info.GetTilingKey();
GELOGD("Successfully getting [tiling_key] : %u", tiling_key_); GELOGD("Successfully getting [tiling_key] : %u", tiling_key_);
if (tiling_data_.empty()) { if (tiling_data_.empty()) {
GELOGD("[%s] Tiling data is empty.", op_desc->GetName().c_str()); GELOGD("[%s] Tiling data is empty.", op_desc->GetName().c_str());
@@ -352,7 +358,7 @@ Status AiCoreOpTask::CalcTilingInfo(const NodePtr &node, OpRunInfo &tiling_info)
"Failed calc tiling data of node %s.", "Failed calc tiling data of node %s.",
node->GetName().c_str()); node->GetName().c_str());
if (is_single_op_) { if (is_single_op_) {
tiling_info.clear_atomic = false;
tiling_info.SetClearAtomic(false);
} }
GELOGD("[%s] Done invoking OpParaCalculate successfully.", node->GetName().c_str()); GELOGD("[%s] Done invoking OpParaCalculate successfully.", node->GetName().c_str());
return SUCCESS; return SUCCESS;


+ 11
- 5
ge/single_op/task/op_task.cc View File

@@ -219,19 +219,25 @@ Status TbeOpTask::UpdateRunInfo(const vector<GeTensorDesc> &input_desc, const ve
// invoke OpParaCalculate // invoke OpParaCalculate
GELOGD("Start to invoke OpParaCalculate."); GELOGD("Start to invoke OpParaCalculate.");
optiling::OpRunInfo run_info; optiling::OpRunInfo run_info;
run_info.block_dim = 0;
run_info.SetBlockDim(0);
auto ret = optiling::OpParaCalculate(*node_, run_info); auto ret = optiling::OpParaCalculate(*node_, run_info);
if (ret != GRAPH_SUCCESS) { if (ret != GRAPH_SUCCESS) {
GELOGE(ACL_ERROR_GE_INTERNAL_ERROR, "Failed to invoke OpParaCalculate. ret = %u", ret); GELOGE(ACL_ERROR_GE_INTERNAL_ERROR, "Failed to invoke OpParaCalculate. ret = %u", ret);
return ACL_ERROR_GE_INTERNAL_ERROR; return ACL_ERROR_GE_INTERNAL_ERROR;
} }
block_dim_ = run_info.block_dim;
tiling_data_ = run_info.tiling_data.str();
tiling_key_ = run_info.tiling_key;
block_dim_ = run_info.GetBlockDim();
tiling_data_ = run_info.ByteBufferGet().str(); // todo
tiling_key_ = run_info.GetTilingKey();
GELOGD("Done invoking OpParaCalculate successfully. block_dim = %u, tiling size = %zu, tiling_key = %u", block_dim_, GELOGD("Done invoking OpParaCalculate successfully. block_dim = %u, tiling size = %zu, tiling_key = %u", block_dim_,
tiling_data_.size(), tiling_key_); tiling_data_.size(), tiling_key_);


GE_CHK_STATUS_RET(AllocateWorkspaces(run_info.workspaces), "Failed to allocate workspaces");
vector<int64_t> workspaces;
for (size_t i = 0; i < run_info.GetWorkSpaceNum(); ++i) {
int64_t workspace = 0;
GE_CHK_STATUS_RET(run_info.GetWorkSpace(i, workspace));
workspaces.emplace_back(workspace);
}
GE_CHK_STATUS_RET(AllocateWorkspaces(workspaces), "Failed to allocate workspaces");
return SUCCESS; return SUCCESS;
} }




Loading…
Cancel
Save