-
Notifications
You must be signed in to change notification settings - Fork 395
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
[AP] Global Placer #2806
[AP] Global Placer #2806
Conversation
@vaughnbetz This has passed CI. Please review. This is a much smaller PR than the last one. It adds the Global Placer class into the AP flow which handles how the Analytical Solver interacts with the Partial Legalizer. |
c45d0b4
to
dea8847
Compare
@vaughnbetz Thank you for the review. I have resolved your comments. I agree that using an absolute gap was not a sustainable idea. I changed it to a percent gap, as you suggested, where the percent gap is equal to (UB - LB) / UB [since UB should be larger than LB). I set the target percent gap to 10%, which seems to work relatively well for some of the smaller circuits I test on. In the future I will tune this to a better value. Let me know if you have any further comments or if we can merge this. |
Great, thanks. |
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.
Looks good, but one last change: we should call it relative gap instead of percent gap.
Created the Global Placer base class which will create a partial placement based on the netlist and the architecture. This attempts to find a "globally" good placement, without considering all of the complex constraints of the FPGA architecture (without clustering). Implemented a SimPL-based Global Placer which maintains an upper and lower bound solution which slowly approach each other over several iterations. The lower-bound is the analytically solved solution which tries to optimize the placement (hinted by the upper bound solution). The upper-bound solution is the lower-bound solution which has been partially legalized.
dea8847
to
fe92b3e
Compare
@vaughnbetz Completely agree. I like that way better than percent! I have updated the code and documentation. Shall we merge? |
Done! |
Created the Global Placer base class which will create a partial placement based on the netlist and the architecture. This attempts to find a "globally" good placement, without considering all of the complex constraints of the FPGA architecture (without clustering).
Implemented a SimPL-based Global Placer which maintains an upper and lower bound solution which slowly approach each other over several iterations. The lower-bound is the analytically solved solution which tries to optimize the placement (hinted by the upper bound solution). The upper-bound solution is the lower-bound solution which has been partially legalized.