diff options
author | Jonas Ohlsson <jonas.ohlsson@arm.com> | 2021-09-01 15:57:21 +0200 |
---|---|---|
committer | Jonas Ohlsson <jonas.ohlsson@arm.com> | 2021-09-15 10:48:08 +0100 |
commit | 0957e3ef4b94f17efb67429c88bab8ba650f78e8 (patch) | |
tree | f3e2600367bc7c89145657023b45b9dde2c316c2 /SUPPORTED_OPS.md | |
parent | 1a7527cd4ad56b49f120b10dc5e87a1e8f5a8122 (diff) | |
download | ethos-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.md | 76 |
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 |