aboutsummaryrefslogtreecommitdiff
path: root/ethosu/vela/cascade_builder.py
diff options
context:
space:
mode:
authorFredrik Svedberg <fredrik.svedberg@arm.com>2022-10-11 21:50:51 +0200
committerFredrik Svedberg <fredrik.svedberg@arm.com>2022-10-12 11:22:17 +0000
commitb81e1bb92be8ea5b29625cf2f361e9160286b16a (patch)
tree0963851b6d449224f67cce10ba510830db7b4172 /ethosu/vela/cascade_builder.py
parent3e3faa90def7c2c4aaaf71543726c881f05f53b5 (diff)
downloadethos-u-vela-b81e1bb92be8ea5b29625cf2f361e9160286b16a.tar.gz
MLBEDSW-6971 Fix output diff when cascading elementwise operators
Fixed output diff when cascading elementwise operators with reversed operand order. Signed-off-by: Fredrik Svedberg <fredrik.svedberg@arm.com> Change-Id: Iac2e28cfb53037b929459af213f4fa7715b3e6de
Diffstat (limited to 'ethosu/vela/cascade_builder.py')
-rw-r--r--ethosu/vela/cascade_builder.py5
1 files changed, 3 insertions, 2 deletions
diff --git a/ethosu/vela/cascade_builder.py b/ethosu/vela/cascade_builder.py
index b4a4f876..ebe2f133 100644
--- a/ethosu/vela/cascade_builder.py
+++ b/ethosu/vela/cascade_builder.py
@@ -175,11 +175,12 @@ class CascadeBuilder:
ifm = sched_op.parent_op.ifm
ifm2 = sched_op.parent_op.ifm2
- # Cascading elementwise operations with reverse operand order is not handled
if sched_op.parent_op.type.is_binary_elementwise_op() and ifm and ifm2:
# We cannot rule out cascadability if at least one IFM is constant
+ ifm_const = ifm.ops != [] and ifm.ops[0].type == Op.Const
ifm2_const = ifm2.ops != [] and ifm2.ops[0].type == Op.Const
- return ifm_ifm2_correct_order(ifm.shape, ifm2.shape) and ifm2_const
+ correct_order = ifm_ifm2_correct_order(ifm.shape, ifm2.shape)
+ return (ifm_const and (ifm.shape == ifm2.shape or not correct_order)) or (ifm2_const and correct_order)
else:
# Either one IFM is not variable or it is not a binary elementwise op - we cannot rule out cascadability
return True