支持算子

当前Paddle-Lite共计支持算子209个,其中基础算子78个,附加算子131个。

基础算子

默认编译的算子,共计78个。

Host端Kernel是算子在任意CPU上纯C/C++的具体实现,具有可移植性强的特点,因此,它一般作为各特定平台算子实现的补充。

举例PaddleLite在ARM上部署模型,如果模型中某个算子没有ARM端Kernel,但是有Host端Kerenel,那么模型优化阶段该算子会选择Host端Kerenel,该模型还是可以顺利部署。

OP Name Host X86 CUDA ARM OpenCL FPGA 华为NPU 百度XPU 瑞芯微NPU 联发科APU 颖脉NNA 英特尔FPGA
affine_channel       Y                
affine_grid       Y                
arg_max       Y                
assign_value     Y Y                
batch_norm   Y   Y     Y Y Y      
bilinear_interp     Y Y Y   Y          
box_coder       Y Y              
calib     Y Y   Y            
cast   Y   Y       Y        
concat   Y Y Y Y   Y   Y Y    
conv2d   Y Y Y Y Y Y Y Y Y  Y Y
conv2d_transpose       Y     Y     Y    
density_prior_box       Y                
depthwise_conv2d   Y Y Y Y Y Y Y Y Y  Y Y
depthwise_conv2d_transpose                        
dropout   Y Y Y Y Y Y Y        
elementwise_add   Y Y Y Y Y Y Y Y Y    
elementwise_div       Y     Y   Y      
elementwise_max       Y                
elementwise_mod       Y                
elementwise_mul   Y Y Y Y Y Y   Y Y    
elementwise_pow                        
elementwise_sub   Y Y Y Y   Y   Y      
elu       Y                
expand Y       Y   Y          
expand_as Y                      
fc   Y Y Y Y Y Y   Y Y  Y  
feed Y   Y     Y            
fetch Y         Y            
fill_constant Y                      
fill_constant_batch_size_like Y Y                    
flatten Y       Y       Y      
flatten2 Y       Y       Y      
fusion_elementwise_add_activation     Y Y Y Y Y     Y    
fusion_elementwise_div_activation       Y     Y          
fusion_elementwise_max_activation       Y                
fusion_elementwise_mul_activation     Y Y     Y          
fusion_elementwise_sub_activation     Y Y Y   Y          
grid_sampler       Y Y              
instance_norm       Y Y   Y          
io_copy     Y   Y Y            
io_copy_once     Y   Y Y            
layout     Y Y Y Y            
leaky_relu   Y Y Y Y   Y          
matmul   Y Y Y     Y Y        
mul   Y Y Y     Y Y        
multiclass_nms Y         Y            
multiclass_nms2 Y                      
nearest_interp     Y Y Y   Y          
pad2d       Y Y   Y   Y      
pool2d   Y Y Y Y Y Y Y Y Y  Y  
prelu       Y                
prior_box       Y   Y            
range       Y                
reduce_mean       Y     Y          
relu   Y Y Y Y   Y   Y Y  Y  
relu6       Y Y   Y   Y      
reshape Y Y     Y   Y Y        
reshape2 Y Y     Y   Y Y Y      
scale   Y Y Y Y Y Y Y Y      
search_fc   Y Y                  
sequence_topk_avg_pooling   Y Y                  
shuffle_channel       Y     Y          
sigmoid   Y Y Y Y   Y   Y      
slice   Y   Y Y     Y        
softmax   Y Y Y     Y Y Y Y    
split       Y     Y          
squeeze Y                      
squeeze2 Y                      
stack   Y   Y       Y        
subgraph             Y Y Y Y    
tanh   Y Y Y Y   Y Y        
thresholded_relu       Y     Y          
transpose   Y Y Y Y   Y Y        
transpose2   Y Y Y Y   Y Y Y      
unsqueeze Y           Y          
unsqueeze2 Y           Y          
yolo_box     Y Y       Y        

附加算子

附加算子共计131个,需要在编译时打开--with_extra=ON开关才会编译,具体请参考参数详情

OP Name Host X86 CUDA ARM OpenCL FPGA 华为NPU 百度XPU 瑞芯微NPU 联发科APU 英特尔FPGA
abs     Y Y              
anchor_generator       Y              
assign Y                  
attention_padding_mask                      
axpy       Y              
beam_search_decode       Y              
beam_search_decode       Y              
box_clip       Y              
calib_once     Y Y   Y          
clip       Y              
collect_fpn_proposals       Y              
conditional_block Y                    
correlation Y                    
crf_decoding Y                    
crop       Y              
ctc_align Y                    
decode_bboxes       Y              
deformable_conv       Y              
distribute_fpn_proposals       Y              
equal Y                    
exp       Y Y            
fake_channel_wise_dequantize_max_abs                      
fake_dequantize_max_abs                      
fake_quantize_abs_max                      
fake_quantize_dequantize_abs_max                      
fake_quantize_dequantize_moving_average_abs_max                      
fake_quantize_moving_average_abs_max                      
fake_quantize_range_abs_max                      
floor       Y              
gather   Y   Y       Y      
gelu   Y                  
generate_proposals       Y              
greater_equal Y                    
greater_than Y                    
group_norm       Y              
gru   Y Y Y   Y          
gru_unit       Y              
hard_sigmoid       Y Y   Y        
hard_swish       Y              
im2sequence       Y              
increment       Y     Y        
is_empty Y                    
layer_norm   Y   Y     Y Y      
layout_once     Y Y   Y          
less_equal Y                    
less_than Y           Y        
lod_reset       Y              
log       Y     Y        
logical_and Y                    
logical_not Y                    
logical_or Y                    
logical_xor Y                    
lookup_table   Y Y Y       Y      
lookup_table_dequant       Y              
lookup_table_v2   Y Y Y              
lrn       Y Y            
lstm       Y              
match_matrix_tensor   Y Y                
max_pool2d_with_index                      
mean       Y              
merge_lod_tensor       Y              
negative       Y              
norm       Y   Y          
not_equal Y                    
one_hot Y                    
pixel_shuffle Y     Y Y            
polygon_box_transform Y                  
pow       Y              
print Y                    
read_from_array Y                    
reciprocal       Y              
reduce_max       Y              
reduce_prod       Y              
reduce_sum   Y           Y      
relu_clipped       Y     Y        
retinanet_detection_output Y                    
roi_align       Y              
roi_perspective_transform Y                  
rsqrt       Y              
scatter_nd_add Y                 
search_aligned_mat_mul   Y Y                
search_attention_padding_mask   Y Y                
search_grnn   Y Y                
search_group_padding   Y Y                
search_seq_arithmetic   Y Y                
search_seq_depadding   Y Y                
search_seq_fc   Y Y                
search_seq_softmax   Y Y                
sequence_arithmetic   Y Y                
sequence_concat   Y Y                
sequence_conv   Y   Y              
sequence_expand       Y              
sequence_expand_as   Y                  
sequence_mask     Y                
sequence_pad     Y                
sequence_pool   Y Y Y              
sequence_pool_concat     Y                
sequence_reshape   Y                  
sequence_reverse   Y Y                
sequence_reverse_embedding     Y                
sequence_softmax       Y              
sequence_unpad Y  Y                
shape Y Y                  
sign                      
softsign   Y         Y        
split_lod_tensor       Y              
sqrt             Y        
square   Y   Y     Y        
swish       Y Y            
top_k       Y              
topk_pooling     Y                
uniform_random                      
var_conv_2d   Y Y                
where_index Y                    
while Y                    
write_to_array Y                    
__xpu__conv2d               Y      
__xpu__embedding_with_eltwise_add               Y      
__xpu__fc               Y      
__xpu__mmdnn_bid_emb_att               Y      
__xpu__mmdnn_bid_emb_grnn_att               Y      
__xpu__mmdnn_bid_emb_grnn_att2               Y      
__xpu__mmdnn_match_conv_topk               Y      
__xpu__mmdnn_merge_all               Y    
__xpu__mmdnn_search_attention               Y      
__xpu__multi_encoder               Y      
__xpu__resnet_cbam               Y      
__xpu__resnet50               Y      
__xpu__sfa_head               Y      
matrix_nms Y