aboutsummaryrefslogtreecommitdiff
path: root/ethosu/vela/live_range.py
diff options
context:
space:
mode:
authorTim Hall <tim.hall@arm.com>2022-05-04 16:20:43 +0100
committerTim Hall <tim.hall@arm.com>2022-05-04 16:26:09 +0100
commitb5df773e92051004158046b0ed2c7b802198de6e (patch)
tree7d738a28a63b66a20f379acbdfc6c3e7c4a98a61 /ethosu/vela/live_range.py
parent95b07c1c0fed6a985607131e59a593786d40b389 (diff)
downloadethos-u-vela-b5df773e92051004158046b0ed2c7b802198de6e.tar.gz
Revert "MLBEDSW-6263: Use separate tensors for double buffering"
This reverts commit cc5f4de1c35ba44fca7ff6295c6ae846f8242344. Signed-off-by: Tim Hall <tim.hall@arm.com> Change-Id: I0fa5babfe9ad9ec668720d04fe1c16d9a9092131
Diffstat (limited to 'ethosu/vela/live_range.py')
-rw-r--r--ethosu/vela/live_range.py23
1 files changed, 8 insertions, 15 deletions
diff --git a/ethosu/vela/live_range.py b/ethosu/vela/live_range.py
index ccf49297..19d0c11f 100644
--- a/ethosu/vela/live_range.py
+++ b/ethosu/vela/live_range.py
@@ -63,7 +63,7 @@ class LiveRange:
def mark_usage(self, op_time, op_length=1):
op_time_start = max(op_time, 0)
op_time_end = op_time + op_length
- if op_time_end < op_time_start:
+ if op_time_end <= op_time_start:
return
self.start_time = min(self.start_time, op_time_start)
@@ -325,20 +325,13 @@ def _extract_live_ranges_from_schedule(sg, target_mem_area, target_mem_type_set,
rng.mark_usage(time_to_set)
- for idx, weight_tens in enumerate(op_info.buffered_weight_tensors):
- if weight_tens.mem_type in target_mem_type_set and weight_tens.mem_area == target_mem_area:
- rng = lr_graph.get_or_create_range(weight_tens)
- start_time = time_to_set
- length = 1
- if weight_tens.pre_buffer:
- start_time -= 1
- length += 1
- if len(op_info.buffered_weight_tensors) > 1:
- last_idx = len(op_info.ofm_depth_slices) % len(op_info.buffered_weight_tensors)
- # Double buffering: reduce end time of the buffer that is not used last
- if last_idx != idx:
- length -= 1
- rng.mark_usage(start_time, length)
+ weight_tens = op_info.buffered_weight_tensor
+ if weight_tens and weight_tens.mem_type in target_mem_type_set and weight_tens.mem_area == target_mem_area:
+ rng = lr_graph.get_or_create_range(weight_tens)
+ if weight_tens.pre_buffer:
+ rng.mark_usage(time_to_set - 1, 2)
+ else:
+ rng.mark_usage(time_to_set)
if time_to_set == lr_graph.current_time:
lr_graph.current_time += 2