Skip to content
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

Make global placement output less mysterious #6617

Open
oharboe opened this issue Jan 30, 2025 · 0 comments
Open

Make global placement output less mysterious #6617

oharboe opened this issue Jan 30, 2025 · 0 comments
Assignees
Labels
gpl Global Placement

Comments

@oharboe
Copy link
Collaborator

oharboe commented Jan 30, 2025

Description

The global placement logging is a bit mysterious and hard to read.

I was trying to see if I could find in the log a recommendation for the highest viable placement density.

[INFO ORD-0030] Using 48 thread(s).
global_placement -density 0.82 -pad_left 0 -pad_right 0 -routability_driven -timing_driven
[INFO GPL-0002] DBU: 1000
[INFO GPL-0003] SiteSize: (  0.054  0.270 ) um
[INFO GPL-0004] CoreBBox: (  1.080  1.080 ) ( 42.120 42.120 ) um
[INFO GPL-0006] NumInstances:              3735
[INFO GPL-0007] NumPlaceInstances:         3354
[INFO GPL-0008] NumFixedInstances:          381
[INFO GPL-0009] NumDummyInstances:            0
[INFO GPL-0010] NumNets:                   3906
[INFO GPL-0011] NumPins:                  10296
[INFO GPL-0012] DieBBox:  (  0.000  0.000 ) ( 43.200 43.200 ) um
[INFO GPL-0013] CoreBBox: (  1.080  1.080 ) ( 42.120 42.120 ) um
[INFO GPL-0016] CoreArea:              1684.282 um^2
[INFO GPL-0017] NonPlaceInstsArea:       11.110 um^2
[INFO GPL-0018] PlaceInstsArea:         447.854 um^2
[INFO GPL-0019] Util:                    26.767 %
[INFO GPL-0020] StdInstsArea:           447.854 um^2
[INFO GPL-0021] MacroInstsArea:           0.000 um^2
[InitialPlace]  Iter: 1 CG residual: 0.00000455 HPWL: 14522824
[InitialPlace]  Iter: 2 CG residual: 0.00000073 HPWL: 8033894
[InitialPlace]  Iter: 3 CG residual: 0.00000035 HPWL: 8174271
[InitialPlace]  Iter: 4 CG residual: 0.00000030 HPWL: 8186618
[InitialPlace]  Iter: 5 CG residual: 0.00000031 HPWL: 8192909
[INFO GPL-0031] FillerInit:NumGCells:     10484
[INFO GPL-0032] FillerInit:NumGNets:       3906
[INFO GPL-0033] FillerInit:NumGPins:      10296
[INFO GPL-0023] TargetDensity:            0.820
[INFO GPL-0024] AvrgPlaceInstArea:        0.134 um^2
[INFO GPL-0025] IdealBinArea:             0.163 um^2
[INFO GPL-0026] IdealBinCnt:              10343
[INFO GPL-0027] TotalBinArea:          1684.282 um^2
[INFO GPL-0028] BinCnt:        64     64
[INFO GPL-0029] BinSize: (  0.642  0.642 )
[INFO GPL-0030] NumBins: 4096
[NesterovSolve] Iter:    1 overflow: 0.572 HPWL: 5902357
[INFO GPL-0100] Timing-driven iteration 1/6, virtual: true.
[INFO GPL-0101] Iter: 0, overflow: 0.572, keep rsz at: 0.3
[INFO GPL-0106] Timing-driven: worst slack -1.23e-12
[INFO GPL-0103] Timing-driven: weighted 368 nets.
[NesterovSolve] Snapshot saved at iter = 0
[NesterovSolve] Iter:   10 overflow: 0.584 HPWL: 5292944
[NesterovSolve] Iter:   20 overflow: 0.578 HPWL: 5364395
[NesterovSolve] Iter:   30 overflow: 0.570 HPWL: 5457854
[NesterovSolve] Iter:   40 overflow: 0.564 HPWL: 5526983
[NesterovSolve] Iter:   50 overflow: 0.563 HPWL: 5550340
[NesterovSolve] Iter:   60 overflow: 0.565 HPWL: 5537153
[NesterovSolve] Iter:   70 overflow: 0.566 HPWL: 5525718
[NesterovSolve] Iter:   80 overflow: 0.566 HPWL: 5524165
[NesterovSolve] Iter:   90 overflow: 0.564 HPWL: 5531882
[NesterovSolve] Iter:  100 overflow: 0.560 HPWL: 5543918
[NesterovSolve] Iter:  110 overflow: 0.554 HPWL: 5563355
[NesterovSolve] Iter:  120 overflow: 0.542 HPWL: 5580553
[NesterovSolve] Iter:  130 overflow: 0.526 HPWL: 5588766
[NesterovSolve] Iter:  140 overflow: 0.509 HPWL: 5579037
[INFO GPL-0100] Timing-driven iteration 2/6, virtual: true.
[INFO GPL-0101] Iter: 148, overflow: 0.484, keep rsz at: 0.3
[INFO GPL-0106] Timing-driven: worst slack -1.78e-12
[INFO GPL-0103] Timing-driven: weighted 369 nets.
[NesterovSolve] Iter:  150 overflow: 0.482 HPWL: 5544295
[NesterovSolve] Iter:  160 overflow: 0.458 HPWL: 5502705
[NesterovSolve] Iter:  170 overflow: 0.422 HPWL: 5519045
[NesterovSolve] Iter:  180 overflow: 0.386 HPWL: 5526755
[NesterovSolve] Iter:  190 overflow: 0.347 HPWL: 5572882
[NesterovSolve] Iter:  200 overflow: 0.315 HPWL: 5565735
[INFO GPL-0075] Routability iteration: 1
[INFO GPL-0036] TileBBox: (    0    0 ) (  540  540 ) DBU
[INFO GPL-0038] TileCnt:      80   80
[INFO GPL-0040] NumTiles: 6400
[INFO GPL-0081] TotalRouteOverflow: 0.0000
[INFO GPL-0082] OverflowTileCnt: 0
[INFO GPL-0083] 0.5%RC: 0.9062
[INFO GPL-0084] 1.0%RC: 0.8817
[INFO GPL-0085] 2.0%RC: 0.8512
[INFO GPL-0086] 5.0%RC: 0.8021
[INFO GPL-0087] FinalRC: 0.89392096
[INFO GPL-0077] FinalRC lower than targetRC(1.0100), routability not needed.
[NesterovSolve] Iter:  210 overflow: 0.289 HPWL: 5564780
[INFO GPL-0100] Timing-driven iteration 3/6, virtual: false.
[INFO GPL-0101] Iter: 211, overflow: 0.282, keep rsz at: 0.3
[INFO GPL-0106] Timing-driven: worst slack -4.92e-12
[INFO GPL-0103] Timing-driven: weighted 369 nets.
[INFO GPL-0107] Timing-driven: repair_design delta area: 30.808 um^2 (+6.88%)
[INFO GPL-0108] Timing-driven: new target density: 0.83841264
[NesterovSolve] Iter:  220 overflow: 0.261 HPWL: 3775141
[NesterovSolve] Iter:  230 overflow: 0.228 HPWL: 3609155
[INFO GPL-0100] Timing-driven iteration 4/6, virtual: false.
[INFO GPL-0101] Iter: 234, overflow: 0.204, keep rsz at: 0.3
[INFO GPL-0106] Timing-driven: worst slack -7.07e-12
[INFO GPL-0103] Timing-driven: weighted 369 nets.
[INFO GPL-0107] Timing-driven: repair_design delta area: 2.887 um^2 (+0.60%)
[INFO GPL-0108] Timing-driven: new target density: 0.84013796
[NesterovSolve] Iter:  240 overflow: 0.195 HPWL: 3414992
[NesterovSolve] Iter:  250 overflow: 0.165 HPWL: 3365317
[INFO GPL-0100] Timing-driven iteration 5/6, virtual: false.
[INFO GPL-0101] Iter: 258, overflow: 0.144, keep rsz at: 0.3
[INFO GPL-0106] Timing-driven: worst slack -5.28e-12
[INFO GPL-0103] Timing-driven: weighted 367 nets.
[INFO GPL-0107] Timing-driven: repair_design delta area: -0.408 um^2 (-0.08%)
[INFO GPL-0108] Timing-driven: new target density: 0.839894
[NesterovSolve] Iter:  260 overflow: 0.142 HPWL: 3311617
[NesterovSolve] Iter:  270 overflow: 0.124 HPWL: 3243999
[NesterovSolve] Iter:  280 overflow: 0.103 HPWL: 3224978
[NesterovSolve] Finished with Overflow: 0.097642

Suggested Solution

Suggestions:

Noise? Make it debug info:

[INFO GPL-0002] DBU: 1000

There's enough horizontal space to spell out CG and HPWL:

[InitialPlace]  Iter: 1 CG residual: 0.00000455 HPWL: 14522824

What is a "GCell", "GNets", "GPins"? There is enough horizontal space to spell it out:

[INFO GPL-0031] FillerInit:NumGCells:     10484
[INFO GPL-0032] FillerInit:NumGNets:       3906
[INFO GPL-0033] FillerInit:NumGPins:      10296

Spell out "Placement target density: "

[INFO GPL-0023] TargetDensity:            0.820

More human friendly and easier to read, spell out, e.g. "Average placement instance area: "

[INFO GPL-0024] AvrgPlaceInstArea:        0.134 um^2
[INFO GPL-0025] IdealBinArea:             0.163 um^2
[INFO GPL-0026] IdealBinCnt:              10343
[INFO GPL-0027] TotalBinArea:          1684.282 um^2
[INFO GPL-0028] BinCnt:        64     64
[INFO GPL-0029] BinSize: (  0.642  0.642 )
[INFO GPL-0030] NumBins: 4096

Spell out "rsz":

[INFO GPL-0101] Iter: 0, overflow: 0.572, keep rsz at: 0.3

Debug information?

[INFO GPL-0103] Timing-driven: weighted 369 nets.

Debug info? If needed, print once, not every time:

[INFO GPL-0036] TileBBox: (    0    0 ) (  540  540 ) DBU
[INFO GPL-0038] TileCnt:      80   80
[INFO GPL-0040] NumTiles: 6400

Spell out to make it easier to read and understand, there is enough space horizontally:

[INFO GPL-0081] TotalRouteOverflow: 0.0000
[INFO GPL-0082] OverflowTileCnt: 0
[INFO GPL-0083] 0.5%RC: 0.9062
[INFO GPL-0084] 1.0%RC: 0.8817
[INFO GPL-0085] 2.0%RC: 0.8512
[INFO GPL-0086] 5.0%RC: 0.8021
[INFO GPL-0087] FinalRC: 0.89392096
[INFO GPL-0077] FinalRC lower than targetRC(1.0100), routability not needed.

Additional Context

No response

@eder-matheus eder-matheus added the gpl Global Placement label Jan 30, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
gpl Global Placement
Projects
None yet
Development

No branches or pull requests

3 participants