Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
MegEngine 天元
MegEngine
提交
951ed476
MegEngine
项目概览
MegEngine 天元
/
MegEngine
大约 1 年 前同步成功
通知
399
Star
4705
Fork
582
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
MegEngine
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
提交
951ed476
编写于
4月 12, 2022
作者:
M
Megvii Engine Team
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
fix(minigraph): supports varnode forwarding
GitOrigin-RevId: 4494106f0a34d05c039211969444946cc6197bae
上级
27d4c4b3
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
10 addition
and
2 deletion
+10
-2
imperative/src/impl/proxy_graph/mini_graph.h
imperative/src/impl/proxy_graph/mini_graph.h
+10
-2
未找到文件。
imperative/src/impl/proxy_graph/mini_graph.h
浏览文件 @
951ed476
...
...
@@ -20,6 +20,7 @@
#include "./proxy_graph_base.h"
#include <optional>
#include "megbrain/opr/utility.h"
#include "range/v3/all.hpp"
namespace
mgb
::
imperative
::
proxy_graph
{
...
...
@@ -83,7 +84,7 @@ TensorAdaptor(T&) -> TensorAdaptor<T, void>;
template
<
typename
T
>
TensorAdaptor
(
T
*
)
->
TensorAdaptor
<
T
,
void
>
;
SmallVector
<
Tensor
*>
to_raw_ptr_array
(
inline
SmallVector
<
Tensor
*>
to_raw_ptr_array
(
const
SmallVector
<
TensorPtr
>&
inputs
,
bool
ensure_storage
=
true
)
{
SmallVector
<
Tensor
*>
ret
;
for
(
auto
&&
i
:
inputs
)
{
...
...
@@ -243,6 +244,13 @@ public:
vinputs
[
i
]
=
opr_ref_keeper
.
back
()
->
output
(
0
);
}
auto
ovars
=
OpDef
::
apply_on_var_node
(
opdef
,
vinputs
);
if
(
!
m_opr
)
{
// identity
mgb_assert
(
vinputs
.
size
()
==
1
&&
ovars
.
size
()
==
1
);
mgb_assert
(
ovars
[
0
]
==
vinputs
[
0
]);
auto
&&
input
=
vinputs
[
0
];
ovars
[
0
]
=
opr
::
Identity
::
make
(
input
).
node
();
}
mgb_assert
(
m_opr
);
output_data
.
resize
(
m_opr
->
output
().
size
());
for
(
auto
*
v
:
ovars
)
{
...
...
@@ -343,7 +351,6 @@ public:
}
else
{
mgb_assert
(
j
<
outputs
.
size
());
auto
&&
tensor
=
outputs
[
j
];
auto
&&
layout
=
tensor
->
layout
();
if
(
var
->
m_mem_plan
.
chunk
().
owner_var
!=
var
)
{
tensor
->
assign_from_dev_tensor
(
var
->
m_dev_tensor
);
// memory forwarding
...
...
@@ -613,6 +620,7 @@ class ExecMiniGraph : public ProxyGraph::MiniGraph {
busy_oprs
.
pop_front
();
return
m_opr
;
}
mgb_assert
(
false
);
}
template
<
bool
in_use
>
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录