Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
magicwindyyd
mindspore
提交
7755a544
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看板
提交
7755a544
编写于
8月 24, 2020
作者:
H
huanghui
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
fix ub-fusion
上级
95212b55
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
55 addition
and
0 deletion
+55
-0
mindspore/ccsrc/backend/optimizer/ascend/ascend_backend_optimization.cc
...c/backend/optimizer/ascend/ascend_backend_optimization.cc
+2
-0
tests/st/fusion/test_ub_fusion_matmul_confusion_transpose.py
tests/st/fusion/test_ub_fusion_matmul_confusion_transpose.py
+53
-0
未找到文件。
mindspore/ccsrc/backend/optimizer/ascend/ascend_backend_optimization.cc
浏览文件 @
7755a544
...
...
@@ -81,6 +81,7 @@
#include "backend/optimizer/ascend/buffer_fusion/conv_single_in_fusion_pass.h"
#include "backend/optimizer/ascend/buffer_fusion/conv_double_in_fusion_pass.h"
#include "backend/optimizer/ascend/buffer_fusion/matmul_eltwise_fusion_pass.h"
#include "backend/optimizer/ascend/buffer_fusion/matmul_confusiontranspose_fusion_pass.h"
#include "backend/optimizer/ascend/buffer_fusion/depthwiseconv_eltwise_fusion_pass.h"
#include "backend/optimizer/ascend/buffer_fusion/bnupdate_eltwise_fusion_pass.h"
#include "backend/optimizer/ascend/buffer_fusion/bnupdate_eltwise_eltwise_fusion_pass.h"
...
...
@@ -504,6 +505,7 @@ void AscendBackendUBFusionOptimization(const std::shared_ptr<session::KernelGrap
ub_fusion_pm
->
AddPass
(
std
::
make_shared
<
MultiOutputFusionPass
>
(
fusion_id_allocator
));
ub_fusion_pm
->
AddPass
(
std
::
make_shared
<
EltwiseFusionPass
>
(
fusion_id_allocator
));
ub_fusion_pm
->
AddPass
(
std
::
make_shared
<
DepthwiseConvEltwiseFusionPass
>
(
fusion_id_allocator
));
ub_fusion_pm
->
AddPass
(
std
::
make_shared
<
MatmulConfusionTranposeFusionPass
>
(
fusion_id_allocator
));
ub_fusion_pm
->
AddPass
(
std
::
make_shared
<
UbPatternFusion
>
());
optimizer
->
AddPassManager
(
ub_fusion_pm
);
(
void
)
optimizer
->
Optimize
(
kernel_graph
);
...
...
tests/st/fusion/test_ub_fusion_matmul_confusion_transpose.py
0 → 100644
浏览文件 @
7755a544
# Copyright 2020 Huawei Technologies Co., Ltd
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# ============================================================================
import
numpy
as
np
import
mindspore
import
mindspore.context
as
context
import
mindspore.nn
as
nn
from
mindspore
import
Tensor
from
mindspore.ops
import
operations
as
P
context
.
set_context
(
mode
=
context
.
GRAPH_MODE
,
device_target
=
"Ascend"
)
context
.
set_context
(
save_graphs
=
True
)
class
Net
(
nn
.
Cell
):
def
__init__
(
self
):
super
(
Net
,
self
).
__init__
()
self
.
matmul
=
P
.
MatMul
()
self
.
transpose
=
P
.
Transpose
()
self
.
reshape
=
P
.
Reshape
()
self
.
bias_add
=
P
.
BiasAdd
()
def
construct
(
self
,
x
,
y
,
z
):
res
=
self
.
matmul
(
x
,
y
)
res
=
self
.
bias_add
(
res
,
z
)
res
=
self
.
reshape
(
res
,
(
24
,
512
,
16
,
64
))
res
=
self
.
transpose
(
res
,
(
0
,
2
,
1
,
3
))
return
res
def
test_net
():
x
=
Tensor
(
np
.
ones
(
shape
=
[
12288
,
1024
]),
mindspore
.
float16
)
y
=
Tensor
(
np
.
ones
(
shape
=
[
1024
,
1024
]),
mindspore
.
float16
)
z
=
Tensor
(
np
.
ones
(
shape
=
[
1024
]),
mindspore
.
float16
)
net
=
Net
()
output
=
net
(
x
,
y
,
z
)
print
(
"result"
,
output
.
asnumpy
())
if
__name__
==
"__main__"
:
test_net
()
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录