Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
Oneflow-Inc
oneflow
提交
9f8a4986
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 搜索 >>
提交
9f8a4986
编写于
3月 31, 2017
作者:
W
willzhang4a58
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
template pattern for boxing build exec
上级
b1a23d70
变更
6
隐藏空白更改
内联
并排
Showing
6 changed file
with
17 addition
and
14 deletion
+17
-14
oneflow/graph/boxing_task_node.cpp
oneflow/graph/boxing_task_node.cpp
+6
-0
oneflow/graph/boxing_task_node.h
oneflow/graph/boxing_task_node.h
+6
-3
oneflow/graph/in_boxing_task_node.cpp
oneflow/graph/in_boxing_task_node.cpp
+1
-3
oneflow/graph/in_boxing_task_node.h
oneflow/graph/in_boxing_task_node.h
+1
-2
oneflow/graph/out_boxing_task_node.cpp
oneflow/graph/out_boxing_task_node.cpp
+2
-5
oneflow/graph/out_boxing_task_node.h
oneflow/graph/out_boxing_task_node.h
+1
-1
未找到文件。
oneflow/graph/boxing_task_node.cpp
浏览文件 @
9f8a4986
...
...
@@ -55,6 +55,12 @@ OpPair FwBuildBoxingOpModelModel() {
}
void
BoxingTaskNode
::
FwBuildExecGraphAndSetProducedRegisterDescs
()
{
SetOutEdgeRegisterPtr
();
FwBuildExecGraph
();
SetProducedRegister
();
}
void
BoxingTaskNode
::
SetOutEdgeRegisterPtr
()
{
for
(
TaskEdge
*
edge
:
out_edges
())
{
std
::
string
name
=
"boxing_out_"
+
std
::
to_string
(
edge
->
edge_id
());
...
...
oneflow/graph/boxing_task_node.h
浏览文件 @
9f8a4986
...
...
@@ -20,7 +20,6 @@ class BoxingTaskNode : public TaskNode {
std
::
pair
<
const
ChainNode
*
,
std
::
vector
<
const
TaskEdge
*>>
;
using
Chain2EdgesMap
=
std
::
unordered_map
<
const
ChainNode
*
,
std
::
vector
<
const
TaskEdge
*>>
;
void
SetOutEdgeRegisterPtr
();
void
FwInitChain2SortedEdgesMaps
(
Chain2EdgesMap
*
chain2sorted_edges
,
const
std
::
unordered_set
<
TaskEdge
*>&
(
TaskNode
::*
in_out_edges
)()
const
,
...
...
@@ -33,10 +32,14 @@ class BoxingTaskNode : public TaskNode {
void
FwBuildChainSortedEdgesPair
(
const
ChainEdgesPair
&
chain_sorted_in_edges
,
const
ChainEdgesPair
&
chain_sorted_out_edges
);
void
SetProducedRegister
();
void
BpBuildExecGraphAndSetProducedRegisterDescs
()
override
;
virtual
void
FwBuildExecGraph
()
=
0
;
private:
void
FwBuildExecGraphAndSetProducedRegisterDescs
()
override
;
void
BpBuildExecGraphAndSetProducedRegisterDescs
()
override
;
void
SetOutEdgeRegisterPtr
();
void
SetProducedRegister
();
};
...
...
oneflow/graph/in_boxing_task_node.cpp
浏览文件 @
9f8a4986
...
...
@@ -5,8 +5,7 @@
namespace
oneflow
{
void
InBoxingTaskNode
::
FwBuildExecGraphAndSetProducedRegisterDescs
()
{
SetOutEdgeRegisterPtr
();
void
InBoxingTaskNode
::
FwBuildExecGraph
()
{
Chain2EdgesMap
chain2sorted_in_edges
;
FwInitChain2SortedEdgesMaps
(
&
chain2sorted_in_edges
,
&
TaskNode
::
in_edges
,
...
...
@@ -21,7 +20,6 @@ void InBoxingTaskNode::FwBuildExecGraphAndSetProducedRegisterDescs() {
for
(
const
ChainEdgesPair
&
chain_sorted_in_edges
:
chain2sorted_in_edges
)
{
FwBuildChainSortedEdgesPair
(
chain_sorted_in_edges
,
chain_sorted_out_edges
);
}
SetProducedRegister
();
mut_exec_graph
().
UpdateSourceAndSink
();
}
...
...
oneflow/graph/in_boxing_task_node.h
浏览文件 @
9f8a4986
...
...
@@ -18,8 +18,7 @@ class InBoxingTaskNode final : public BoxingTaskNode {
void
InitWithFwNode
(
TaskNode
*
fw_node
)
override
{
BoxingTaskNode
::
InitWithFwNode
(
fw_node
);
}
void
FwBuildExecGraphAndSetProducedRegisterDescs
()
override
;
void
FwBuildExecGraph
()
override
;
};
...
...
oneflow/graph/out_boxing_task_node.cpp
浏览文件 @
9f8a4986
...
...
@@ -2,9 +2,7 @@
namespace
oneflow
{
// In future, we can use template-pattern
void
OutBoxingTaskNode
::
FwBuildExecGraphAndSetProducedRegisterDescs
()
{
SetOutEdgeRegisterPtr
();
void
OutBoxingTaskNode
::
FwBuildExecGraph
()
{
Chain2EdgesMap
chain2sorted_out_edges
;
FwInitChain2SortedEdgesMaps
(
&
chain2sorted_out_edges
,
&
TaskNode
::
out_edges
,
...
...
@@ -13,13 +11,12 @@ void OutBoxingTaskNode::FwBuildExecGraphAndSetProducedRegisterDescs() {
ChainEdgesPair
chain_sorted_in_edges
;
chain_sorted_in_edges
.
first
=
chain_node
();
chain_sorted_in_edges
.
second
.
assign
(
in_edges
().
begin
(),
in_edges
().
end
());
FwSortEdgesInnerStage
(
&
chain_sorted_in_edges
,
FwSortEdgesInnerStage
(
&
chain_sorted_in_edges
.
second
,
&
TaskEdge
::
src_node
,
&
TaskNode
::
SoleInEdge
);
for
(
const
ChainEdgesPair
&
chain_sorted_out_edges
:
chain2sorted_out_edges
)
{
FwBuildChainSortedEdgesPair
(
chain_sorted_in_edges
,
chain_sorted_out_edges
);
}
SetProducedRegister
();
mut_exec_graph
().
UpdateSourceAndSink
();
}
...
...
oneflow/graph/out_boxing_task_node.h
浏览文件 @
9f8a4986
...
...
@@ -18,7 +18,7 @@ class OutBoxingTaskNode final : public BoxingTaskNode {
void
InitWithFwNode
(
TaskNode
*
fw_node
)
override
{
BoxingTaskNode
::
InitWithFwNode
(
fw_node
);
}
void
FwBuildExecGraph
AndSetProducedRegisterDescs
()
override
;
void
FwBuildExecGraph
()
override
;
};
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录