TensorRT 10.0 supports operators in the inclusive range of opset 9 to opset 20. Latest information of ONNX operators can be found here. More details and limitations are documented in the chart below.
TensorRT supports the following ONNX data types: DOUBLE, FLOAT32, FLOAT16, BFLOAT16, INT32, INT64, FP8, INT8, INT4, UINT8, and BOOL
Note: There is limited support for DOUBLE type. TensorRT will attempt to cast DOUBLE down to FLOAT, clamping values to
+-FLT_MAX
if necessary. Note: INT8, INT4, and FP8 are treated asQuantized Types
in TensorRT, where support is available only through quantization from a floating-point type with higher precision. Note: UINT8 is only supported as network input or output tensor types.
Operator | Supported | Supported Types | Restrictions |
---|---|---|---|
Abs | Y | FP32, FP16, BF16, INT32, INT64 | |
Acos | Y | FP32, FP16, BF16 | |
Acosh | Y | FP32, FP16, BF16 | |
Add | Y | FP32, FP16, BF16, INT32, INT64 | |
AffineGrid | N | ||
And | Y | BOOL | |
ArgMax | Y | FP32, FP16, BF16, INT32, INT64 | |
ArgMin | Y | FP32, FP16, BF16, INT32, INT64 | |
Asin | Y | FP32, FP16, BF16 | |
Asinh | Y | FP32, FP16, BF16 | |
Atan | Y | FP32, FP16, BF16 | |
Atanh | Y | FP32, FP16, BF16 | |
AveragePool | Y | FP32, FP16, BF16 | 2D or 3D Pooling only. dilations must be empty or all ones |
BatchNormalization | Y | FP32, FP16, BF16 | |
Bernoulli | N | ||
BitShift | N | ||
BitwiseAnd | N | ||
BitwiseNot | N | ||
BitwiseOr | N | ||
BitwiseXor | N | ||
BlackmanWindow | N | ||
Cast | Y | FP32, FP16, BF16, INT32, INT64, , UINT8, BOOL | |
CastLike | Y | FP32, FP16, BF16, INT32, INT64, , UINT8, BOOL | |
Ceil | Y | FP32, FP16, BF16 | |
Col2Im | N | ||
Celu | Y | FP32, FP16, BF16 | |
CenterCropPad | N | ||
Clip | Y | FP32, FP16, BF16 | |
Compress | N | ||
Concat | Y | FP32, FP16, BF16, INT32, INT64, BOOL | |
ConcatFromSequence | N | ||
Constant | Y | FP32, FP16, BF16, INT32, INT64, BOOL | |
ConstantOfShape | Y | FP32 | |
Conv | Y | FP32, FP16, BF16 | |
ConvInteger | N | ||
ConvTranspose | Y | FP32, FP16, BF16 | |
Cos | Y | FP32, FP16, BF16 | |
Cosh | Y | FP32, FP16, BF16 | |
CumSum | Y | FP32, FP16, BF16 | axis must be an initializer |
DFT | N | ||
DepthToSpace | Y | FP32, FP16, BF16, INT32, INT64 | |
DequantizeLinear | Y | INT8, FP8, INT4 | x_zero_point must be zero |
Det | N | ||
Div | Y | FP32, FP16, BF16, INT32, INT64 | |
Dropout | Y | FP32, FP16, BF16 | |
DynamicQuantizeLinear | N | ||
Einsum | Y | FP32, FP16, BF16 | |
Elu | Y | FP32, FP16, BF16 | |
Equal | Y | FP32, FP16, BF16, INT32, INT64 | |
Erf | Y | FP32, FP16, BF16 | |
Exp | Y | FP32, FP16, BF16 | |
Expand | Y | FP32, FP16, BF16, INT32, INT64, BOOL | |
EyeLike | Y | FP32, FP16, BF16, INT32, INT64, BOOL | |
Flatten | Y | FP32, FP16, BF16, INT32, INT64, BOOL | |
Floor | Y | FP32, FP16, BF16 | |
Gather | Y | FP32, FP16, BF16, INT32, INT64, BOOL | |
GatherElements | Y | FP32, FP16, BF16, INT32, INT64, BOOL | |
GatherND | Y | FP32, FP16, BF16, INT32, INT64, BOOL | |
Gelu | Y | FP32, FP16, BF16, INT8, INT32, INT64 | |
Gemm | Y | FP32, FP16, BF16 | |
GlobalAveragePool | Y | FP32, FP16, BF16 | |
GlobalLpPool | Y | FP32, FP16, BF16 | |
GlobalMaxPool | Y | FP32, FP16, BF16 | |
Greater | Y | FP32, FP16, BF16, INT32, INT64 | |
GreaterOrEqual | Y | FP32, FP16, BF16, INT32, INT64 | |
GridSample | Y | FP32, FP16 | |
GroupNormalization | Y | FP32, FP16, BF16 | |
GRU | Y | FP32, FP16, BF16 | For bidirectional GRUs, activation functions must be the same for both the forward and reverse pass |
HammingWindow | N | ||
HannWindow | N | ||
HardSigmoid | Y | FP32, FP16, BF16 | |
HardSwish | Y | FP32, FP16, BF16 | |
Hardmax | Y | FP32, FP16, BF16 | axis dimension of input must be a build-time constant |
Identity | Y | FP32, FP16, BF16, INT32, INT64, BOOL | |
If | Y | FP32, FP16, BF16, INT32, INT64, BOOL | Output tensors of the two conditional branches must have broadcastable shapes, and must have different names |
ImageScaler | Y | FP32, FP16, BF16 | |
ImageDecoder | N | ||
InstanceNormalization | Y | FP32, FP16, BF16 | |
IsInf | Y | FP32, FP16, BF16 | |
IsNaN | Y | FP32, FP16, BF16, INT32, INT64 | |
LayerNormalization | Y | FP32, FP16, BF16 | |
LeakyRelu | Y | FP32, FP16, BF16 | |
Less | Y | FP32, FP16, BF16, INT32, INT64 | |
LessOrEqual | Y | FP32, FP16, BF16, INT32, INT64 | |
Log | Y | FP32, FP16, BF16 | |
LogSoftmax | Y | FP32, FP16, BF16 | |
Loop | Y | FP32, FP16, BF16, INT32, INT64, BOOL | |
LRN | Y | FP32, FP16, BF16 | |
LSTM | Y | FP32, FP16, BF16 | For bidirectional LSTMs, activation functions must be the same for both the forward and reverse pass |
LpNormalization | Y | FP32, FP16, BF16 | |
LpPool | Y | FP32, FP16, BF16 | dilations must be empty or all ones |
MatMul | Y | FP32, FP16, BF16 | |
MatMulInteger | N | ||
Max | Y | FP32, FP16, BF16, INT32, INT64 | |
MaxPool | Y | FP32, FP16, BF16 | 2D or 3D pooling only. Indices output tensor unsupported. dilations must be empty or all ones |
MaxRoiPool | N | ||
MaxUnpool | N | ||
Mean | Y | FP32, FP16, BF16, FP8, INT32, INT64 | |
MeanVarianceNormalization | Y | FP32, FP16, BF16 | |
MelWeightMatrix | N | ||
Min | Y | FP32, FP16, BF16, INT32, INT64 | |
Mish | Y | FP32, FP16 | |
Mod | Y | FP32, FP16, BF16, INT32, INT64 | |
Mul | Y | FP32, FP16, BF16, INT32, INT64 | |
Multinomial | N | ||
Neg | Y | FP32, FP16, BF16, INT32, INT64 | |
NegativeLogLikelihoodLoss | N | ||
NonMaxSuppression | Y | FP32, FP16 | |
NonZero | Y | FP32, FP16 | |
Not | Y | BOOL | |
OneHot | Y | FP32, FP16, BF16, INT32, INT64, BOOL | depth must be a build-time constant |
Optional | N | ||
OptionalGetElement | N | ||
OptionalHasElement | N | ||
Or | Y | BOOL | |
Pad | Y | FP32, FP16, BF16, INT32, INT64 | axes must be an initializer |
ParametricSoftplus | Y | FP32, FP16, BF16 | |
Pow | Y | FP32, FP16, BF16 | |
PRelu | Y | FP32, FP16, BF16 | |
QLinearConv | N | ||
QLinearMatMul | N | ||
QuantizeLinear | Y | FP32, FP16, BF16 | y_zero_point must be 0 |
RandomNormal | Y | FP32, FP16, BF16 | seed value is ignored by TensorRT |
RandomNormalLike | Y | FP32, FP16, BF16 | seed value is ignored by TensorRT |
RandomUniform | Y | FP32, FP16, BF16 | seed value is ignored by TensorRT |
RandomUniformLike | Y | FP32, FP16, BF16 | seed value is ignored by TensorRT |
Range | Y | FP32, FP16, BF16, INT32, INT64 | |
Reciprocal | Y | FP32, FP16, BF16 | |
ReduceL1 | Y | FP32, FP16, BF16, INT32, INT64 | axes must be an initializer |
ReduceL2 | Y | FP32, FP16, BF16, INT32, INT64 | axes must be an initializer |
ReduceLogSum | Y | FP32, FP16, BF16, INT32, INT64 | axes must be an initializer |
ReduceLogSumExp | Y | FP32, FP16, BF16, INT32, INT64 | axes must be an initializer |
ReduceMax | Y | FP32, FP16, BF16, INT32, INT64 | axes must be an initializer |
ReduceMean | Y | FP32, FP16, BF16, INT32, INT64 | axes must be an initializer |
ReduceMin | Y | FP32, FP16, BF16, INT32, INT64 | axes must be an initializer |
ReduceProd | Y | FP32, FP16, BF16, INT32, INT64 | axes must be an initializer |
ReduceSum | Y | FP32, FP16, BF16, INT32, INT64 | axes must be an initializer |
ReduceSumSquare | Y | FP32, FP16, BF16, INT32, INT64 | axes must be an initializer |
RegexFullMatch | N | ||
Relu | Y | FP32, FP16, BF16, INT32, INT64 | |
Reshape | Y | FP32, FP16, BF16, INT32, INT64, BOOL | |
Resize | Y | FP32, FP16, BF16 | Supported resize transformation modes: half_pixel , pytorch_half_pixel , tf_half_pixel_for_nn , asymmetric , and align_corners .Supported resize modes: nearest , linear .Supported nearest modes: floor , ceil , round_prefer_floor , round_prefer_ceil .Supported aspect ratio policy: stretch .When scales is a tensor input, axes must be an iota vector of length rank(input).Antialiasing is not supported. |
ReverseSequence | Y | FP32, FP16, BF16, INT32, INT64, BOOL | |
RNN | Y | FP32, FP16, BF16 | For bidirectional RNNs, activation functions must be the same for both the forward and reverse pass |
RoiAlign | Y | FP32, FP16 | |
Round | Y | FP32, FP16, BF16 | |
STFT | N | ||
ScaledTanh | Y | FP32, FP16, BF16 | |
Scan | Y | FP32, FP16, BF16 | |
Scatter | Y | FP32, FP16, BF16, INT32, INT64 | |
ScatterElements | Y | FP32, FP16, BF16, INT32, INT64 | |
ScatterND | Y | FP32, FP16, BF16, INT32, INT64 | reduction is not supported |
Selu | Y | FP32, FP16, BF16, | |
SequenceAt | N | ||
SequenceConstruct | N | ||
SequenceEmpty | N | ||
SequenceErase | N | ||
SequenceInsert | N | ||
SequenceLength | N | ||
SequenceMap | N | ||
Shape | Y | FP32, FP16, BF16, INT32, INT64, BOOL | |
Shrink | Y | FP32, FP16, BF16, INT32, INT64 | |
Sigmoid | Y | FP32, FP16, BF16 | |
Sign | Y | FP32, FP16, BF16, INT32, INT64 | |
Sin | Y | FP32, FP16, BF16 | |
Sinh | Y | FP32, FP16, BF16 | |
Size | Y | FP32, FP16, BF16, INT32, INT64, BOOL | |
Slice | Y | FP32, FP16, BF16, INT32, INT64, BOOL | axes must be an initializer |
Softmax | Y | FP32, FP16, BF16 | |
SoftmaxCrossEntropyLoss | N | ||
Softplus | Y | FP32, FP16, BF16 | |
Softsign | Y | FP32, FP16, BF16 | |
SpaceToDepth | Y | FP32, FP16, BF16, INT32, INT64 | |
Split | Y | FP32, FP16, BF16, INT32, INT64 BOOL | |
SplitToSequence | N | ||
Sqrt | Y | FP32, FP16, BF16 | |
Squeeze | Y | FP32, FP16, BF16, INT32, INT64, BOOL | axes must be an initializer |
StringConcat | N | ||
StringNormalizer | N | ||
StringSplit | N | ||
Sub | Y | FP32, FP16, BF16, INT32, INT64 | |
Sum | Y | FP32, FP16, BF16, INT32, INT64 | |
Tan | Y | FP32, FP16, BF16 | |
Tanh | Y | FP32, FP16, BF16 | |
TfIdfVectorizer | N | ||
ThresholdedRelu | Y | FP32, FP16, BF16 | |
Tile | Y | FP32, FP16, BF16, INT32, INT64, BOOL | |
TopK | Y | FP32, FP16, BF16, INT32, INT64 | |
Transpose | Y | FP32, FP16, BF16, INT32, INT64, BOOL | |
Trilu | Y | FP32, FP16, BF16, INT32, INT64, BOOL | |
Unique | N | ||
Unsqueeze | Y | FP32, FP16, BF16, INT32, INT64, BOOL | axes must be a constant tensor |
Upsample | Y | FP32, FP16, BF16 | |
Where | Y | FP32, FP16, BF16, INT32, INT64, BOOL | |
Xor | Y | BOOL |