This RKNN2 V2.5.0 platform reference helps ArmSoM developers select and adapt models. It does not establish support on every ArmSoM board: verify the board SoC, actual Toolkit2, Runtime, NPU driver and BSP versions. The source specifies no universal Linux kernel version. No ArmSoM hardware validation was performed.
Source: the supplied Chinese and English RKNN2 Supported Operators and Constraints Reference V2.5.0, 374 and 384 pages respectively. Chinese follows the Chinese edition; English, Russian and German follow the English edition. Platform constraints remain separate. The English PDF itself contains Chinese I/O figures and output tables; their provenance is retained with editable localized tables. Source spellings such as ConvTranpose and the original LSTM/GRU equations are preserved; these equations are not corrections to SDK implementations.
Source pages: CN 324–331; EN 334–341.
Operator reference series
RKNN2 V2.5.0 · RK3566/RK3568:Basics and convolution
RKNN2 V2.5.0 · RK3566/RK3568:Recurrent networks, arithmetic and pooling
RKNN2 V2.5.0 · RK3566/RK3568:Shapes, slicing and transpose
RKNN2 V2.5.0 · RK3566/RK3568:Activations, normalization and extensions
RKNN2 V2.5.0 · RK3588:Basics and convolution
RKNN2 V2.5.0 · RK3588:Recurrent networks, arithmetic and pooling
RKNN2 V2.5.0 · RK3588:Shapes, slicing and transpose
RKNN2 V2.5.0 · RK3588:Activations, normalization and extensions
RKNN2 V2.5.0 · RK3562:Basics and convolution
RKNN2 V2.5.0 · RK3562:Recurrent networks, arithmetic and pooling
RKNN2 V2.5.0 · RK3562:Shapes, slicing and transpose
RKNN2 V2.5.0 · RK3562:Activations, normalization and extensions
RKNN2 V2.5.0 · RV1103/RV1106:Basics and convolution
RKNN2 V2.5.0 · RV1103/RV1106:Recurrent networks, arithmetic and pooling
RKNN2 V2.5.0 · RV1103/RV1106:Shapes, slicing and transpose
RKNN2 V2.5.0 · RV1103/RV1106:Activations, normalization and extensions
RKNN2 V2.5.0 · RK3576/RV1126B:Basics and convolution
RKNN2 V2.5.0 · RK3576/RV1126B:Recurrent networks, arithmetic and pooling
RKNN2 V2.5.0 · RK3576/RV1126B:Shapes, slicing and transpose
RKNN2 V2.5.0 · RK3576/RV1126B:Activations, normalization and extensions
RKNN2 V2.5.0 · RK2118:Basics and convolution
RKNN2 V2.5.0 · RK2118:Recurrent networks, arithmetic and pooling
RKNN2 V2.5.0 · RK2118:Shapes, slicing and transpose
RKNN2 V2.5.0 · RK2118:Activations, normalization and extensions
RKNN2 V2.5.0 · RV1103B/RV1106B:Basics and convolution
RKNN2 V2.5.0 · RV1103B/RV1106B:Recurrent networks, arithmetic and pooling
RKNN2 V2.5.0 · RV1103B/RV1106B:Shapes, slicing and transpose
RKNN2 V2.5.0 · RV1103B/RV1106B:Activations, normalization and extensions
RKNN2 V2.5.0 · CPU operator support and constraints
Div
Performs element-wise binary division (C=A/B), supporting multi-directional NumPy-style broadcasting
Inputs
- A:T1,T2
- shape:[batch,channel,height,width]
- Quantization support
- per-layer
- Broadcasting support
- [b,c,1,1]
- [scalar]
- B:T1,T2
- shape:[batch,channel,height,width]
- Quantization support
- per-layer
- Broadcasting support
- [b,c,1,1]
- [scalar]
Outputs
- C:T1
- shape:[batch,channel,height,width]
- Quantization support
- per-layer
Data Type Constraints
- T1:float16(Tensor)
- T2:float(constTensor)
Expand
Broadcast the input tensor according to the given shape and broadcasting rules. The broadcasting rule is similar to numpy.array(input) * numpy.ones(shape): dimensions are right- aligned; two corresponding dimensions must have the same value, or one of them equals 1
Inputs
- input:T1
- shape:[batch,channel,height,width]
- Quantization support
- per-layer
- shape:T2
- shape:[batch,channel,height,width]
Outputs
- output:T1
- shape:[batch,channel,height,width]
- Quantization support
- per-layer
Data Type Constraints
- T1:int8(Tensor)
- T2:int64(Tensor)
Broadcasting constraints
- [b,c,1,w]->[b,c,h,w],h∈[1,8192]
- [b,1,1,w]->[b,c,h,w],h∈[1,8192]
- [b,c,h,1]->[b,c,h,w],w ∈[1,8192]
- [b,1,h,1]->[b,c,h,w],w ∈[1,8192]
- [b,c,1,1]->[b,c,h,w],h∈[1,8192],w ∈[1,8192]
Max
Computes the element-wise maximum value of the input tensor
Inputs
- A:T1
- shape:[batch,channel,height,width]
- Quantization support
- per-layer
- Broadcasting support
- Supports broadcasting along arbitrary dimensions
- Broadcasting constraints are the same as the Expand operator
- B:T1
- shape:[batch,channel,height,width]
- Quantization support
- per-layer
- Broadcasting support
- Supports broadcasting along arbitrary dimensions
- Broadcasting constraints are the same as the Expand operator
Outputs
- C:T1
- shape:[batch,channel,height,width]
- Quantization support
- per-layer/per-channel
Data Type Constraints
- T1:int8(Tensor)
Other Support
- Multi-core: Not yet supported
Mul
Performs element-wise binary multiplication (C=A*B), supporting multi-directional NumPy-style broadcasting
Inputs
- A:T1,T2
- shape:[batch,channel,height,width]
- Quantization support
- per-layer
- Broadcasting support
- Supports broadcasting along arbitrary dimensions
- Broadcasting constraints are the same as the Expand operator
- B:T1,T2
- shape:[batch,channel,height,width]
- Quantization support
- per-layer
- Broadcasting support
- Supports broadcasting along arbitrary dimensions
- Broadcasting constraints are the same as the Expand operator
Outputs
- C:T1
- shape:[batch,channel,height,width]
- Quantization support
- per-layer
Data Type Constraints
- T1:int8(Tensor)
- T2:float(constTensor)
MulRelu
Mul and Relu fused computation, C=Relu(A*B)
Inputs
- Same as Mul
Outputs
- Same as Mul
Other Support
- Multi-core: Supported
Pad
Given a tensor (data) containing the data to be padded, a tensor (pads) containing the start and end padding values for each axis, a mode (mode), and a constant value (constant_value), generate a padded tensor (output)
Inputs
- data:T1
- shape:[batch,channel,height,width]
- Quantization support
- per-layer
- pads:T2
- shape : [batch_begin, channel_begin, height_begin, width_begin, batch_end, channel_end,height_end,width_end]
- constant_value(optional):T3
- shape:[1]
- Quantization support
- per-layer
Outputs
- output:T1
- shape:[batch,channel,height,width]
- Quantization support
- per-layer
Data Type Constraints
- T1:int8(Tensor)
- T2:int64(Tensor)
- T3:float(Scalar),int8(Scalar),float16(Scalar)
Attributes
- mode: string (default value constant)
- Supported modes: constant, reflect
- constantNo limitation
- reflectchannel∈(0,8192],height∈(0,8192],width∈(0,8176]
- Supported modes: constant, reflect
Other Support
- Multi-core: Not yet supported
MaxPool
MaxPool consumes an input tensor X and applies max pooling to the tensor according to kernel size, stride size, and padding length. Max pooling consists of computing the maximum over all values of a subset of the input tensor according to the kernel size, and downsampling the data into output tensor Y for further processing. The output spatial shape calculation differs depending on whether explicit padding (when using pads) or automatic padding (when using auto_pad) is used. Only explicit padding is used
Inputs
- input:T1
- shape:[batch,channel,height,width]
- channel∈(0,8192]
- height∈(0,7]
- width∈(0,7]
- shape:[batch,channel,height,width]
Outputs
- output:T1
- shape:[batch,channel,height,width]
Attributes
- kernel_shape:int64(kernel_h,kernel_w)
- kernel_h∈(0,7]
- kernel_w∈(0,7]
- auto_pad:string
- Padding mode: only NOTSET is supported
- ceil_mode:int64
- Whether to use ceil or floor to compute the output shape: not supported
- strides:int64(strides_h,strides_w)
- strides_h∈(0,8]
- strides_w∈(0,8]
- count_include_pad:int64[]
- count_include_pad, whether to include pad values in computation: 1
- pad:int64(pad_top,pad_left,pad_bottom,pad_right)
- pad_top∈[0,7]
- pad_left∈[0,7]
- pad_bottom∈[0,7]
- pad_right∈[0,7]
Data Type Constraints
- T1:int8(Tensor)
- T2:float(Tensor)
- T3:float(Scalar)
GlobalMaxPool
GlobalMaxPool consumes an input tensor X and applies max pooling over the values in the same channel. This is equivalent to a MaxPool with kernel_shape equal to the spatial dimensions of the input.
Inputs
- input:T1
- shape:[batch,channel,height,width]
- channel∈(0,8192]
- height∈(0,7]
- width∈(0,7]
- shape:[batch,channel,height,width]
Outputs
- output:T1
- shape:[batch,channel,height,width]
Attributes
- kernel_shape:int64(kernel_h,kernel_w)
- kernel_h∈(0,7]
- kernel_w∈(0,7]
- auto_pad:string
- Padding mode: only NOTSET is supported
- ceil_mode:int64
- Whether to use ceil or floor to compute the output shape: not supported
- strides:int64(strides_h,strides_w)
- strides_h∈(0,8]
- strides_w∈(0,8]
- count_include_pad:int64[]
- count_include_pad, whether to include pad values in computation: 1
- pad:int64(pad_top,pad_left,pad_bottom,pad_right)
- pad_top∈[0,7]
- pad_left∈[0,7]
- pad_bottom∈[0,7]
- pad_right∈[0,7]
Data Type Constraints
- T1:int8(Tensor)
- T2:float(Tensor)
- T3:float(Scalar)
AveragePool
- Not supported (converted to convolution implementation on the tool side)
GlobalAveragePool
- Not supported (converted to convolution implementation on the tool side)
