947 lines
40 KiB
YAML
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
|