aboutsummaryrefslogtreecommitdiff
path: root/ethosu/vela/graph_optimiser.py
diff options
context:
space:
mode:
Diffstat (limited to 'ethosu/vela/graph_optimiser.py')
-rw-r--r--ethosu/vela/graph_optimiser.py10
1 files changed, 10 insertions, 0 deletions
diff --git a/ethosu/vela/graph_optimiser.py b/ethosu/vela/graph_optimiser.py
index 582924c4..3fe703e1 100644
--- a/ethosu/vela/graph_optimiser.py
+++ b/ethosu/vela/graph_optimiser.py
@@ -69,6 +69,16 @@ def rewrite_concat(tens, arch):
tens.ops.append(new_op)
assert tens.shape[axis] == offset
+ # If axis = 3, NHCWB16 can only be used in the output if all the concat_start's are a multiple of 16,
+ # as it is only then the address offset for the ofm, for all operations, will be 16 byte aligned
+ # For other values of axis the address offsets will be 16 byte aligned, as they are all based on c = 0
+ # and those addresses are always 16 byte aligned due to the NHCWB16 format.
+ if axis == 3:
+ for op in tens.ops:
+ if op.attrs["concat_start"] % 16 != 0:
+ tens.avoid_NHCWB16 = True
+ break
+
return tens