TOSA: Add support for PAD
Added support for TOSA PAD operator
in line with legacy support
Limitations:
-Rank <= 4
-N = 1 if Rank = 4 for ifms/ofm
-only padding in W and H dimensions
-bool_t not supported
Signed-off-by: Patrik Gustavsson <patrik.gustavsson@arm.com>
Change-Id: I511608202b4c9bf6d86285b559c517fb41741fdf
diff --git a/ethosu/vela/tosa_mapping.py b/ethosu/vela/tosa_mapping.py
index 6efc479..ebbaa0a 100644
--- a/ethosu/vela/tosa_mapping.py
+++ b/ethosu/vela/tosa_mapping.py
@@ -174,7 +174,7 @@
unary_quant_info = QuantSerializer("UnaryQuantInfo", ("input_zp", "output_zp"))
conv_quant_info = QuantSerializer("ConvQuantInfo", ("input_zp", "weight_zp"))
matmul_quant_info = QuantSerializer("MatMulQuantInfo", ("a_zp", "b_zp"))
-pad_quant_info = QuantSerializer("PadQuantInfo", ("input_zp"))
+pad_quant_info = QuantSerializer("PadQuantInfo", ("input_zp",))
unsupported_tosa_operators = {
TosaOp.UNKNOWN,
@@ -218,7 +218,6 @@
TosaOp.REDUCE_MIN,
TosaOp.REDUCE_PRODUCT,
TosaOp.REDUCE_SUM,
- TosaOp.PAD,
TosaOp.REVERSE,
TosaOp.TILE,
TosaOp.GATHER,
@@ -298,12 +297,19 @@
# TODO TosaOp.REDUCE_PRODUCT
# TODO TosaOp.REDUCE_SUM
TosaOp.CONCAT: (Op.Concat, axis_attrs, None, TOSA_CONCAT_INDICES),
- # TODO TosaOp.PAD
+ # TODO Is the padding intended to be dynamic input, TOSA spec state it as attribute
+ # Handled as for TFLite for now
+ TosaOp.PAD: (Op.Pad, None, pad_quant_info, TOSA_IFM_INDICES),
TosaOp.RESHAPE: (Op.Reshape, reshape_attrs, None, TOSA_IFM_INDICES),
# TODO TosaOp.REVERSE
TosaOp.SLICE: (Op.SplitSliceRead, slice_attrs, None, TOSA_IFM_INDICES),
# TODO TosaOp.TILE
- TosaOp.TRANSPOSE: (Op.Transpose, None, None, TOSA_IFM_IFM2_INDICES),
+ TosaOp.TRANSPOSE: (
+ Op.Transpose,
+ None,
+ None,
+ TOSA_IFM_IFM2_INDICES,
+ ), # TODO Is the perms intended to be dynamic input, TOSA spec state it as attribute
# TODO TosaOp.GATHER
# TODO TosaOp.SCATTER
# TODO TosaOp.RESIZE