支持的aten API清单

以下清单中的aten API能力均对等eager模式下aten API能力。

表1 aten API清单

aten API名称

约束

torch.ops.aten._native_batch_norm_legit_functional.default

支持fp16,fp32

track_running_stats为True

torch.ops.aten._native_batch_norm_legit_no_training.default

支持fp16,fp32

torch.ops.aten._softmax.default

支持fp32

torch.ops.aten._softmax_backward_data.default

支持fp32

torch.ops.aten._to_copy.default

支持fp16,fp32,bf16,int8,int16,int32,int64,uint8,bool

torch.ops.aten.addmm.default

支持fp16,fp32

torch.ops.aten.bernoulli.default

支持fp16,fp32

torch.ops.aten.bernoulli.p

torch.ops.aten.bernoulli.Tensor

torch.ops.aten.clone.default

支持fp16,fp32,bf16,int8,int16,int32,int64,uint8

torch.ops.aten.div.Tensor

支持fp16,fp32,bf16,int8,int16,int32,int64,uint8,bool

torch.ops.aten.div.Scalar

torch.ops.aten.div.Tensor_mode

torch.ops.aten.div.Scalar_mode

torch.ops.aten.div.int

torch.ops.aten.div.float

torch.ops.aten.div.default

torch.ops.aten.empty_like.default

支持fp16,fp32,int8,int16,int32,int64,uint8

torch.ops.aten.expand.default

支持fp16,fp32,bf16,int16,int32,int64

torch.ops.aten.gelu.default

支持fp16,fp32,bf16

torch.ops.aten.gelu_backward.default

支持fp16,fp32,bf16

torch.ops.aten.gelu_backward.grad_input

torch.ops.aten.hardswish.default

支持fp16,fp32

torch.ops.aten.leaky_relu.default

支持fp16,fp32,bf16

torch.ops.aten.mean.default

支持fp16,fp32,bf16,complex64,complex128

torch.ops.aten.mean.dim

torch.ops.aten.native_batch_norm_backward.default

支持fp16,fp32

track_running_stats为True

torch.ops.aten.native_layer_norm.default

支持fp16,fp32,bf16

torch.ops.aten.native_layer_norm_backward.default

支持fp16,fp32,bf16

torch.ops.aten.new_empty_strided.default

-

torch.ops.aten.permute.default

支持fp16,fp32,bf16,int8,int16,int32,int64,uint8,bool,complex64,complex128

torch.ops.aten.select.int

支持fp32

torch.ops.aten.select_backward.default

支持fp32

torch.ops.aten.slice.Tensor

支持fp16,fp32,bf16

torch.ops.aten.slice_backward.default

支持fp16,fp32,bf16

torch.ops.aten.sum.bool

支持fp16,fp32,bf16,int8,int16,int32,int64,uint8,bool

torch.ops.aten.sum.complex

torch.ops.aten.sum.default

torch.ops.aten.sum.dim_IntList

torch.ops.aten.sum.float

torch.ops.aten.sum.int

torch.ops.aten.t.default

支持fp16,fp32,bf16,int8,int16,int32,int64,uint8

torch.ops.aten.threshold_backward.default

支持fp32,int8,int16,int32,int64,uint8

torch.ops.aten.max_pool2d_with_indices_backward.default

支持fp16,fp32,bf16

input为四维

torch.ops.aten.max_pool2d_with_indices_backward.grad_input

torch.ops.aten.hardswish_backward.default

支持fp16,fp32,bf16

参数约束 inplace=False

torch.ops.aten.hardtanh.default

min_val和max_val为浮点型,input支持fp16,fp32,fp64,bf16

min_val和max_val为整形时,input支持int32,int64

torch.ops.aten.slice_scatter.default

支持fp16,fp32,fp64,bf16,int8,int16,int32,int64,uint8,bool

torch.ops.aten.avg_pool2d_backward.default

支持fp16,fp32

torch.ops.aten.native_group_norm_backward.default

支持fp16,fp32,bf16

torch.ops.aten._unsafe_index.Tensor

支持fp16,fp32,int8,int32,int64

torch.ops.aten.sigmoid.default

支持fp16,fp32,fp64,bf16

torch.ops.aten._native_batch_norm_legit.default

支持fp16,fp32

torch.ops.aten._native_batch_norm_legit.no_stats

支持fp16,fp32

参数约束track_running_stats=False

torch.ops.aten.index_select.default

支持fp16,fp32,fp64,bf16,int8,int16,int32,int64,uint8,bool

torch.ops.aten.sub.default

支持fp16,fp32,fp64,bf16,int8,int16,int32,int64,uint8

torch.ops.aten.sub.float

torch.ops.aten.sub.float_int

torch.ops.aten.sub.int

torch.ops.aten.sub.int_float

torch.ops.aten.sub.Scalar

torch.ops.aten.sub.Tensor

torch.ops.aten.fill.Scalar

支持fp16,fp32,bf16,int8,int16,int32,int64,uint8,bool,complex64,complex128

torch.ops.aten.fill.Tensor

torch.ops.aten.new_zeros.default

支持fp16,fp32,fp64,bf16,int8,int16,int32,int64,uint8,bool,complex64,complex128

torch.ops.aten.mul.complex

支持fp16,fp32,bf16,int8,int16,int32,int64,uint8,bool,complex64,complex128

torch.ops.aten.mul.complex_float

torch.ops.aten.mul.complex_int

torch.ops.aten.mul.default

torch.ops.aten.mul.float

torch.ops.aten.mul.float_complex

torch.ops.aten.mul.float_int

torch.ops.aten.mul.int

torch.ops.aten.mul.int_complex

torch.ops.aten.mul.int_float

torch.ops.aten.mul.Scalar

torch.ops.aten.mul.Tensor

torch.ops.aten.hardsigmoid.default

支持fp16,fp32

torch.ops.aten.clamp.default

支持fp16,fp32,bf16,int8,int16,int32,int64,uint8

参数约束min<max

torch.ops.aten.clamp.Tensor

torch.ops.aten.alias.default

支持fp16,fp32,fp64,bf16,int8,int16,int32,int64,uint8,bool

torch.ops.aten.new_ones.default

支持fp16,fp32,fp64,bf16,int8,int16,int32,int64,uint8,bool

torch.ops.aten.embedding_dense_backward.default

支持int32,int64

参数约束Max_norm=False, Sparse=False, scale_grad_by_Freq=False 前向不支持, _freeze=False

torch.ops.aten.sigmoid_backward.default

支持fp16,fp32,fp64,bf16

torch.ops.aten.sigmoid_backward.grad_input

torch.ops.aten.hardtanh_backward.default

支持fp16,fp32,bf16

torch.ops.aten.hardtanh_backward.grad_input

torch.ops.aten.stack.default

支持fp16,fp32,fp64,bf16,int8,int16,int32,int64,uint8

torch.ops.aten.unbind.int

支持fp16,fp32,fp64,bf16,int8,int16,int32,int64,uint8,bool

torch.ops.aten.reflection_pad2d.default

支持fp16,fp32,bf16,int16,int32,int64

torch.ops.aten.leaky_relu_backward.default

支持fp16,fp32,bf16

torch.ops.aten.leaky_relu_backward.grad_input

torch.ops.aten.constant_pad_nd.default

支持fp16,fp32,bf16,int32,int64,bool

参数约束inplace=False

torch.ops.aten.native_group_norm.default

支持fp16,fp32,bf16

torch.ops.aten.max_pool2d_with_indices.default

支持fp16,fp32

参数约束return_indice=False, dynamic=True

torch.ops.aten.avg_pool2d.default

支持fp16,fp32

参数约束dynamic=False, kernelsize≤255, stride≤63

torch.ops.aten.convolution.default(torch.nn.Conv2d)

支持fp16,fp32

torch.ops.aten.convolution_backward.default(torch.nn.Conv2d)

支持fp16,fp32

torch.ops.aten.convolution.default(torch.nn.Conv1d)

支持fp16,fp32

torch.ops.aten.convolution_backward.default(torch.nn.Conv1d)

支持fp16,fp32

torch.ops.aten.convolution.default(torch.nn.ConvTranspose1d)

支持fp16,fp32

torch.ops.aten.convolution_backward.default(torch.nn.ConvTranspose1d)

支持fp16,fp32

torch.ops.aten.convolution.default(torch.nn.ConvTranspose2d)

支持fp16,fp32

torch.ops.aten.convolution_backward.default(torch.nn.ConvTranspose2d)

支持fp16,fp32

如果自定义模型用到的aten API不在上述清单中,说明对应的API能力可能不完备,用户需根据情况进行converter功能拓展,具体请参考LINK