diff --git a/tf_adapter/kernels/geop_npu.cc b/tf_adapter/kernels/geop_npu.cc index 904dfc396654760a7f37ab81d731b6b265b1b49a..3b3c5c2af4288122ccd915dc9b570b2090c98f4a 100644 --- a/tf_adapter/kernels/geop_npu.cc +++ b/tf_adapter/kernels/geop_npu.cc @@ -1257,6 +1257,13 @@ void GeOp::HandleDpOpAndGetNextNodes(Graph &graph) { CHECK_NOT_NULL(out_edge); graph.AddEdge(aicpu_getnext, out_edge->src_output(), out_edge->dst(), out_edge->dst_input()); } + for (auto in_edge : node->in_edges()) { + CHECK_NOT_NULL(in_edge); + CHECK_NOT_NULL(in_edge->src()); + if (in_edge->IsControlEdge()) { + graph.AddControlEdge(in_edge->src(), aicpu_getnext); + } + } const OpDef &getnext_op_def = aicpu_getnext->op_def(); NodeDef &getnext_node_def = const_cast(aicpu_getnext->def()); std::string op_def_s;