MLBEDSW-5839: Port of improved spilling behaviour
Ported the improved spilling behaviour from Regor
into Vela. This replaces use_fast_storage_for_feature_maps
with allocate_feature_maps and introduces the class called
FastStorageComponentAllocator.
Signed-off-by: erik.andersson@arm.com <erik.andersson@arm.com>
Change-Id: I34785840c905a79750a62863773015b00fb43387
diff --git a/ethosu/vela/live_range.py b/ethosu/vela/live_range.py
index 1aaaadd..fc94e9d 100644
--- a/ethosu/vela/live_range.py
+++ b/ethosu/vela/live_range.py
@@ -42,7 +42,10 @@
self.add_tensor(tens)
def __str__(self):
- return "<live_range.LiveRange: '%s' start_time=%s, end_time=%s>" % (self.name, self.start_time, self.end_time)
+ return (
+ f"<live_range.LiveRange: {self.start_time}-{self.end_time}, "
+ f"size={self.size}, '{self.name}' #:{len(self.tensors)}>"
+ )
__repr__ = __str__
@@ -142,10 +145,10 @@
def get_temporal_memory_usage(self, target_mem_area):
usage = np.zeros(self.update_endtime(), dtype=np.int32)
- for rng in self.ranges.values():
- if rng.mem_area == target_mem_area:
+ for lr in self.lrs:
+ if lr.mem_area == target_mem_area:
# End time is inclusive
- usage[rng.start_time : rng.end_time + 1] += rng.size
+ usage[lr.start_time : lr.end_time + 1] += lr.size
return usage