MLBEDSW-6563: networks failing with memory area exceeded in vela
- For allocations that have a hard memory limit the Hill Climb allocator
should be given more attempts to find a solution that would fit
- The fix is to use a memory limit when there is a hard constraint, and
a minimum iteration count, reset on every improvement, when there is a soft
constraint
- Added maximum number iterations CLI option
Signed-off-by: Tim Hall <tim.hall@arm.com>
Change-Id: I19ff53a0b68412de280263626778a3102cbe52fa
diff --git a/ethosu/vela/greedy_allocation.py b/ethosu/vela/greedy_allocation.py
index 6f4f801..f6d7a3a 100644
--- a/ethosu/vela/greedy_allocation.py
+++ b/ethosu/vela/greedy_allocation.py
@@ -19,11 +19,7 @@
class GreedyAllocator:
- def __init__(self, nng, arch, live_ranges, mem_area):
- self.nng = nng
- self.arch = arch
- self.mem_area = mem_area
-
+ def __init__(self, live_ranges):
self.live_ranges = live_ranges
self.memory_required = 0
@@ -75,6 +71,6 @@
return self.memory_required
-def allocate_live_ranges(nng, arch, live_ranges, mem_area, alignment):
- g = GreedyAllocator(nng, arch, live_ranges, mem_area)
+def allocate_live_ranges(live_ranges, alignment):
+ g = GreedyAllocator(live_ranges)
return g.allocate_live_ranges(alignment)