From a8fda88bced0d11441467b6798885101d41ac8e9 Mon Sep 17 00:00:00 2001 From: Johan Alfven Date: Sat, 28 Oct 2023 16:04:46 +0200 Subject: MLBEDSW-8290: MLCE: Add TRANSPOSE support - Added graph optimiser function to convert TRANSPOSE op into an AvgPool op with swapped stride for height and width - Added TRANSPOSE supported op check - Added unit tests for TRANSPOSE supported op check - Updated SUPPORTED_OPS.md - Fixed problem in pass packing when optimizing the pass list. Old problem, but now seen when moving TRANSPOSE from cpu. Change-Id: I0a0ef420b0fb8241090c2e2434622881105cde15 Signed-off-by: Johan Alfven --- SUPPORTED_OPS.md | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) (limited to 'SUPPORTED_OPS.md') diff --git a/SUPPORTED_OPS.md b/SUPPORTED_OPS.md index 81704e53..ceb02051 100644 --- a/SUPPORTED_OPS.md +++ b/SUPPORTED_OPS.md @@ -19,7 +19,7 @@ limitations under the License. # Supported Ops This file was automatically generated by Vela using the `--supported-ops-report` parameter. -Vela version: `3.9.1.dev16+gd230ce9.d20231030` +Vela version: `3.9.1.dev21+gb724cdb.d20231107` This file complies with [**Gitiles Markdown syntax**](https://gerrit.googlesource.com/gitiles/+/HEAD/Documentation/markdown.md) @@ -75,6 +75,7 @@ Please check the supported operator list for your chosen runtime for further inf | 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) | +| TRANSPOSE | [Generic](#tflite-generic-constraints), [Specific](#tflite-transpose-constraints) | | TRANSPOSE_CONV | [Generic](#tflite-generic-constraints), [Specific](#tflite-transpose_conv-constraints) | | UNIDIRECTIONAL_SEQUENCE_LSTM | [Generic](#tflite-generic-constraints), [Specific](#tflite-unidirectional_sequence_lstm-constraints) | | UNPACK | [Generic](#tflite-generic-constraints) | @@ -90,12 +91,12 @@ This is a list of constraints most NPU operators must satisfy in order to be sch - Output tensors cannot be scalar - [QUANTIZE] - Scalar Input tensors are only valid for op type: ADD, ARG_MAX, EXPAND_DIMS, MAXIMUM, MEAN, MINIMUM, MUL, QUANTIZE, 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 - [ARG_MAX, SHAPE] +- Input(s), Output and Weight tensors must have quantization parameters - [ARG_MAX, SHAPE, TRANSPOSE] - Input(s), Output and Weight tensors with quantization scales must be finite - Input and Output tensors must have quantization scales that fit within float32 precision - Constant tensors should not have NoneType-values - Tensors must be of type: int16, int32, int8, uint8 - [ARG_MAX] -- Tensors which are int32 are only valid when op type is: ADD, ARG_MAX, MUL, SHAPE, SUB +- Tensors which are int32 are only valid when op type is: ADD, ARG_MAX, MUL, SHAPE, SUB, TRANSPOSE - Tensor dimensions must be in the range [1, 65535] - Per-axis quantization is only supported for the following op types: CONV_2D, DEPTHWISE_CONV_2D, TRANSPOSE_CONV - IFM Tensor batch size must be 1 - [FULLY_CONNECTED, RESHAPE, SHAPE, SLICE, SOFTMAX, SPLIT, SPLIT_V, SQUEEZE, STRIDED_SLICE, UNPACK] @@ -405,6 +406,15 @@ This is a list of constraints that the SUB operator must satisfy in order to be - For IFM that are unsigned, OFM must either be the same type or int32 - Broadcasting is only allowed for rank indices with dimension 1, from either IFM1 or IFM2 +### TFLite TRANSPOSE Constraints + +This is a list of constraints that the TRANSPOSE operator must satisfy in order to be scheduled on the NPU. + +- The following shape/permutations are supported for transpose: + When ifm rank is 2: WxC -> CxW + When ifm rank is 3: HxWxC -> WxHxC, 1xWxC -> 1xCxW, Hx1xC -> Cx1xH + When ifm rank is 4: 1xHxWxC -> 1xWxHxC, 1x1xWxC -> 1x1xCxW, 1xHx1xC -> 1xCx1xW + ### TFLite TRANSPOSE_CONV Constraints This is a list of constraints that the TRANSPOSE_CONV operator must satisfy in order to be scheduled on the NPU. -- cgit v1.2.1