-
Notifications
You must be signed in to change notification settings - Fork 740
mpl: evaluate connection between clusters based on connections' ratio #8375
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
mpl: evaluate connection between clusters based on connections' ratio #8375
Conversation
|
clang-tidy review says "All clean, LGTM! 👍" |
|
Running Secure-CI. |
a80b3e8 to
b7eddf7
Compare
|
clang-tidy review says "All clean, LGTM! 👍" |
b7eddf7 to
b4b4029
Compare
|
clang-tidy review says "All clean, LGTM! 👍" |
|
Running new Secure-CI. |
3c6d51a to
38d97a9
Compare
|
@eder-matheus As this PR became a combination of changes which contemplate a larger scope compared to the original version, I have been rebasing it instead of master-merging it. I think that I will finally be able to get a clean Secure-CI run so I'm converting this back to a non-draft PR. I'm re-running Secure-CI. |
|
clang-tidy review says "All clean, LGTM! 👍" |
|
do an ORFS bump in this PR: https://github.com/The-OpenROAD-Project/OpenROAD/tree/master/test/orfs#updating-orfs-and-bazel-orfs |
|
Or wait create/wait for a separate PR in OpenROAD to bump ORFS #8798 and merge master with this PR. |
|
Thank you very much @oharboe ! |
|
clang-tidy review says "All clean, LGTM! 👍" |
1 similar comment
|
clang-tidy review says "All clean, LGTM! 👍" |
Signed-off-by: Arthur Koucher <[email protected]>
of interconnected macros due to the new connections Signed-off-by: Arthur Koucher <[email protected]>
1) Evaluate connection between clusters based on connections'
ratio instead of using a fixed threshold;
2) Retire threshold for evaluating connections.
Signed-off-by: Arthur Koucher <[email protected]>
mock-array convergence Signed-off-by: Arthur Koucher <[email protected]>
Signed-off-by: Arthur Koucher <[email protected]>
1) Don't take into account external connections when evaluating
the connection signature between two clusters;
2) Avoid considering the weight of the target connection twice
when evaluating if that connection is a strong one.
Signed-off-by: Arthur Koucher <[email protected]>
Signed-off-by: Arthur Koucher <[email protected]>
Signed-off-by: Arthur Koucher <[email protected]>
Signed-off-by: Arthur Koucher <[email protected]>
Signed-off-by: Arthur Koucher <[email protected]>
4e8eab6 to
9bf5e36
Compare
|
clang-tidy review says "All clean, LGTM! 👍" |
|
Running new Secure-CI after the sta update needed due to the failure in repair_tie_fanout that was happening because of an sta bug. |
Signed-off-by: Arthur Koucher <[email protected]>
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.
clang-tidy made some suggestions
Signed-off-by: Arthur Koucher <[email protected]>
|
clang-tidy review says "All clean, LGTM! 👍" |
|
clang-tidy review says "All clean, LGTM! 👍" |
|
This should be paired with The-OpenROAD-Project/OpenROAD-flow-scripts#3665. |
Requires #8476, #8729 and #3504
Resolve #8343.
This PR is a combination of changes that was made in order to not mess CI results.
Alone, each of these changes either mess up clustering and blow up timing metrics in the CI or ends up in MPL throwing some error due to how we're handling connections evaluations. The following sections describe them separately.
Change Connection Evaluation Technique
The methods that evaluate connections between clusters and search for closely connected clusters were moved out of the
Clusterclass as they should be done by theClusteringEngineitself.A strong connection is now based on:
Weigh Nets with IO pins as Any Other Net
Currently, connections involving IO clusters are weighted much strongly than others. This makes the new connection evaluation technique unfeasible, because, when evaluating connections between clusters by looking at the connections' ratio, connections that don't involve IO clusters may be neglected as they're much weaker.
An example of the problem would be how MPL fails to group the 8x8 array macros when using the connections' ratio approach without the changes here.
(Obs: In the image, some coarse shaping iteration.)
Increase Perturbs per Step for Large Interconnected Arrays
Changing the weight of the IO Nets had significant impact in mock-array macro placement (placing macros of a macro cluster) result. The reason was that the very high weight of nets with IOs helped the annealer to place the external macros i.e., those connected with IOs on the edges making it easier to find the correct arrangement.
Now without those nets to help it was necessary to increase the amount of perturbation per step in the HardMacro SA for that specific case. This doesn't affect run time significantly.