Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
MegEngine 天元
MegEngine
提交
004cb8cd
MegEngine
项目概览
MegEngine 天元
/
MegEngine
1 年多 前同步成功
通知
403
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看板
提交
004cb8cd
编写于
11月 21, 2022
作者:
M
Megvii Engine Team
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
fix(dnn/cpu): fix the workspace calculation erorr of fallbacl im2col
GitOrigin-RevId: a718daac11525668a5c6f3ee8a97fa71d47a73ab
上级
87447df0
变更
3
隐藏空白更改
内联
并排
Showing
3 changed file
with
11 addition
and
13 deletion
+11
-13
dnn/src/fallback/conv_bias/conv1x1/conv1x1_utils.cpp
dnn/src/fallback/conv_bias/conv1x1/conv1x1_utils.cpp
+1
-1
dnn/src/fallback/conv_bias/im2col/algos.cpp
dnn/src/fallback/conv_bias/im2col/algos.cpp
+1
-2
dnn/src/fallback/conv_bias/im2col/im2col_kerns.h
dnn/src/fallback/conv_bias/im2col/im2col_kerns.h
+9
-10
未找到文件。
dnn/src/fallback/conv_bias/conv1x1/conv1x1_utils.cpp
浏览文件 @
004cb8cd
...
...
@@ -17,7 +17,7 @@ WorkspaceBundle get_thread_bundle(
(
param
.
src_type
.
enumv
()
==
DTypeEnum
::
Quantized8Asymm
&&
param
.
dst_type
.
enumv
()
==
DTypeEnum
::
Quantized8Asymm
);
size_t
matmul_dst_bytes_per_thread
=
is_dst_8bit
?
oc_tile_size
*
OH
*
OW
*
sizeof
(
param
.
bias_type
)
:
0
;
is_dst_8bit
?
oc_tile_size
*
OH
*
OW
*
param
.
bias_type
.
size
(
)
:
0
;
return
WorkspaceBundle
{
nullptr
,
{
matmul_c_size
,
matmul_dst_bytes_per_thread
}};
}
...
...
dnn/src/fallback/conv_bias/im2col/algos.cpp
浏览文件 @
004cb8cd
...
...
@@ -199,8 +199,7 @@ static WorkspaceBundle get_bundle(
if
(
no_need_pading
)
{
padding
=
0
;
//! not need padding
}
else
{
padding
=
(
GROUP
*
N
*
IC
*
IH2
*
IW2
)
*
sizeof
(
param
.
src_type
);
//! for padding
padding
=
(
GROUP
*
N
*
IC
*
IH2
*
IW2
)
*
param
.
src_type
.
size
();
//! for padding
}
packa_size
=
GROUP
*
packa_group_size
;
//! for packA size = GROUP * a_size
...
...
dnn/src/fallback/conv_bias/im2col/im2col_kerns.h
浏览文件 @
004cb8cd
...
...
@@ -146,15 +146,15 @@ public:
size_t
im2col
=
0
,
packb
=
0
,
bias_temp
=
0
;
bool
default_pack
=
matmul_algo
->
packmode
()
==
Pack_Mode
::
DEFAULT
;
megdnn_assert
(
default_pack
,
"only support default packa"
);
size_t
im2col_dst_size
=
IC
*
FH
*
FW
*
ohw_tile_size
*
sizeof
(
param
.
src_type
);
size_t
im2col_dst_size
=
IC
*
FH
*
FW
*
ohw_tile_size
*
param
.
src_type
.
size
(
);
size_t
matmul_dst_size
=
pack_oc_size
*
oc_tile_size
*
ohw_tile_size
*
sizeof
(
param
.
bias_type
);
pack_oc_size
*
oc_tile_size
*
ohw_tile_size
*
param
.
bias_type
.
size
(
);
//! matmul_dst and im2col_dst use the same memory
WorkspaceBundle
wb
=
matmul_algo
->
get_bundle
(
im2col_kern_param
);
packb
=
wb
.
get_size
(
1
);
im2col
=
std
::
max
(
im2col_dst_size
,
matmul_dst_size
);
if
(
param
.
bias_mode
==
megdnn
::
BiasMode
::
BIAS
)
{
bias_temp
=
oc_tile_size
*
ohw_tile_size
*
sizeof
(
param
.
bias_type
);
bias_temp
=
oc_tile_size
*
ohw_tile_size
*
param
.
bias_type
.
size
(
);
}
return
{
nullptr
,
{
packb
,
im2col
,
bias_temp
}};
}
...
...
@@ -231,15 +231,15 @@ public:
size_t
im2col
=
0
,
packb
=
0
,
matmul_dst
=
0
,
bias_temp
=
0
;
bool
only_packA
=
matmul_algo
->
packmode
()
==
Pack_Mode
::
ONLY_PACKA
;
megdnn_assert
(
only_packA
,
"onlysupport onlypackA mode"
);
size_t
im2col_dst_size
=
IC
*
FH
*
FW
*
ohw_tile_size
*
sizeof
(
param
.
src_type
);
size_t
matmul_dst_size
=
oc_tile_size
*
ohw_tile_size
*
sizeof
(
param
.
bias_type
);
size_t
im2col_dst_size
=
IC
*
FH
*
FW
*
ohw_tile_size
*
param
.
src_type
.
size
(
);
size_t
matmul_dst_size
=
oc_tile_size
*
ohw_tile_size
*
param
.
bias_type
.
size
(
);
//! matmul_dst and im2col_dst use the same memory
WorkspaceBundle
wb
=
matmul_algo
->
get_bundle
(
im2col_kern_param
);
packb
=
wb
.
get_size
(
1
);
im2col
=
im2col_dst_size
;
matmul_dst
=
matmul_dst_size
;
if
(
param
.
bias_mode
==
megdnn
::
BiasMode
::
BIAS
)
{
bias_temp
=
oc_tile_size
*
ohw_tile_size
*
sizeof
(
param
.
bias_type
);
bias_temp
=
oc_tile_size
*
ohw_tile_size
*
param
.
bias_type
.
size
(
);
}
return
{
nullptr
,
{
packb
,
im2col
,
matmul_dst
,
bias_temp
}};
...
...
@@ -309,8 +309,8 @@ public:
param
.
dst_type
.
enumv
()
==
DTypeEnum
::
QuantizedS8
)
||
(
param
.
src_type
.
enumv
()
==
DTypeEnum
::
Quantized8Asymm
&&
param
.
dst_type
.
enumv
()
==
DTypeEnum
::
Quantized8Asymm
);
size_t
im2col_dst_size
=
IC
*
FH
*
FW
*
ohw_tile_size
*
sizeof
(
param
.
src_type
);
size_t
matmul_dst_size
=
oc_tile_size
*
ohw_tile_size
*
sizeof
(
param
.
bias_type
);
size_t
im2col_dst_size
=
IC
*
FH
*
FW
*
ohw_tile_size
*
param
.
src_type
.
size
(
);
size_t
matmul_dst_size
=
oc_tile_size
*
ohw_tile_size
*
param
.
bias_type
.
size
(
);
im2col
=
im2col_dst_size
;
if
(
is_dst_8bit
)
{
matmul_dst
=
matmul_dst_size
;
...
...
@@ -319,9 +319,8 @@ public:
}
matmul_compute
=
matmul_algo
->
get_workspace
(
im2col_kern_param
);
if
(
param
.
bias_mode
==
megdnn
::
BiasMode
::
BIAS
)
{
bias_temp
=
oc_tile_size
*
ohw_tile_size
*
sizeof
(
param
.
bias_type
);
bias_temp
=
oc_tile_size
*
ohw_tile_size
*
param
.
bias_type
.
size
(
);
}
return
{
nullptr
,
{
im2col
,
matmul_dst
,
bias_temp
,
matmul_compute
}};
}
};
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录