Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
MegEngine 天元
MegEngine
提交
9320bf92
MegEngine
项目概览
MegEngine 天元
/
MegEngine
1 年多 前同步成功
通知
404
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看板
提交
9320bf92
编写于
5月 22, 2020
作者:
M
Megvii Engine Team
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
feat(mgb/dnn): add matmul mk4 dot naive test
GitOrigin-RevId: 2f16d4f89b900101977270eb6446541e5d558a32
上级
a6bc250d
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
32 addition
and
10 deletion
+32
-10
dnn/test/naive/matrix_mul.cpp
dnn/test/naive/matrix_mul.cpp
+32
-10
未找到文件。
dnn/test/naive/matrix_mul.cpp
浏览文件 @
9320bf92
...
...
@@ -30,6 +30,7 @@ void run_matmul_mk_format(Handle* handle, param::MatrixMul::Format format,
auto
extra_impl
=
[](
const
TensorNDArray
&
tensors
,
param
::
MatrixMul
param
,
Handle
*
handle
,
size_t
pack_size
)
{
megdnn_assert
((
param
.
format
==
param
::
MatrixMul
::
Format
::
MK4
||
param
.
format
==
param
::
MatrixMul
::
Format
::
MK4_DOT
||
param
.
format
==
param
::
MatrixMul
::
Format
::
MK8
)
&&
tensors
.
size
()
==
3
);
param
::
MatrixMul
new_param
=
param
;
...
...
@@ -41,18 +42,34 @@ void run_matmul_mk_format(Handle* handle, param::MatrixMul::Format format,
TensorLayoutArray
default_layouts
,
mk4_layouts
;
if
(
param
.
transposeA
)
{
default_layouts
.
emplace_back
(
tensors
[
0
].
layout
.
reshape
({
K
,
M
}));
mk4_layouts
.
emplace_back
(
default_layouts
.
back
()
.
reshape
({
K
/
pack_size
,
M
/
pack_size
,
pack_size
,
pack_size
})
.
dimshuffle
({
0
,
2
,
1
,
3
}));
if
(
param
.
format
==
param
::
MatrixMul
::
Format
::
MK4_DOT
)
{
mk4_layouts
.
emplace_back
(
default_layouts
.
back
()
.
reshape
({
K
/
pack_size
,
M
/
pack_size
,
pack_size
,
pack_size
})
.
dimshuffle
({
0
,
3
,
1
,
2
}));
}
else
{
mk4_layouts
.
emplace_back
(
default_layouts
.
back
()
.
reshape
({
K
/
pack_size
,
M
/
pack_size
,
pack_size
,
pack_size
})
.
dimshuffle
({
0
,
2
,
1
,
3
}));
}
}
else
{
default_layouts
.
emplace_back
(
tensors
[
0
].
layout
.
reshape
({
M
,
K
}));
mk4_layouts
.
emplace_back
(
default_layouts
.
back
()
.
reshape
({
M
/
pack_size
,
K
/
pack_size
,
pack_size
,
pack_size
})
.
dimshuffle
({
0
,
3
,
1
,
2
}));
if
(
param
.
format
==
param
::
MatrixMul
::
Format
::
MK4_DOT
)
{
mk4_layouts
.
emplace_back
(
default_layouts
.
back
()
.
reshape
({
M
/
pack_size
,
K
/
pack_size
,
pack_size
,
pack_size
})
.
dimshuffle
({
0
,
2
,
1
,
3
}));
}
else
{
mk4_layouts
.
emplace_back
(
default_layouts
.
back
()
.
reshape
({
M
/
pack_size
,
K
/
pack_size
,
pack_size
,
pack_size
})
.
dimshuffle
({
0
,
3
,
1
,
2
}));
}
}
if
(
param
.
transposeB
)
{
default_layouts
.
emplace_back
(
tensors
[
1
].
layout
.
reshape
({
N
,
K
}));
...
...
@@ -238,6 +255,11 @@ TEST_F(NAIVE, MATRIX_MUL_MK8) {
dtype
::
Int16
(),
dtype
::
Int16
(),
dtype
::
Int32
());
}
TEST_F
(
NAIVE
,
MATRIX_MUL_MK4_DOT
)
{
run_matmul_mk_format
(
handle
(),
param
::
MatrixMul
::
Format
::
MK4_DOT
,
dtype
::
Int8
(),
dtype
::
Int8
(),
dtype
::
Int32
());
}
TEST_F
(
NAIVE
,
MATRIX_MUL_BFLOAT16
)
{
Checker
<
MatrixMul
>
checker
(
handle
(),
/* check_dispatch */
false
);
MatrixMul
::
Param
param
,
fp32_param
;
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录