-
Notifications
You must be signed in to change notification settings - Fork 419
[APPack] Iterative Re-Packing #3171
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?
[APPack] Iterative Re-Packing #3171
Conversation
Results on VTR:
Since I was able to tighten the max displacement threshold (as well as other parameters which may increase density) we were able to see a 2% improvement in basically everything after global placement. Post-FL HPWL is an exception; however only one circuit (MCML) got much worst, everything else got similar improvements. Note: the Post-GP HPWL got worse due to me setting the target density of CLBs/LABs to 0.8 in the partial legalizer. This is expected to make the post-GP HPWL worse, but I found that it made the overall solution quality better. |
Being based off the packer, APPack also uses iterative re-packing when a dense enough clustering cannot be found. APPack has some special options that it can use to increase the density of clustering further without hurting quality as much as the default flow. Updated the iterative re-packing algorithm to use these options if needed. Having this safer fall-back has allowed me to tune some numbers that I knew would improve the quality of most circuits but was causing a few circuits to fail packing. These few that were failing should now hit this fall-back paths which resolves this issue.
c574bc5
to
695d205
Compare
Results on Titan (timing driven, no fixed blocks):
All numbers are normalized to AP baseline (the AP flow just prior to this PR). We have a 5% improvement in post-routed wirelength. It looks as if we have a degredation of CPD by 4% however, this is caused by 2 outliers (LU_Netword and minres) which had better post-FL CPD but worse post-DP CPD. This implies to me that more tuning is needed for the annealer; but I think we can recover everything with a bit more tuning on the overall flow. The runtime results are also interesting:
4 circuits actually hit this fallback path which caused their full legalization (APPack) runtime to increase (shown in bold in the table above). This brought the overall geomean runtime up; however for the rest of the circuits the runtime actually decreased by around 10%. I think with more tuning with the fall-back options I can also reduce these as well. @vaughnbetz We did hit a very big milestone. With this change we are now 9.4% better WL and 2% worst CPD (however we are practically tied if we ignore LU_Network) than without using AP on Titan, at the cost of around 9% run time. This puts us very close to the prior state of the art on Titan. I think with a bit more tuning I can get these numbers even better! @amin1377 FYI |
Being based off the packer, APPack also uses iterative re-packing when a dense enough clustering cannot be found. APPack has some special options that it can use to increase the density of clustering further without hurting quality as much as the default flow.
Updated the iterative re-packing algorithm to use these options if needed.
Having this safer fall-back has allowed me to tune some numbers that I knew would improve the quality of most circuits but was causing a few circuits to fail packing. These few that were failing should now hit this fall-back paths which resolves this issue.