diff options
author | Louis Verhaard <louis.verhaard@arm.com> | 2021-08-19 15:15:36 +0200 |
---|---|---|
committer | Louis Verhaard <louis.verhaard@arm.com> | 2021-08-23 08:06:53 +0200 |
commit | cc34d5d33938b6cbd9f8b11883f12e8c3097b613 (patch) | |
tree | cf8bca41de33bf563df8b08d1c76ae46ac9a2db0 /ethosu | |
parent | 6f23da6937a6d53263cf922d8f96732df09ff362 (diff) | |
download | ethos-u-vela-cc34d5d33938b6cbd9f8b11883f12e8c3097b613.tar.gz |
MLBEDSW-4976: index errors in scheduler
- Fixed index error in memory_snapshot
- When removing a cascade, also references are removed
Change-Id: I2b35dc52671d8ce115eb32bfdd93584391d1fc6d
Signed-off-by: Louis Verhaard <louis.verhaard@arm.com>
Diffstat (limited to 'ethosu')
-rw-r--r-- | ethosu/vela/live_range.py | 8 | ||||
-rw-r--r-- | ethosu/vela/scheduler.py | 10 |
2 files changed, 8 insertions, 10 deletions
diff --git a/ethosu/vela/live_range.py b/ethosu/vela/live_range.py index 7ff1b28d..0b94b197 100644 --- a/ethosu/vela/live_range.py +++ b/ethosu/vela/live_range.py @@ -138,15 +138,11 @@ class LiveRangeGraph: return live_range def update_endtime(self): - self.end_time = 0 - for rng in self.ranges.values(): - self.end_time = max(self.end_time, rng.end_time) + self.end_time = self.current_time return self.end_time + 1 def get_temporal_memory_usage(self, target_mem_area): - if not self.end_time: - self.update_endtime() - usage = np.zeros(self.end_time, dtype=np.int32) + usage = np.zeros(self.update_endtime(), dtype=np.int32) for rng in self.ranges.values(): if rng.mem_area == target_mem_area: # End time is inclusive diff --git a/ethosu/vela/scheduler.py b/ethosu/vela/scheduler.py index a375a939..de10bad7 100644 --- a/ethosu/vela/scheduler.py +++ b/ethosu/vela/scheduler.py @@ -861,10 +861,12 @@ class Scheduler: return max_sched # Extract the cascades - cascades = [cascade for cascade in schedule.cascades.values()] - for cascade_info in cascades: - # Remove existing cascade from schedule - del schedule.cascades[cascade_info.end] + cascades = schedule.cascades + # Remove existing cascade from schedule + schedule.cascades = {} + for cost in schedule.cost_map.values(): + cost.cascade = 0 + for cascade_info in cascades.values(): # Optimize the sub-schedule in this cascade opt_sub_schedule = self.optimize_sub_schedule(cascade_info, schedule, max_template, sram_limit) # Update the sub-schedule Op and cascade costs to the full schedule |