aboutsummaryrefslogtreecommitdiff
path: root/ethosu
diff options
context:
space:
mode:
authorJacob Bohlin <jacob.bohlin@arm.com>2020-08-28 15:45:44 +0200
committerpatrik.gustavsson <patrik.gustavsson@arm.com>2020-09-03 06:18:11 +0000
commit90033f33c9f8ba39d0575eea880e8f7dbf76a9fb (patch)
tree7a7269968b45fc9ae73fc19c95dcc413256c1557 /ethosu
parent438e5638e5a99ee75e0434818f48493dc1f0a373 (diff)
downloadethos-u-vela-90033f33c9f8ba39d0575eea880e8f7dbf76a9fb.tar.gz
MLBEDSW-2906: Only add padding fields to Npu ops
Signed-off-by: Jacob Bohlin <jacob.bohlin@arm.com> Change-Id: I75aad9bf59ad76ee6a0c0feb4d7299b50d787fe8
Diffstat (limited to 'ethosu')
-rw-r--r--ethosu/vela/graph_optimiser.py53
1 files changed, 27 insertions, 26 deletions
diff --git a/ethosu/vela/graph_optimiser.py b/ethosu/vela/graph_optimiser.py
index 7ab009f0..a89f8e63 100644
--- a/ethosu/vela/graph_optimiser.py
+++ b/ethosu/vela/graph_optimiser.py
@@ -392,33 +392,34 @@ def fixup_unpack_output(tens, arch):
def add_padding_fields(op, arch):
- if "padding" in op.attrs:
- if "Conv" in op.type:
- kernel_size = op.inputs[1].shape[:2]
- input_shape = op.inputs[0].shape
- elif "Pool" in op.type or op.type in ("ResizeBilinear", "ReduceSum"):
- kernel_size = op.attrs["ksize"][1:3]
- input_shape = op.inputs[0].shape
- elif op.type == "ExtractImagePatches":
- kernel_size = op.attrs["ksizes"][1:3]
- input_shape = op.inputs[0].shape
- else:
- raise UnsupportedFeatureError("Unknown operation that uses padding: {}".format(op.type))
-
- if op.type == "Conv2DBackpropInputSwitchedBias":
- upscaling_factor = op.outputs[0].shape[1] // input_shape[1]
- padding, skirt = calc_upscaled_padding_and_skirt(
- op.attrs["padding"], kernel_size, op.attrs["strides"], input_shape, upscaling_factor
- )
- else:
- dilation_h, dilation_w = op.get_dilation_h_w()
- dilated_kernel_size = [dilation_h * (kernel_size[0] - 1) + 1, dilation_w * (kernel_size[1] - 1) + 1]
- padding, skirt = calc_padding_and_skirt(
- op.attrs["padding"], dilated_kernel_size, op.attrs["strides"], input_shape
- )
+ if op.run_on_npu:
+ if "padding" in op.attrs:
+ if "Conv" in op.type:
+ kernel_size = op.inputs[1].shape[:2]
+ input_shape = op.inputs[0].shape
+ elif "Pool" in op.type or op.type in ("ResizeBilinear", "ReduceSum"):
+ kernel_size = op.attrs["ksize"][1:3]
+ input_shape = op.inputs[0].shape
+ elif op.type == "ExtractImagePatches":
+ kernel_size = op.attrs["ksizes"][1:3]
+ input_shape = op.inputs[0].shape
+ else:
+ raise UnsupportedFeatureError("Unknown operation that uses padding: {}".format(op.type))
+
+ if op.type == "Conv2DBackpropInputSwitchedBias":
+ upscaling_factor = op.outputs[0].shape[1] // input_shape[1]
+ padding, skirt = calc_upscaled_padding_and_skirt(
+ op.attrs["padding"], kernel_size, op.attrs["strides"], input_shape, upscaling_factor
+ )
+ else:
+ dilation_h, dilation_w = op.get_dilation_h_w()
+ dilated_kernel_size = [dilation_h * (kernel_size[0] - 1) + 1, dilation_w * (kernel_size[1] - 1) + 1]
+ padding, skirt = calc_padding_and_skirt(
+ op.attrs["padding"], dilated_kernel_size, op.attrs["strides"], input_shape
+ )
- op.attrs["explicit_padding"] = padding
- op.attrs["skirt"] = skirt
+ op.attrs["explicit_padding"] = padding
+ op.attrs["skirt"] = skirt
return op