aboutsummaryrefslogtreecommitdiff
path: root/SUPPORTED_OPS.md
diff options
context:
space:
mode:
authorJonas Ohlsson <jonas.ohlsson@arm.com>2021-09-01 15:57:21 +0200
committerJonas Ohlsson <jonas.ohlsson@arm.com>2021-09-15 10:48:08 +0100
commit0957e3ef4b94f17efb67429c88bab8ba650f78e8 (patch)
treef3e2600367bc7c89145657023b45b9dde2c316c2 /SUPPORTED_OPS.md
parent1a7527cd4ad56b49f120b10dc5e87a1e8f5a8122 (diff)
downloadethos-u-vela-0957e3ef4b94f17efb67429c88bab8ba650f78e8.tar.gz
MLBEDSW-5102 Update removal of memory only operators
Memory only operators such as Reshape, Squeeze and ExpandDims are removed in the graph optimiser step. - Added semantic check that memory only operators have same quantisation parameters on ifm/ofm. - Added support for the ExpandDims operator. - Addition and cleanup of related unit tests. - Removed TOSA from the generated SUPPORTED_OPS.md documentation. Signed-off-by: Jonas Ohlsson <jonas.ohlsson@arm.com> Change-Id: If848d8afc58c18806e10997ed94e4dae83f30879
Diffstat (limited to 'SUPPORTED_OPS.md')
-rw-r--r--SUPPORTED_OPS.md76
1 files changed, 23 insertions, 53 deletions
diff --git a/SUPPORTED_OPS.md b/SUPPORTED_OPS.md
index 9c2a9f4e..f96bd4af 100644
--- a/SUPPORTED_OPS.md
+++ b/SUPPORTED_OPS.md
@@ -1,14 +1,13 @@
# Supported Ops
This file was automatically generated by Vela using the `--supported-ops-report` parameter.
-Vela version: `3.1.0rc2.dev6+g4f87092`
+Vela version: `3.1.1.dev13+gf54e94a.d20210914`
This file complies with
[**Gitiles Markdown syntax**](https://github.com/google/gitiles/blob/master/Documentation/markdown.md)
Summary table of constraints for:
- [TFLite](#tflite-summary-table)
-- [TOSA](#tosa-summary-table)
## TFLite Summary Table
@@ -25,6 +24,7 @@ Please check the supported operator list for your chosen runtime for further inf
| CONCATENATION | [Generic](#tflite-generic-constraints), [Specific](#tflite-concatenation-constraints) |
| CONV_2D | [Generic](#tflite-generic-constraints), [Specific](#tflite-conv_2d-constraints) |
| DEPTHWISE_CONV_2D | [Generic](#tflite-generic-constraints), [Specific](#tflite-depthwise_conv_2d-constraints) |
+| EXPAND_DIMS | [Generic](#tflite-generic-constraints), [Specific](#tflite-expand_dims-constraints) |
| FULLY_CONNECTED | [Generic](#tflite-generic-constraints), [Specific](#tflite-fully_connected-constraints) |
| HARD_SWISH | [Generic](#tflite-generic-constraints), [Specific](#tflite-hard_swish-constraints) |
| LEAKY_RELU | [Generic](#tflite-generic-constraints), [Specific](#tflite-leaky_relu-constraints) |
@@ -40,13 +40,13 @@ Please check the supported operator list for your chosen runtime for further inf
| RELU | [Generic](#tflite-generic-constraints) |
| RELU6 | [Generic](#tflite-generic-constraints) |
| RELU_N1_TO_1 | [Generic](#tflite-generic-constraints) |
-| RESHAPE | [Generic](#tflite-generic-constraints) |
+| RESHAPE | [Generic](#tflite-generic-constraints), [Specific](#tflite-reshape-constraints) |
| RESIZE_BILINEAR | [Generic](#tflite-generic-constraints), [Specific](#tflite-resize_bilinear-constraints) |
| SLICE | [Generic](#tflite-generic-constraints) |
| SOFTMAX | [Generic](#tflite-generic-constraints), [Specific](#tflite-softmax-constraints) |
| SPLIT | [Generic](#tflite-generic-constraints) |
| SPLIT_V | [Generic](#tflite-generic-constraints), [Specific](#tflite-split_v-constraints) |
-| SQUEEZE | [Generic](#tflite-generic-constraints) |
+| SQUEEZE | [Generic](#tflite-generic-constraints), [Specific](#tflite-squeeze-constraints) |
| STRIDED_SLICE | [Generic](#tflite-generic-constraints), [Specific](#tflite-strided_slice-constraints) |
| SUB | [Generic](#tflite-generic-constraints), [Specific](#tflite-sub-constraints) |
| TANH | [Generic](#tflite-generic-constraints) |
@@ -60,7 +60,7 @@ This is a list of constraints that all NPU operators must satisfy in order to be
- Input(s) and Output tensors must not be dynamic
- Input(s) and Output tensors must have a defined shape
- Output tensors cannot be scalar
-- Scalar Input tensors are only valid for op type: ADD, MAXIMUM, MEAN, MINIMUM, MUL, SPLIT, SPLIT_V, SUB
+- Scalar Input tensors are only valid for op type: ADD, EXPAND_DIMS, MAXIMUM, MEAN, MINIMUM, MUL, SPLIT, SPLIT_V, SUB
- Input(s) and Output tensors must not be greater than 4D
- Input(s), Output and Weight tensors must have quantization parameters
- Input(s), Output and Weight tensors with quantization scales must be finite
@@ -148,6 +148,12 @@ This is a list of constraints that the DEPTHWISE_CONV_2D operator must satisfy i
- IFM Tensor batch size must be 1
- For depth multipliers > 1, IFM channels must be 1 and OFM channels must be equal to the depth multiplier
+### TFLite EXPAND_DIMS Constraints
+
+This is a list of constraints that the EXPAND_DIMS operator must satisfy in order to be scheduled on the NPU.
+
+- Input and output quantisation must match.
+
### TFLite FULLY_CONNECTED Constraints
This is a list of constraints that the FULLY_CONNECTED operator must satisfy in order to be scheduled on the NPU.
@@ -244,6 +250,12 @@ This is a list of constraints that the PAD operator must satisfy in order to be
- The pad tensor can only pad width and height
- Pad tensor must be of type: int32, int64
+### TFLite RESHAPE Constraints
+
+This is a list of constraints that the RESHAPE operator must satisfy in order to be scheduled on the NPU.
+
+- Input and output quantisation must match.
+
### TFLite RESIZE_BILINEAR Constraints
This is a list of constraints that the RESIZE_BILINEAR operator must satisfy in order to be scheduled on the NPU.
@@ -268,6 +280,12 @@ This is a list of constraints that the SPLIT_V operator must satisfy in order to
- Only one size is allowed to be inferred
+### TFLite SQUEEZE Constraints
+
+This is a list of constraints that the SQUEEZE operator must satisfy in order to be scheduled on the NPU.
+
+- Input and output quantisation must match.
+
### TFLite STRIDED_SLICE Constraints
This is a list of constraints that the STRIDED_SLICE operator must satisfy in order to be scheduled on the NPU.
@@ -310,51 +328,3 @@ This is a list of constraints that the TRANSPOSE_CONV operator must satisfy in o
- SAME padding: OFM dimensions must equal IFM dimensions multiplied by stride
- VALID padding: OFM dimensions must equal IFM dimensions multiplied by stride,
minus difference between kernel size and stride
-
-## TOSA Summary Table
-
-The table below contains TOSA operators that can be placed on the Ethos-U NPU.
-Note: There is limited support for compiling a TOSA neural network (EXPERIMENTAL).
-The related constraints have not yet been populated in the list.
-
-| Operator | TOSA Constraints |
-| --- | --- |
-| ABS | [Generic](#tosa-generic-constraints) |
-| ADD | [Generic](#tosa-generic-constraints) |
-| AVERAGE_POOL_2D | [Generic](#tosa-generic-constraints) |
-| CONCATENATION | [Generic](#tosa-generic-constraints) |
-| CONV_2D | [Generic](#tosa-generic-constraints) |
-| DEPTHWISE_CONV_2D | [Generic](#tosa-generic-constraints) |
-| FULLY_CONNECTED | [Generic](#tosa-generic-constraints) |
-| HARD_SWISH | [Generic](#tosa-generic-constraints) |
-| LEAKY_RELU | [Generic](#tosa-generic-constraints) |
-| LOGISTIC | [Generic](#tosa-generic-constraints) |
-| MAXIMUM | [Generic](#tosa-generic-constraints) |
-| MAX_POOL_2D | [Generic](#tosa-generic-constraints) |
-| MEAN | [Generic](#tosa-generic-constraints) |
-| MINIMUM | [Generic](#tosa-generic-constraints) |
-| MUL | [Generic](#tosa-generic-constraints) |
-| PACK | [Generic](#tosa-generic-constraints) |
-| PAD | [Generic](#tosa-generic-constraints) |
-| QUANTIZE | [Generic](#tosa-generic-constraints) |
-| RELU | [Generic](#tosa-generic-constraints) |
-| RELU6 | [Generic](#tosa-generic-constraints) |
-| RELU_N1_TO_1 | [Generic](#tosa-generic-constraints) |
-| RESHAPE | [Generic](#tosa-generic-constraints) |
-| RESIZE_BILINEAR | [Generic](#tosa-generic-constraints) |
-| SLICE | [Generic](#tosa-generic-constraints) |
-| SOFTMAX | [Generic](#tosa-generic-constraints) |
-| SPLIT | [Generic](#tosa-generic-constraints) |
-| SPLIT_V | [Generic](#tosa-generic-constraints) |
-| SQUEEZE | [Generic](#tosa-generic-constraints) |
-| STRIDED_SLICE | [Generic](#tosa-generic-constraints) |
-| SUB | [Generic](#tosa-generic-constraints) |
-| TANH | [Generic](#tosa-generic-constraints) |
-| TRANSPOSE_CONV | [Generic](#tosa-generic-constraints) |
-| UNPACK | [Generic](#tosa-generic-constraints) |
-
-### TOSA Generic Constraints
-
-This is a list of constraints that all NPU operators must satisfy in order to be scheduled on the NPU.
-
-- Tensors must be of type: int16, int32, int8, uint8