Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
Oneflow-Inc
oneflow
提交
d8811520
O
oneflow
项目概览
Oneflow-Inc
/
oneflow
上一次同步 2 年多
通知
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,体验更适合开发者的 AI 搜索 >>
提交
d8811520
编写于
12月 09, 2020
作者:
C
chengtbf
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
log for logical blob with bw op consumers
Former-commit-id: f015a245efa5e0791bb1e5070b217e3fec616fc9
上级
20301e8a
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
25 addition
and
0 deletion
+25
-0
oneflow/core/job_rewriter/checkpointing_pass.cpp
oneflow/core/job_rewriter/checkpointing_pass.cpp
+25
-0
未找到文件。
oneflow/core/job_rewriter/checkpointing_pass.cpp
浏览文件 @
d8811520
...
...
@@ -120,6 +120,31 @@ void GenConnectedCheckpointingSubgraphs(
}
Maybe
<
void
>
CheckpointingPass
::
Apply
(
const
OpGraph
&
op_graph
,
JobBuilder
*
job_builder
)
const
{
op_graph
.
TopoForEachNode
([
&
](
const
OpNode
*
op_node
)
{
HashMap
<
std
::
string
,
HashSet
<
std
::
string
>>
lbn2bw_consumer_op_names
;
for
(
const
OpEdge
*
out_edge
:
op_node
->
out_edges
())
{
bool
is_bw_consumer
=
false
;
const
OpNode
*
out_node
=
out_edge
->
dst_node
();
if
(
!
IsForwardPassScope
(
Scope4OpNode
(
out_node
)))
{
is_bw_consumer
=
true
;
}
for
(
const
auto
&
lbi
:
out_edge
->
lbis
())
{
std
::
string
lbn
=
GenLogicalBlobName
(
lbi
);
auto
&
bw_consumer_op_names
=
lbn2bw_consumer_op_names
[
lbn
];
if
(
is_bw_consumer
)
{
bw_consumer_op_names
.
insert
(
out_node
->
op
().
op_name
());
}
}
}
for
(
const
auto
&
pair
:
lbn2bw_consumer_op_names
)
{
int
op_num
=
pair
.
second
.
size
();
LOG
(
INFO
)
<<
"Checkpointing log: lbn = "
<<
pair
.
first
<<
", bw_consumer_op_num = "
<<
op_num
;
if
(
op_num
>
0
)
{
std
::
string
log_str
=
"They are: {"
;
for
(
const
auto
&
bw_op_name
:
pair
.
second
)
{
log_str
+=
bw_op_name
+
","
;
}
log_str
+=
"}"
;
LOG
(
INFO
)
<<
log_str
;
}
}
});
// step 1. collect all checkpointing ops in forwardpass.
HashMap
<
std
::
string
,
const
OpNode
*>
checkpointing_op_name2op_node
;
CollectAllCheckpointingOpsInForwardPass
(
op_graph
,
&
checkpointing_op_name2op_node
);
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录