-
Notifications
You must be signed in to change notification settings - Fork 405
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add extended lookahead map #1449
Add extended lookahead map #1449
Conversation
6586087
to
88b5632
Compare
Not sure what all the failures are due to -- rerun? |
Looks like at least some of these failures are due to failures in the new lookahead builder. |
88b5632
to
9baa569
Compare
I have restored the changes to only add the extended lookahead map. Turns out that, even with the bugfix of the CHANX/CHANY that got merged together, CPD and in general QoR seems to be worsening also for the strong regression tests. The problem is that the lookahead map and the extended lookahead map use two very different methods of both generating and querying the cost map. I am unsure whether the two methods can be merged together safely and preserve the QoR of vtr regression tests, as well as run-time. |
c313c39
to
60b3b25
Compare
60b3b25
to
f4105e2
Compare
I believe this is ready for review at the current state. I have exported some of the code from the lookahead map in the This implementation does not interfere with the regression tests as they all use the |
bdd96dd
to
15c54dd
Compare
@vaughnbetz @litghost @HackerFoo FYI, I think this PR is ready for a first review iteration |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM
266a8ce
to
fe3cad5
Compare
a8e9b8c
to
53bfad8
Compare
- New sampling method for lookahead map. - New spiral hole filling algorithm - Use a lightweight version of PQ_Entry (PQ_Entry_Lite) - Use maps in run_dijkstra() - Move context of router_lookahead_map_utils inside of util namespace. - Parallelization of lookahead generation lookahead: add new extended map lookahead This lookahead generates a map with a more complex and complete way of sampling and expanding the nodes to reach all destinations. The dijkstra expansion is parallelized to overcome the higher number of samples needed. It also adds a penalty cost factor based on distance between the origin and destination nodes. extended_lookahead: cleaned code and reduced code duplication Signed-off-by: Dusty DeWeese <[email protected]> Signed-off-by: Keith Rothman <[email protected]> Signed-off-by: Alessandro Comodi <[email protected]>
Signed-off-by: Alessandro Comodi <[email protected]>
Signed-off-by: Alessandro Comodi <[email protected]>
- The cost map filling routine has been simplified and the relevant code extracted in two different sub-routines (penalty calculation, cost filling) - Commented used Doxygen compatible style some of the important methods and class members Signed-off-by: Alessandro Comodi <[email protected]>
Signed-off-by: Alessandro Comodi <[email protected]>
Signed-off-by: Alessandro Comodi <[email protected]>
Signed-off-by: Alessandro Comodi <[email protected]>
Signed-off-by: Alessandro Comodi <[email protected]>
Signed-off-by: Alessandro Comodi <[email protected]>
Signed-off-by: Alessandro Comodi <[email protected]>
- Added better description on the user options - Added test with random_shuffle nodes reordering Signed-off-by: Alessandro Comodi <[email protected]>
Signed-off-by: Alessandro Comodi <[email protected]>
Signed-off-by: Alessandro Comodi <[email protected]>
Signed-off-by: Alessandro Comodi <[email protected]>
Signed-off-by: Alessandro Comodi <[email protected]>
Signed-off-by: Alessandro Comodi <[email protected]>
Signed-off-by: Alessandro Comodi <[email protected]>
Signed-off-by: Alessandro Comodi <[email protected]>
53bfad8
to
3111500
Compare
@vaughnbetz I have rebased and solved all the conflicts due to the RCV merge |
Thanks @acomodi . There are a few unresolved conversations, requests.
@acomodi : if you can do 1 (comment / transfer to new PR or issue) while we're waiting for 2 (kokoro) then I can merge once kokoro finishes. |
@vaughnbetz Ok, I will open a new PR based on this one to add the additional comments and the assertion, as well as opening the issues. I do not have time unfortunately to update the RRNodeId today, but I can open an issue about it as well |
Opened issues: |
Thanks @acomodi. This is a major PR ! |
Description
This PR adds a new lookahead map method called extended map. This new kind of lookahead takes the same mechanisms of generation of the cost map as found in the connection box based lookahead currently implemented in the SymbiFlow/VTR fork, and uses the OPIN -> CHAN and CHAN -> IPIN delay information from the upstream lookahead map.
This PR includes new code to perform the node sampling which is more robust with respect to the current implementation, but takes more time to compute, hence the need of parallelize the graph exploration to fill the map costs.
Even with parallelization, though, the lookahead generation takes too long for the current regression tests in VTR, therefore the choice of adding a completely new lookahead type (extended map), so not to interfere with the current implementation.
Related Issue
There is no issue currently open, but this PR is one of the last ones needed to fully upstream the SymbiFlow/VTR fork's changes needed to perform P&R using upstream VTR for 7-series devices.
Motivation and Context
The current lookahead map implementation is not sufficient to provide accurate estimates during the router expansions for 7-Series devices. This results in high run-times with bad CPD results. To achieve better results, the lookahead build strategy needed to be improved (at least for 7-series).
How Has This Been Tested?
The new lookahead has been tested on SymbiFlow architectures: the issue keeping track of the progress is this one
Types of changes
Checklist: