Onnx-mlir currently supports ONNX operations targeting up to opset 18. Limitations are listed when applicable.
- Operations are defined by the ONNX Standard.
- Opset indicates, for each operation, the ONNX opset that (1) last modified that operation and (2) is supported by the current version of onnx-mlir. For example, "Add" was modified in Opset 14 and carries on unmodified to Opset 16. If onnx-mlir supports Opset 14, we thus list "14" as the Opset associated with the "Add" operation.
| Op | Up to Opset | Limitations | Notes |
|---|---|---|---|
| Abs | 13 | ||
| Acos | 7 | ||
| Acosh | 9 | ||
| Adagrad | unsupported | ||
| Adam | unsupported | ||
| Add | 14 | No support for short integers. | |
| And | 7 | ||
| ArgMax | 13 | ||
| ArgMin | 13 | ||
| ArrayFeatureExtractor | unsupported | ||
| Asin | 7 | ||
| Asinh | 9 | ||
| Atan | 7 | ||
| Atanh | 9 | ||
| AveragePool | 11 | ||
| BatchNormalization | 15 | Training not supported. | |
| Bernoulli | unsupported | ||
| Binarizer | unsupported | ||
| BitShift | unsupported | ||
| BitwiseAnd | 18 | ||
| BitwiseNot | unsupported | ||
| BitwiseOr | 18 | ||
| BitwiseXor | 18 | ||
| BlackmanWindow | unsupported | ||
| Cast | 13 | Cast only between float and double types. | |
| CastLike | unsupported | ||
| CastMap | unsupported | ||
| CategoryMapper | unsupported | ||
| Ceil | 13 | ||
| Celu | unsupported | ||
| CenterCropPad | unsupported | ||
| Clip | 13, 12, 11, 6 | No support for short integers. | |
| Col2Im | unsupported | ||
| Compress | 11 | ||
| Concat | 13 | ||
| ConcatFromSequence | unsupported | ||
| Constant | 13 | ||
| ConstantOfShape | 9 | ||
| Conv | 11 | ||
| ConvInteger | unsupported | ||
| ConvTranspose | 11 | Unknown dimension in spatial dimensions (such as H and W) not supported. | |
| Cos | 7 | ||
| Cosh | 9 | ||
| CumSum | 14 | ||
| DFT | unsupported | ||
| DepthToSpace | 13 | ||
| DequantizeLinear | 13 | Only support for per-tensor or layer dequantization. Not support for per-axis dequantization. | |
| Det | unsupported | ||
| DictVectorizer | unsupported | ||
| Div | 14 | No support for short integers. | |
| Dropout | 13 | Does not support masked and training. | |
| DynamicQuantizeLinear | 11 | ||
| Einsum | 12 | Limited to the types supported by ReduceSum and MatMul (which we decompose to in most cases) which exclude integers with width < 32. | |
| Elu | 6 | ||
| Equal | 13 | ||
| Erf | 13 | ||
| Exp | 13 | ||
| Expand | 13 | ||
| EyeLike | unsupported | ||
| FeatureVectorizer | unsupported | ||
| Flatten | 13 | ||
| Floor | 13 | ||
| GRU | 14 | ||
| Gather | 13 | ||
| GatherElements | 13 | ||
| GatherND | 13 | ||
| Gemm | 13 | ||
| GlobalAveragePool | 1 | ||
| GlobalLpPool | unsupported | ||
| GlobalMaxPool | 1 | ||
| Gradient | unsupported | ||
| Greater | 13 | ||
| GreaterOrEqual | 16 | ||
| GridSample | unsupported | ||
| GroupNormalization | unsupported | ||
| HammingWindow | unsupported | ||
| HannWindow | unsupported | ||
| HardSigmoid | 6 | ||
| HardSwish | unsupported | ||
| Hardmax | 13 | ||
| Identity | 16 | Sequence identity not supported. | |
| If | 16 | Sequence and Optional outputs are not supported. | |
| Imputer | unsupported | ||
| InstanceNormalization | 6 | ||
| IsInf | 10 | ||
| IsNaN | 13 | ||
| LRN | 13 | ||
| LSTM | 14 | ||
| LabelEncoder | unsupported | ||
| LayerNormalization | unsupported | ||
| LeakyRelu | 16 | ||
| Less | 13 | ||
| LessOrEqual | 16 | ||
| LinearClassifier | unsupported | ||
| LinearRegressor | unsupported | ||
| Log | 13 | ||
| 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 | 16 | No support for opset 13 and 16 at this time. | |
| LpNormalization | unsupported | ||
| LpPool | unsupported | ||
| MatMul | 13 | ||
| MatMulInteger | 10 | ||
| Max | 13 | No support for short floats and unsigned int. | |
| MaxPool | 12 | Does not support argmax and short ints. Support single output only. | |
| MaxRoiPool | unsupported | ||
| MaxUnpool | unsupported | ||
| Mean | 13 | ||
| MeanVarianceNormalization | unsupported | ||
| MelWeightMatrix | unsupported | ||
| Min | 13 | Does not support short floats and unsigned numbers. | |
| Mish | unsupported | ||
| Mod | 13 | Support float and double only. | |
| Momentum | unsupported | ||
| Mul | 14 | Does not support short integers. | |
| Multinomial | unsupported | ||
| Neg | 13 | ||
| NegativeLogLikelihoodLoss | unsupported | ||
| NonMaxSuppression | 11 | ||
| NonZero | 13 | ||
| Normalizer | unsupported | ||
| Not | 1 | ||
| OneHot | 11 | ||
| OneHotEncoder | unsupported | ||
| Optional | unsupported | ||
| OptionalGetElement | unsupported | ||
| OptionalHasElement | unsupported | ||
| Or | 7 | ||
| PRelu | 16 | ||
| Pad | 18, 13, 11, 2 | axes input not supported. | |
| Pow | 15 | No support for power with integer types. | |
| QLinearConv | unsupported | ||
| QLinearMatMul | unsupported | ||
| QuantizeLinear | 13 | Do not support per-axis and i8 quantization. | |
| RNN | 14 | ||
| RandomNormal | unsupported | ||
| RandomNormalLike | unsupported | ||
| RandomUniform | unsupported | ||
| RandomUniformLike | unsupported | ||
| Range | 11 | ||
| Reciprocal | 13 | ||
| ReduceL1 | 18, 13 | do_not_keep_dim not supported. | |
| ReduceL2 | 18, 13 | do_not_keep_dim not supported. | |
| ReduceLogSum | 18, 13 | do_not_keep_dim not supported. | |
| ReduceLogSumExp | 18, 13 | do_not_keep_dim not supported. | |
| ReduceMax | 18, 13 | do_not_keep_dim not supported. | |
| ReduceMean | 18, 13 | do_not_keep_dim not supported. | |
| ReduceMin | 18, 13 | do_not_keep_dim not supported. | |
| ReduceProd | 18, 13 | do_not_keep_dim not supported. | |
| ReduceSum | 13, 11 | 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 | 18, 13 | Default axis and do_not_keep_dim not supported. | |
| Relu | 14 | ||
| Reshape | 14 | allowzero not supported. | |
| Resize | 18, 13, 11, 10 | Missing support for linear, cubic, crop, pytorch_half_pixel, and floor. Attributes antialias, axes and keep_aspect_ratio_policy are not supported. | |
| ReverseSequence | 10 | ||
| RoiAlign | unsupported | ||
| Round | 11 | ||
| STFT | unsupported | ||
| SVMClassifier | unsupported | ||
| SVMRegressor | unsupported | ||
| Scaler | unsupported | ||
| Scan | 16 | Does not support dynamic shapes. | Precision issue with newer opset, maybe just unsupported. Dynamic shape?. |
| Scatter | unsupported | ||
| ScatterElements | 18 | Does not support duplicate indices. | |
| ScatterND | 18 | Does not support scatternd add/multiply. | |
| Selu | 6 | ||
| SequenceAt | unsupported | ||
| SequenceConstruct | unsupported | ||
| SequenceEmpty | unsupported | ||
| SequenceErase | unsupported | ||
| SequenceInsert | 11 | Does not support unranked sequence element. | |
| SequenceLength | unsupported | ||
| SequenceMap | unsupported | ||
| Shape | 15 | Does not support start and end attributes. | |
| Shrink | unsupported | ||
| Sigmoid | 13 | ||
| Sign | 13 | ||
| Sin | 7 | ||
| Sinh | 9 | ||
| Size | 13 | ||
| Slice | 13 | Axis must be a constant argument. | Add tests to slices, currently have none. |
| Softmax | 13, 11 | ||
| SoftmaxCrossEntropyLoss | unsupported | ||
| Softplus | 1 | ||
| Softsign | 1 | ||
| SpaceToDepth | 13 | Example works, the other is imprecise. To investigate. | |
| Split | 18, 13, 11 | Does not support static and dynamic shape, zero size splits. | Temporally removed due to changes in onnx 1.8.1. |
| SplitToSequence | unsupported | ||
| Sqrt | 13 | ||
| Squeeze | 13, 11 | Does not support static and dynamic shape. | Temporally removed due to changes in onnx 1.8.1. |
| StringNormalizer | unsupported | ||
| Sub | 14 | Does not support short integers. | |
| Sum | 13 | ||
| Tan | 7 | ||
| Tanh | 13 | ||
| TfIdfVectorizer | unsupported | ||
| ThresholdedRelu | unsupported | ||
| Tile | 13 | ||
| TopK | 11 | ||
| Transpose | 13 | ||
| TreeEnsembleClassifier | unsupported | ||
| TreeEnsembleRegressor | unsupported | ||
| Trilu | 14 | ||
| Unique | unsupported | ||
| Unsqueeze | 13, 11 | Does not support static and dynamic shape. | Temporally removed due to changes in onnx 1.8.1. |
| Upsample | 9, 7 | ||
| Where | 16 | ||
| Xor | 7 | ||
| ZipMap | unsupported |