Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
magicwindyyd
mindspore
提交
5cba231b
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看板
提交
5cba231b
编写于
6月 02, 2020
作者:
M
mindspore-ci-bot
提交者:
Gitee
6月 02, 2020
浏览文件
操作
浏览文件
下载
差异文件
!1786 match fusion type
Merge pull request !1786 from wangcong/master
上级
71dce2f5
432192b1
变更
5
隐藏空白更改
内联
并排
Showing
5 changed file
with
8 addition
and
13 deletion
+8
-13
mindspore/ccsrc/pre_activate/ascend/buffer_fusion/bnupdate_eltwise_eltwise_fusion_pass.cc
...end/buffer_fusion/bnupdate_eltwise_eltwise_fusion_pass.cc
+2
-4
mindspore/ccsrc/pre_activate/ascend/buffer_fusion/bnupdate_eltwise_fusion_pass.cc
...vate/ascend/buffer_fusion/bnupdate_eltwise_fusion_pass.cc
+2
-4
mindspore/ccsrc/pre_activate/ascend/buffer_fusion/depthwiseconv_eltwise_fusion_pass.cc
...ascend/buffer_fusion/depthwiseconv_eltwise_fusion_pass.cc
+2
-5
mindspore/ccsrc/pre_activate/ascend/buffer_fusion/eltwise_fusion_pass.cc
.../pre_activate/ascend/buffer_fusion/eltwise_fusion_pass.cc
+1
-0
mindspore/ccsrc/pre_activate/ascend/buffer_fusion/segment_eltwise_fusion_pass.cc
...ivate/ascend/buffer_fusion/segment_eltwise_fusion_pass.cc
+1
-0
未找到文件。
mindspore/ccsrc/pre_activate/ascend/buffer_fusion/bnupdate_eltwise_eltwise_fusion_pass.cc
浏览文件 @
5cba231b
...
...
@@ -70,10 +70,8 @@ void BnupdateEltwiseEltwiseFusionPass::MatchSingleFusionPattern(const session::K
if
(
AnfAlgo
::
GetKernelType
(
cnode
)
==
KernelType
::
TBE_KERNEL
&&
AnfAlgo
::
GetFusionType
(
cnode
)
==
kernel
::
FusionType
::
ELEMWISE
)
{
auto
eltwise_input
=
cnode
->
input
(
1
);
if
(
AnfAlgo
::
GetCNodeName
(
cnode
)
==
kReluV2OpName
||
AnfAlgo
::
CheckPrimitiveType
(
cnode
,
prim
::
kPrimRelu
))
{
if
(
eltwise_input
->
isa
<
CNode
>
()
&&
AnfAlgo
::
CheckPrimitiveType
(
eltwise_input
,
prim
::
kPrimTensorAdd
))
{
MatchBnupdateAddRelu
(
cnode
,
eltwise_input
,
kernel_graph
,
candidate_fusion
);
}
if
(
eltwise_input
->
isa
<
CNode
>
()
&&
AnfAlgo
::
CheckPrimitiveType
(
eltwise_input
,
prim
::
kPrimTensorAdd
))
{
MatchBnupdateAddRelu
(
cnode
,
eltwise_input
,
kernel_graph
,
candidate_fusion
);
}
}
}
...
...
mindspore/ccsrc/pre_activate/ascend/buffer_fusion/bnupdate_eltwise_fusion_pass.cc
浏览文件 @
5cba231b
...
...
@@ -65,10 +65,8 @@ void BnupdateEltwiseFusionPass::MatchSingleFusionPattern(const session::KernelGr
if
(
AnfAlgo
::
GetKernelType
(
cnode
)
==
KernelType
::
TBE_KERNEL
&&
AnfAlgo
::
GetFusionType
(
cnode
)
==
kernel
::
FusionType
::
ELEMWISE
)
{
auto
eltwise_input
=
cnode
->
input
(
1
);
if
(
AnfAlgo
::
GetCNodeName
(
cnode
)
==
kReluV2OpName
||
AnfAlgo
::
CheckPrimitiveType
(
cnode
,
prim
::
kPrimRelu
))
{
if
(
eltwise_input
->
isa
<
CNode
>
()
&&
AnfAlgo
::
CheckPrimitiveType
(
eltwise_input
,
prim
::
kPrimTupleGetItem
))
{
MatchBnupdateRelu
(
cnode
,
eltwise_input
,
kernel_graph
,
candidate_fusion
);
}
if
(
eltwise_input
->
isa
<
CNode
>
()
&&
AnfAlgo
::
CheckPrimitiveType
(
eltwise_input
,
prim
::
kPrimTupleGetItem
))
{
MatchBnupdateRelu
(
cnode
,
eltwise_input
,
kernel_graph
,
candidate_fusion
);
}
}
}
...
...
mindspore/ccsrc/pre_activate/ascend/buffer_fusion/depthwiseconv_eltwise_fusion_pass.cc
浏览文件 @
5cba231b
...
...
@@ -74,11 +74,8 @@ void DepthwiseConvEltwiseFusionPass::MatchSingleFusionPattern(const session::Ker
if
(
AnfAlgo
::
GetKernelType
(
cnode
)
==
KernelType
::
TBE_KERNEL
&&
AnfAlgo
::
GetFusionType
(
cnode
)
==
kernel
::
FusionType
::
ELEMWISE
)
{
auto
eltwise_input
=
cnode
->
input
(
1
);
if
(
AnfAlgo
::
GetCNodeName
(
cnode
)
==
kReluV2OpName
||
AnfAlgo
::
CheckPrimitiveType
(
cnode
,
prim
::
kPrimRelu
))
{
if
(
eltwise_input
->
isa
<
CNode
>
()
&&
AnfAlgo
::
CheckPrimitiveType
(
eltwise_input
,
prim
::
kPrimDepthwiseConv2dNative
))
{
MatchDepthwiseConvRelu
(
cnode
,
kernel_graph
,
candidate_fusion
,
true
);
}
if
(
eltwise_input
->
isa
<
CNode
>
()
&&
AnfAlgo
::
CheckPrimitiveType
(
eltwise_input
,
prim
::
kPrimDepthwiseConv2dNative
))
{
MatchDepthwiseConvRelu
(
cnode
,
kernel_graph
,
candidate_fusion
,
true
);
}
}
else
if
(
AnfAlgo
::
GetCNodeName
(
cnode
)
==
prim
::
kPrimDepthwiseConv2dNative
->
name
())
{
MatchDepthwiseConvRelu
(
cnode
,
kernel_graph
,
candidate_fusion
,
false
);
...
...
mindspore/ccsrc/pre_activate/ascend/buffer_fusion/eltwise_fusion_pass.cc
浏览文件 @
5cba231b
...
...
@@ -55,6 +55,7 @@ void EltwiseFusionPass::MatchSingleFusionPattern(const session::KernelGraph &ker
FusedNodeRecord
*
candidate_fusion
)
{
MS_EXCEPTION_IF_NULL
(
candidate_fusion
);
std
::
vector
<
AnfNodePtr
>
node_list
=
TopoSort
(
kernel_graph
.
get_return
());
std
::
reverse
(
node_list
.
begin
(),
node_list
.
end
());
for
(
auto
&
node
:
node_list
)
{
if
(
!
AnfAlgo
::
IsRealCNodeKernel
(
node
)
||
fusion_id_allocator
->
HasFusionIdAttr
(
node
)
||
AnfAlgo
::
CheckPrimitiveType
(
node
,
prim
::
kPrimReturn
))
{
...
...
mindspore/ccsrc/pre_activate/ascend/buffer_fusion/segment_eltwise_fusion_pass.cc
浏览文件 @
5cba231b
...
...
@@ -73,6 +73,7 @@ void SegmentEltwiseFusionPass::MatchSingleFusionPattern(const session::KernelGra
FusedNodeRecord
*
candidate_fusion
)
{
MS_EXCEPTION_IF_NULL
(
candidate_fusion
);
std
::
vector
<
AnfNodePtr
>
node_list
=
TopoSort
(
kernel_graph
.
get_return
());
std
::
reverse
(
node_list
.
begin
(),
node_list
.
end
());
for
(
auto
&
node
:
node_list
)
{
if
(
!
AnfAlgo
::
IsRealCNodeKernel
(
node
)
||
fusion_id_allocator
->
HasFusionIdAttr
(
node
)
||
AnfAlgo
::
CheckPrimitiveType
(
node
,
prim
::
kPrimReturn
))
{
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录