7. Supported operators

PopART is compatible with ONNX versions up to and including 1.6. (see ONNX Versioning). This section lists the supported operators. Section 7.4, Converting ONNX models with opset versions not supported by PopART describes how to convert an ONNX model that uses an opset that is not supported by PopART.

The Graphcore (ai.graphcore) and ONNX (ai.onnx) operators, and versions supported, are listed below. See ONNX Operators for more information.

Note

The limitations of these operators are listed in Section 7.3, Limitations.

7.1. Domain: ai.onnx

  • Abs-6

  • Add-6

  • Add-7

  • And-1

  • And-7

  • ArgMax-1

  • ArgMax-11

  • ArgMin-1

  • ArgMin-11

  • Asin-7

  • Atan-7

  • AveragePool-1

  • AveragePool-7

  • AveragePool-10

  • AveragePool-11

  • BatchNormalization-6

  • BatchNormalization-7

  • BatchNormalization-9

  • Cast-6

  • Cast-9

  • Ceil-1

  • Ceil-6

  • Clip-6

  • Clip-11

  • Concat-1

  • Concat-4

  • Concat-11

  • Constant-9

  • Constant-11

  • ConstantOfShape-9

  • Conv-1

  • Conv-11

  • ConvTranspose-1

  • ConvTranspose-11

  • Cos-7

  • Cosh-9

  • CumSum-11

  • Div-6

  • Div-7

  • Dropout-6

  • Dropout-7

  • Dropout-10

  • Elu-1

  • Elu-6

  • Equal-1

  • Equal-7

  • Equal-11

  • Erf-9

  • Exp-6

  • Expand-8

  • Flatten-1

  • Flatten-9

  • Flatten-11

  • Floor-1

  • Floor-6

  • GRU-3

  • GRU-7

  • Gather-1

  • Gather-11

  • GlobalAveragePool-1

  • GlobalMaxPool-1

  • Greater-1

  • Greater-7

  • Greater-9

  • HardSigmoid-1

  • HardSigmoid-6

  • Identity-1

  • If-1

  • If-11

  • InstanceNormalization-6

  • IsInf-10

  • IsNaN-9

  • LRN-1

  • LSTM-1

  • LSTM-7

  • LeakyRelu-1

  • LeakyRelu-6

  • Less-7

  • Less-9

  • Log-6

  • LogSoftmax-1

  • LogSoftmax-11

  • Loop-1

  • Loop-11

  • MatMul-1

  • MatMul-9

  • Max-6

  • Max-8

  • MaxPool-1

  • MaxPool-8

  • MaxPool-10

  • MaxPool-11

  • Mean-6

  • Mean-8

  • Min-6

  • Min-8

  • Mul-6

  • Mul-7

  • Neg-6

  • Not-1

  • OneHot-9

  • OneHot-11

  • Or-1

  • Or-7

  • PRelu-9

  • Pad-2

  • Pad-11

  • Pow-1

  • Pow-7

  • RNN-7

  • RandomNormal-1

  • RandomNormalLike-1

  • RandomUniform-1

  • RandomUniformLike-1

  • Reciprocal-6

  • ReduceL1-1

  • ReduceL1-11

  • ReduceL2-1

  • ReduceL2-11

  • ReduceLogSum-1

  • ReduceLogSum-11

  • ReduceLogSumExp-1

  • ReduceLogSumExp-11

  • ReduceMax-1

  • ReduceMax-11

  • ReduceMean-1

  • ReduceMean-11

  • ReduceMin-1

  • ReduceMin-11

  • ReduceProd-1

  • ReduceProd-11

  • ReduceSum-1

  • ReduceSum-11

  • ReduceSumSquare-1

  • ReduceSumSquare-11

  • Relu-6

  • Reshape-5

  • Resize-10

  • Resize-11

  • RoiAlign-10

  • Round-11

  • Scan-9

  • Scan-11

  • Scatter-9

  • Selu-1

  • Selu-6

  • Shape-1

  • Shrink-9

  • Sigmoid-6

  • Sign-9

  • Sin-7

  • Sinh-9

  • Slice-1

  • Slice-10

  • Slice-11

  • Softmax-1

  • Softmax-11

  • Softplus-1

  • Softsign-1

  • Split-2

  • Split-11

  • Sqrt-6

  • Squeeze-1

  • Squeeze-11

  • Sub-6

  • Sub-7

  • Sum-6

  • Sum-8

  • Tanh-6

  • ThresholdedRelu-10

  • Tile-1

  • Tile-6

  • TopK-1

  • TopK-10

  • TopK-11

  • Transpose-1

  • Unsqueeze-1

  • Unsqueeze-11

  • Upsample-9

  • Where-9

7.2. Domain: ai.graphcore

  • Abort-1

  • AddLhsInplace-1

  • AllReduce-1

  • Atan2-1

  • AutoLossScaleProxy-1

  • BatchNormalization-1

  • BinaryConstScalar-1

  • BitwiseAnd-1

  • BitwiseNot-1

  • BitwiseOr-1

  • BitwiseXnor-1

  • BitwiseXor-1

  • Call-1

  • CastThenPow2Scale-1

  • ConvFlipWeights-1

  • CopyVarUpdate-1

  • Ctc-1

  • CtcBeamSearchDecoder-1

  • Detach-1

  • DynamicAdd-1

  • DynamicSlice-1

  • DynamicUpdate-1

  • DynamicZero-1

  • Expm1-1

  • Fmod-1

  • Gelu-1

  • GroupNormalization-1

  • Histogram-1

  • HostLoad-1

  • HostStore-1

  • IdentityLoss-1

  • IncrementMod-1

  • Init-1

  • L1-1

  • LSTM-1

  • Log1p-1

  • LossScaleUpdate-1

  • MultiConv-1

  • Nll-1

  • Nop-1

  • PackedDataBlock-1

  • Pow2ScaleThenCast-1

  • PrintTensor-1

  • ReduceMedian-1

  • RemoteCodeLoad-1

  • RemoteLoad-1

  • RemoteLoadInplace-1

  • RemoteStore-1

  • ReplicatedAllGather-1

  • ReplicatedAllReduce-1

  • ReplicatedAllReduceInplace-1

  • ReplicatedReduceScatter-1

  • Reshape-1

  • Reverse-1

  • Round-1

  • Scale-1

  • ScaledAdd-1

  • ScatterReduce-1

  • SequenceSlice-1

  • ShapedDropout-1

  • Slice-1

  • Square-1

  • Subsample-1

  • Swish-1

  • TensorRemap-1

  • UnaryZeroGrad-1

  • Zeros-1

  • ZerosLike-1

7.3. Limitations

Warning

The information provided in this section is incomplete.

7.3.1. Limitations of ai.onnx operators

  • Clip-11: Does not support variable min/max input parameters. The parameters must contain a value at model initialisation and any run-time changes to these parameters will not be read by the model.

7.3.2. Limitations of ai.graphcore operators

There are no known limitations.

7.4. Converting ONNX models with opset versions not supported by PopART

If you have an ONNX model that uses an opset version that is not supported by PopART then you can convert the model using the ONNX Version Converter. There are both Python and C++ APIs.

You will use the converter when your ONNX model uses an opset different to those listed in Section 7.1, Domain: ai.onnx and the target opset will be a version supported by PopART.

Note

Currently, the highest opset PopART supports is 11. If your model uses opsets higher than 11, then you will have to use the ONNX Version Converter.