[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. |
|
This has been somewhat superceded by the equilibrium initial temperature estimation method added in #3271 Instead of using a checkpoint, we can do a better job estimating the initial temperature. |
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.