Closed oharboe closed 1 year ago
Tried on my laptop, I want to record a run here, so I have something to compare against later...
$ cat /proc/cpuinfo | grep processor | wc -l
12
Elapsed time: 0:49.45[h:]min:sec. CPU time: user 47.18 sys 2.23 (99%). Peak memory: 6078204KB.
cp results/asap7/mock-array-big/base/6_1_merged.gds results/asap7/mock-array-big/base/6_final.gds
Log Elapsed seconds
1_1_yosys 2
2_1_floorplan 1
2_2_floorplan_io 1
2_3_tdms_place 1
2_4_mplace 1
2_5_tapcell 1
2_6_pdn 407
3_1_place_gp_skip_io 451
3_2_place_iop 4
3_3_place_gp 455
3_4_resizer 17
3_5_opendp 24
4_1_cts 46
4_2_cts_fillcell 25
5_1_fastroute 48
5_2_TritonRoute 14151
6_1_merge 49
6_report 5669
@osamahammad21 FYI, there's an update to mock-array-big https://github.com/The-OpenROAD-Project/OpenROAD-flow-scripts/pull/1153
With this fix, you can use settings.mk below, which only increases the area, it doesn't increase the data width in the mock-array-big and there is no need to run make verilog
.
I haven't run it to completion to see how long it takes, but if it takes substantially longer than with default MOCK_ARRAY_PITCH_SCALE, then it is worth looking at detailed route times on this smaller example first, I think.
export MOCK_ARRAY_PITCH_SCALE=20
export DESIGN_CONFIG=designs/asap7/mock-array-big/config.mk
I didn't wait for it to complete, but the datapath width doesn't appear to be a factor in the detailed routing speed.
The detailed routing speed is dominated by the area of the design. From memory, it appears that the detailed routing speed is roughly the same for 8 and 64 bit data path for the same die size of mock-array-big:
[INFO DRT-0195] Start 0th optimization iteration.
Completing 10% with 44 violations.
elapsed time = 00:12:06, memory = 23299.84 (MB).
Completing 20% with 75 violations.
elapsed time = 00:24:06, memory = 23285.89 (MB).
I am running the test case and I can see that the array element is not DRC free which I guess for the router later on
@osamahammad21 I see.
Do you need any further input from me to investigate the running time for the detailed router on this example?
@osamahammad21 Could you provide some before and after numbers based upon the changes you are planning/have pull requests for?
@oharboe
on a 96 CPU machine:
before:
[INFO DRT-0267] cpu time = 87:08:00, elapsed time = 02:48:43, memory = 10662.26 (MB), peak = 28213.59 (MB)
after:
[INFO DRT-0267] cpu time = 06:10:19, elapsed time = 00:09:20, memory = 12216.96 (MB), peak = 15553.88 (MB)
Create
settings.mk
in flow and use updated mock-array-big https://github.com/The-OpenROAD-Project/OpenROAD-flow-scripts/pull/1097:Regenerate Verilog for mock-array-big to get a 64 bit datapath:
Now run:
Output:
Detailed routing converges to 0 violations on the 3rd iteration, which is quick. However, detailed routing takes 3h30m on my machine, which I believe is mainly a function of the area not the complexity of routing.
Originally posted by @oharboe in https://github.com/The-OpenROAD-Project/OpenROAD/issues/3468#issuecomment-1593775371