OpenROAD icon indicating copy to clipboard operation
OpenROAD copied to clipboard

Speed up global route

Open oharboe opened this issue 2 years ago • 4 comments

Description

Global route takes at least 2x longer than detailed route here.

To reproduce(ca. 8000s in global route, vs. 4000s in detailed route):

unzip https://drive.google.com/file/d/1WmmWfZ_Ctb4wOl-bzoMhFBcu6pD-j0iN/view?usp=sharing, run:

./run-me-BoomTile-asap7-base.sh

Suggested Solution

Speed up global route.

Additional Context

No response

oharboe avatar Dec 18 '23 23:12 oharboe

The biggest problem here is the incremental grt. It can be very long since multiple incremental runs of the GRT are made to repair timing, setup, hold violations, etc.

We'll try running a profiler to identify the bottlenecks and how we can improve them.

eder-matheus avatar Dec 19 '23 01:12 eder-matheus

The biggest problem here is the incremental grt. It can be very long since multiple incremental runs of the GRT are made to repair timing, setup, hold violations, etc.

We'll try running a profiler to identify the bottlenecks and how we can improve them.

O(n^2)?

oharboe avatar Dec 19 '23 05:12 oharboe

O(n^2)?

The major problem is that it may take thousands of iterations to complete the incremental groute. If you want to test, you can disable the incremental groute by adding the following to the config.mk file of your design: export SKIP_INCREMENTAL_REPAIR = 1

But in any case, we'll still look at how to make it faster.

eder-matheus avatar Dec 19 '23 15:12 eder-matheus

Example of where global route is stuck after 8 hours, which confirms your observation:

[INFO GRT-0018] Total wirelength: 26097568 um
[INFO GRT-0014] Routed nets: 1213301
[WARNING STA-0357] virtual clock clock_vir can not be propagated.
Warning: There are 135660 unclocked register/latch pins.
Warning: There are 135902 unconstrained endpoints.

==========================================================================
global route pre repair design report_design_area
--------------------------------------------------------------------------
Design area 1364898 u^2 51% utilization.
Perform buffer insertion...
[INFO RSZ-0058] Using max wire length 162um.
[no further output]

image

oharboe avatar Dec 20 '23 09:12 oharboe

@oharboe After merging the PR https://github.com/The-OpenROAD-Project/OpenROAD/pull/4728, we did notice a good improvement in the runtime of incremental grt in our designs. Could you try it on your end?

eder-matheus avatar Mar 15 '24 21:03 eder-matheus

@eder-matheus If you think this test case is exhausted, please close the issue as fixed.

I will over the next months be doing many global routes, I suppose and I will file a new github issue if I run into something that is surprisingly slow.

oharboe avatar Mar 15 '24 21:03 oharboe

@eder-matheus If you think this test case is exhausted, please close the issue as fixed.

I will over the next months be doing many global routes, I suppose and I will file a new github issue if I run into something that is surprisingly slow.

Sounds good! We'll also keep looking into more hotspots of the incremental grt. Hopefully, you will not face too many issues regarding runtime :)

eder-matheus avatar Mar 15 '24 21:03 eder-matheus