Skip to content

Update Ops documentation for ONNX 1.16.2 #2942

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 2 commits into from
Sep 16, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
36 changes: 18 additions & 18 deletions docs/SupportedONNXOps-cpu.md
Original file line number Diff line number Diff line change
Expand Up @@ -36,8 +36,8 @@ Onnx-mlir currently supports ONNX operations targeting up to opset 21. Limitatio
| **BitwiseOr** |18 - * | | |
| **BitwiseXor** |18 - * | | |
| **BlackmanWindow** |none | | | |
| **Cast** |6 - * |Cast only between float and double types. Only ppc64le and MacOS platforms support float16. | |
| **CastLike** |19 - * |CastLike only between float and double types. Only ppc64le and MacOS platforms support float16. | |
| **Cast** |6 - * |Cast only between float and double types. Only ppc64le and MacOS platforms support float16. Does not support int4 and uint4. | |
| **CastLike** |19 - * |CastLike only between float and double types. Only ppc64le and MacOS platforms support float16. Does not support int4 and uint4. | |
| **CastMap** |none | | | |
| **CategoryMapper** |none | | | |
| **Ceil** |6 - * | | |
Expand All @@ -48,8 +48,8 @@ Onnx-mlir currently supports ONNX operations targeting up to opset 21. Limitatio
| **Compress** |9 - * | | |
| **Concat** |6 - * | | |
| **ConcatFromSequence** |none | | | |
| **Constant** |6 - * | | |
| **ConstantOfShape** |9 - * | | |
| **Constant** |6 - * |Does not support int4 and uint4. | |
| **ConstantOfShape** |9 - * |Does not support int4 and uint4. | |
| **Conv** |6 - * | | |
| **ConvInteger** |none | | | |
| **ConvTranspose** |6 - * |Spatial dimensions (H and W in input `X`, and kH and kW in input `W`) must be static dimension. | |
Expand All @@ -59,7 +59,7 @@ Onnx-mlir currently supports ONNX operations targeting up to opset 21. Limitatio
| **DFT** |17 - * | | |
| **DeformConv** |none | | | |
| **DepthToSpace** |13 - * | | |
| **DequantizeLinear** |10 - * |Only support for per-tensor or layer dequantization. No support for per-axis dequantization. | |
| **DequantizeLinear** |10 - * |Only support for per-tensor or layer dequantization. No support for per-axis dequantization. Does not support int4 and uint4. | |
| **Det** |none | | | |
| **DictVectorizer** |none | | | |
| **Div** |6 - * |No support for short integers. | |
Expand All @@ -73,7 +73,7 @@ Onnx-mlir currently supports ONNX operations targeting up to opset 21. Limitatio
| **Expand** |8 - * |Input `shape` must have static shape. | |
| **EyeLike** |none | | | |
| **FeatureVectorizer** |none | | | |
| **Flatten** |6 - * | | |
| **Flatten** |6 - * |Does not support int4 and uint4. | |
| **Floor** |6 - * | | |
| **GRU** |7 - * |W, B and R must be constants. | |
| **Gather** |6 - * | | |
Expand All @@ -94,8 +94,8 @@ Onnx-mlir currently supports ONNX operations targeting up to opset 21. Limitatio
| **HardSigmoid** |6 - * | | |
| **HardSwish** |none | | | |
| **Hardmax** |6 - * | | |
| **Identity** |16 - * |Sequence identity not supported. | |
| **If** |16 - * |Sequence and Optional outputs are not supported. | |
| **Identity** |16 - * |Sequence identity not supported. Does not support int4 and uint4. | |
| **If** |16 - * |Sequence and Optional outputs are not supported. Does not support int4 and uint4. | |
| **Imputer** |none | | | |
| **InstanceNormalization** |6 - * | | |
| **IsInf** |20 - * |Currently no support for float16 infinity value. Only for float32 and float64. | |
Expand All @@ -111,7 +111,7 @@ Onnx-mlir currently supports ONNX operations targeting up to opset 21. Limitatio
| **LinearRegressor** |none | | | |
| **Log** |6 - * | | |
| **LogSoftmax** |13 - * |Axis 0, 1, and default currently disabled due to changes in ONNX 1.8.1/Opset 13. |Temporally removed due to changes in onnx 1.8.1. |
| **Loop** |6 - * |Input must have static shape. | |
| **Loop** |6 - * |Input must have static shape. Does not support int4 and uint4. | |
| **LpNormalization** |none | | | |
| **LpPool** |none | | | |
| **MatMul** |6 - * | | |
Expand Down Expand Up @@ -142,11 +142,11 @@ Onnx-mlir currently supports ONNX operations targeting up to opset 21. Limitatio
| **OptionalHasElement** |none | | | |
| **Or** |7 - * | | |
| **PRelu** |6 - * | | |
| **Pad** |6 - * |axes input not supported. | |
| **Pad** |6 - * |axes input not supported. Does not support int4 and uint4. | |
| **Pow** |7 - * |No support for power with integer types. | |
| **QLinearConv** |none | | | |
| **QLinearMatMul** |none | | | |
| **QuantizeLinear** |10 - * |Do not support per-axis and i8 quantization. | |
| **QuantizeLinear** |10 - * |Does not support per-axis and i8 quantization. Does not support int4 and uint4. | |
| **RNN** |7 - * |W, B and R must be constants. | |
| **RandomNormal** |none | | | |
| **RandomNormalLike** |none | | | |
Expand All @@ -165,7 +165,7 @@ Onnx-mlir currently supports ONNX operations targeting up to opset 21. Limitatio
| **ReduceSum** |6 - * |Default axis and do_not_keep_dim not supported. |Default axis and do_not_keep_dim temporarily removed due to changes in onnx 1.8.1. |
| **ReduceSumSquare** |13 - * |Default axis and do_not_keep_dim not supported. | |
| **Relu** |6 - * | | |
| **Reshape** |6 - * |allowzero not supported. Input `shape` must have static dimension. | |
| **Reshape** |6 - * |allowzero not supported. Input `shape` must have static dimension. Does not support int4 and uint4. | |
| **Resize** |10 - * |Missing support for linear, cubic, crop, pytorch_half_pixel, and floor. Attributes antialias, axes and keep_aspect_ratio_policy are not supported. `scales` and `sizes` must have static dimension. | |
| **ReverseSequence** |10 - * | | |
| **RoiAlign** |none | | | |
Expand All @@ -174,7 +174,7 @@ Onnx-mlir currently supports ONNX operations targeting up to opset 21. Limitatio
| **SVMClassifier** |none | | | |
| **SVMRegressor** |none | | | |
| **Scaler** |none | | | |
| **Scan** |8 - * |Does not support dynamic shapes. |Precision issue with newer opset, maybe just unsupported. Dynamic shape?. |
| **Scan** |8 - * |Does not support dynamic shapes. Does not support int4 and uint4. |Precision issue with newer opset, maybe just unsupported. Dynamic shape?. |
| **Scatter** |none | | | |
| **ScatterElements** |11 - * |Does not support duplicate indices. | |
| **ScatterND** |11 - * |Does not support scatternd add/multiply. | |
Expand All @@ -186,13 +186,13 @@ Onnx-mlir currently supports ONNX operations targeting up to opset 21. Limitatio
| **SequenceInsert** |11 - * |Does not support unranked sequence element. | |
| **SequenceLength** |none | | | |
| **SequenceMap** |none | | | |
| **Shape** |15 - * |Does not support start and end attributes. | |
| **Shape** |15 - * |Does not support start and end attributes. Does not support int4 and uint4. | |
| **Shrink** |none | | | |
| **Sigmoid** |6 - * | | |
| **Sign** |9 - * | | |
| **Sin** |7 - * | | |
| **Sinh** |9 - * | | |
| **Size** |13 - * | | |
| **Size** |13 - * |Does not support int4 and uint4. | |
| **Slice** |13 - * |Axis must be a constant argument. |Add tests to slices, currently have none. |
| **Softmax** |6 - * | | |
| **SoftmaxCrossEntropyLoss** |none | | | |
Expand All @@ -202,7 +202,7 @@ Onnx-mlir currently supports ONNX operations targeting up to opset 21. Limitatio
| **Split** |6 - * |Does not support static and dynamic shape, zero size splits. |Temporally removed due to changes in onnx 1.8.1. |
| **SplitToSequence** |none | | | |
| **Sqrt** |6 - * | | |
| **Squeeze** |6 - * |Does not support static and dynamic shape. |Temporally removed due to changes in onnx 1.8.1. |
| **Squeeze** |6 - * |Does not support static and dynamic shape. Does not support int4 and uint4. |Temporally removed due to changes in onnx 1.8.1. |
| **StringNormalizer** |none | | | |
| **Sub** |6 - * |Does not support short integers. | |
| **Sum** |6 - * | | |
Expand All @@ -212,12 +212,12 @@ Onnx-mlir currently supports ONNX operations targeting up to opset 21. Limitatio
| **ThresholdedRelu** |none | | | |
| **Tile** |6 - * | | |
| **TopK** |10 - * |`K`, the number of top elements to retrieve, must have static shape. | |
| **Transpose** |6 - * | | |
| **Transpose** |6 - * |Does not support int4 and uint4. | |
| **TreeEnsembleClassifier** |none | | | |
| **TreeEnsembleRegressor** |none | | | |
| **Trilu** |14 - * | | |
| **Unique** |11 - * | | |
| **Unsqueeze** |6 - * |Does not support static and dynamic shape. |Temporally removed due to changes in onnx 1.8.1. |
| **Unsqueeze** |6 - * |Does not support static and dynamic shape. Does not support int4 and uint4. |Temporally removed due to changes in onnx 1.8.1. |
| **Upsample** |7 - * |Input `X` and `Y` must have static shape. | |
| **Where** |9 - * | | |
| **Xor** |7 - * | | |
Expand Down
31 changes: 18 additions & 13 deletions test/backend/inference_backend.py
Original file line number Diff line number Diff line change
Expand Up @@ -395,7 +395,7 @@ def get_test_models():
},
# ==OP== Cast
# ==MIN== 6
# ==LIM== Cast only between float and double types. Only ppc64le and MacOS platforms support float16.
# ==LIM== Cast only between float and double types. Only ppc64le and MacOS platforms support float16. Does not support int4 and uint4.
"test_cast_FLOAT_to_DOUBLE_cpu": {
STATIC_SHAPE: {},
DYNAMIC_SHAPE: {-1: {-1}},
Expand Down Expand Up @@ -434,7 +434,7 @@ def get_test_models():
"test_cast_STRING_to_FLOAT_cpu": {}, # appears unsupported at this time
# ==OP== CastLike
# ==MIN== 19
# ==LIM== CastLike only between float and double types. Only ppc64le and MacOS platforms support float16.
# ==LIM== CastLike only between float and double types. Only ppc64le and MacOS platforms support float16. Does not support int4 and uint4.
"test_castlike_FLOAT_to_DOUBLE_cpu": {
STATIC_SHAPE: {},
DYNAMIC_SHAPE: {-1: {-1}},
Expand Down Expand Up @@ -615,10 +615,12 @@ def get_test_models():
},
# ==OP== Constant
# ==MIN== 1
# ==LIM== Does not support int4 and uint4.
# By def, no dynamic shapes.
"test_constant_cpu": {STATIC_SHAPE: {}},
# ==OP== ConstantOfShape
# ==MIN== 9
# ==LIM== Does not support int4 and uint4.
# By def, no dynamic shapes.
"test_constantofshape_float_ones_cpu": {STATIC_SHAPE: {}},
"test_constantofshape_int_zeros_cpu": {STATIC_SHAPE: {}},
Expand Down Expand Up @@ -790,7 +792,7 @@ def get_test_models():
},
# ==OP== DequantizeLinear
# ==MIN== 10
# ==LIM== Only support for per-tensor or layer dequantization. No support for per-axis dequantization.
# ==LIM== Only support for per-tensor or layer dequantization. No support for per-axis dequantization. Does not support int4 and uint4.
# "test_dequantizelinear_axis_cpu": {STATIC_SHAPE:{}, DYNAMIC_SHAPE:{-1:{-1}}, CONSTANT_INPUT:{-1}},
"test_dequantizelinear_cpu": {
STATIC_SHAPE: {},
Expand Down Expand Up @@ -981,6 +983,7 @@ def get_test_models():
},
# ==OP== Flatten
# ==MIN== 1
# ==LIM== Does not support int4 and uint4.
"test_flatten_axis0_cpu": {
STATIC_SHAPE: {},
DYNAMIC_SHAPE: {-1: {-1}},
Expand Down Expand Up @@ -1358,7 +1361,7 @@ def get_test_models():
},
# ==OP== Identity
# ==MIN== 16
# ==LIM== Sequence identity not supported.
# ==LIM== Sequence identity not supported. Does not support int4 and uint4.
"test_identity_cpu": {
STATIC_SHAPE: {},
DYNAMIC_SHAPE: {-1: {-1}},
Expand All @@ -1368,7 +1371,7 @@ def get_test_models():
# "test_identity_opt_cpu": {STATIC_SHAPE:{}, DYNAMIC_SHAPE:{-1:{-1}}, CONSTANT_INPUT:{-1}},
# ==OP== If
# ==MIN== 16
# ==LIM== Sequence and Optional outputs are not supported.
# ==LIM== Sequence and Optional outputs are not supported. Does not support int4 and uint4.
"test_if_cpu": {
STATIC_SHAPE: {},
DYNAMIC_SHAPE: {-1: {-1}},
Expand Down Expand Up @@ -1785,7 +1788,7 @@ def get_test_models():
},
# ==OP== Loop
# ==MIN== 1
# ==LIM== Input must have static shape.
# ==LIM== Input must have static shape. Does not support int4 and uint4.
"test_loop11_cpu": {
STATIC_SHAPE: {},
# Need to enable ConvertSeqToMemrefPass for dynamic test.
Expand Down Expand Up @@ -2264,7 +2267,7 @@ def get_test_models():
},
# ==OP== Pad
# ==MIN== 2
# ==LIM== axes input not supported
# ==LIM== axes input not supported. Does not support int4 and uint4.
"test_constant_pad_cpu": {
STATIC_SHAPE: {},
DYNAMIC_SHAPE: {0: {-1}},
Expand Down Expand Up @@ -2317,7 +2320,7 @@ def get_test_models():
},
# ==OP== QuantizeLinear
# ==MIN== 10
# ==LIM== Do not support per-axis and i8 quantization.
# ==LIM== Does not support per-axis and i8 quantization. Does not support int4 and uint4.
# "test_quantizelinear_axis_cpu": {STATIC_SHAPE:{}, DYNAMIC_SHAPE:{-1:{-1}}, CONSTANT_INPUT:{-1}},
"test_quantizelinear_cpu": {
STATIC_SHAPE: {},
Expand Down Expand Up @@ -2623,7 +2626,7 @@ def get_test_models():
},
# ==OP== Reshape
# ==MIN== 5
# ==LIM== allowzero not supported. Input `shape` must have static dimension.
# ==LIM== allowzero not supported. Input `shape` must have static dimension. Does not support int4 and uint4.
"test_reshape_extended_dims_cpu": {
STATIC_SHAPE: {},
DYNAMIC_SHAPE: {0: {-1}},
Expand Down Expand Up @@ -2802,7 +2805,7 @@ def get_test_models():
},
# ==OP== Scan
# ==MIN== 8
# ==LIM== Does not support dynamic shapes.
# ==LIM== Does not support dynamic shapes. Does not support int4 and uint4.
# ==TODO== Precision issue with newer opset, maybe just unsupported. Dynamic shape?
# "test_scan_sum_cpu": {STATIC_SHAPE:{}},
"test_scan9_sum_cpu": {STATIC_SHAPE: {}},
Expand Down Expand Up @@ -2859,7 +2862,7 @@ def get_test_models():
# "test_sequence_insert_at_back_cpu": {STATIC_SHAPE:{}, DYNAMIC_SHAPE:{-1:{-1}}, CONSTANT_INPUT:{-1}},
# ==OP== Shape
# ==MIN== 15
# ==LIM== Does not support start and end attributes.
# ==LIM== Does not support start and end attributes. Does not support int4 and uint4.
"test_shape_cpu": {
STATIC_SHAPE: {},
DYNAMIC_SHAPE: {-1: {-1}},
Expand Down Expand Up @@ -2915,6 +2918,7 @@ def get_test_models():
},
# ==OP== Size
# ==MIN== 13
# ==LIM== Does not support int4 and uint4.
"test_size_cpu": {
STATIC_SHAPE: {},
DYNAMIC_SHAPE: {-1: {-1}},
Expand Down Expand Up @@ -3042,7 +3046,7 @@ def get_test_models():
},
# ==OP== Squeeze
# ==MIN== 1
# ==LIM== Does not support static and dynamic shape.
# ==LIM== Does not support static and dynamic shape. Does not support int4 and uint4.
# ==TODO== Temporally removed due to changes in onnx 1.8.1
# "test_squeeze_cpu": {STATIC_SHAPE:{}, DYNAMIC_SHAPE:{-1:{-1}}, CONSTANT_INPUT:{-1}},
# "test_squeeze_negative_axes_cpu": {STATIC_SHAPE:{}, DYNAMIC_SHAPE:{-1:{-1}}, CONSTANT_INPUT:{-1}},
Expand Down Expand Up @@ -3141,6 +3145,7 @@ def get_test_models():
},
# ==OP== Transpose
# ==MIN== 1
# ==LIM== Does not support int4 and uint4.
"test_transpose_default_cpu": {
STATIC_SHAPE: {},
DYNAMIC_SHAPE: {-1: {-1}},
Expand Down Expand Up @@ -3286,7 +3291,7 @@ def get_test_models():
},
# ==OP== Unsqueeze
# ==MIN== 1
# ==LIM== Does not support static and dynamic shape.
# ==LIM== Does not support static and dynamic shape. Does not support int4 and uint4.
# ==TODO== Temporally removed due to changes in onnx 1.8.1
# "test_unsqueeze_axis_0_cpu": {STATIC_SHAPE:{}, DYNAMIC_SHAPE:{-1:{-1}}, CONSTANT_INPUT:{-1}},
# "test_unsqueeze_axis_1_cpu": {STATIC_SHAPE:{}, DYNAMIC_SHAPE:{-1:{-1}}, CONSTANT_INPUT:{-1}},
Expand Down
Loading