-
Notifications
You must be signed in to change notification settings - Fork 751
DPL Two-Pass with toggle #9038
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?
DPL Two-Pass with toggle #9038
Conversation
Signed-off-by: PrecisEDAnon <[email protected]>
….4, -p 2) Signed-off-by: PrecisEDAnon <[email protected]>
Signed-off-by: PrecisEDAnon <[email protected]>
Signed-off-by: PrecisEDAnon <[email protected]>
Signed-off-by: PrecisEDAnon <[email protected]>
Signed-off-by: PrecisEDAnon <[email protected]>
Signed-off-by: PrecisEDAnon <[email protected]>
Signed-off-by: PrecisEDAnon <[email protected]>
1e2480f to
31eeadc
Compare
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
Undo CI-breaker Signed-off-by: PrecisEDAnon <[email protected]>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Signed-off-by: PrecisEDAnon <[email protected]>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Signed-off-by: PrecisEDAnon <[email protected]>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Signed-off-by: PrecisEDAnon <[email protected]>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Signed-off-by: PrecisEDAnon <[email protected]>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Signed-off-by: PrecisEDAnon <[email protected]>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Signed-off-by: PrecisEDAnon <[email protected]>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Signed-off-by: PrecisEDAnon <[email protected]>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Signed-off-by: PrecisEDAnon <[email protected]>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Signed-off-by: PrecisEDAnon <[email protected]>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Signed-off-by: PrecisEDAnon <[email protected]>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Signed-off-by: PrecisEDAnon <[email protected]>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Signed-off-by: PrecisEDAnon <[email protected]>
Signed-off-by: PrecisEDAnon <[email protected]>
Signed-off-by: PrecisEDAnon <[email protected]>
Signed-off-by: PrecisEDAnon <[email protected]>
Signed-off-by: PrecisEDAnon <[email protected]>
Signed-off-by: PrecisEDAnon <[email protected]>
|
@maliberty - PR now shows merge CI pass, and the linting should all be fixed as well. The head shows bazel weirdness, but since this resolves post-merge, it should be alright (no changes were made on the bazel end, and the tests pass locally, so I would guess this is a case of uploading the head that resolves post-merge). Please re-review and confirm if OK for merge. |
|
clang-tidy review says "All clean, LGTM! 👍" |
Signed-off-by: PrecisEDAnon <[email protected]>
Signed-off-by: PrecisEDAnon <[email protected]>
|
Fixed on the flagged files, and re-pushed. |
|
@maliberty Let me know if we can run the lint checks. |

The following content was AI generated.
Two-Pass Congestion-Aware Global Swap (DPL) — Optional “Extra DPL” Path
Summary
This PR adds an optional alternative implementation of the
gs(global swap) phase used byimprove_placement(DPO / detailed placement optimization). The new path is designed to help high core-utilization designs where routability-driven metrics (e.g., DRWL) become limiting.Expected outcome (high-util targets): ~2–3% DRWL reduction near the highest utilization where the design still completes the full flow; outliers up to ~8% were observed.
Motivation / When It Helps
At high utilization (typically ~85%+ and/or “near max util that still converges”), a pure HPWL-driven global swap can “clump” cells into locally congested regions. This often harms routability and increases DRWL. The new algorithm explicitly trades bounded HPWL for congestion relief.
What This PR Changes
improve_placement -global_swap_args {...}), not compile-time.Usage / Toggle Behavior
This PR is intentionally modular:
improve_placement, nothing changes.improve_placementruns but the toggle is off, behavior matches the legacy global swap.improve_placementruns and the toggle is on, the new two-pass global swap runs for thegsphase.Enable / Disable
Enable per call:
Or enable via environment (useful for flows/CI harnesses):
set ::env(ENABLE_EXTRA_DPL) 1Disable:
Hyperparameters (Tcl)
Hyperparameters are set through
-global_swap_argsas key/value pairs. They are reset eachimprove_placementcall, so flows can A/B test cleanly.Example:
Recommended tuning choices (2–4 each)
Tune on any circuit that struggles at high utilization near its “max util that still completes”.
-tradeoff0.2,0.4,0.6-profiling_excess1.05,1.10,1.15-budget_multipliers{1.30 1.15 1.07},{1.50 1.25 1.10 1.04},{1.20 1.10 1.05}-area_weight0.3,0.4,0.5-pin_weight0.5,0.6,0.7-congestion_user_weight20.0,35.0,50.0-sampling_moves50,150,300-normalization_interval500,1000,2000Validation Recommendation
CI Note
For regression detection, it is recommended to run CI with the alternate path enabled (so the new code path is exercised). After merge, this feature should remain available as an alternate setting with default = off to preserve legacy behavior unless explicitly enabled.
Related Work
Private communication.