Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
PaddlePaddle
Paddle-Lite
提交
692f0af0
P
Paddle-Lite
项目概览
PaddlePaddle
/
Paddle-Lite
通知
332
Star
4
Fork
1
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
271
列表
看板
标记
里程碑
合并请求
78
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
P
Paddle-Lite
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
271
Issue
271
列表
看板
标记
里程碑
合并请求
78
合并请求
78
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
提交
692f0af0
编写于
3月 14, 2019
作者:
xiebaiyuan
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
add gpu cl load and fix make loadop num right
上级
693fa8c9
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
94 addition
and
84 deletion
+94
-84
src/framework/load_ops.h
src/framework/load_ops.h
+94
-84
未找到文件。
src/framework/load_ops.h
浏览文件 @
692f0af0
...
...
@@ -23,6 +23,15 @@ limitations under the License. */
#define LOAD_CPU_OP(op_type)
#endif
#ifdef PADDLE_MOBILE_CL
#define LOAD_GPU_CL_OP(op_type) \
extern int TouchOpRegistrar_##op_type##_##cl(); \
static int use_op_itself_##op_type##_##cl __attribute__((unused)) = \
TouchOpRegistrar_##op_type##_##cl()
#else
#define LOAD_GPU_CL_OP(op_type)
#endif
#ifdef PADDLE_MOBILE_FPGA
#define LOAD_FPGA_OP(op_type) \
extern int TouchOpRegistrar_##op_type##_##fpga(); \
...
...
@@ -37,8 +46,9 @@ limitations under the License. */
static int use_fusion_matcher_itself_##op_type __attribute__((unused)) = \
TouchFusionMatcherRegistrar_##op_type();
#define LOAD_OP(op_type) \
LOAD_CPU_OP(op_type); \
#define LOAD_OP(op_type) \
LOAD_CPU_OP(op_type); \
LOAD_GPU_CL_OP(op_type); \
LOAD_FPGA_OP(op_type);
#define LOAD_OP1(op_type, device_type) LOAD_##device_type##_OP(op_type);
...
...
@@ -58,263 +68,263 @@ LOAD_OP(fetch)
LOAD_OP
(
fill_constant
)
#endif
#ifdef BATCHNORM_OP
LOAD_OP
1
(
batch_norm
,
CPU
);
LOAD_OP
2
(
batch_norm
,
CPU
,
GPU_CL
);
#endif
#ifdef BILINEAR_INTERP_OP
LOAD_OP
1
(
bilinear_interp
,
CPU
);
LOAD_OP
2
(
bilinear_interp
,
CPU
,
GPU_CL
);
#endif
#ifdef BOXCODER_OP
LOAD_OP
1
(
box_coder
,
CPU
);
LOAD_OP
2
(
box_coder
,
CPU
,
GPU_CL
);
#endif
#ifdef CONCAT_OP
LOAD_OP
2
(
concat
,
CPU
,
FPGA
);
LOAD_OP
3
(
concat
,
CPU
,
GPU_CL
,
FPGA
);
#endif
#ifdef CONV_OP
LOAD_OP
2
(
conv2d
,
CPU
,
FPGA
);
LOAD_OP
3
(
conv2d
,
CPU
,
GPU_CL
,
FPGA
);
#endif
#ifdef LRN_OP
LOAD_OP
1
(
lrn
,
CPU
);
LOAD_OP
2
(
lrn
,
CPU
,
GPU_CL
);
#endif
#ifdef SIGMOID_OP
LOAD_OP
1
(
sigmoid
,
CPU
);
LOAD_OP
2
(
sigmoid
,
CPU
,
GPU_CL
);
#endif
#ifdef FUSION_FC_RELU_OP
LOAD_OP3
(
fusion_fc_relu
,
CPU
,
FPGA
);
LOAD_OP3
(
fusion_fc_relu
,
CPU
,
GPU_CL
,
FPGA
);
LOAD_FUSION_MATCHER
(
fusion_fc_relu
);
#endif
#ifdef FUSION_ELEMENTWISEADDRELU_OP
LOAD_OP3
(
fusion_elementwise_add_relu
,
CPU
,
FPGA
);
LOAD_OP3
(
fusion_elementwise_add_relu
,
CPU
,
GPU_CL
,
FPGA
);
LOAD_FUSION_MATCHER
(
fusion_elementwise_add_relu
);
#endif
#ifdef SPLIT_OP
LOAD_OP
1
(
split
,
CPU
);
LOAD_OP
2
(
split
,
CPU
,
GPU_CL
);
#endif
#ifdef RESIZE_OP
LOAD_OP
1
(
resize
,
CPU
);
LOAD_OP
2
(
resize
,
CPU
,
GPU_CL
);
#endif
#ifdef FUSION_CONVADDBNRELU_OP
LOAD_OP
2
(
fusion_conv_add_bn_relu
,
CPU
,
FPGA
);
LOAD_OP
3
(
fusion_conv_add_bn_relu
,
CPU
,
GPU_CL
,
FPGA
);
LOAD_FUSION_MATCHER
(
fusion_conv_add_bn_relu
);
#endif
#ifdef RESHAPE_OP
LOAD_OP
1
(
reshape
,
CPU
);
LOAD_OP
2
(
reshape
,
CPU
,
GPU_CL
);
#endif
#ifdef RESHAPE2_OP
LOAD_OP
1
(
reshape2
,
CPU
);
LOAD_OP
2
(
reshape2
,
CPU
,
GPU_CL
);
#endif
#ifdef TRANSPOSE_OP
LOAD_OP
1
(
transpose
,
CPU
);
LOAD_OP
2
(
transpose
,
CPU
,
GPU_CL
);
#endif
#ifdef TRANSPOSE2_OP
LOAD_OP
1
(
transpose2
,
CPU
);
LOAD_OP
2
(
transpose2
,
CPU
,
GPU_CL
);
#endif
#ifdef PRIORBOX_OP
LOAD_OP
1
(
prior_box
,
CPU
);
LOAD_OP
2
(
prior_box
,
CPU
,
GPU_CL
);
#endif
#ifdef FUSION_CONVADDRELU_OP
LOAD_OP
2
(
fusion_conv_add_relu
,
CPU
,
FPGA
);
LOAD_OP
3
(
fusion_conv_add_relu
,
CPU
,
GPU_CL
,
FPGA
);
LOAD_FUSION_MATCHER
(
fusion_conv_add_relu
);
#endif
#ifdef FUSION_CONVADD_OP
LOAD_OP
1
(
fusion_conv_add
,
CPU
);
LOAD_OP
2
(
fusion_conv_add
,
CPU
,
GPU_CL
);
LOAD_FUSION_MATCHER
(
fusion_conv_add
);
#endif
#ifdef SOFTMAX_OP
LOAD_OP
1
(
softmax
,
CPU
);
LOAD_OP
2
(
softmax
,
CPU
,
GPU_CL
);
#endif
#ifdef SHAPE_OP
LOAD_OP
1
(
shape
,
CPU
);
LOAD_OP
2
(
shape
,
CPU
,
GPU_CL
);
#endif
#ifdef DEPTHWISECONV_OP
LOAD_OP
1
(
depthwise_conv2d
,
CPU
);
LOAD_OP
2
(
depthwise_conv2d
,
CPU
,
GPU_CL
);
#endif
#ifdef CONV_TRANSPOSE_OP
LOAD_OP
1
(
conv2d_transpose
,
CPU
);
LOAD_OP
2
(
conv2d_transpose
,
CPU
,
GPU_CL
);
#endif
#ifdef SCALE_OP
LOAD_OP
1
(
scale
,
CPU
);
LOAD_OP
2
(
scale
,
CPU
,
GPU_CL
);
#endif
#ifdef ELEMENTWISEADD_OP
LOAD_OP
1
(
elementwise_add
,
CPU
);
LOAD_OP
2
(
elementwise_add
,
CPU
,
GPU_CL
);
#endif
#ifdef PRELU_OP
LOAD_OP
1
(
prelu
,
CPU
);
LOAD_OP
2
(
prelu
,
CPU
,
GPU_CL
);
#endif
#ifdef FLATTEN_OP
LOAD_OP
1
(
flatten
,
CPU
);
LOAD_OP
2
(
flatten
,
CPU
,
GPU_CL
);
#endif
#ifdef FUSION_CONVBNADDRELU_OP
LOAD_OP
2
(
fusion_conv_bn_add_relu
,
CPU
,
FPGA
);
LOAD_OP
3
(
fusion_conv_bn_add_relu
,
CPU
,
GPU_CL
,
FPGA
);
LOAD_FUSION_MATCHER
(
fusion_conv_bn_add_relu
);
#endif
#ifdef FUSION_CONVBNRELU_OP
LOAD_OP
2
(
fusion_conv_bn_relu
,
CPU
,
FPGA
);
LOAD_OP
3
(
fusion_conv_bn_relu
,
CPU
,
GPU_CL
,
FPGA
);
LOAD_FUSION_MATCHER
(
fusion_conv_bn_relu
);
#endif
#ifdef GRU_OP
LOAD_OP
1
(
gru
,
CPU
);
LOAD_OP
2
(
gru
,
CPU
,
GPU_CL
);
#endif
#ifdef GRU_UNIT_OP
LOAD_OP
1
(
gru_unit
,
CPU
);
LOAD_OP
2
(
gru_unit
,
CPU
,
GPU_CL
);
#endif
#ifdef FUSION_CONVADDBN_OP
LOAD_OP
2
(
fusion_conv_add_bn
,
CPU
,
FPGA
);
LOAD_OP
3
(
fusion_conv_add_bn
,
CPU
,
GPU_CL
,
FPGA
);
LOAD_FUSION_MATCHER
(
fusion_conv_add_bn
);
#endif
#ifdef DROPOUT_OP
LOAD_OP
2
(
dropout
,
CPU
,
FPGA
);
LOAD_OP
3
(
dropout
,
CPU
,
GPU_CL
,
FPGA
);
#endif
#ifdef FUSION_DWCONVBNRELU_OP
LOAD_OP
1
(
fusion_dwconv_bn_relu
,
CPU
);
LOAD_OP
2
(
fusion_dwconv_bn_relu
,
CPU
,
GPU_CL
);
LOAD_FUSION_MATCHER
(
fusion_dwconv_bn_relu
);
#endif
#ifdef CRF_OP
LOAD_OP
1
(
crf_decoding
,
CPU
);
LOAD_OP
2
(
crf_decoding
,
CPU
,
GPU_CL
);
#endif
#ifdef MUL_OP
LOAD_OP
1
(
mul
,
CPU
);
LOAD_OP
2
(
mul
,
CPU
,
GPU_CL
);
#endif
#ifdef NORM_OP
LOAD_OP
1
(
norm
,
CPU
);
LOAD_OP
2
(
norm
,
CPU
,
GPU_CL
);
#endif
#ifdef RELU_OP
LOAD_OP
1
(
relu
,
CPU
);
LOAD_OP
1
(
relu6
,
CPU
);
LOAD_OP
2
(
relu
,
CPU
,
GPU_CL
);
LOAD_OP
2
(
relu6
,
CPU
,
GPU_CL
);
#endif
#ifdef IM2SEQUENCE_OP
LOAD_OP
1
(
im2sequence
,
CPU
);
LOAD_OP
2
(
im2sequence
,
CPU
,
GPU_CL
);
#endif
#ifdef LOOKUP_OP
LOAD_OP
1
(
lookup_table
,
CPU
);
LOAD_OP
2
(
lookup_table
,
CPU
,
GPU_CL
);
#endif
#ifdef FUSION_FC_OP
LOAD_OP
2
(
fusion_fc
,
CPU
,
FPGA
);
LOAD_OP
3
(
fusion_fc
,
CPU
,
GPU_CL
,
FPGA
);
LOAD_FUSION_MATCHER
(
fusion_fc
);
#endif
#ifdef POOL_OP
LOAD_OP
2
(
pool2d
,
CPU
,
FPGA
);
LOAD_OP
3
(
pool2d
,
CPU
,
GPU_CL
,
FPGA
);
#endif
#ifdef MULTICLASSNMS_OP
LOAD_OP
1
(
multiclass_nms
,
CPU
);
LOAD_OP
2
(
multiclass_nms
,
CPU
,
GPU_CL
);
#endif
#ifdef POLYGONBOXTRANSFORM_OP
LOAD_OP
1
(
polygon_box_transform
,
CPU
);
LOAD_OP
2
(
polygon_box_transform
,
CPU
,
GPU_CL
);
#endif
#ifdef SUM_OP
LOAD_OP
1
(
sum
,
CPU
);
LOAD_OP
2
(
sum
,
CPU
,
GPU_CL
);
#endif
#ifdef ELEMENTWISEMUL_OP
LOAD_OP
1
(
elementwise_mul
,
CPU
);
LOAD_OP
2
(
elementwise_mul
,
CPU
,
GPU_CL
);
#endif
#ifdef SLICE_OP
LOAD_OP
1
(
slice
,
CPU
);
LOAD_OP
2
(
slice
,
CPU
,
GPU_CL
);
#endif
#ifdef FUSION_CONVBN_OP
LOAD_OP
2
(
fusion_conv_bn
,
CPU
,
FPGA
);
LOAD_OP
3
(
fusion_conv_bn
,
CPU
,
GPU_CL
,
FPGA
);
LOAD_FUSION_MATCHER
(
fusion_conv_bn
);
#endif
#ifdef ELEMENTWISESUB_OP
LOAD_OP
1
(
elementwise_sub
,
CPU
)
LOAD_OP
2
(
elementwise_sub
,
CPU
,
GPU_CL
)
#endif
#ifdef TOP_K_OP
LOAD_OP
1
(
top_k
,
CPU
)
LOAD_OP
2
(
top_k
,
CPU
,
GPU_CL
)
#endif
#ifdef CAST_OP
LOAD_OP
1
(
cast
,
CPU
)
LOAD_OP
2
(
cast
,
CPU
,
GPU_CL
)
#endif
#ifdef QUANT_OP
LOAD_OP
1
(
quantize
,
CPU
);
LOAD_OP
2
(
quantize
,
CPU
,
GPU_CL
);
#endif
#ifdef DEQUANT_OP
LOAD_OP
1
(
dequantize
,
CPU
);
LOAD_OP
2
(
dequantize
,
CPU
,
GPU_CL
);
#endif
#ifdef FUSION_DEQUANT_BN_OP
LOAD_OP
1
(
fusion_dequant_bn
,
CPU
);
LOAD_OP
2
(
fusion_dequant_bn
,
CPU
,
GPU_CL
);
LOAD_FUSION_MATCHER
(
fusion_dequant_bn
);
#endif
#ifdef FUSION_DEQUANT_ADD_BN_OP
LOAD_OP
1
(
fusion_dequant_add_bn
,
CPU
);
LOAD_OP
2
(
fusion_dequant_add_bn
,
CPU
,
GPU_CL
);
LOAD_FUSION_MATCHER
(
fusion_dequant_add_bn
);
#endif
#ifdef FUSION_DEQUANT_BN_RELU_OP
LOAD_OP
1
(
fusion_dequant_bn_relu
,
CPU
);
LOAD_OP
2
(
fusion_dequant_bn_relu
,
CPU
,
GPU_CL
);
LOAD_FUSION_MATCHER
(
fusion_dequant_bn_relu
);
#endif
#ifdef FUSION_DEQUANT_ADD_BN_RELU_OP
LOAD_OP
1
(
fusion_dequant_add_bn_relu
,
CPU
);
LOAD_OP
2
(
fusion_dequant_add_bn_relu
,
CPU
,
GPU_CL
);
LOAD_FUSION_MATCHER
(
fusion_dequant_add_bn_relu
);
#endif
#ifdef FUSION_DEQUANT_ADD_BN_QUANT_OP
LOAD_OP
1
(
fusion_dequant_add_bn_quant
,
CPU
);
LOAD_OP
2
(
fusion_dequant_add_bn_quant
,
CPU
,
GPU_CL
);
LOAD_FUSION_MATCHER
(
fusion_dequant_add_bn_quant
);
#endif
#ifdef FUSION_DEQUANT_ADD_BN_RELU_QUANT_OP
LOAD_OP
1
(
fusion_dequant_add_bn_relu_quant
,
CPU
);
LOAD_OP
2
(
fusion_dequant_add_bn_relu_quant
,
CPU
,
GPU_CL
);
LOAD_FUSION_MATCHER
(
fusion_dequant_add_bn_relu_quant
);
#endif
#ifdef SEQUENCE_EXPAND_OP
LOAD_OP
1
(
sequence_expand
,
CPU
);
LOAD_OP
2
(
sequence_expand
,
CPU
,
GPU_CL
);
#endif
#ifdef SEQUENCE_POOL_OP
LOAD_OP
1
(
sequence_pool
,
CPU
);
LOAD_OP
2
(
sequence_pool
,
CPU
,
GPU_CL
);
#endif
#ifdef LOG_OP
LOAD_OP
1
(
log
,
CPU
);
LOAD_OP
2
(
log
,
CPU
,
GPU_CL
);
#endif
#ifdef LOD_RESET_OP
LOAD_OP
1
(
lod_reset
,
CPU
);
LOAD_OP
2
(
lod_reset
,
CPU
,
GPU_CL
);
#endif
#ifdef LESS_THAN_OP
LOAD_OP
1
(
less_than
,
CPU
);
LOAD_OP
2
(
less_than
,
CPU
,
GPU_CL
);
#endif
#ifdef LOGICAL_AND_OP
LOAD_OP
1
(
logical_and
,
CPU
);
LOAD_OP
2
(
logical_and
,
CPU
,
GPU_CL
);
#endif
#ifdef LOGICAL_OR_OP
LOAD_OP
1
(
logical_or
,
CPU
);
LOAD_OP
2
(
logical_or
,
CPU
,
GPU_CL
);
#endif
#ifdef LOGICAL_NOT_OP
LOAD_OP
1
(
logical_not
,
CPU
);
LOAD_OP
2
(
logical_not
,
CPU
,
GPU_CL
);
#endif
#ifdef LOGICAL_XOR_OP
LOAD_OP
1
(
logical_xor
,
CPU
);
LOAD_OP
2
(
logical_xor
,
CPU
,
GPU_CL
);
#endif
#ifdef WHILE_OP
LOAD_OP
1
(
while
,
CPU
);
LOAD_OP
2
(
while
,
CPU
,
GPU_CL
);
#endif
#ifdef WRITE_TO_ARRAY_OP
LOAD_OP
1
(
write_to_array
,
CPU
);
LOAD_OP
2
(
write_to_array
,
CPU
,
GPU_CL
);
#endif
#ifdef READ_FROM_ARRAY_OP
LOAD_OP
1
(
read_from_array
,
CPU
);
LOAD_OP
2
(
read_from_array
,
CPU
,
GPU_CL
);
#endif
#ifdef IS_EMPTY_OP
LOAD_OP
1
(
is_empty
,
CPU
);
LOAD_OP
2
(
is_empty
,
CPU
,
GPU_CL
);
#endif
#ifdef INCREMENT_OP
LOAD_OP
1
(
increment
,
CPU
);
LOAD_OP
2
(
increment
,
CPU
,
GPU_CL
);
#endif
#ifdef ANCHOR_GENERATOR_OP
LOAD_OP
1
(
anchor_generator
,
CPU
);
LOAD_OP
2
(
anchor_generator
,
CPU
,
GPU_CL
);
#endif
#ifdef PROPOSAL_OP
LOAD_OP
1
(
generate_proposals
,
CPU
);
LOAD_OP
2
(
generate_proposals
,
CPU
,
GPU_CL
);
#endif
#ifdef PSROI_POOL_OP
LOAD_OP
1
(
psroi_pool
,
CPU
);
LOAD_OP
2
(
psroi_pool
,
CPU
,
GPU_CL
);
#endif
#ifdef ROI_PERSPECTIVE_OP
LOAD_OP
1
(
roi_perspective_transform
,
CPU
);
LOAD_OP
2
(
roi_perspective_transform
,
CPU
,
GPU_CL
);
#endif
#ifdef BEAM_SEARCH_OP
LOAD_OP
1
(
beam_search
,
CPU
);
LOAD_OP
2
(
beam_search
,
CPU
,
GPU_CL
);
#endif
#ifdef BEAM_SEARCH_DECODE_OP
LOAD_OP
1
(
beam_search_decode
,
CPU
);
LOAD_OP
2
(
beam_search_decode
,
CPU
,
GPU_CL
);
#endif
#ifdef PAD2D_OP
LOAD_OP
1
(
pad2d
,
CPU
);
LOAD_OP
2
(
pad2d
,
CPU
,
GPU_CL
);
#endif
#ifdef ONE_HOT_OP
LOAD_OP
1
(
one_hot
,
CPU
);
LOAD_OP
2
(
one_hot
,
CPU
,
GPU_CL
);
#endif
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录