diff --git a/ge/hybrid/node_executor/aicore/aicore_op_task.cc b/ge/hybrid/node_executor/aicore/aicore_op_task.cc index f3699b6c..07c2ddb5 100644 --- a/ge/hybrid/node_executor/aicore/aicore_op_task.cc +++ b/ge/hybrid/node_executor/aicore/aicore_op_task.cc @@ -351,6 +351,9 @@ Status AiCoreOpTask::CalcTilingInfo(const NodePtr &node, OpRunInfo &tiling_info) GE_CHK_STATUS_RET(OpParaCalculate(*node, tiling_info), "Failed calc tiling data of node %s.", node->GetName().c_str()); + if (is_single_op_) { + tiling_info.clear_atomic = false; + } GELOGD("[%s] Done invoking OpParaCalculate successfully.", node->GetName().c_str()); return SUCCESS; } diff --git a/tests/ut/ge/hybrid/ge_hybrid_unittest.cc b/tests/ut/ge/hybrid/ge_hybrid_unittest.cc index 61f99950..97a36894 100644 --- a/tests/ut/ge/hybrid/ge_hybrid_unittest.cc +++ b/tests/ut/ge/hybrid/ge_hybrid_unittest.cc @@ -98,4 +98,16 @@ TEST_F(UtestGeHybrid, aicore_op_task_init_success) { aicore_task->handle_ = handle; aicore_task->tiling_key_ = 1; ASSERT_EQ(aicore_task->LaunchKernel(stream), SUCCESS); +} + +TEST_F(UtestGeHybrid, task_update_tiling_info) { + auto aicore_task = std::unique_ptr(new(std::nothrow)hybrid::AiCoreOpTask()); + aicore_task->is_single_op_ = true; + auto graph = make_shared("graph"); + OpDescPtr op_desc = CreateOpDesc("Add", "Add"); + ge::AttrUtils::SetStr(op_desc, "compile_info_key", "key"); + ge::AttrUtils::SetStr(op_desc, "compile_info_json", "json"); + auto node = graph->AddNode(op_desc); + optiling::OpRunInfo tiling_info; + ASSERT_EQ(aicore_task->CalcTilingInfo(node, tiling_info), SUCCESS); } \ No newline at end of file