| Supported Targets | ESP32-S3 | ESP32-P4 |
|---|
The quantization type of all operators is symmetric quantization. Now ESP-DL supports both 8-bit and 16-bit. The rounding for ESP32-S3 is rounding half up. The rounding for ESP32-P4 is rounding half to even.
The ESP-DL operator interface is aligned with ONNX. The opset 13 is recommended to export ONNX. Currently, the following 40 operators have been implemented and tested. Some operators do not implement all functionalities and attributes. Please refer to the restrictions of each operator or test cases for details.
Most operators maintain the same input/output data layout as ONNX or PyTorch. However, to fully leverage instruction-level acceleration, certain operators such as Conv, GlobalAveragePool, AveragePool, MaxPool, and Resize adopt NHWC or NWC data layouts for their inputs/outputs.
| Operator | int8 | int16 | Restrictions |
|---|---|---|---|
| Add(ESP-DL)(ONNX) | ✔ | ✔ | Support up to 4D |
| AveragePool(ESP-DL)(ONNX) | ✔ | ✔ | |
| Clip(ESP-DL)(ONNX) | ✔ | ✔ | |
| Concat(ESP-DL)(ONNX) | ✔ | ✔ | |
| Conv(ESP-DL)(ONNX) | ✔ | ✔ | Support 1d/2d conv, groups only support 1 or input_channels |
| Div(ESP-DL)(ONNX) | ✔ | ✔ | Support up to 4D |
| Elu(ESP-DL)(ONNX) | ✔ | ✔ | |
| Equal(ESP-DL)(ONNX) | ✔ | ✔ | |
| Exp(ESP-DL)(ONNX) | ✔ | ✔ | |
| Flatten(ESP-DL)(ONNX) | ✔ | ✔ | |
| Gather(ESP-DL)(ONNX) | ✔ | ✔ | |
| Gemm(ESP-DL)(ONNX) | ✔ | ✔ | |
| GlobalAveragePool(ESP-DL)(ONNX) | ✔ | ✔ | |
| Greater(ESP-DL)(ONNX) | ✔ | ✔ | |
| GreaterOrEqual(ESP-DL)(ONNX) | ✔ | ✔ | |
| HardSigmoid(ESP-DL)(ONNX) | ✔ | ✔ | |
| HardSwish(ESP-DL)(ONNX) | ✔ | ✔ | |
| LeakyRelu(ESP-DL)(ONNX) | ✔ | ✔ | |
| Less(ESP-DL)(ONNX) | ✔ | ✔ | |
| LessOrEqual(ESP-DL)(ONNX) | ✔ | ✔ | |
| Log(ESP-DL)(ONNX) | ✔ | ✔ | |
| MatMul(ESP-DL)(ONNX) | ✔ | ✔ | Support up to 4D |
| MaxPool(ESP-DL)(ONNX) | ✔ | ✔ | |
| Mul(ESP-DL)(ONNX) | ✔ | ✔ | Support up to 4D |
| Pad(ESP-DL)(ONNX) | ✔ | ✔ | Do not support wrap mode |
| PRelu(ESP-DL)(ONNX) | ✔ | ✔ | |
| Relu(ESP-DL)(ONNX) | ✔ | ✔ | |
| Reshape(ESP-DL)(ONNX) | ✔ | ✔ | |
| Resize(ESP-DL)(ONNX) | ✔ | ✖ | support 1d/2d nearest/linear/bilinear, don't support roi and antialias |
| ReverseSequence(ESP-DL)(ONNX) | ✔ | ✔ | |
| Sigmoid(ESP-DL)(ONNX) | ✔ | ✔ | |
| Slice(ESP-DL)(ONNX) | ✔ | ✔ | |
| Softmax(ESP-DL)(ONNX) | ✔ | ✔ | Dtype of output is float32 |
| Split(ESP-DL)(ONNX) | ✔ | ✔ | |
| Sqrt(ESP-DL)(ONNX) | ✔ | ✔ | |
| Squeeze(ESP-DL)(ONNX) | ✔ | ✔ | |
| Sub(ESP-DL)(ONNX) | ✔ | ✔ | Support up to 4D |
| Tanh(ESP-DL)(ONNX) | ✔ | ✔ | |
| Transpose(ESP-DL)(ONNX) | ✔ | ✔ | |
| Unsqueeze(ESP-DL)(ONNX) | ✔ | ✔ |
Generation Time: 2025-05-27 17:13:22