Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
Oneflow-Inc
oneflow
提交
d165da8a
O
oneflow
项目概览
Oneflow-Inc
/
oneflow
上一次同步 接近 3 年
通知
13
Star
2733
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
O
oneflow
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
d165da8a
编写于
7月 12, 2018
作者:
L
Li Xinqi
提交者:
Jinhui Yuan
7月 12, 2018
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
bugfix: fix node2component_id bug according to new depth definition (#1011)
Former-commit-id:
d11e1a04
上级
07727979
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
14 addition
and
7 deletion
+14
-7
oneflow/core/graph/act_graph.cpp
oneflow/core/graph/act_graph.cpp
+14
-7
未找到文件。
oneflow/core/graph/act_graph.cpp
浏览文件 @
d165da8a
...
...
@@ -151,8 +151,9 @@ class DepthRangeActSubGraph final : public Graph<const ActNode, const ActEdge> {
private:
void
InitNode2ComponentId
();
void
InitComponentId2Sources
();
void
ForEachActNode
(
const
std
::
list
<
const
ActNode
*>&
sources
,
const
std
::
function
<
void
(
const
ActNode
*
)
>&
Handler
)
const
;
void
BfsForEachActNode
(
const
std
::
list
<
const
ActNode
*>&
sources
,
const
std
::
function
<
void
(
const
ActNode
*
)
>&
Handler
)
const
;
void
ForEachActNode
(
const
std
::
function
<
void
(
const
ActNode
*
)
>&
Handler
)
const
;
void
TopoForEachActNode
(
const
std
::
list
<
const
ActNode
*>&
starts
,
const
std
::
function
<
void
(
const
ActNode
*
)
>&
Handler
)
const
;
void
ForEachInNode
(
const
ActNode
*
node
,
const
std
::
function
<
void
(
const
ActNode
*
)
>&
Handler
)
const
;
...
...
@@ -174,7 +175,7 @@ void DepthRangeActSubGraph::ComponentToDotFiles(const std::string& dir,
const
auto
&
sources
=
compo_id2sources_
.
at
(
component_id
);
PersistentOutStream
out_stream
(
LocalFS
(),
filepath
);
out_stream
<<
"digraph {
\n
"
;
ForEachActNode
(
sources
,
[
&
](
const
ActNode
*
node
)
{
Bfs
ForEachActNode
(
sources
,
[
&
](
const
ActNode
*
node
)
{
out_stream
<<
node
->
node_id_str
()
<<
"[label=
\"
"
<<
node
->
VisualStr
()
<<
"
\"
, shape=ellipse, style=
\"
rounded,filled
\"
, "
<<
"colorscheme=set312, color="
<<
task_type2color
.
at
(
node
->
task_type
())
<<
"];
\n
"
;
...
...
@@ -221,7 +222,7 @@ void DepthRangeActSubGraph::ForEachOutNode(
});
}
void
DepthRangeActSubGraph
::
ForEachActNode
(
void
DepthRangeActSubGraph
::
Bfs
ForEachActNode
(
const
std
::
list
<
const
ActNode
*>&
sources
,
const
std
::
function
<
void
(
const
ActNode
*
)
>&
Handler
)
const
{
auto
ForEachConnectedNode
=
[
&
](
const
ActNode
*
node
,
...
...
@@ -232,6 +233,13 @@ void DepthRangeActSubGraph::ForEachActNode(
BfsForEachNode
(
sources
,
ForEachConnectedNode
,
Handler
);
}
void
DepthRangeActSubGraph
::
ForEachActNode
(
const
std
::
function
<
void
(
const
ActNode
*
)
>&
Handler
)
const
{
for
(
int64_t
depth
=
depth_range_
.
begin
();
depth
<=
depth_range_
.
end
();
++
depth
)
{
for
(
const
ActNode
*
node
:
act_graph_
->
Nodes4Depth
(
depth
))
{
Handler
(
node
);
}
}
}
void
DepthRangeActSubGraph
::
InitComponentId2Sources
()
{
for
(
const
auto
&
pair
:
node2component_id_
)
{
int
in_nodes_cnt
=
0
;
...
...
@@ -242,10 +250,9 @@ void DepthRangeActSubGraph::InitComponentId2Sources() {
void
DepthRangeActSubGraph
::
InitNode2ComponentId
()
{
int64_t
component_id
=
0
;
const
auto
&
sources
=
act_graph_
->
Nodes4Depth
(
depth_range_
.
begin
());
ForEachActNode
(
sources
,
[
&
](
const
ActNode
*
node
)
{
ForEachActNode
([
&
](
const
ActNode
*
node
)
{
if
(
node2component_id_
.
find
(
node
)
!=
node2component_id_
.
end
())
{
return
;
}
ForEachActNode
({
node
},
[
&
](
const
ActNode
*
component_node
)
{
Bfs
ForEachActNode
({
node
},
[
&
](
const
ActNode
*
component_node
)
{
node2component_id_
.
insert
({
component_node
,
component_id
});
});
++
component_id
;
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录