Files
paddlepaddle--paddle/paddle/phi/ops/yaml/fused_ops.yaml
T
2026-07-13 12:40:42 +08:00

947 lines
40 KiB
YAML

# This file is designed for fusion C++ forward operators, which manages the
# generated code for static mode and dynamic mode (when `support_dygraph_mode` is true).
# "support_dygraph_mode" is an extra configuration item in this file,
# if one operator have "support_dygraph_mode : true", it supports dygraph mode,
# otherwise the operator only could be used in static mode.
- op : add_act_xpu
args : (Tensor x, Tensor x_max, Tensor y, Tensor y_max, int act_type)
output : Tensor(out), Tensor(out_max)
infer_meta :
func : AddActXPUInferMeta
kernel :
func : add_act_xpu
data_type : x
optional : x_max, y_max
- op : add_layernorm_xpu
args : (Tensor x, Tensor y, Tensor scale, Tensor bias, int begin_norm_axis, float epsilon)
output : Tensor(out)
infer_meta :
func : AddLayernormXPUInferMeta
kernel :
func : add_layernorm_xpu
data_type : x
- op : addcmul_xpu
args : (Tensor x, Tensor y, Tensor w)
output : Tensor(out)
infer_meta :
func : AddCMulXPUInferMeta
kernel :
func : addcmul_xpu
data_type : x
- op : blha_get_max_len
args : (Tensor seq_lens_encoder, Tensor seq_lens_decoder, Tensor batch_size)
output : Tensor(max_enc_len_this_time), Tensor(max_dec_len_this_time)
infer_meta :
func : BlhaGetMaxLenInferMeta
kernel :
func : blha_get_max_len
data_type : seq_lens_encoder
support_dygraph_mode : true
- op : block_multihead_attention_
args : (Tensor qkv, Tensor key_cache, Tensor value_cache, Tensor seq_lens_encoder, Tensor seq_lens_decoder, Tensor seq_lens_this_time, Tensor padding_offsets, Tensor cum_offsets, Tensor cu_seqlens_q, Tensor cu_seqlens_k, Tensor block_tables, Tensor pre_key_cache, Tensor pre_value_cache, Tensor rope_emb, Tensor mask, Tensor tgt_mask, Tensor cache_k_quant_scales, Tensor cache_v_quant_scales, Tensor cache_k_dequant_scales, Tensor cache_v_dequant_scales, Tensor qkv_out_scale, Tensor qkv_bias, Tensor out_shift, Tensor out_smooth, Tensor max_enc_len_this_time, Tensor max_dec_len_this_time, int max_seq_len, int block_size, bool use_neox_style, bool dynamic_cachekv_quant=false, int quant_round_type=1, float quant_max_bound=127.0, float quant_min_bound=-127.0, float out_scale=-1, str compute_dtype="default", float rope_theta=10000.0)
output : Tensor(fmha_out), Tensor(qkv_out), Tensor(key_cache_out), Tensor(value_cache_out)
infer_meta :
func : BlockMultiheadAttentionInferMeta
kernel :
func : block_multihead_attention
data_type : qkv
optional : pre_key_cache, pre_value_cache, rope_emb, mask, tgt_mask, cache_k_quant_scales, cache_v_quant_scales, cache_k_dequant_scales, cache_v_dequant_scales, qkv_out_scale, qkv_bias, out_shift, out_smooth, max_enc_len_this_time, max_dec_len_this_time
inplace : (qkv -> qkv_out), (key_cache -> key_cache_out), (value_cache -> value_cache_out)
support_dygraph_mode : true
data_transform :
skip_transform : max_enc_len_this_time, max_dec_len_this_time
- op : block_multihead_attention_xpu
args : (Tensor qkv, Tensor key_cache, Tensor value_cache, Tensor seq_lens_encoder, Tensor seq_lens_decoder, Tensor seq_lens_this_time, Tensor padding_offsets, Tensor cum_offsets, Tensor cu_seqlens_q, Tensor cu_seqlens_k, Tensor block_tables, Tensor cache_k_per_batch_maxs, Tensor cache_v_per_batch_maxs, Tensor pre_key_cache, Tensor pre_value_cache, Tensor rope_emb, Tensor mask, Tensor tgt_mask, Tensor cache_k_quant_scales, Tensor cache_v_quant_scales, Tensor cache_k_dequant_scales, Tensor cache_v_dequant_scales, Tensor qkv_out_scale, Tensor qkv_bias, Tensor out_shift, Tensor out_smooth, Tensor max_enc_len_this_time, Tensor max_dec_len_this_time, int max_seq_len, int block_size, bool use_neox_style, bool dynamic_cachekv_quant=false, int quant_round_type=1, float quant_max_bound=127.0, float quant_min_bound=-127.0, float out_scale=-1, str compute_dtype="default", float rope_theta=10000.0)
output : Tensor(fmha_out), Tensor(qkv_out), Tensor(key_cache_out), Tensor(value_cache_out)
infer_meta :
func : BlockMultiheadAttentionInferXPUMeta
kernel :
func : block_multihead_attention_xpu
data_type : qkv
optional : pre_key_cache, pre_value_cache, rope_emb, mask, tgt_mask, cache_k_quant_scales, cache_v_quant_scales, cache_k_dequant_scales, cache_v_dequant_scales, qkv_out_scale, qkv_bias, out_shift, out_smooth, max_enc_len_this_time, max_dec_len_this_time
inplace : (qkv -> qkv_out), (key_cache -> key_cache_out), (value_cache -> value_cache_out)
support_dygraph_mode : true
data_transform :
skip_transform : max_enc_len_this_time, max_dec_len_this_time
- op : bn_act_xpu
args : (Tensor x, Tensor mean, Tensor variance, Tensor scale, Tensor bias, float momentum, float epsilon, str data_format, int act_type)
output : Tensor(out)
infer_meta :
func : BNActXPUInferMeta
kernel :
func : bn_act_xpu
data_type : x
- op : conv1d_xpu
args : (Tensor x, Tensor x_max, Tensor filter, Tensor filter_max, Tensor bias, Tensor branch, Tensor branch_max, int[] paddings, str padding_algorithm, int dilations, int strides, int groups, int act_type, float act_param)
output : Tensor(out), Tensor(out_max)
infer_meta :
func : Conv1dXPUInferMeta
kernel :
func : conv1d_xpu
data_type : x
optional : bias, branch, branch_max, x_max
- op : conv2d_transpose_xpu
args : (Tensor x, Tensor x_max, Tensor filter, Tensor filter_max, Tensor bias, int[] strides, int[] paddings, int[] output_padding, IntArray output_size, str padding_algorithm, int groups, int[] dilations, str data_format, bool has_bias, bool with_act, str act_type)
output : Tensor(out), Tensor(out_max)
infer_meta :
func : Conv2dTransposeXPUInferMeta
kernel :
func : conv2d_transpose_xpu
data_type : x
optional : bias, x_max
- op : conv2d_xpu
args : (Tensor x, Tensor x_max, Tensor filter, Tensor filter_max, Tensor bias, Tensor branch, Tensor branch_max, Tensor scale_max, Tensor out_max_in, int[] paddings, int[] dilations, int[] strides, str padding_algorithm, int groups, int act_type, float act_param, DataType out_dtype)
output : Tensor(out), Tensor(out_max)
infer_meta :
func : Conv2dXPUInferMeta
kernel :
func : conv2d_xpu
data_type : x
optional : bias, branch, branch_max ,x_max, scale_max, out_max_in
- op : cross_attention_xpu
args : (Tensor input_q, Tensor input_kv, Tensor[] fc_weight, Tensor[] fc_weight_max, Tensor[] fc_bias, Tensor mask, int head_num, int head_dim, float alpha, DataType out_dtype)
output : Tensor(qkv), Tensor(qkv_max)
infer_meta :
func : CrossAttentionXPUInferMeta
kernel :
func : cross_attention_xpu
data_type : input_q
- op : dequantize_xpu
args : (Tensor x, DataType out_dtype, float scale = 1.0f)
output : Tensor(y)
infer_meta :
func : DeQuantizeXPUInferMeta
kernel :
func : dequantize_xpu
data_type: x
- op : distributed_fused_lamb_init
args : (Tensor[] param, Tensor[] grad, float beta1, float beta2, int[] apply_weight_decay, int alignment, int rank, int nranks)
output : Tensor(fp32_fused_param), Tensor(fp32_fused_grad), Tensor(fp16_fused_param), Tensor(fp16_fused_grad), Tensor(moment1), Tensor(moment2), Tensor(beta1_pow), Tensor(beta2_pow), Tensor(fused_param_offsets), Tensor(fp32_shard_fused_param_offsets), Tensor(fp16_shard_fused_param_offsets), Tensor(param_info), Tensor(param_order), Tensor[](param_out){param.size()}, Tensor[](master_param_out){param.size()}, Tensor[](grad_out){grad.size()}, Tensor(global_scale), Tensor(step)
infer_meta :
func : DistributedFusedLambInitInferMeta
kernel :
func : distributed_fused_lamb_init
data_type: DataType::FLOAT32
optional : fp32_fused_param, fp32_fused_grad, fp16_fused_param, fp16_fused_grad
inplace: (param -> param_out), (grad -> grad_out)
- op : embedding_with_eltwise_add_xpu
args : (Tensor[] ids, Tensor[] tables, Tensor mask, int64_t padding_idx)
output: Tensor(out), Tensor(seq_lod), Tensor(max_seq_len)
infer_meta :
func: EmbeddingWithEltwiseAddXPUInferMeta
param : [ids, tables, mask]
kernel:
func: embedding_with_eltwise_add_xpu
data_type: tables
optional : mask, seq_lod, max_seq_len
- op : fast_layernorm_xpu
args : (Tensor x, Tensor scale, Tensor bias, int begin_norm_axis, float epsilon)
output : Tensor(out)
infer_meta :
func : FastLayernormXPUInferMeta
kernel :
func : fast_layernorm_xpu
data_type : x
- op : fast_where_xpu
args : (Tensor condition, Tensor x, Tensor y)
output : Tensor(out)
infer_meta :
func : FastWhereXPUInferMeta
kernel :
func : fast_where_xpu
data_type : x
- op : fc
args : (Tensor input, Tensor w, Tensor bias, int in_num_col_dims = 1, str activation_type = "", bool padding_weights = false)
output : Tensor(out)
infer_meta :
func : FCInferMeta
kernel :
func : fc
data_type : input
optional : bias
- op : fc_xpu
args : (Tensor x, Tensor x_max, Tensor w, Tensor w_max, Tensor bias, Tensor scale_max, Tensor out_max_in, int in_num_col_dims, bool transpose_x, float alpha, float beta, int act_type, float act_alpha, DataType out_dtype)
output : Tensor(out), Tensor(out_max)
infer_meta :
func : FcXPUInferMeta
kernel :
func : fc_xpu
data_type : x
optional : bias, x_max, w_max, scale_max, out_max_in
- op : fp8_fp8_half_gemm_fused
args : (Tensor x, Tensor y, Tensor bias, bool transpose_x = false, bool transpose_y = false, float scale = 1.0f, str output_dtype = "float16", str activation_type = "identity")
output : Tensor(out)
infer_meta :
func : FP8OutHalfGemmFusedInferMeta
kernel :
func : fp8_fp8_half_gemm_fused
data_type : x
optional : bias
support_dygraph_mode : true
- op : fused_bias_act
args : (Tensor x, Tensor bias, Tensor dequant_scales, Tensor shift, Tensor smooth, str act_method = "gelu", str compute_dtype = "default", float quant_scale = -1, int quant_round_type = 1, float quant_max_bound = 127.0, float quant_min_bound = -127.0)
output : Tensor(out)
infer_meta :
func: FusedBiasActInferMeta
kernel :
func : fused_bias_act
data_type : x
optional : bias, dequant_scales, shift, smooth
support_dygraph_mode : true
- op : fused_bias_dropout_residual_layer_norm
args : (Tensor x, Tensor residual, Tensor bias, Tensor ln_scale, Tensor ln_bias, float dropout_rate = 0.5f, bool is_test = false, bool dropout_fix_seed = true, int dropout_seed = true, str dropout_implementation = "downgrade_in_infer", float ln_epsilon = 1e-5)
optional : bias, ln_scale, ln_bias
output : Tensor(y), Tensor(bias_dropout_residual_out), Tensor(dropout_mask_out), Tensor(ln_mean), Tensor(ln_variance)
infer_meta :
func : FusedBiasDropoutResidualLnInferMeta
kernel :
func : fused_bias_dropout_residual_layer_norm
data_type : x
backward : fused_bias_dropout_residual_layer_norm_grad
intermediate : bias_dropout_residual_out, dropout_mask_out, ln_mean, ln_variance
support_dygraph_mode : true
- op : fused_bias_residual_layernorm
args : (Tensor x, Tensor bias, Tensor residual, Tensor norm_weight, Tensor norm_bias, float epsilon, float residual_alpha, int begin_norm_axis, float quant_scale, int quant_round_type, float quant_max_bound, float quant_min_bound)
output : Tensor(out), Tensor(residual_out), Tensor(mean), Tensor(variance)
infer_meta :
func : FusedLayerNormInferMeta
kernel :
func : fused_bias_residual_layernorm
data_type : x
optional : bias, residual, norm_weight, norm_bias, residual_out
support_dygraph_mode : true
- op : fused_conv2d_add_act
args : (Tensor input, Tensor filter, Tensor bias, Tensor residual_data, int[] strides={1, 1}, int[] paddings={0, 0}, str padding_algorithm="EXPLICIT", int[] dilations={1, 1} , int groups=1, str data_format="NCHW", str activation="relu", int[] split_channels={}, bool exhaustive_search=false, int workspace_size_MB=32, float fuse_alpha=0.0f)
output : Tensor(output), Tensor[](outputs){split_channels.size()}
infer_meta :
func : FusedConv2dAddActInferMeta
param : [input, filter, bias, residual_data, strides, paddings, padding_algorithm, dilations, groups, data_format, activation, split_channels]
kernel :
func : fused_conv2d_add_act
data_type : input
optional : bias, residual_data, outputs
interfaces : paddle::dialect::LayoutTransformationInterface
- op : fused_dconv_drelu_dbn
args : (Tensor grad_output, Tensor weight, Tensor grad_output_add, Tensor residual_input, Tensor bn1_eqscale, Tensor bn1_eqbias, Tensor conv_input, Tensor bn1_mean, Tensor bn1_inv_std, Tensor bn1_gamma, Tensor bn1_beta, Tensor bn1_input, Tensor bn2_mean, Tensor bn2_inv_std, Tensor bn2_gamma, Tensor bn2_beta, Tensor bn2_input, int[] paddings, int[] dilations, int[] strides, str padding_algorithm, int groups, str data_format, bool fuse_shortcut, bool fuse_dual, bool fuse_add, bool exhaustive_search)
output : Tensor(grad_weight), Tensor(grad_bn1_input), Tensor(grad_bn1_gamma), Tensor(grad_bn1_beta), Tensor(grad_bn2_input), Tensor(grad_bn2_gamma), Tensor(grad_bn2_beta)
optional : grad_output_add, residual_input, bn1_eqscale, bn1_eqbias, conv_input, bn2_mean, bn2_inv_std, bn2_gamma, bn2_beta, bn2_input, grad_bn2_input, grad_bn2_gamma, grad_bn2_beta
infer_meta :
func : FusedDconvDreluDbnInferMeta
kernel :
func : fused_dconv_drelu_dbn
data_type : grad_output
- op : fused_dot_product_attention
args : (Tensor q, Tensor k, Tensor v, Tensor bias, Tensor cu_seqlen_q, Tensor cu_seqlen_kv, float scaling_factor, float dropout_probability, bool is_training = false, str mask_type_str = "none", str bias_type_str = "none")
output : Tensor(out), Tensor(softmax_out), Tensor(rng_state)
infer_meta :
func : FusedDotProductAttentionInferMeta
param : [q, k, v, bias]
kernel :
func : fused_dot_product_attention
data_type : q
backward : fused_dot_product_attention_grad
optional : bias, cu_seqlen_q, cu_seqlen_kv
support_dygraph_mode : true
- op : fused_dropout_add
args : (Tensor x, Tensor y, Tensor seed_tensor, Scalar p, bool is_test, str mode, int seed = 0, bool fix_seed = false)
optional : seed_tensor
output : Tensor(out), Tensor(seed_offset)
infer_meta :
func : FusedDropoutAddInferMeta
spmd_rule : FusedDropoutAddSpmd
param : [x, y]
kernel :
func : fused_dropout_add
data_type : x
backward : fused_dropout_add_grad
support_dygraph_mode : true
- op : fused_elementwise_add
args: (Tensor x, Tensor y, int axis = -1, str fuse_activation = "", float fuse_alpha
= 0.0f, float fuse_beta = 0.0f, float fused_output_scale = 1.0f, int[] fused_unsqueeze2_axes
= {}, float scale_x = 1.0f, float scale_y = 1.0f, float scale_out = 1.0f)
output: Tensor (out)
infer_meta:
func: ElementwiseInferMeta
param : [x, y]
kernel :
func : fused_elementwise_add
data_type : x
support_dygraph_mode : true
traits : pir::BinaryElementWiseTrait
interfaces: paddle::dialect::LayoutTransformationInterface
- op : fused_elementwise_div
args: (Tensor x, Tensor y, int axis = -1, str fuse_activation = "", float fuse_alpha
= 0.0f, float fuse_beta = 0.0f, float fused_output_scale = 1.0f, int[] fused_unsqueeze2_axes
= {}, float scale_x = 1.0f, float scale_y = 1.0f, float scale_out = 1.0f)
output: Tensor (out)
infer_meta:
func: ElementwiseInferMeta
param : [x, y]
kernel :
func : fused_elementwise_div
data_type : x
support_dygraph_mode : true
traits : pir::BinaryElementWiseTrait
interfaces: paddle::dialect::LayoutTransformationInterface
- op : fused_elementwise_mul
args: (Tensor x, Tensor y, int axis = -1, str fuse_activation = "", float fuse_alpha
= 0.0f, float fuse_beta = 0.0f, float fused_output_scale = 1.0f, int[] fused_unsqueeze2_axes
= {}, float scale_x = 1.0f, float scale_y = 1.0f, float scale_out = 1.0f)
output: Tensor (out)
infer_meta:
func: ElementwiseInferMeta
param : [x, y]
kernel :
func : fused_elementwise_mul
data_type : x
support_dygraph_mode : true
traits : pir::BinaryElementWiseTrait
interfaces: paddle::dialect::LayoutTransformationInterface
- op : fused_elementwise_sub
args: (Tensor x, Tensor y, int axis = -1, str fuse_activation = "", float fuse_alpha
= 0.0f, float fuse_beta = 0.0f, float fused_output_scale = 1.0f, int[] fused_unsqueeze2_axes
= {}, float scale_x = 1.0f, float scale_y = 1.0f, float scale_out = 1.0f)
output: Tensor (out)
infer_meta:
func: ElementwiseInferMeta
param : [x, y]
kernel :
func : fused_elementwise_sub
data_type : x
support_dygraph_mode : true
traits : pir::BinaryElementWiseTrait
interfaces: paddle::dialect::LayoutTransformationInterface
- op : fused_elemwise_activation
args: (Tensor x, Tensor y, str[] functor_list, int axis = -1, float scale = 0.0, bool save_intermediate_out
= false)
output: Tensor (out), Tensor (intermediate_out)
infer_meta:
func: FusedElemwiseActivationInferMeta
kernel:
func: fused_elemwise_activation
data_type: x
intermediate: intermediate_out
backward: fused_elemwise_activation_grad
- op : fused_elemwise_add_activation
args: (Tensor x, Tensor y, str[] functor_list, int axis = -1, float scale = 0.0, bool save_intermediate_out = false)
output: Tensor(out), Tensor(intermediate_out)
kernel:
func: fused_elemwise_add_activation
infer_meta:
func : FusedElemwiseActivationInferMeta
backward: fused_elemwise_add_activation_grad
intermediate: intermediate_out
- op : fused_embedding_eltwise_layernorm
args : (Tensor[] ids, Tensor[] embs, Tensor bias, Tensor scale, float epsilon = 0.00001f)
output : Tensor(out)
infer_meta :
func : FusedEmbeddingEltWiseLayerNormInferMeta
kernel :
func : fused_embedding_eltwise_layernorm
data_type : embs
- op : fused_fc_elementwise_layernorm
args : (Tensor x, Tensor w, Tensor y, Tensor bias0, Tensor scale, Tensor bias1, int x_num_col_dims = 1, str activation_type = "", float epsilon = 0.00001f, int begin_norm_axis = 1)
output : Tensor(out), Tensor(mean), Tensor(variance)
infer_meta :
func : FusedFCElementwiseLayerNormInferMeta
kernel :
func : fused_fc_elementwise_layernorm
data_type : x
optional : bias0, scale, bias1, mean, variance
- op : fused_linear_param_grad_add
args : (Tensor x, Tensor dout, Tensor dweight, Tensor dbias, bool multi_precision = true, bool has_bias = true)
output : Tensor(dweight_out), Tensor(dbias_out)
infer_meta:
func : FusedLinearParamGradAddInferMeta
spmd_rule : FusedLinearParamGradAddInferSpmd
optional : dweight, dbias
kernel:
func : fused_linear_param_grad_add
data_type : dout
support_dygraph_mode : true
traits : pir::SideEffectTrait
- op : fused_multi_transformer_
args : (Tensor x, Tensor[] ln_scales, Tensor[] ln_biases, Tensor[] qkv_weights, Tensor[] qkv_biases, Tensor[] cache_kvs, Tensor[] pre_caches, Tensor rotary_tensor, Tensor beam_offset, Tensor time_step, Tensor seq_lengths, Tensor src_mask, Tensor[] out_linear_weights, Tensor[] out_linear_biases, Tensor[] ffn_ln_scales, Tensor[] ffn_ln_biases, Tensor[] ffn1_weights, Tensor[] ffn1_biases, Tensor[] ffn2_weights, Tensor[] ffn2_biases, bool pre_layer_norm = true, float epsilon = 1e-5, float residual_alpha = 1.0f, float dropout_rate = .5f, int rotary_emb_dims = 0, bool is_test = false, str dropout_implementation = "downgrade_in_infer", str act_method = "gelu", bool trans_qkvw = true, int ring_id = -1, str norm_type = "layernorm", bool use_neox_rotary_style=true, int gqa_group_size=-1)
output : Tensor[](cache_kv_outs){out_linear_weights.size()}, Tensor(out)
infer_meta :
func : FusedMultiTransformerInferMeta
kernel :
func : fused_multi_transformer
data_type : x
optional : ln_biases, qkv_biases, cache_kvs, pre_caches, rotary_tensor, beam_offset, time_step, seq_lengths, src_mask, out_linear_biases, ffn_ln_biases, ffn1_biases, ffn2_biases, cache_kv_outs
inplace : (cache_kvs -> cache_kv_outs)
support_dygraph_mode : true
data_transform :
skip_transform : time_step
- op : fused_multi_transformer_int8_xpu
args : (Tensor x, Tensor[] ln_scale, Tensor[] ln_bias, Tensor[] qkv_in_max, Tensor[] qkvw, Tensor[] qkv_bias, Tensor[] qkv_scales, Tensor[] out_linear_in_max, Tensor[] out_linear_w, Tensor[] out_linear_bias, Tensor[] out_linear_scales, Tensor[] ffn_ln_scale, Tensor[] ffn_ln_bias, Tensor[] ffn1_in_max, Tensor[] ffn1_weight, Tensor[] ffn1_bias, Tensor[] ffn1_scales, Tensor[] ffn2_in_max, Tensor[] ffn2_weight, Tensor[] ffn2_bias, Tensor[] ffn2_scales, Tensor[] cache_kv, Tensor[] pre_caches, Tensor rotary_pos_emb, Tensor time_step, Tensor seq_lengths, Tensor src_mask, Tensor gather_index, Tensor max_buffer, bool pre_layer_norm, int rotary_emb_dims, float epsilon, float dropout_rate, bool is_test, str dropout_implementation, str act_method, bool trans_qkvw, int ring_id, int gather_axis)
output : Tensor(out), Tensor[](cache_kv_out){out_linear_w.size()}
infer_meta :
func : FusedMultiTransformerInt8XpuInferMeta
kernel :
func : fused_multi_transformer_int8_xpu
data_type : x
optional : cache_kv, pre_caches, rotary_pos_emb, time_step, seq_lengths, src_mask, gather_index
- op : fused_multi_transformer_xpu
args : (Tensor x, Tensor[] ln_scale, Tensor[] ln_bias, Tensor[] qkvw, Tensor[] qkvw_max, Tensor[] qkv_bias, Tensor[] out_linear_w, Tensor[] out_linear_wmax, Tensor[] out_linear_bias, Tensor[] ffn_ln_scale, Tensor[] ffn_ln_bias, Tensor[] ffn1_weight, Tensor[] ffn1_weight_max, Tensor[] ffn1_bias, Tensor[] ffn2_weight, Tensor[] ffn2_weight_max, Tensor[] ffn2_bias, Tensor[] cache_kv, Tensor[] pre_caches, Tensor rotary_pos_emb, Tensor time_step, Tensor seq_lengths, Tensor src_mask, Tensor gather_index, Tensor max_buffer, bool pre_layer_norm, int rotary_emb_dims, float epsilon, float dropout_rate, bool is_test, str dropout_implementation, str act_method, bool trans_qkvw, int ring_id, int gather_axis)
output : Tensor(out), Tensor[](cache_kv_out){out_linear_w.size()}
infer_meta :
func : FusedMultiTransformerXpuInferMeta
kernel :
func : fused_multi_transformer_xpu
data_type : x
optional : cache_kv, pre_caches, rotary_pos_emb, time_step, seq_lengths, src_mask, gather_index
- op : fused_partial_rope
args: (Tensor x, Tensor cos, Tensor sin)
output: Tensor(out)
infer_meta:
func: FusedPartialRopeInferMeta
kernel:
func: fused_partial_rope
backward: fused_partial_rope_grad
support_dygraph_mode : true
- op : fused_rotary_position_embedding
args : (Tensor q, Tensor k, Tensor v, Tensor sin, Tensor cos, Tensor position_ids, bool use_neox_rotary_style = true, bool time_major = false, float rotary_emb_base = 10000.0)
output : Tensor(out_q), Tensor(out_k), Tensor(out_v)
infer_meta :
func : FusedRopeInferMeta
spmd_rule : FusedRopeInferSpmd
optional : k, v, sin, cos, position_ids, out_k, out_v
kernel :
func : fused_rotary_position_embedding
data_type : q
backward: fused_rotary_position_embedding_grad
support_dygraph_mode : true
- op : fused_scale_bias_add_relu
args : (Tensor x1, Tensor scale1, Tensor bias1, Tensor x2, Tensor scale2, Tensor bias2, bool fuse_dual, bool exhaustive_search)
optional : scale2, bias2
output : Tensor(out)
infer_meta :
func : FusedScaleBiasAddReluInferMeta
kernel :
func : fused_scale_bias_add_relu
data_type : x1
- op : fused_scale_bias_relu_conv_bn
args : (Tensor x, Tensor w, Tensor scale, Tensor bias, Tensor bn_scale, Tensor bn_bias, Tensor input_running_mean, Tensor input_running_var, int[] paddings, int[] dilations, int[] strides, str padding_algorithm, int groups, str data_format, float momentum, float epsilon, bool fuse_prologue, bool exhaustive_search, int64_t accumulation_count = 0)
optional : scale, bias
output : Tensor(out), Tensor(out_running_mean), Tensor(out_running_var), Tensor(saved_mean), Tensor(saved_var), Tensor(eq_scale), Tensor(eq_bias)
infer_meta :
func : FusedScaleBiasReluConvBnInferMeta
kernel :
func : fused_scale_bias_relu_conv_bn
data_type : x
- op : fused_seqpool_cvm
args: (Tensor[] x, Tensor cvm, str pooltype = "SUM", float pad_value = 0.0, bool
use_cvm = true, int cvm_offset = 2)
output: Tensor[] (out){x.size()}
infer_meta:
func: FusedSeqpoolCvmInferMeta
kernel:
func: fused_seqpool_cvm
data_type: x
backward: fused_seqpool_cvm_grad
- op : fused_stack_quant
args : (Tensor[] x)
output : Tensor(out), Tensor(scale)
infer_meta :
func : FusedStackQuantInferMeta
kernel :
func : fused_stack_quant
data_type : x
support_dygraph_mode : true
- op : fused_stack_transpose_quant
args : (Tensor[] x)
output : Tensor(out), Tensor(scale)
infer_meta :
func : FusedStackTransposeQuantInferMeta
kernel :
func : fused_stack_transpose_quant
data_type : x
support_dygraph_mode : true
- op : fused_token_prune
args: (Tensor attn, Tensor x, Tensor mask, Tensor new_mask, bool keep_first_token
= true, bool keep_order = false)
output: Tensor (slimmed_x), Tensor (cls_inds)
infer_meta:
func: FusedTokenPruneInferMeta
kernel:
func: fused_token_prune
support_dygraph_mode : true
- op : fused_transpose_wlch_split_quant
args: (Tensor x, IntArray tokens_per_expert, bool pow_2_scales=false)
output: Tensor[](out){tokens_per_expert.size()}, Tensor[](scales){tokens_per_expert.size()}
infer_meta:
func: FusedTransposeWLCHSplitQuantInferMeta
kernel:
func: fused_transpose_wlch_split_quant
support_dygraph_mode : true
- op : fusion_group
args: (Tensor[] inputs, int[] outs_dtype = {}, int[] inputs_dtype = {}, str func_name = "", int type
= 0)
output: Tensor[] (outs){inputs.size()}
infer_meta:
func: FusionGroupInferMeta
kernel:
func: fusion_group
data_type : DataType::FLOAT32
- op : fusion_gru
args : (Tensor x, Tensor h0, Tensor weight_x, Tensor weight_h, Tensor bias, str activation = "tanh", str gate_activation = "sigmoid", bool is_reverse = false, bool use_seq = true, bool origin_mode = false, bool force_fp32_output = false)
output : Tensor(reordered_h0), Tensor(xx), Tensor(batched_input), Tensor(batched_out), Tensor(hidden)
infer_meta :
func : FusionGRUInferMeta
kernel :
func : fusion_gru
data_type : x
optional : h0, bias
intermediate : reordered_h0, xx, batched_input, batched_out
- op : fusion_lstm
args : (Tensor x, Tensor weight_x, Tensor weight_h, Tensor bias, Tensor h0, Tensor c0, bool use_peepholes=true, bool is_reverse=false, bool use_seq=true, str gate_activation="sigmoid", str cell_activation="tanh", str candidate_activation="tanh", float scale_data=1.0, float shift_data=0.0, float[] scale_weights={1.0}, bool force_fp32_output=false)
output : Tensor(hidden), Tensor(cell), Tensor(xx), Tensor(batched_input), Tensor(batched_hidden), Tensor(batched_cell), Tensor(reordered_h0), Tensor(reordered_c0), Tensor(checked_cell)
infer_meta :
func : FusionLstmInferMeta
kernel :
func : fusion_lstm
data_type : x
optional : h0, c0
intermediate : xx, batched_input, batched_hidden, batched_cell, reordered_h0, reordered_c0, checked_cell
- op : fusion_repeated_fc_relu
args : (Tensor x, Tensor[] w, Tensor[] bias)
output : Tensor[](relu_out){w.size()-1}, Tensor(out)
infer_meta :
func : FusionRepeatedFCReluInferMeta
kernel :
func : fusion_repeated_fc_relu
data_type: x
intermediate : relu_out
- op : fusion_seqconv_eltadd_relu
args : (Tensor x, Tensor filter, Tensor bias, int context_length, int context_start = 0, int context_stride = 1)
output : Tensor(out), Tensor(col_mat)
infer_meta :
func : FusionSeqConvEltAddReluInferMeta
kernel :
func : fusion_seqconv_eltadd_relu
data_type : x
intermediate : col_mat
- op : fusion_seqpool_concat
args: (Tensor[] x, str pooltype = "SUM", int axis = 1)
output: Tensor (out)
infer_meta:
func: FusionSeqpoolConcatInferMeta
kernel:
func: fusion_seqpool_concat
data_type: x
support_dygraph_mode : true
- op : fusion_seqpool_cvm_concat
args: (Tensor[] x, Tensor cvm, str pooltype = "SUM", bool use_cvm = true, int axis = 1)
output: Tensor (out)
infer_meta:
func: FusionSeqpoolCvmConcatInferMeta
kernel:
func: fusion_seqpool_cvm_concat
data_type: x
support_dygraph_mode : true
- op : fusion_squared_mat_sub
args : (Tensor x, Tensor y, float scalar = 1.0f)
output : Tensor(squared_x), Tensor(squared_y), Tensor(squared_xy), Tensor(out)
infer_meta :
func : FusionSquaredMatSubInferMeta
kernel :
func : fusion_squared_mat_sub
data_type : x
intermediate : squared_x, squared_y, squared_xy
- op : fusion_transpose_flatten_concat
args : (Tensor[] x, int[] trans_axis, int flatten_axis, int concat_axis)
output : Tensor(out)
infer_meta :
func : FusionTransposeFlattenConcatInferMeta
kernel :
func : fusion_transpose_flatten_concat
data_type : x
- op : gemm_epilogue
args : (Tensor input, Tensor w, Tensor bias, int in_num_col_dims = 1, str activation_type = "", bool padding_weights = false)
output : Tensor(out)
infer_meta :
func : FCInferMeta
kernel :
func : gemm_epilogue
data_type : input
optional : bias
support_dygraph_mode : true
- op : generate_sequence_xpu
args : (Tensor x, DataType dtype)
output : Tensor
infer_meta :
func : GenerateSequenceXPUInferMeta
kernel :
func : generate_sequence_xpu
data_type : dtype
- op : group_norm_silu_xpu
args : (Tensor x, Tensor scale, Tensor bias, int groups = -1, double epsilon = 1e-5)
output : Tensor(out)
infer_meta :
func : GroupNormalizeSiluXPUInferMeta
kernel :
func : group_norm_silu_xpu
data_type : x
- op : layer_norm_act_xpu
args : (Tensor x, Tensor scale, Tensor bias, int begin_norm_axis, float epsilon, int act_type, float act_param)
output : Tensor(out)
infer_meta :
func : LayerNormActXPUInferMeta
kernel :
func : layer_norm_act_xpu
data_type : x
- op : layer_norm_relu_xpu
args : (Tensor x, Tensor scale, Tensor bias, int begin_norm_axis, float epsilon = 1e-5)
output : Tensor(out)
infer_meta :
func : LayerNormalizeReluXPUInferMeta
kernel :
func : layer_norm_relu_xpu
data_type : x
optional : scale, bias
- op : mask_adaptive_xpu
args : (Tensor mask)
output : Tensor (length), Tensor (seq_lod), Tensor (pad_seq_len)
infer_meta :
func : MaskAdaptiveXPUInferMeta
kernel :
func : mask_adaptive_xpu
data_type : mask
# This op is implemented using CUDNN Frontend API, which serves as a supplement to
# legacy max pooling implementation. It shows better performance with NHWC layout and
# half precision.
- op : max_pool2d_v2
args : (Tensor x, int[] kernel_size, int[] strides= {1, 1}, int[] paddings = {0, 0}, str data_format = "NCHW", bool global_pooling = false, bool adaptive = false)
output : Tensor(out), Tensor(saved_idx)
infer_meta :
func : MaxPoolV2InferMeta
param : [x, kernel_size, strides, paddings, data_format, global_pooling, adaptive]
kernel :
func : max_pool2d_v2
param : [x, kernel_size, strides, paddings, data_format, global_pooling, adaptive]
intermediate: saved_idx
backward : max_pool2d_v2_grad
- op : multi_encoder_xpu
args : (Tensor x, Tensor[] fc_input_max, Tensor[] fc_weight, Tensor[] fc_weight_max, Tensor[] fc_bias, Tensor[] ln_scale, Tensor[] ln_bias, Tensor[] smooth_scale_weight, Tensor[] roformer_embedding, Tensor mask, Tensor seq_lod, Tensor max_seq_len, int layer_num, bool norm_before, int hidden_dim, int head_num, int size_per_head, int ffn_hidden_dim_scale, int act_type, int relative_type, int slice_idx, bool is_per_channel, int max_pos_len, float[] softmax_max_value, str[] quant_types)
output : Tensor(out), Tensor(x_fp16), Tensor(out_fp16)
infer_meta :
func : MultiEncoderXPUInferMeta
kernel :
func : multi_encoder_xpu
data_type : x
optional : mask, seq_lod, max_seq_len, x_fp16, out_fp16
- op : multihead_matmul
args : (Tensor input, Tensor w, Tensor bias, Tensor bias_qk, bool transpose_q = false, bool transpose_k = true, bool transpose_v = false, float alpha = 1.0f, int head_number = 1)
output : Tensor(out)
infer_meta :
func : MultiheadMatmulInferMeta
kernel :
func : multihead_matmul
data_type : input
optional : bias_qk
- op : pad2d_xpu
args : (Tensor x, int[] paddings, str mode = "constant", float pad_value = 0.0, str data_format = "NCHW")
output : Tensor(out)
infer_meta :
func : Pad2dXPUInferMeta
kernel :
func : pad2d_xpu
data_type : x
- op : qkv_attention_xpu
args : (Tensor q, Tensor k, Tensor v, Tensor q_max, Tensor k_max, Tensor v_max, Tensor qk_max, Tensor qkv_max, float alpha, int head_num, int head_dim, bool qkv_fc_fusion, DataType out_dtype)
output : Tensor(qkv)
infer_meta :
func : QKVAttentionXPUInferMeta
kernel :
func : qkv_attention_xpu
data_type : q
optional : q_max, k_max, v_max, qk_max, qkv_max
- op : qkv_unpack_mha
args : (Tensor q, Tensor k, Tensor v, Tensor src_mask)
output : Tensor(out)
infer_meta :
func : UnchangedInferMeta
param : [q]
kernel :
func : qkv_unpack_mha
data_type : q
optional : src_mask
- op : quantize_xpu
args : (Tensor x, DataType out_dtype, float scale = 1.0f)
output : Tensor(y)
infer_meta :
func : QuantizeXPUInferMeta
kernel :
func : quantize_xpu
data_type : x
- op : resnet_basic_block
args: (Tensor x, Tensor filter1, Tensor scale1, Tensor bias1, Tensor mean1, Tensor
var1, Tensor filter2, Tensor scale2, Tensor bias2, Tensor mean2, Tensor var2,
Tensor filter3, Tensor scale3, Tensor bias3, Tensor mean3, Tensor var3, int stride1
= 1, int stride2 = 1, int stride3 = 1, int padding1 = 0, int padding2 = 0, int
padding3 = 0, int dilation1 = 1, int dilation2 = 1, int dilation3 = 1, int group
= 1, float momentum = 0.9, float epsilon = 1e-5, str data_format = "NCHW", bool
has_shortcut = false, bool use_global_stats = false, bool is_test = false, bool
trainable_statistics = false, str act_type = "relu", bool find_conv_input_max
= true)
output: Tensor (out), Tensor (conv1), Tensor (saved_mean1), Tensor (saved_invstd1),
Tensor (mean1_out), Tensor (var1_out), Tensor (conv2), Tensor (conv2_input), Tensor
(saved_mean2), Tensor (saved_invstd2), Tensor (mean2_out), Tensor (var2_out),
Tensor (conv3), Tensor (saved_mean3), Tensor (saved_invstd3), Tensor (mean3_out),
Tensor (var3_out), Tensor (max_input1), Tensor (max_filter1), Tensor (max_input2),
Tensor (max_filter2), Tensor (max_input3), Tensor (max_filter3)
infer_meta:
func: ResnetBasicBlockInferMeta
kernel:
func: resnet_basic_block
data_type: x
optional: filter3, scale3, bias3, mean3, var3, conv3, saved_mean3, saved_invstd3,
mean3_out, var3_out, max_input1, max_filter1, max_input2, max_filter2, max_input3,
max_filter3
backward: resnet_basic_block_grad
support_dygraph_mode: true
- op : resnet_unit
args: (Tensor x, Tensor filter_x, Tensor scale_x, Tensor bias_x, Tensor mean_x,
Tensor var_x, Tensor z, Tensor filter_z, Tensor scale_z, Tensor bias_z, Tensor
mean_z, Tensor var_z, int stride = 1, int stride_z = 1, int padding = 0, int dilation
= 1, int group = 1, float momentum = 0.9, float epsilon = 1e-5, str data_format
= "NHWC", bool fuse_add = false, bool has_shortcut = false, bool use_global_stats
= false, bool is_test = false, bool use_addto = false, str act_type = "relu")
output: Tensor (out), Tensor (bit_mask), Tensor (conv_x), Tensor (saved_mean_x),
Tensor (saved_invstd_x), Tensor (running_mean_x), Tensor (running_var_x), Tensor
(conv_z), Tensor (saved_mean_z), Tensor (saved_invstd_z), Tensor (running_mean_z),
Tensor (running_var_z)
infer_meta:
func: ResnetUnitInferMeta
kernel:
func: resnet_unit
data_type: x
optional: z, filter_z, scale_z, bias_z, mean_z, var_z, conv_z, saved_mean_z, saved_invstd_z,
running_mean_z, running_var_z
backward: resnet_unit_grad
support_dygraph_mode : true
- op : roformer_relative_embedding_xpu
args : (Tensor x, Tensor sin_emb, Tensor cos_emb, int max_pos_len)
output : Tensor(out)
infer_meta :
func : RoformerRelativePosXPUInferMeta
kernel :
func : roformer_relative_embedding_xpu
data_type : x
- op : self_dp_attention
args : (Tensor x, float alpha = 1.0f, int head_number = 1)
output : Tensor(out)
infer_meta :
func : SelfDPAttenInferMeta
kernel :
func : self_dp_attention
data_type : x
- op : sequence_unpad_xpu
args : (Tensor x, Tensor length)
output : Tensor(out)
infer_meta :
func : SequenceUnpadXPUInferMeta
kernel :
func : sequence_unpad_xpu
data_type : x
- op : sine_pos_xpu
args : (Tensor x, Tensor y)
output : Tensor(out)
infer_meta :
func : SinePosXPUInferMeta
kernel :
func : sine_pos_xpu
data_type : x
- op : skip_layernorm
args : (Tensor x, Tensor y, Tensor scale, Tensor bias, float epsilon, int begin_norm_axis)
output : Tensor(out)
infer_meta :
func : SkipLayerNormInferMeta
kernel :
func : skip_layernorm
data_type : x
- op : spatial_transformer_resblock_xpu
args : (Tensor x, Tensor[] x_max, Tensor[] conv_bias, Tensor[] conv_filter, Tensor[] conv_filter_max, Tensor[] gn_bias, Tensor[] gn_scale, int[] dilations, int[] paddings, int[] strides, float[] gn_eps, int[] gn_groups, int[] groups, bool conv_fix, bool has_silu_fc_input, bool include_silu)
output : Tensor(out), Tensor(out_max)
infer_meta :
func : SpatialTransformerResblockXPUInferMeta
kernel :
func : spatial_transformer_resblock_xpu
data_type : x
- op : squeeze_excitation_block
args : (Tensor x, Tensor filter, Tensor filter_max, Tensor bias, Tensor branch, int[] act_type, float[] act_param, int[] filter_dims)
output : Tensor(out)
infer_meta :
func : SqueezeExcitationInferMeta
kernel :
func : squeeze_excitation_block
data_type : x
optional : bias, branch
- op : variable_length_memory_efficient_attention
args : (Tensor query, Tensor key, Tensor value, Tensor seq_lens, Tensor kv_seq_lens, Tensor mask, float scale, bool causal, int pre_cache_length)
output : Tensor
infer_meta :
func : VariableLengthMemoryEfficientAttentionInferMeta
kernel :
func : variable_length_memory_efficient_attention
data_type : query
optional : mask
support_dygraph_mode : true
- op : yolo_box_xpu
args : (Tensor x, Tensor x_max, Tensor grid, Tensor stride, Tensor anchor_grid, float offset)
output : Tensor(out), Tensor(out_max)
infer_meta :
func : YoloBoxXPUInferMeta
kernel :
func : yolo_box_xpu
data_type : x
optional : x_max
- op: add_group_norm_silu
args : (Tensor x,Tensor residual, Tensor scale, Tensor bias, double epsilon = 1e-5, int groups = -1, str data_format = "NCHW", str activation = "")
output : Tensor(y), Tensor(residual_out), Tensor(mean), Tensor(variance)
infer_meta :
func : AddGroupNormSiluInferMeta
kernel :
func : add_group_norm_silu
data_type : x
optional : scale, bias, residual, residual_out
support_dygraph_mode : true
interfaces : paddle::dialect::LayoutTransformationInterface
- op: fused_act_dequant
args: (Tensor x, Tensor x_scale)
output: Tensor(out)
infer_meta:
func: FusedActDequantInferMeta
kernel:
func: fused_act_dequant
data_type: x
support_dygraph_mode: true
- op: fused_embedding_fc_lstm
args: (Tensor ids, Tensor embeddings, Tensor weight_h, Tensor bias, Tensor h0, Tensor
c0, bool use_peepholes = true, bool is_reverse = false, bool use_seq = true, str
gate_activation = "sigmoid", str cell_activation = "tanh", str candidate_activation
= "tanh")
output: Tensor (hidden), Tensor (cell), Tensor (xx), Tensor (batched_input), Tensor
(batched_hidden), Tensor (batched_cell), Tensor (reordered_h0), Tensor (reordered_c0)
infer_meta:
func: FusedEmbeddingFcLstmInferMeta
kernel:
func: fused_embedding_fc_lstm
data_type: embeddings
optional: h0, c0
intermediate: xx, batched_input, batched_hidden, batched_cell, reordered_h0, reordered_c0
- op: fused_swiglu_weighted_bwd
args: (Tensor o1, Tensor do2_s, Tensor unzipped_probs)
output: Tensor(do1), Tensor(probs_grad), Tensor(o2_s)
infer_meta:
func: FusedSwigluWeightedBwdInferMeta
kernel:
func: fused_swiglu_weighted_bwd
data_type: o1
support_dygraph_mode : true
- op: fused_transpose_split_quant
args: (Tensor x, Tensor input_scales, IntArray tokens_per_expert, bool pow_2_scales=false)
output: Tensor[](out){tokens_per_expert.size()}, Tensor[](scales){tokens_per_expert.size()}
infer_meta:
func: FusedTransposeSplitQuantInferMeta
kernel:
func: fused_transpose_split_quant
optional: input_scales
support_dygraph_mode : true
- op: fused_weighted_swiglu_act_quant
args: (Tensor x, Tensor prob, bool using_pow2_scaling)
output: Tensor(out), Tensor(scale)
infer_meta:
func: FusedWeightedSwigluActQuantInferMeta
kernel:
func: fused_weighted_swiglu_act_quant
optional: prob
support_dygraph_mode : true