Snapdragon Neural Processing Engine SDK
Reference Guide
Supported ONNX Ops

Operator Support

snpe-onnx-to-dlc currently supports the following operators and parameters:

OperatorOpset Version SupportedNotes
Abs1,6-
Add1,6,7(1). Add with a constant input is supported only immediately following an operation which includes a bias-add.
And1,7-
AveragePool1,7,10,11(2)
ArgMax1,11-
ArgMin1,11-
BatchNormalization1,6,7,9,12Neither momentum nor training mode are supported. All inputs after the first must be static. Only the first output is generated.
Ceil1,6,13-
Clip1,6,11,12-
Concat1,4,11-
Constant1,9Constant ops are interpreted at conversion time when used to represent weights/biases. Otherwise they are left in the network as inputs to later ops.
Conv1,11(2). Weight and bias inputs must be static. "kernel_shape" which differs from that of weights is not supported.
ConvTranspose1(2). Weight and bias inputs must be static. "strides" must be the same for each axis.
Div1,6,7(1)
Dropout1,6,7,10Only test mode (i.e. noop) is supported. Mask output is not generated.
Elu1,6-
Equal1,7,11-
Exp1,6-
Flatten1,9,11-
Floor1,6-
Gemm1,6,7,9,11Gemm is only supported in the case where it is used to emulate FC; transA=0, transB=1, broadcast=1.
GlobalAveragePool1-
GlobalMaxPool1-
Greater1,7,9-
GreaterOrEqual12-
GRU1,7- Custom activations, user-defined activations, clip and linear_before_reset=1 are not supported.
Identity1-
InstanceNormalization1,6-Inputs after the first must be static.
LRN1-
LeakyRelu1,6-
Less1,7,9-
LessOrEqual12-
Log1,6-
LpNormalization1- Only support attribute p=2
LpPool1,2,11-
LSTM1,7- Custom activations, user-defined activations, clip and input-forget parameters are not supported.
Matmul1,9Matmul is only supported when used to interpret an FC layer. The second input must be a set of weights.
Max1,6,8,12(1)
MaxPool1,8,10,11(2). Only support Dilations = 1. Only support single output, doesn't support Indices output.
MaxRoiPool1-
Min1,6,8-
Mul1,6,7(1) Mul with a constant input is supported only immediately following BatchNormalization operations.
Neg1,6-
Not1-
Or1,7-
Pad1,2,11Only constant padding is supported.
Pow1,7,12-
PRelu1,6,7,9Slope must be static.
Relu1,6-
ReduceMax1,11,12-
ReduceMean1,11-
ReduceMin1,11,12,13-
ReduceSum1,11-
Reshape1,5-
Resize10,11Input to Resize node should be 4D
RNN1, 7- Custom and user-defined activations (activation_alpha and beta) are not supported.
Round11-
Shape1Shape is only supported at conversion time. The input to Shape and all operators which manipulate the resulting output shape (eg slice, concat, etc) are also computed at conversion time.
Sigmoid1,6-
Sin7-
Slice1,10,11-
Softmax1,11Axis is only allowed to be input_rank -1 or -1, which is last dimension.
Split1,2,11-
Squeeze1,11-
Sqrt1,6-
Sub1,6,7(1)
Sum1,6,8(1)
Tanh1,6-
Tile1.6-
TopK1,10,11-
Transpose1-
Unsqueeze1,11-
Upsample1,7,9Only bilinear and nearest neighbor modes are supported.
FC1Both "axis" and "axis_w" must be 1.
ScaledTanh1,6Scaledtanh is removed in ONNX release v1.5.0
ThresholdRelu1-
spacetodepth1,13-

(1) Broadcast is not supported in the general case.

(2) "auto_pad" value of SAME_UPPER is not supported. Asymmetric "pads" with "xi_begin" values other than 0 are not supported.