mpl: remove shrink & restart mechanism #7216
Open
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
I believe that the rationale of this mechanism was attempting faster convergence for challenging macro placement problems. However, apparently, most of the convergence problems that MPL had was due to bugs associated with the lack of a mechanism to store the valid results generated along the simulated annealing steps - which we now have.
Also, currently, as we use batches of annealing (10) to check for convergence and lowest cost, we may choose a convergent annealing run that had it's std cell area shrunk over a convergent annealing run with its "original" std cell area (we increase the target utilization as runs go on). MPL wise this is not a problem, but, we'll be generating a macro placement for a very different placement density that GPL will use for global placement.
We probably shouldn't be comparing costs across annealing runs with different utilization. However this is out of the scope of this PR.
The changes here should improve run-time considerably as we're not overextending non-convergent runs anymore. We now will also be sure that a final result of an annealing run used the exact utilization and dead space amount that we set it to use.