aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLouis Verhaard <louis.verhaard@arm.com>2021-08-19 16:36:32 +0200
committerLouis Verhaard <louis.verhaard@arm.com>2021-08-23 13:23:28 +0200
commit04bd3e91ccc43ff09cb98d792a544997e880dc18 (patch)
treefa40222f05aa645cfb0ad67d220e7600331a2a5a
parente348776c74b804725593f66263617666b8a1a045 (diff)
downloadethos-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.py2
-rw-r--r--ethosu/vela/tensor.py1
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]