diff options
author | Jacob Bohlin <jacob.bohlin@arm.com> | 2020-08-28 15:45:44 +0200 |
---|---|---|
committer | patrik.gustavsson <patrik.gustavsson@arm.com> | 2020-09-03 06:18:11 +0000 |
commit | 90033f33c9f8ba39d0575eea880e8f7dbf76a9fb (patch) | |
tree | 7a7269968b45fc9ae73fc19c95dcc413256c1557 /ethosu/vela | |
parent | 438e5638e5a99ee75e0434818f48493dc1f0a373 (diff) | |
download | ethos-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/vela')
-rw-r--r-- | ethosu/vela/graph_optimiser.py | 53 |
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 |