aboutsummaryrefslogtreecommitdiff
path: root/ethosu/vela/tosa_mapping.py
diff options
context:
space:
mode:
authorPatrik Gustavsson <patrik.gustavsson@arm.com>2021-09-08 15:04:11 +0200
committerPatrik Gustavsson <patrik.gustavsson@arm.com>2021-09-09 14:39:57 +0200
commite2bfa7ec7495591139e19f41397054a44a0348bc (patch)
tree6f4616c1fd2f28ccabddae1489ef5f4cad24c464 /ethosu/vela/tosa_mapping.py
parentf366fb1fdffcc9d0eb2e6daf60dc89a2bd442ce6 (diff)
downloadethos-u-vela-e2bfa7ec7495591139e19f41397054a44a0348bc.tar.gz
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
Diffstat (limited to 'ethosu/vela/tosa_mapping.py')
-rw-r--r--ethosu/vela/tosa_mapping.py14
1 files changed, 10 insertions, 4 deletions
diff --git a/ethosu/vela/tosa_mapping.py b/ethosu/vela/tosa_mapping.py
index 6efc4791..ebbaa0a1 100644
--- a/ethosu/vela/tosa_mapping.py
+++ b/ethosu/vela/tosa_mapping.py
@@ -174,7 +174,7 @@ while_attrs = AttrSerializer("WhileLoopAttribute", (("cond_branch"), ("body_bran
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 @@ unsupported_tosa_operators = {
TosaOp.REDUCE_MIN,
TosaOp.REDUCE_PRODUCT,
TosaOp.REDUCE_SUM,
- TosaOp.PAD,
TosaOp.REVERSE,
TosaOp.TILE,
TosaOp.GATHER,
@@ -298,12 +297,19 @@ tosa_operator_map = {
# 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