-
Notifications
You must be signed in to change notification settings - Fork 426
[Place] Added an Initial Placement Checkpoint #3233
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
base: master
Are you sure you want to change the base?
[Place] Added an Initial Placement Checkpoint #3233
Conversation
I found that the annealer may sometimes pick a temperature so high that it destroys the quality of the initial placement. This behavior is most aparent with the AP flow, since its initial placement quality is much better than the default flow. Added a checkpoint at the start of the anneal that saves the initial placement and, after 20 iterations, if the quality of the current anneal is worse than the initial placement, it will restore that placement and continue at that temperature.
Results on AP Titan (no fixed blocks, gaussian blur excluded):
The run time did not change by much. For most circuits this optimization had no affect; however, for some of the largest circuits this improved the quality of both WL and CPD by a noticeable amount. |
@amin1377 I am collecting results before and after on the default VTR flow to check for any runtime or quality degredation on the default flow. That should be done this evening. Please review when you have a moment. Do not feel that we have to merge this in if you have issues with it! The quality improvement I got from this optimization was small, so we can hold it back as we investigate this further. |
@AlexandreSinger When you have the results for the default flow, I’d appreciate it if you could share them here. Also, as we discussed earlier, I’m not a big fan of disrupting SA by starting from a completely different point midway through the anneal. I’d be curious to hear what @vaughnbetz thinks about this as well. |
We are putting this PR on ice for a bit as I explore better methods of estimating an initial temperature. @amin1377 If you are curious, I can show you what I am working on. The goal is to predict the initial temperature instead of back-tracking. |
I found that the annealer may sometimes pick a temperature so high that it destroys the quality of the initial placement. This behavior is most aparent with the AP flow, since its initial placement quality is much better than the default flow.
Added a checkpoint at the start of the anneal that saves the initial placement and, after 20 iterations, if the quality of the current anneal is worse than the initial placement, it will restore that placement and continue at that temperature.
This is the last change that I had locally for the standard AP flow.