Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
magicwindyyd
mindspore
提交
352d2462
M
mindspore
项目概览
magicwindyyd
/
mindspore
与 Fork 源项目一致
Fork自
MindSpore / mindspore
通知
1
Star
1
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
M
mindspore
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
提交
352d2462
编写于
8月 06, 2020
作者:
M
mindspore-ci-bot
提交者:
Gitee
8月 06, 2020
浏览文件
操作
浏览文件
下载
差异文件
!3995 handle the bug which can't print in control flow
Merge pull request !3995 from Margaret_wangrui/handle_exec_order
上级
1c6ddf70
433c5db7
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
7 addition
and
6 deletion
+7
-6
mindspore/ccsrc/backend/session/kernel_graph.cc
mindspore/ccsrc/backend/session/kernel_graph.cc
+5
-5
mindspore/ccsrc/backend/session/kernel_graph.h
mindspore/ccsrc/backend/session/kernel_graph.h
+2
-1
未找到文件。
mindspore/ccsrc/backend/session/kernel_graph.cc
浏览文件 @
352d2462
...
...
@@ -198,7 +198,7 @@ void KernelGraph::VisitNodeDescendants(const AnfNodePtr &node, std::queue<AnfNod
}
void
KernelGraph
::
SetExecOrderByDefault
()
{
std
::
queue
<
AnfNodePtr
>
seed_nodes
;
std
::
stack
<
AnfNodePtr
>
seed_nodes
;
UpdateNodeEdgeList
(
&
seed_nodes
);
execution_order_
.
clear
();
std
::
unordered_set
<
AnfNodePtr
>
visited_nodes
;
...
...
@@ -211,7 +211,7 @@ void KernelGraph::SetExecOrderByDefault() {
VisitNodeDescendants
(
last_communication_node
,
&
communication_descendants
,
&
visited_nodes
);
last_communication_node
=
nullptr
;
}
else
{
zero_input_nodes
.
push
(
seed_nodes
.
front
());
zero_input_nodes
.
push
(
seed_nodes
.
top
());
seed_nodes
.
pop
();
}
// all reduce node descendant first, then common queue
...
...
@@ -785,7 +785,7 @@ bool KernelGraph::HandleControlDependNode(const AnfNodePtr &node, std::queue<Anf
return
true
;
}
void
KernelGraph
::
UpdateNodeEdgeList
(
std
::
queue
<
AnfNodePtr
>
*
seed_nodes
)
{
void
KernelGraph
::
UpdateNodeEdgeList
(
std
::
stack
<
AnfNodePtr
>
*
seed_nodes
)
{
MS_EXCEPTION_IF_NULL
(
seed_nodes
);
node_output_edges_
.
clear
();
node_input_num_
.
clear
();
...
...
@@ -868,7 +868,7 @@ void KernelGraph::ReplaceGraphInput(const AnfNodePtr &old_parameter, const AnfNo
void
KernelGraph
::
ReplaceNode
(
NotNull
<
AnfNodePtr
>
old_anf_node
,
NotNull
<
AnfNodePtr
>
new_anf_node
)
{
MS_EXCEPTION_IF_NULL
(
inputs_
);
{
std
::
queue
<
AnfNodePtr
>
seed_nodes
;
std
::
stack
<
AnfNodePtr
>
seed_nodes
;
UpdateNodeEdgeList
(
&
seed_nodes
);
}
auto
it
=
node_output_edges_
.
find
(
old_anf_node
);
...
...
@@ -894,7 +894,7 @@ void KernelGraph::ReplaceNode(NotNull<AnfNodePtr> old_anf_node, NotNull<AnfNodeP
FrontBackendlMapUpdate
(
old_anf_node
,
new_anf_node
);
}
{
std
::
queue
<
AnfNodePtr
>
seed_nodes
;
std
::
stack
<
AnfNodePtr
>
seed_nodes
;
UpdateNodeEdgeList
(
&
seed_nodes
);
}
}
...
...
mindspore/ccsrc/backend/session/kernel_graph.h
浏览文件 @
352d2462
...
...
@@ -17,6 +17,7 @@
#define MINDSPORE_CCSRC_BACKEND_SESSION_KERNEL_GRAPH_H
#include <vector>
#include <stack>
#include <unordered_map>
#include <memory>
#include <utility>
...
...
@@ -170,7 +171,7 @@ class KernelGraph : public FuncGraph {
void
VisitNodeDescendants
(
const
AnfNodePtr
&
node
,
std
::
queue
<
AnfNodePtr
>
*
visit_queue
,
std
::
unordered_set
<
AnfNodePtr
>
*
visited_nodes
);
// update node edge list
void
UpdateNodeEdgeList
(
std
::
queue
<
AnfNodePtr
>
*
seed_nodes
);
void
UpdateNodeEdgeList
(
std
::
stack
<
AnfNodePtr
>
*
seed_nodes
);
// add node depend edge by data edge or control depend
void
AddDependEdge
(
const
AnfNodePtr
&
node
,
const
AnfNodePtr
&
input
,
size_t
depend_edge_num
);
// handle control depend
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录