diff options
author | Louis Verhaard <louis.verhaard@arm.com> | 2021-08-19 16:36:32 +0200 |
---|---|---|
committer | Louis Verhaard <louis.verhaard@arm.com> | 2021-08-23 13:23:28 +0200 |
commit | 04bd3e91ccc43ff09cb98d792a544997e880dc18 (patch) | |
tree | fa40222f05aa645cfb0ad67d220e7600331a2a5a | |
parent | e348776c74b804725593f66263617666b8a1a045 (diff) | |
download | ethos-u-vela-04bd3e91ccc43ff09cb98d792a544997e880dc18.tar.gz |
MLBEDSW-4978: Cascading of operators requiring full IFM/OFM
Bug fix in cascade builder: tensors produced with operators requiring full OFM
or consumed by operators requiring full IFM could be added as intermediate buffers
to a cascade.
Signed-off-by: Louis Verhaard <louis.verhaard@arm.com>
Change-Id: Id84e9e1940bf85ab4cbc42a03e65f64da16a094c
-rw-r--r-- | ethosu/vela/cascade_builder.py | 2 | ||||
-rw-r--r-- | ethosu/vela/tensor.py | 1 |
2 files changed, 3 insertions, 0 deletions
diff --git a/ethosu/vela/cascade_builder.py b/ethosu/vela/cascade_builder.py index e4fa67e9..0b50eaa8 100644 --- a/ethosu/vela/cascade_builder.py +++ b/ethosu/vela/cascade_builder.py @@ -174,6 +174,8 @@ class CascadeBuilder: or current_op not in ref_cost or not self._is_cascadable(current_op, ref_cost[current_op]) or producer.ofm.shape != current_op.ifm.shape + or current_op.requires_full_ifm + or producer.requires_full_ofm ): # Current op has already been processed or cannot be cascaded break diff --git a/ethosu/vela/tensor.py b/ethosu/vela/tensor.py index 677757ca..8304a657 100644 --- a/ethosu/vela/tensor.py +++ b/ethosu/vela/tensor.py @@ -478,6 +478,7 @@ class Tensor: if shape_len > 4: return + assert not (self.needs_linear_format and fmt == TensorFormat.NHCWB16) self.storage_rounding_quantum = arch.storage_rounding_quantums[self.format] self.storage_rounding_quantum = tuple(self.storage_rounding_quantum[-shape_len:]) self.brick_size = arch.brick_sizes[self.format] |