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 317–324; EN 326–334.
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
RV1103B/RV1106B
Add
Performs element-wise binary addition(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)
AddRelu
Add and Relu fused computation, C=Relu(A+B)
Inputs
- Same as Add
Outputs
- Same as Add
Other Support
- Multi-core: Supported
BatchNormalization
Performs batch normalization on the input tensor according to the description in https://arxiv.org/abs/1502.03167
Inputs
- input:T1
- shape:[batch,channel,height,width]
- Quantization support
- per-layer
Outputs
- output:T1
- shape:[batch,channel,height,width]
- Quantization support
- per-layer
Data Type Constraints
- T1:int8(Tensor)
Attributes
- epsilon: float (default value = 1e-5)
- A real number added when dividing by the standard deviation to prevent division by 0
- epsilon∈(0,∞]
- momentum:float
- Sliding average parameters during training
Concat
Concatenate a sequence of vectors into a single vector along the axis specified by axis. All vectors must be the same size except in the axis dimension
Inputs
- input_tensor:T
- shape:[batch,channel,height,width]
- Quantization support
- per-layer
Outputs
- output:T
- shape:[batch,channel,height,width]
- Quantization support
- per-layer
Data Type Constraints
- T:int8(Tensor)
Attributes
- axisint64
- axis∈{0,1,2,3}
Convolution
Convolution
Inputs
- input_tensor:T1
- shape:[batch,channel,height,width]
- width: when dilated_kernel_h>1, width<16383. In addition, the first-layer input width is restricted; see the model input description for details.
- Quantization support
- per-layer
- shape:[batch,channel,height,width]
- weight:T1
- shape:[output_channel,input_channel,kernel_h,kernel_w]
- kernel_h∈[1,31]
- kernel_w∈[1,31]
- Quantization support
- per-layer
- per-channel
- shape:[output_channel,input_channel,kernel_h,kernel_w]
Outputs
- output:T1
- shape:[batch,channel,height,width]
- Quantization support
- per-layer
Attributes
- strides:int(strides_h,strides_w)
- stride_h∈[1,7]
- stride_w∈[1,7]
- pads:int(pads_top,pads_left,pads_bottom,pads_right)
- pads_top∈[0,15]
- pads_left∈[0,15]
- pads_bottom∈[0,15]
- pads_right∈[0,15]
- group:int
- dilations:int(dilations_h,dilations_w)
- dilations_h∈[1,31]
- dilations_w∈[1,31]
Data Type Constraints
- T1:int8(Tensor)
Depthwise Convolution
Depthwise separable convolution
Inputs
- input_tensor:T1
- shape:[batch,channel,height,width]
- width: when dilated_kernel_h>1, width<16383. In addition, the first-layer input width is restricted; see the model input description for details.
- Quantization support
- per-layer
- shape:[batch,channel,height,width]
- weight:T1
- shape:[output_channel,input_channel,kernel_h,kernel_w]
- kernel_h∈[1,8]
- kernel_w∈[1,8]
- Quantization support
- per-layer
- per-channel
- shape:[output_channel,input_channel,kernel_h,kernel_w]
Outputs
- output:T1
- shape:[batch,channel,height,width]
- Quantization support
- per-layer
Attributes
- strides:int(strides_h,strides_w)
- stride_h∈[1,7]
- stride_w∈[1,7]
- pads:int(pads_top,pads_left,pads_bottom,pads_right)
- pads_top∈[0,15]
- pads_left∈[0,15]
- pads_bottom∈[0,15]
- pads_right∈[0,15]
- group:int
- dilations:int(dilations_h,dilations_w)
- dilations_h∈[1,32]
- dilations_w∈[1,32]
Data Type Constraints
- T1:int8(Tensor)
ConvolutionRelu
Convolution and Relu fused computation, Output=Relu(Conv(Input)). Description and specification constraints are the same as Convolution
ConvolutionClip
Convolution and Clip fused computation, Output=Clip(Conv(Input)). Description and specification constraints are the same as Convolution
ConvolutionPRelu/LeakyRelu
Convolution and PRelu/LeakyRelu fused computation, Output = PRelu(Conv(Input)) or Output = LeakyRelu(Conv(Input)). Description and specification constraints are the same as Convolution
ConvolutionAdd
Convolution and Add fused computation, Output=Add(Conv(Input0),Input1). Description and specification constraints are the same as Convolution
ConvolutionSigmoid
Convolution and Sigmoid fused computation, Output=Sigmoid(Conv(Input)). Description and specification constraints are the same as Convolution
ConvolutionTanh
Convolution and Tanh fused computation, Output=Tanh(Conv(Input)). Description and specification constraints are the same as Convolution
ConvolutionSoftplus
Convolution and Softplus fused computation, Output=Softplus(Conv(Input)). Description and specification constraints are the same as Convolution
ConvolutionHardSigmoid
Convolution and HardSigmoid fused computation, Output=HardSigmoid(Conv(Input)). Description and specification constraints are the same as Convolution
ConvolutionHardSwish
Convolution and HardSwish fused computation, Output=HardSwish(Conv(Input)). Description and specification constraints are the same as Convolution
ConvolutionElu
Convolution and Elu fused computation, Output=Elu(Conv(Input)). Description and specification constraints are the same as Convolution
ConvolutionSwish
Convolution and Swish fused computation, Output=Swish(Conv(Input)). Description and specification constraints are the same as Convolution
ConvolutionMish
Convolution and Mish fused computation, Output=Mish(Conv(Input)). Description and specification constraints are the same as Convolution
ConvTranspose
Transposed convolution
Inputs
- input_tensor:T1
- shape:[batch,channel,height,width]
- width: when dilated_kernel_h>1, width<16383. In addition, the first-layer input width is restricted; see the model input description for details.
- shape:[batch,channel,height,width]
- Quantization support
- per-layer
- weight:T1
- shape:[output_channel,input_channel,kernel_h,kernel_w]
- kernel_h∈[1,31]
- kernel_w∈[1,31]
- Quantization support
- per-layer
- per-channel
- shape:[output_channel,input_channel,kernel_h,kernel_w]
Outputs
- output:T1
- shape:[batch,channel,height,width]
- Quantization support
- per-layer
Attributes
- strides:int(strides_h,strides_w)
- stride_h∈[1,8]
- stride_w∈[1,8]
- pads:int(pads_top,pads_left,pads_bottom,pads_right) Note when setting pad: kernel_hdilations_h-dilations_h-pads_top<0 is not supported; kernel_wdilations_w- dilations_w-pads_left<0 is not supported; stride_h(height-1)-pads_top+1<output_h is not supported; stride_w(width-1)-pads_left+1<output_w is not supported
- pads_top∈[0,15]
- pads_left∈[0,15]
- pads_bottom∈[0,15]
- pads_right∈[0,15]
- group:int
- group: only 1 is supported; num_output is supported if and only if num_input=num_output
- dilations:int(dilations_h,dilations_w)
- dilations_h∈[1,32]
- dilations_w∈[1,32]
- When dilation is not equal to (1,1), only kernel=(1,1) is supported
Data Type Constraints
- T1:int8(Tensor)
ConvTranposeRelu
ConvTranspose and Relu fused computation, Output=Relu(ConvTranspose(Input)). Description and specification constraints are the same as ConvTranspose
ConvTranposeClip
ConvTranspose and Clip fused computation, Output=Clip(ConvTranspose(Input)). Description and specification constraints are the same as ConvTranspose
ConvTranposePRelu/LeakyRelu
ConvTranspose and PRelu/LeakyRelu fused computation, Output=PRelu(ConvTranspose(Input)) or Output= LeakyRelu(ConvTranspose(Input)). Description and specification constraints are the same as ConvTranspose
