Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
BaiXuePrincess
Paddle
提交
4aba17b5
P
Paddle
项目概览
BaiXuePrincess
/
Paddle
与 Fork 源项目一致
Fork自
PaddlePaddle / Paddle
通知
1
Star
1
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
P
Paddle
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
未验证
提交
4aba17b5
编写于
1月 09, 2021
作者:
J
Jacek Czaja
提交者:
GitHub
1月 09, 2021
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
[oneDNN] Added UT for testing elementwise_mul caching (#30203)
* - Added UT for testing elementwise_mul caching * lint fixes
上级
be5c2e60
变更
3
隐藏空白更改
内联
并排
Showing
3 changed file
with
21 addition
and
5 deletion
+21
-5
paddle/fluid/operators/mkldnn/caching_tests.cmake
paddle/fluid/operators/mkldnn/caching_tests.cmake
+1
-1
paddle/fluid/operators/mkldnn/test_mkldnn_caching.cc
paddle/fluid/operators/mkldnn/test_mkldnn_caching.cc
+18
-2
paddle/fluid/platform/mkldnn_reuse.h
paddle/fluid/platform/mkldnn_reuse.h
+2
-2
未找到文件。
paddle/fluid/operators/mkldnn/caching_tests.cmake
浏览文件 @
4aba17b5
cc_test
(
test_mkldnn_caching SRCS mkldnn/test_mkldnn_caching.cc DEPS op_registry elementwise_add_op activation_op softmax_op softmax scope device_context enforce
)
cc_test
(
test_mkldnn_caching SRCS mkldnn/test_mkldnn_caching.cc DEPS op_registry elementwise_
mul_op elementwise_
add_op activation_op softmax_op softmax scope device_context enforce
)
paddle/fluid/operators/mkldnn/test_mkldnn_caching.cc
浏览文件 @
4aba17b5
...
@@ -27,6 +27,8 @@
...
@@ -27,6 +27,8 @@
USE_OP
(
elementwise_add
);
USE_OP
(
elementwise_add
);
USE_OP_DEVICE_KERNEL
(
elementwise_add
,
MKLDNN
);
USE_OP_DEVICE_KERNEL
(
elementwise_add
,
MKLDNN
);
USE_OP
(
elementwise_mul
);
USE_OP_DEVICE_KERNEL
(
elementwise_mul
,
MKLDNN
);
USE_OP
(
relu
);
USE_OP
(
relu
);
USE_OP_DEVICE_KERNEL
(
relu
,
MKLDNN
);
USE_OP_DEVICE_KERNEL
(
relu
,
MKLDNN
);
USE_OP
(
softmax
);
USE_OP
(
softmax
);
...
@@ -66,8 +68,10 @@ void RunOperator(const platform::Place &place, const std::string &op_type,
...
@@ -66,8 +68,10 @@ void RunOperator(const platform::Place &place, const std::string &op_type,
bool
inplace
=
false
)
{
bool
inplace
=
false
)
{
framework
::
Scope
scope
;
framework
::
Scope
scope
;
std
::
map
<
const
std
::
string
,
int
>
num_inputs
=
{
std
::
map
<
const
std
::
string
,
int
>
num_inputs
=
{{
"softmax"
,
1
},
{
"softmax"
,
1
},
{
"relu"
,
1
},
{
"elementwise_add"
,
2
}};
{
"relu"
,
1
},
{
"elementwise_add"
,
2
},
{
"elementwise_mul"
,
2
}};
std
::
string
first_input
=
inplace
==
true
?
output_name
:
"x"
;
std
::
string
first_input
=
inplace
==
true
?
output_name
:
"x"
;
...
@@ -165,5 +169,17 @@ TEST(test_elementwise_add_reuse_cache, cpu_place) {
...
@@ -165,5 +169,17 @@ TEST(test_elementwise_add_reuse_cache, cpu_place) {
"Wrong number of cached oneDNN objects"
));
"Wrong number of cached oneDNN objects"
));
}
}
TEST
(
test_elementwises_sequence_reuse_cache
,
cpu_place
)
{
framework
::
DDim
dims
({
32
,
64
});
platform
::
CPUPlace
p
;
CacheTester
ct
;
RunOperator
<
float
>
(
p
,
"elementwise_add"
,
dims
,
"elementwise_add_out"
,
true
);
RunOperator
<
float
>
(
p
,
"elementwise_mul"
,
dims
,
"elementwise_add_out"
,
true
);
RunOperator
<
float
>
(
p
,
"relu"
,
dims
,
"elementwise_add_out"
,
true
);
PADDLE_ENFORCE_EQ
(
ct
.
Analyze
(
11
),
true
,
platform
::
errors
::
InvalidArgument
(
"Wrong number of cached oneDNN objects"
));
}
}
// namespace operators
}
// namespace operators
}
// namespace paddle
}
// namespace paddle
paddle/fluid/platform/mkldnn_reuse.h
浏览文件 @
4aba17b5
...
@@ -516,8 +516,8 @@ class BinaryMKLDNNHandler : public platform::MKLDNNHandlerT<T, dnnl::binary> {
...
@@ -516,8 +516,8 @@ class BinaryMKLDNNHandler : public platform::MKLDNNHandlerT<T, dnnl::binary> {
:
platform
::
MKLDNNHandlerT
<
T
,
dnnl
::
binary
>
(
:
platform
::
MKLDNNHandlerT
<
T
,
dnnl
::
binary
>
(
dev_ctx
,
engine
,
cpu_place
,
dev_ctx
,
engine
,
cpu_place
,
platform
::
CreateKey
(
platform
::
CreateKey
(
dev_ctx
,
framework
::
vectorize
(
x
->
dims
()),
dev_ctx
,
framework
::
vectorize
(
x
->
dims
()),
uniq_name
,
uniq_name
+
(
algo
==
dnnl
::
algorithm
::
binary_mul
?
"M"
:
""
)))
{
(
algo
==
dnnl
::
algorithm
::
binary_mul
?
"M"
:
""
)))
{
// bradcasting combined with in-place may require
// bradcasting combined with in-place may require
auto
rankdiff
=
x
->
dims
().
size
()
-
y
->
dims
().
size
();
auto
rankdiff
=
x
->
dims
().
size
()
-
y
->
dims
().
size
();
if
(
rankdiff
>
0
)
{
if
(
rankdiff
>
0
)
{
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录