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

Variants #176

Closed
wants to merge 6 commits into from
Closed

Variants #176

wants to merge 6 commits into from

Conversation

oharboe
Copy link
Collaborator

@oharboe oharboe commented Oct 25, 2024

image

Stage: cts

Variant base 1 2 3 4
crpr 15.07 17.05 19.19 19.19 19.15
skew 519.39 538.16 626.28 626.28 645.81
slack -4721.79248 -4996.959473 -3951.04834 -3951.04834 -3866.626953
tns -433454784.0 -458388384.0 -112753840.0 -112753840.0 -107366416.0
MACRO_PLACEMENT_TCL $(location write_macro_placement) $(location write_macro_placement) $(location write_macro_placement)
SETUP_SLACK_MARGIN 0 0
SKIP_CTS_REPAIR_TIMING 0
SKIP_REPORT_METRICS 0
SYNTH_HIERARCHICAL 0 0 0
2_1_floorplan.log 1849 5745 682 1160 3003
2_2_floorplan_io.log 51 39 21 22 21
2_3_floorplan_tdms.log 1 0 0 0 0
2_4_floorplan_macro.log 1728 1365 24 24 23
2_5_floorplan_tapcell.log 43 36 20 20 19
2_6_floorplan_pdn.log 901 791 895 790 897
3_1_place_gp_skip_io.log 1994 1659 2092 1879 1892
3_2_place_iop.log 54 51 32 44 30
3_3_place_gp.log 4720 4523 6473 6643 6111
3_4_place_resized.log 675 652 330 1200 322
3_5_place_dp.log 1682 1527 840 2166 1218
4_1_cts.log 603 584 628 3395 626

Base configuration variables

Variable Value
CORE_AREA 2 2 1998 1998
DIE_AREA 0 0 2000 2000
FILL_CELLS
GPL_ROUTABILITY_DRIVEN 1
GPL_TIMING_DRIVEN 0
HOLD_SLACK_MARGIN -200
IO_CONSTRAINTS $(location :io-boomtile)
MACRO_PLACE_HALO 19 19
MAX_ROUTING_LAYER M7
MIN_ROUTING_LAYER M2
PDN_TCL $(PLATFORM_DIR)/openRoad/pdn/BLOCKS_grid_strategy.tcl
PLACE_DENSITY 0.24
PLACE_PINS_ARGS -annealing
ROUTING_LAYER_ADJUSTMENT 0.45
RTLMP_FLOW 1
SDC_FILE $(location :constraints-boomtile)
SETUP_SLACK_MARGIN -1300
SKIP_CTS_REPAIR_TIMING 1
SKIP_INCREMENTAL_REPAIR 1
SKIP_LAST_GASP 1
SKIP_REPORT_METRICS 1
SYNTH_HIERARCHICAL 1
TAPCELL_TCL
TNS_END_PERCENT 0

@oharboe
Copy link
Collaborator Author

oharboe commented Oct 26, 2024

@maliberty @jeffng-or global route is futile for now, it has been running overnight. This makes me wonder: is there an option to have global route give up early?

That would give me a bazel artifact with an .odb file and a .rpt file to examine the problem and it would avoid wasting build resources.

default: -congestion_iterations 30 -congestion_report_iter_step 5 -verbose

Try GLOBAL_ROUTE_ARGS=-congestion_iterations 5 -congestion_report_iter_step 5 -verbose in a seperate PR

@maliberty
Copy link
Member

You've already answered your question - use -congestion_iterations with a lower value

@oharboe
Copy link
Collaborator Author

oharboe commented Oct 26, 2024

This makes me wonder: is there an option to have global route give up early?

Yes, it was a rethorical question giving myself the answer. Just sharing. I should have worded it more clearly.

@oharboe
Copy link
Collaborator Author

oharboe commented Oct 26, 2024

@jeffng-or @maliberty Tried some variants to test out the build system and satisfy some curiosity. No intention to merge.

Some observations:

  • WNS is pretty good by the end of floorplan, but something is happening by the time we've finished CTS where WNS goes from -1000 to -4000ps. Not surprising. Merits further study.
  • flattened synthesis with macro placement from synth_hierarhical=1 run and CTS repair is enabled in variant 4 and WNS after CTS is best in this case -3800ps
  • from variant base to 1, SETUP_SLACK_MARGIN is modified from -1300 to 0, but WNS after CTS is very slightly worse.
  • between variant 2 and 3, SKIP_REPORT_METRICS=0 is enabled. This increases running times, obviously. Since SKIP_REPORT_METRICS is enabled whether or not it is useful for substages, I think the running times for reports could be best mitigated by having an option to run it only at the end of a stage, rather than for each substage.
  • between base and 1 variant, SETUP_SLACK_MARGIN is changed from -1300 to 0, but there is no change, essentially, in WNS after CTS.
  • cts running times between variant 2 and 3 goes from 600 to 3000 seconds. This is all reporting metrics.

Signed-off-by: Øyvind Harboe <[email protected]>
Signed-off-by: Øyvind Harboe <[email protected]>
@oharboe
Copy link
Collaborator Author

oharboe commented Oct 27, 2024

@maliberty @jeffng-or Interesting: looks like macro placement fails with SETUP_SLACK_MARGIN=0 instead of -1300 when I no longer dissolve the register files. I imagine that SETUP_SLACK_MARGIN=0 can add a lot of instances and make macro placement fail. Will look into creating a standalone reproduction case.

@oharboe
Copy link
Collaborator Author

oharboe commented Oct 27, 2024

@maliberty The WNS is getting worse in repair timing in CTS before it ends up roughly where it started. Is that interesting as a test-case or is it to be expected?

@oharboe
Copy link
Collaborator Author

oharboe commented Oct 27, 2024

@jeffng-or @maliberty Something bad is happening during blobal placement? Could it be the routing that is wrapped several times around a macro?

$ grep ws $(ls bazel-bin/logs/asap7/BoomTile/3/*.json | sort -h)
bazel-bin/logs/asap7/BoomTile/3/2_1_floorplan.json:	"floorplan__timing__setup__ws": -1350.4,
bazel-bin/logs/asap7/BoomTile/3/3_3_place_gp.json:	"globalplace__timing__setup__ws": -14623.4,
bazel-bin/logs/asap7/BoomTile/3/3_4_place_resized.json:	"placeopt__timing__setup__ws": -3492.46,
bazel-bin/logs/asap7/BoomTile/3/3_5_place_dp.json:	"detailedplace__timing__setup__ws": -3477.23,
bazel-bin/logs/asap7/BoomTile/3/4_1_cts.json:	"cts__timing__setup__ws": -3517.24,

@oharboe
Copy link
Collaborator Author

oharboe commented Oct 27, 2024

@jeffng-or @maliberty This PR was an experiment to learn something and file some github issues with feature requests and bugreports.

@oharboe oharboe closed this Oct 27, 2024
@oharboe oharboe deleted the variants branch October 28, 2024 16:25
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants