aboutsummaryrefslogtreecommitdiff
path: root/ethosu/vela/extract_npu_subgraphs.py
diff options
context:
space:
mode:
Diffstat (limited to 'ethosu/vela/extract_npu_subgraphs.py')
-rw-r--r--ethosu/vela/extract_npu_subgraphs.py8
1 files changed, 8 insertions, 0 deletions
diff --git a/ethosu/vela/extract_npu_subgraphs.py b/ethosu/vela/extract_npu_subgraphs.py
index f46f031a..ac24e430 100644
--- a/ethosu/vela/extract_npu_subgraphs.py
+++ b/ethosu/vela/extract_npu_subgraphs.py
@@ -87,6 +87,14 @@ def rewrite_tensor_cpu_producer_npu_consumers(
call_ps.inputs.append(orig_tens)
call_ps.primary_op.inputs.append(orig_tens)
+ # Elementwise op can not overwrite ifm if input is used by many consumers
+ if orig_tens in cpu_subgraph.input_tensors and len(orig_tens.consumers()) > 1:
+ new_tens.ifm_write_protected = True
+
+ # Elementwise op can not overwrite ifm if tensor is used as output from sub graph
+ if orig_tens in cpu_subgraph.output_tensors:
+ new_tens.ifm_write_protected = True
+
for op in list(orig_tens.consumers()):
if op is None:
continue # Subgraph consumers handled separately.