Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
wk1234123
Tengine
提交
4891ae57
Tengine
项目概览
wk1234123
/
Tengine
与 Fork 源项目一致
Fork自
OAID / Tengine
通知
4
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
Tengine
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
未验证
提交
4891ae57
编写于
10月 30, 2020
作者:
S
shitouren1994
提交者:
GitHub
10月 30, 2020
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
pooling pack sse (#462)
上级
6972ba1c
变更
3
展开全部
隐藏空白更改
内联
并排
Showing
3 changed file
with
1781 addition
and
1829 deletion
+1781
-1829
src/dev/cpu/op/pooling/pooling_pack_x86.c
src/dev/cpu/op/pooling/pooling_pack_x86.c
+16
-8
src/dev/cpu/op/pooling/pooling_pack_x86.h
src/dev/cpu/op/pooling/pooling_pack_x86.h
+1765
-0
src/dev/cpu/op/pooling/pooling_sse_x86.h
src/dev/cpu/op/pooling/pooling_sse_x86.h
+0
-1821
未找到文件。
src/dev/cpu/op/pooling/pooling_
sse
_x86.c
→
src/dev/cpu/op/pooling/pooling_
pack
_x86.c
浏览文件 @
4891ae57
...
...
@@ -28,7 +28,7 @@
#include "../../cpu_node_ops.h"
#include "tengine_op.h"
#include "pooling_param.h"
#include "pooling_
sse
_x86.h"
#include "pooling_
pack
_x86.h"
#define POOL_K2S2 1
#define POOL_K3S2 2
...
...
@@ -104,6 +104,12 @@ static int score(struct node_ops* node_ops, struct exec_graph* exec_graph, struc
struct
ir_node
*
ir_node
=
exec_node
;
struct
ir_graph
*
ir_graph
=
ir_node
->
graph
;
struct
ir_tensor
*
input_tensor
=
get_ir_graph_tensor
(
ir_graph
,
ir_node
->
input_tensors
[
0
]);
int
in_c
=
input_tensor
->
dims
[
1
];
/* not global only support pack4 */
if
(
global
!=
1
&&
in_c
%
4
!=
0
)
{
return
0
;
}
/* todo support uint8 */
if
(
input_tensor
->
data_type
!=
TENGINE_DT_FP32
)
...
...
@@ -129,19 +135,21 @@ static int score(struct node_ops* node_ops, struct exec_graph* exec_graph, struc
/* general max pooling, k2s2, k2k2p1, k3s1p1, k3s2, k3s2p1 */
if
(
type
==
POOL_MAX
&&
(
pad_h0
==
pad_w0
)
&&
(
pad_h1
==
pad_w1
)
&&
pad_tf
!=
-
1
)
{
if
(
pad_h0
==
0
&&
(
pool_size
==
POOL_K
2S2
||
pool_size
==
POOL_K3
S2
))
return
0
;
if
(
pad_h0
==
1
&&
(
pool_size
==
POOL_K
2S2
||
pool_size
==
POOL_K3S2
||
pool_size
==
POOL_K3S1
))
return
0
;
if
(
pad_h0
==
0
&&
(
pool_size
==
POOL_K
3S2
||
pool_size
==
POOL_K2
S2
))
return
OPS_SCORE_BEST
;
if
(
pad_h0
==
1
&&
(
pool_size
==
POOL_K
3S1
||
pool_size
==
POOL_K2S2
||
pool_size
==
POOL_K3S2
))
return
OPS_SCORE_BEST
;
}
/* general avg pooling, k2s2, k2s2p1, k3s2, k3s2p1 */
if
(
type
==
POOL_AVG
&&
(
pad_h0
==
pad_w0
)
&&
(
pad_h1
==
pad_w1
))
{
if
(
pad_h0
==
0
&&
pad_h1
==
0
&&
(
pool_size
==
POOL_K2S2
||
pool_size
==
POOL_K3S2
))
return
0
;
if
(
pad_h0
==
1
&&
pad_h1
==
1
&&
(
pool_size
==
POOL_K2S2
||
pool_size
==
POOL_K3S2
))
return
0
;
return
OPS_SCORE_BEST
;
if
(
pad_h0
==
1
&&
pad_h1
==
1
&&
(
pool_size
==
POOL_K2S2
||
pool_size
==
POOL_K3S1
))
return
OPS_SCORE_BEST
;
else
if
(
pad_h0
==
0
&&
pad_h1
==
1
&&
(
pool_size
==
POOL_K3S2
))
return
OPS_SCORE_BEST
;
}
}
...
...
src/dev/cpu/op/pooling/pooling_pack_x86.h
0 → 100644
浏览文件 @
4891ae57
此差异已折叠。
点击以展开。
src/dev/cpu/op/pooling/pooling_sse_x86.h
已删除
100644 → 0
浏览文件 @
6972ba1c
此差异已折叠。
点击以展开。
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录