Browse Source

!12814 Fix ub fusion core dump

From: @irmo
Reviewed-by: 
Signed-off-by:
tags/v1.2.0-rc1
mindspore-ci-bot Gitee 5 years ago
parent
commit
ce0559249f
1 changed files with 8 additions and 2 deletions
  1. +8
    -2
      mindspore/ccsrc/backend/optimizer/ascend/buffer_fusion/ub_pattern_fusion.cc

+ 8
- 2
mindspore/ccsrc/backend/optimizer/ascend/buffer_fusion/ub_pattern_fusion.cc View File

@@ -358,9 +358,11 @@ void SetFusionOpRefInfos(session::KernelGraph *kernel_graph, const std::vector<A
void RemoveCircle(const session::KernelGraph &kernel_graph,
std::unordered_map<int64_t, BufferFusionInfo_t> *buffer_fusion_infos) {
MS_EXCEPTION_IF_NULL(buffer_fusion_infos);
std::vector<int64_t> fusion_ids;
for (auto &[fusion_id, fusion_info] : *buffer_fusion_infos) {
bool has_circle = false;
for (const auto &inp : fusion_info.inputs_list) {
for (auto &inp : fusion_info.inputs_list) {
MS_EXCEPTION_IF_NULL(inp);
if (!inp->isa<CNode>() || AnfAlgo::CheckPrimitiveType(inp, prim::kPrimLoad)) {
continue;
}
@@ -372,9 +374,13 @@ void RemoveCircle(const session::KernelGraph &kernel_graph,
}

if (has_circle) {
buffer_fusion_infos->erase(fusion_id);
fusion_ids.emplace_back(fusion_id);
}
}

for (auto &fusion_id : fusion_ids) {
buffer_fusion_infos->erase(fusion_id);
}
}
} // namespace



Loading…
Cancel
Save