-
Notifications
You must be signed in to change notification settings - Fork 424
Deterministic parallel router #3203
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
Deterministic parallel router #3203
Conversation
… from memory and queries it using distances. If the cost map contains the minimum delay and minimum congestion costs per distance, then the lookahead is admissible.
… for floating point errors. If the lookahead is admissible and we account for the floating point arithmetic errors, the parallel router is deterministic.
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.
Hi Alex,
Thank you very much for raising this PR! I am very excited to try this out. I left some comments, and once resolved I think this will be good to merge.
There are also some minor formatting issues: You can run |
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
This PR provides everything necessary to make the parallel router deterministic without having to offset the lookahead costs.
Note: the vtr::isclose() function cannot used because it checks the absolute difference (it is symmetric), whereas we can only tolerate error on the left hand side (assymetric). Using this function makes the parallel router non-deterministic!
By using appropriate (admissible) cost maps, both of these changes allow the parallel router to be deterministic. Attached are admissible cost maps for the flagship VTR architecture (
k6_frac_N10_frac_chain_mem32K_40nm
) devices.vtr_devices_admissible_lookahead_maps.zip