Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
MegEngine 天元
MegEngine
提交
aea829c9
MegEngine
项目概览
MegEngine 天元
/
MegEngine
接近 2 年 前同步成功
通知
414
Star
4708
Fork
583
代码
文件
提交
分支
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看板
提交
aea829c9
编写于
11月 05, 2020
作者:
M
Megvii Engine Team
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
feat(megdnn/rocm): add average inclusive mode for pooling
GitOrigin-RevId: 08162bd1fb42d5dae04c0733d843a9f3595ef7f2
上级
a3550f91
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
5 addition
and
10 deletion
+5
-10
dnn/src/rocm/miopen_wrapper.cpp
dnn/src/rocm/miopen_wrapper.cpp
+4
-0
dnn/test/rocm/pooling.cpp
dnn/test/rocm/pooling.cpp
+1
-10
未找到文件。
dnn/src/rocm/miopen_wrapper.cpp
浏览文件 @
aea829c9
...
@@ -9,6 +9,7 @@
...
@@ -9,6 +9,7 @@
* "AS IS" BASIS, WITHOUT ARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* "AS IS" BASIS, WITHOUT ARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
*/
*/
#include "hcc_detail/hcc_defs_prologue.h"
#include "hcc_detail/hcc_defs_prologue.h"
#include "megdnn/opr_param_defs.h"
#include "src/rocm/miopen_wrapper.h"
#include "src/rocm/miopen_wrapper.h"
#include "src/common/utils.h"
#include "src/common/utils.h"
...
@@ -114,6 +115,9 @@ void PoolingDesc::set(const param::Pooling& param) {
...
@@ -114,6 +115,9 @@ void PoolingDesc::set(const param::Pooling& param) {
case
param
::
Pooling
::
Mode
::
AVERAGE_COUNT_EXCLUDE_PADDING
:
case
param
::
Pooling
::
Mode
::
AVERAGE_COUNT_EXCLUDE_PADDING
:
mode
=
miopenPoolingAverage
;
mode
=
miopenPoolingAverage
;
break
;
break
;
case
param
::
Pooling
::
Mode
::
AVERAGE
:
mode
=
miopenPoolingAverageInclusive
;
break
;
default:
default:
megdnn_throw
(
megdnn_mangle
(
"Unsupported pooling mode for miopen"
));
megdnn_throw
(
megdnn_mangle
(
"Unsupported pooling mode for miopen"
));
}
}
...
...
dnn/test/rocm/pooling.cpp
浏览文件 @
aea829c9
...
@@ -31,10 +31,6 @@ TEST_F(ROCM, POOLING_FORWARD) {
...
@@ -31,10 +31,6 @@ TEST_F(ROCM, POOLING_FORWARD) {
for
(
auto
format
:
{
Format
::
NCHW
})
for
(
auto
format
:
{
Format
::
NCHW
})
for
(
auto
&&
arg
:
args
)
{
for
(
auto
&&
arg
:
args
)
{
auto
param
=
arg
.
param
;
auto
param
=
arg
.
param
;
if
(
param
.
mode
==
param
::
Pooling
::
Mode
::
AVERAGE
)
{
param
.
mode
=
param
::
Pooling
::
Mode
::
AVERAGE_COUNT_EXCLUDE_PADDING
;
}
auto
src
=
arg
.
ishape
;
auto
src
=
arg
.
ishape
;
param
.
format
=
format
;
param
.
format
=
format
;
Checker
<
Pooling
>
checker
(
handle_rocm
());
Checker
<
Pooling
>
checker
(
handle_rocm
());
...
@@ -53,11 +49,6 @@ TEST_F(ROCM, POOLING_BACKWARD) {
...
@@ -53,11 +49,6 @@ TEST_F(ROCM, POOLING_BACKWARD) {
TensorLayout
ilayout
=
TensorLayout
(
arg
.
ishape
,
dtype
::
Float32
());
TensorLayout
ilayout
=
TensorLayout
(
arg
.
ishape
,
dtype
::
Float32
());
TensorLayout
olayout
;
TensorLayout
olayout
;
auto
&
param
=
arg
.
param
;
if
(
param
.
mode
==
param
::
Pooling
::
Mode
::
AVERAGE
)
{
param
.
mode
=
param
::
Pooling
::
Mode
::
AVERAGE_COUNT_EXCLUDE_PADDING
;
}
auto
constraint
=
[
this
,
auto
constraint
=
[
this
,
arg
](
CheckerHelper
::
TensorValueArray
&
tensors_orig
)
{
arg
](
CheckerHelper
::
TensorValueArray
&
tensors_orig
)
{
megdnn_assert
(
tensors_orig
.
size
()
==
4
);
megdnn_assert
(
tensors_orig
.
size
()
==
4
);
...
@@ -141,7 +132,7 @@ TEST_F(ROCM, POOLING_FWD_BENCHMARK) {
...
@@ -141,7 +132,7 @@ TEST_F(ROCM, POOLING_FWD_BENCHMARK) {
benchmarker
.
set_param
(
param
);
benchmarker
.
set_param
(
param
);
size_t
OH
=
infer_conv_shape
(
IH
,
FH
,
SH
,
PH
);
size_t
OH
=
infer_conv_shape
(
IH
,
FH
,
SH
,
PH
);
size_t
OW
=
infer_conv_shape
(
IW
,
FW
,
SW
,
PW
);
size_t
OW
=
infer_conv_shape
(
IW
,
FW
,
SW
,
PW
);
// warm up
// warm up
benchmarker
.
execs
({{
N
,
IC
,
IH
,
IW
},
{
N
,
IC
,
OH
,
OW
}});
benchmarker
.
execs
({{
N
,
IC
,
IH
,
IW
},
{
N
,
IC
,
OH
,
OW
}});
// do actual benchmark
// do actual benchmark
auto
time_ms
=
benchmarker
.
execs
({{
N
,
IC
,
IH
,
IW
},
{
N
,
IC
,
OH
,
OW
}});
auto
time_ms
=
benchmarker
.
execs
({{
N
,
IC
,
IH
,
IW
},
{
N
,
IC
,
OH
,
OW
}});
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录