Browse Source

!2508 Graph kernel use control sink

Merge pull request !2508 from zhoufeng/graph-kernel-use-control-sink
tags/v0.6.0-beta
mindspore-ci-bot Gitee 5 years ago
parent
commit
cdaaf38206
1 changed files with 6 additions and 1 deletions
  1. +6
    -1
      mindspore/ccsrc/session/session_basic.cc

+ 6
- 1
mindspore/ccsrc/session/session_basic.cc View File

@@ -436,7 +436,12 @@ CNodePtr SessionBasic::CreateNewCNode(const CNodePtr &cnode, KernelGraph *graph)
std::vector<AnfNodePtr> cnode_inputs; std::vector<AnfNodePtr> cnode_inputs;
auto attr_input = cnode->input(kAnfPrimitiveIndex); auto attr_input = cnode->input(kAnfPrimitiveIndex);
MS_EXCEPTION_IF_NULL(attr_input); MS_EXCEPTION_IF_NULL(attr_input);
if (IsValueNode<FuncGraph>(attr_input)) {
if (AnfAlgo::IsGraphKernel(cnode)) {
auto fg = AnfAlgo::GetCNodeFuncGraphPtr(cnode);
MS_EXCEPTION_IF_NULL(fg);
auto new_fg = BasicClone(fg);
cnode_inputs.push_back(std::make_shared<ValueNode>(new_fg));
} else if (IsValueNode<FuncGraph>(attr_input)) {
// create primitive of cnode:call // create primitive of cnode:call
cnode_inputs = {graph->NewValueNode(NewValueNode(std::make_shared<Primitive>(prim::kPrimCall->name())))}; cnode_inputs = {graph->NewValueNode(NewValueNode(std::make_shared<Primitive>(prim::kPrimCall->name())))};
// create a ValueNode<KernelGraph> as input of cnode:call // create a ValueNode<KernelGraph> as input of cnode:call


Loading…
Cancel
Save