diff options
author | Louis Verhaard <louis.verhaard@arm.com> | 2021-03-30 10:18:28 +0200 |
---|---|---|
committer | Louis Verhaard <louis.verhaard@arm.com> | 2021-03-30 16:15:11 +0200 |
commit | 226ecaf4561f421206d1593eac0fa57dd56db82e (patch) | |
tree | 539c69b7f61d0d9452ec1554c861677dfb6a480e /ethosu/vela/live_range.py | |
parent | 3438c929528583bc019055ad7057c08271b0cee7 (diff) | |
download | ethos-u-vela-226ecaf4561f421206d1593eac0fa57dd56db82e.tar.gz |
Performance improvement in tensor allocation
- Tensor allocation verification was O(N^2), is now closer to O(N)
- Removed a sort in HillClimb allocator
Change-Id: I286a269881490c485cc2b0eeab3b1ecffa8f3df0
Signed-off-by: Louis Verhaard <louis.verhaard@arm.com>
Diffstat (limited to 'ethosu/vela/live_range.py')
-rw-r--r-- | ethosu/vela/live_range.py | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/ethosu/vela/live_range.py b/ethosu/vela/live_range.py index 0cc89e27..de001e56 100644 --- a/ethosu/vela/live_range.py +++ b/ethosu/vela/live_range.py @@ -16,6 +16,8 @@ # Description: # Build a live range graph for tensors in one or more subgraphs. Used for tensor allocation as well as in the scheduler. # Can work with either a pass packed subgraph or a scheduled subgraph. +from typing import List + from .nn_graph import PassPlacement from .operation import Op from .tensor import MemType @@ -99,6 +101,7 @@ class LiveRange: class LiveRangeGraph: def __init__(self): + self.lrs: List[LiveRange] = [] # List of all created ranges self.ranges = {} # tens -> range self.ignore_tensors = set() self.processed_subgraphs = set() @@ -114,6 +117,7 @@ class LiveRangeGraph: # No live range found for the tensor, create a new one rng = LiveRange(tens, alignment) self.ranges[tens] = rng + self.lrs.append(rng) return rng def fuse_ranges(self, in_tens, out_tens): |