Skip to content
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

Updating router lookahead #2457

Merged
merged 158 commits into from Feb 8, 2024
Merged

Updating router lookahead #2457

merged 158 commits into from Feb 8, 2024

Conversation

amin1377
Copy link
Contributor

@amin1377 amin1377 commented Nov 30, 2023

In this pull request, we have optimized the memory footprint and reduced the build time of the router lookahead by adopting a strategy that involves fewer samples during the construction process. The previous implementation stored the cost to reach each dx and dy, which has now been replaced with a more efficient approach that samples a reduced number of points on the chip.

This got bigger:

  • Fixed a bug where the router lookahead Djikstra flood had "holes" (zero cost estimates) in a few places due to not finding any IPIN at the relevant (dx,dy). Now we fill in those 0 entries with the average over a 3x3 window of nearby (dx,dy) values.
  • Added a new place_delay_model (simple place delay model) which gets the minimum delay for each (dx,dy) by post-processing the router lookahead data. This simplifies code paths and greatly reduces place_delay_matrix compute time.

@github-actions github-actions bot added the VPR VPR FPGA Placement & Routing Tool label Nov 30, 2023
@amin1377
Copy link
Contributor Author

amin1377 commented Jan 12, 2024

QoR on large VTR benchmark:
Screenshot from 2024-01-12 11-54-11.
These results are with default settings, so they do not include the simple place delay matrix. They do include hole filling in the router lookahead or the sparsification of the router lookahead data strucutres.

@amin1377
Copy link
Contributor Author

QoR on Titan benchmark:
Screenshot from 2024-01-12 13-43-32

@amin1377 amin1377 changed the title [WIP] Compressed router lookahead Updating router lookahead Jan 18, 2024
@vaughnbetz
Copy link
Contributor

One QoR failure (too good):
19:29:43 | k6_frac_N10_frac_chain_mem32K_40nm.xml/LU8PEEng.v/common min_chan_width_route_time relative value 0.09854500000000001 outside of range [0.1,15.0], above absolute threshold 2.0 and not equal to golden value: 4000.0
19:29:43 | regression_tests/vtr_reg_nightly_test3_odin/vtr_reg_qor...[Pass]

Just needs an updated golden.

As a follow-up, you should make a PR to enable the new placer delay matrix ASAP as the results are good and we don't want anyone to break it. That PR should include VTR, Titan and Koios QoR results.

Copy link
Contributor

@vaughnbetz vaughnbetz left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks!
Some commenting suggestions and this is a good opportunity to make Doxygen documentation on the VTR web page for the router lookahead.

vpr/src/place/place_delay_model.h Show resolved Hide resolved
vpr/src/place/place_delay_model.h Outdated Show resolved Hide resolved
vpr/src/place/place_delay_model.h Outdated Show resolved Hide resolved
vpr/src/place/place_delay_model.h Show resolved Hide resolved
vpr/src/route/router_lookahead.cpp Outdated Show resolved Hide resolved
vpr/src/route/router_lookahead_map.cpp Show resolved Hide resolved
vpr/src/route/router_lookahead_map.cpp Outdated Show resolved Hide resolved
vpr/src/route/router_lookahead_map.cpp Show resolved Hide resolved
vpr/src/route/router_lookahead_map.h Show resolved Hide resolved
vpr/src/route/router_lookahead_map_utils.h Show resolved Hide resolved
@vaughnbetz vaughnbetz merged commit fe9089c into master Feb 8, 2024
98 checks passed
@vaughnbetz vaughnbetz deleted the compressed_router_lookahead branch February 8, 2024 21:01
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
lang-cpp C/C++ code libvtrutil VPR VPR FPGA Placement & Routing Tool
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants