本文へスキップ
SDK Version: 2.3.3

Supported ONNX Operators

This chapter describes the ONNX operations currently supported by DX-COM. When you build or export models to ONNX format, you must use only the supported operations to ensure successful compilation and optimal performance on our NPU.


Operator Support Details

The following ONNX operators are supported by the compiler.

Common Conditions (Applicable to All Operation Types)

Tensor Shape Limitations

  • Width, height: < 8,192
  • Channels: < 32,768
  • Dynamic shapes are not supported.

Broadcasting Restrictions

  • In element-wise operations like Add, Div, Mul, and Sub, channel-wise broadcasting is not supported when the channel dimension size is greater than 1.
  • Example: A tensor with shape 1x24x24x1 (NHWC) cannot be broadcast to shape 1x24x24x32.

Normal Operations

OperatorSupported Conditions
AddSupported as:
- Bias addition (e.g., as part of Gemm or Conv)
- Element-wise addition
- Used for input normalization
- Constant scalar addition
ArgMaxOnly supported if all of the following hold:
- It is the final operation in the network
- The preceding output is 2D or 4D
- It operates along the channel dimension
AveragePool- kernel_shape < 32
- strides < 32
BatchNormalizationNo restrictions
ClipOnly supported as an activation function (e.g., ReLU6)
ConcatNo restrictions
ConstantOnly numeric constants are supported
ConstantOfShapeNo restrictions
ConvCommon constraints:
- dilations < 64
- pads < 64
- strides < 16
Standard Conv:
- kernel_shape < 16
Depth-wise Conv:
- kernel_shape55
- Only constant weights are supported
ConvTranspose- dilations = [1, 1]
- output_padding = [0, 0]
- pads ≤ 14
- strides ∈ [2, 8]
- kernel_shape < 16
- group = 1
DivSupported as:
- Constant scalar division
- Input normalization
- Part of Softmax
- Part of LayerNorm
DropoutRemoved during inference
ErfOnly supported as part of GELU
FlattenNo restrictions
GatherSupported when indices is a 0-D or 1-D tensor.
Examples:
- Scalar index: indices = [0] to select first element
- 1-D index: indices = [0, 2, 5] to select multiple elements
GemmNo restrictions
GlobalAveragePoolNo restrictions
IdentityNo restrictions
MatMulNo restrictions
MaxPool- kernel_shape < 16
- strides < 16
MulSupported as:
- Element-wise multiplication
- Constant scalar multiplication
- Input normalization
Pad- Only mode=constant is supported
- Must precede a Pool or Conv operation
ReduceMeanOnly supported when reducing along:
- Channel dimension
- (Width, Height) dimensions
ReduceSumOnly supported when reducing along the channel dimension
ReshapeNo restrictions
ResizeOnly supported with the following attributes:
- coordinate_transformation_mode = pytorch_half_pixel
- modelinear
- Scale values ∈ ℤ (integers)
ShapeCannot be used as a model output
SliceNo restrictions
SoftmaxOnly supported if the size of the input along the specified axis is ≤ 4080
SplitNo restrictions
SqueezeNo restrictions
SubSupported as:
- Element-wise subtraction
- Constant scalar subtraction
- Input normalization
TransposeNo restrictions

Activation Functions

OperatorSupported Conditions
HardSwishNo restrictions
HardSigmoidNo restrictions
LeakyReluNo restrictions
MishNo restrictions
PReluNo restrictions
ReluNo restrictions
SigmoidNo restrictions
Silu (Swish)No restrictions
SoftplusNo restrictions
TanhNo restrictions

Deprecated Operations

The following operations are deprecated in ONNX and maintained here only for backward compatibility. Their usage is discouraged in new models and may be removed in future versions.
Please use alternative operators where possible.

OperatorSupported Conditions
UpsampleOnly supported when scale values in the N and C dimensions are 1
NOTE

The operator support may vary depending on how operations are combined within a model. This document is intended as a general guideline. For validation of specific use cases, please contact our technical support team.