mpl: always use best valid result#6967
Conversation
Signed-off-by: Arthur Koucher <arthurkoucher@precisioninno.com>
|
clang-tidy review says "All clean, LGTM! 👍" |
|
Noice! |
|
Are you running a secure CI for this? Hopefully we just see improvements... |
|
I ran a Secure-CI and it had some failures. I'm taking a look. |
Signed-off-by: Arthur Koucher <arthurkoucher@precisioninno.com>
Signed-off-by: Arthur Koucher <arthurkoucher@precisioninno.com>
|
clang-tidy review says "All clean, LGTM! 👍" |
|
Re-running Secure-CI. |
|
uW is failing due to high congestion in GRT post-drt. I'm taking a look. |
|
Re-ran CI with a lower routing layer adjustment for uW (0.15 -> 0.10) and it passed. However, ngt45/swerv_wrapper is failing in detail placement. I'll investigate. |
Signed-off-by: Arthur Koucher <arthurkoucher@precisioninno.com>
|
clang-tidy review says "All clean, LGTM! 👍" |
|
The IO constraints project was being prioritized so this was on hold. I updated the branch with master and adapted the tests results. I'm also updating a test's configuration to make it more concise. Re-running Secure-CI. |
|
|
|
#3190 for decreasing routing layer adjustment on |
|
@eder-matheus Secure-CI passed. |
Context
When running Secure-CI for #6649, some results were considerably different than master which doesn't seem to make sense as there's no functionality changes.
Cause of the Differences
Inside SA, we have a mechanism to store the best valid result. It was created in order to ensure MPL converges if a valid result was generated at any point during annealing. However, this best stored result is only actually used if the final result is invalid. We should use the best valid result even if the final iteration result is a valid one, because we might have generated a good result during the early iterations that ended up being discarded.
I.e., what's happening in the previously cited PR is that the change in the random number generator affected the path SA takes and some good results from early iterations that we were luckily choosing are now being discarded.
Changes
Use the best valid result stored even if the final result is valid.
With these changes, the results should improve compared to master and the results between base/test for #6649 should get more consistent.
Additional
The io_constraints3 test is not using the boundary penalty in SA. That will make the test more concise as the centralization attempt should always work regardless of the shape chosen for the std cell cluster.