Hi @aca88
thanks for your interest!
For the evaluated models, we just used a single schedule as given by TVM: tvm/memplan.py at tumeda_memplan · tum-ei-eda/tvm · GitHub
You are right that for more complex graphs, we would have to evaluate more schedules to find the optimal solution.
However, getting all topological sorts is a bit of a lazy overkill. I have not looked into this in detail yet, but some thoughts:
- Only need to evaluate parallel paths independently
- On nested parallel paths, work inside-out
- The optimal order within parallel paths is dependent on the maximum and minimum usage of the individual nodes. I’m sure there is a good algorithm for this, better than the brute-force approach