OpenROAD icon indicating copy to clipboard operation
OpenROAD copied to clipboard

Global placement fails for single Rocket core with Nangate45 PDK when running in OpenROAD flow scripts

Open JiaDYuan opened this issue 2 years ago • 23 comments

I set up a Single core Rocket, and run under the OpenROAD flow scripts with the platform of Nangate45.

But here is the error happened:

OpenROAD v2.0-2819-ge490a3f10 This program is licensed under the BSD-3 license. See the LICENSE file for details. Components of this program may be licensed under more restrictive licenses which must be honored. [ERROR STA-0402] add_global_connection -defer_connection is not a known keyword or flag. Error: grid_strategy-M1-M4-M7.tcl, 4 STA-0402 Command exited with non-zero status 1

why add_global_connection -defer_connection is unknown???????????????????????????? The error message is so limited, how can I deal with it?

Here is the grid_strategy-M1-M4-M7.tcl: https://github.com/The-OpenROAD-Project/OpenROAD-flow-scripts/blob/master/flow/platforms/nangate45/grid_strategy-M1-M4-M7.tcl

JiaDYuan avatar Jul 22 '22 10:07 JiaDYuan

@JiaDYuan Please provide re-producible test case by running make pdn_issue

vijayank88 avatar Jul 22 '22 11:07 vijayank88

You are on a very old version of openroad. Please update and try again.

maliberty avatar Jul 22 '22 14:07 maliberty

Hi, yes, updating the OpenROAD version can solve the problem. But here is another error, the process is stucking in the global_place_gp stage. And by the way, the process took 8 hours to run, is this normal???

OpenROAD v2.0-4473-g0d17a7302 This program is licensed under the BSD-3 license. See the LICENSE file for details. Components of this program may be licensed under more restrictive licenses which must be honored. [INFO GPL-0002] DBU: 2000 [INFO GPL-0003] SiteSize: 380 2800 [INFO GPL-0004] CoreAreaLxLy: 40280 39200 [INFO GPL-0005] CoreAreaUxUy: 7278520 3158400 [INFO GPL-0006] NumInstances: 1111893 [INFO GPL-0007] NumPlaceInstances: 1092925 [INFO GPL-0008] NumFixedInstances: 18968 [INFO GPL-0009] NumDummyInstances: 0 [INFO GPL-0010] NumNets: 1435642 [INFO GPL-0011] NumPins: 4328596 [INFO GPL-0012] DieAreaLxLy: 0 0 [INFO GPL-0013] DieAreaUxUy: 7318800 3197600 [INFO GPL-0014] CoreAreaLxLy: 40280 39200 [INFO GPL-0015] CoreAreaUxUy: 7278520 3158400 [INFO GPL-0016] CoreArea: 22577518208000 [INFO GPL-0017] NonPlaceInstsArea: 20181952000 [INFO GPL-0018] PlaceInstsArea: 11477327568000 [INFO GPL-0019] Util(%): 50.88 [INFO GPL-0020] StdInstsArea: 11477327568000 [INFO GPL-0021] MacroInstsArea: 0 [InitialPlace] Iter: 1 CG residual: 0.00355486 HPWL: 42509104118 [InitialPlace] Iter: 2 CG residual: 0.00032160 HPWL: 13402372951 [InitialPlace] Iter: 3 CG residual: 0.00022189 HPWL: 13400886018 [InitialPlace] Iter: 4 CG residual: 0.00005148 HPWL: 13396827050 [InitialPlace] Iter: 5 CG residual: 0.00005324 HPWL: 13381094381 [InitialPlace] Iter: 6 CG residual: 0.00008841 HPWL: 13378887651 [InitialPlace] Iter: 7 CG residual: 0.00004164 HPWL: 13378797984 [InitialPlace] Iter: 8 CG residual: 0.00003799 HPWL: 13379558534 [InitialPlace] Iter: 9 CG residual: 0.00003579 HPWL: 13379053762 [InitialPlace] Iter: 10 CG residual: 0.00044856 HPWL: 13379823777 [InitialPlace] Iter: 11 CG residual: 0.00009343 HPWL: 13394675825 [InitialPlace] Iter: 12 CG residual: 0.00003725 HPWL: 13384452816 [InitialPlace] Iter: 13 CG residual: 0.00003590 HPWL: 13381225665 [InitialPlace] Iter: 14 CG residual: 0.00003757 HPWL: 13381738547 [InitialPlace] Iter: 15 CG residual: 0.00004011 HPWL: 13381426155 [InitialPlace] Iter: 16 CG residual: 0.00003597 HPWL: 13381785999 [InitialPlace] Iter: 17 CG residual: 0.00003774 HPWL: 13381420292 [InitialPlace] Iter: 18 CG residual: 0.00003420 HPWL: 13381623253 [InitialPlace] Iter: 19 CG residual: 0.00005310 HPWL: 13381078982 [InitialPlace] Iter: 20 CG residual: 0.00003638 HPWL: 13381806564 [INFO GPL-0031] FillerInit: NumGCells: 1095492 [INFO GPL-0032] FillerInit: NumGNets: 1435642 [INFO GPL-0033] FillerInit: NumGPins: 4328596 [INFO GPL-0023] TargetDensity: 0.51 [INFO GPL-0024] AveragePlaceInstArea: 10501477 [INFO GPL-0025] IdealBinArea: 20591132 [INFO GPL-0026] IdealBinCnt: 1096468 [INFO GPL-0027] TotalBinArea: 22577518208000 [INFO GPL-0028] BinCnt: 1024 1024 [INFO GPL-0029] BinSize: 7069 3047 [INFO GPL-0030] NumBins: 1048576 [NesterovSolve] Iter: 1 overflow: 0.999473 HPWL: 3202675283 [NesterovSolve] Iter: 10 overflow: 0.998919 HPWL: 3411390855 [NesterovSolve] Iter: 20 overflow: 0.998291 HPWL: 3613767813 [NesterovSolve] Iter: 30 overflow: 0.99765 HPWL: 3826664613 [NesterovSolve] Iter: 40 overflow: 0.997232 HPWL: 4017670899 [NesterovSolve] Iter: 50 overflow: 0.996924 HPWL: 4173727428 [NesterovSolve] Iter: 60 overflow: 0.996641 HPWL: 4286505525 [NesterovSolve] Iter: 70 overflow: 0.996444 HPWL: 4362062452 [NesterovSolve] Iter: 80 overflow: 0.996284 HPWL: 4410178858 [NesterovSolve] Iter: 90 overflow: 0.996171 HPWL: 4440513218 [NesterovSolve] Iter: 100 overflow: 0.996078 HPWL: 4459614153 [NesterovSolve] Iter: 110 overflow: 0.995993 HPWL: 4475941562 [NesterovSolve] Iter: 120 overflow: 0.995918 HPWL: 4494873625 [NesterovSolve] Iter: 130 overflow: 0.995833 HPWL: 4517053045 [NesterovSolve] Iter: 140 overflow: 0.995719 HPWL: 4544528335 [NesterovSolve] Iter: 150 overflow: 0.995597 HPWL: 4576548164 [NesterovSolve] Iter: 160 overflow: 0.995468 HPWL: 4609927085 [NesterovSolve] Iter: 170 overflow: 0.995361 HPWL: 4644629048 [NesterovSolve] Iter: 180 overflow: 0.995242 HPWL: 4681738183 [NesterovSolve] Iter: 190 overflow: 0.995136 HPWL: 4722382635 [NesterovSolve] Iter: 200 overflow: 0.995022 HPWL: 4775213748 [NesterovSolve] Iter: 210 overflow: 0.994914 HPWL: 4847466620 [NesterovSolve] Iter: 220 overflow: 0.994737 HPWL: 4946924419 [NesterovSolve] Iter: 230 overflow: 0.994539 HPWL: 5084675794 [NesterovSolve] Iter: 240 overflow: 0.994239 HPWL: 5264152221 [NesterovSolve] Iter: 250 overflow: 0.993791 HPWL: 5494865957 [NesterovSolve] Iter: 260 overflow: 0.993141 HPWL: 5783190825 [NesterovSolve] Iter: 270 overflow: 0.992189 HPWL: 6142655889 [NesterovSolve] Iter: 280 overflow: 0.990861 HPWL: 6590730102 [NesterovSolve] Iter: 290 overflow: 0.988993 HPWL: 7143983280 [NesterovSolve] Iter: 300 overflow: 0.986328 HPWL: 7828419828 [NesterovSolve] Iter: 310 overflow: 0.982564 HPWL: 8664991811 [NesterovSolve] Iter: 320 overflow: 0.977535 HPWL: 9683480815 [NesterovSolve] Iter: 330 overflow: 0.97159 HPWL: 10890068908 [NesterovSolve] Iter: 340 overflow: 0.964964 HPWL: 12254494577 [NesterovSolve] Iter: 350 overflow: 0.957441 HPWL: 13746897968 [NesterovSolve] Iter: 360 overflow: 0.948703 HPWL: 15264157706 [NesterovSolve] Iter: 370 overflow: 0.938203 HPWL: 16827582459 [NesterovSolve] Iter: 380 overflow: 0.927675 HPWL: 18034259157 [NesterovSolve] Iter: 390 overflow: 0.918373 HPWL: 19097014962 [NesterovSolve] Iter: 400 overflow: 0.904037 HPWL: 20790134277 [NesterovSolve] Iter: 410 overflow: 0.884672 HPWL: 23377223944 [NesterovSolve] Iter: 420 overflow: 0.870351 HPWL: 26852393979 [NesterovSolve] Iter: 430 overflow: 0.866045 HPWL: 31617373805 [NesterovSolve] Iter: 440 overflow: 0.855361 HPWL: 41442792081 [NesterovSolve] Iter: 450 overflow: 0.873252 HPWL: 41791918210 [NesterovSolve] Iter: 460 overflow: 0.879812 HPWL: 36814561273 [NesterovSolve] Iter: 470 overflow: 0.847914 HPWL: 34239012881 [NesterovSolve] Iter: 480 overflow: 0.813237 HPWL: 33784748480 [NesterovSolve] Iter: 490 overflow: 0.80697 HPWL: 29950936790 [INFO GPL-0100] worst slack -2.64e-09 [INFO GPL-0103] Weighted 143563 nets. [NesterovSolve] Iter: 500 overflow: 0.773142 HPWL: 30288677634 [NesterovSolve] Iter: 510 overflow: 0.750795 HPWL: 34243482326 [NesterovSolve] Iter: 520 overflow: 0.737617 HPWL: 35724775483 [NesterovSolve] Iter: 530 overflow: 0.708463 HPWL: 36027236304 [NesterovSolve] Iter: 540 overflow: 0.673734 HPWL: 33914609135 [NesterovSolve] Iter: 550 overflow: 0.64051 HPWL: 31904149076 [INFO GPL-0100] worst slack -2.42e-09 [INFO GPL-0103] Weighted 143559 nets. [NesterovSolve] Iter: 560 overflow: 0.626743 HPWL: 37067032019 [NesterovSolve] Iter: 570 overflow: 0.626341 HPWL: 39962324928 [NesterovSolve] Iter: 580 overflow: 0.610405 HPWL: 33521345542 [NesterovSolve] Snapshot saved at iter = 581 [NesterovSolve] Iter: 590 overflow: 0.561749 HPWL: 36182747569 [NesterovSolve] Iter: 600 overflow: 0.584311 HPWL: 39947879091 [NesterovSolve] Iter: 610 overflow: 0.546942 HPWL: 33457960736 [NesterovSolve] Iter: 620 overflow: 0.518452 HPWL: 38168656059 [NesterovSolve] Iter: 630 overflow: 0.514085 HPWL: 37581479908 [INFO GPL-0100] worst slack -2.15e-09 [INFO GPL-0103] Weighted 143558 nets. [NesterovSolve] Iter: 640 overflow: 0.470804 HPWL: 34397333619 [NesterovSolve] Iter: 650 overflow: 0.466778 HPWL: 35967999312 [NesterovSolve] Iter: 660 overflow: 0.415558 HPWL: 33672381009 [NesterovSolve] Iter: 670 overflow: 0.412021 HPWL: 33253342286 [NesterovSolve] Iter: 680 overflow: 0.368686 HPWL: 33280953716 [NesterovSolve] Iter: 690 overflow: 0.338376 HPWL: 31427691942 [NesterovSolve] Iter: 700 overflow: 0.326631 HPWL: 30068300281 [NesterovSolve] Iter: 710 overflow: 0.304877 HPWL: 29465430429 [INFO GPL-0100] worst slack -2.02e-09 [INFO GPL-0103] Weighted 143553 nets. [NesterovSolve] Iter: 720 overflow: 0.280691 HPWL: 29228281359 [NesterovSolve] Iter: 730 overflow: 0.251856 HPWL: 29099461513 [NesterovSolve] Iter: 740 overflow: 0.226439 HPWL: 28926181559 [INFO GPL-0100] worst slack -2.22e-09 [INFO GPL-0103] Weighted 143560 nets. [NesterovSolve] Iter: 750 overflow: 0.200645 HPWL: 28792313400 [INFO GPL-0075] Routability numCall: 1 inflationIterCnt: 1 bloatIterCnt: 0 Command terminated by signal 9 Elapsed time: 8:25:44[h:]min:sec. CPU time: user 29458.91 sys 719.07 (99%). Peak memory: 64012372KB. make: *** [Makefile:486: results/nangate45/SingleRocket/base/3_3_place_gp.odb] Error 137

JiaDYuan avatar Jul 23 '22 20:07 JiaDYuan

@JiaDYuan How much RAM system has? Can you increase swap memory and try it?

vijayank88 avatar Jul 25 '22 06:07 vijayank88

@vijayank88

Hi, I was running the flow on a server, here are the memory details.

2022-07-25_085031

JiaDYuan avatar Jul 25 '22 06:07 JiaDYuan

Here is the result. Strange...

yuanjiadong@Serveur-calcul:~/OpenROAD-flow-scripts/flow$ make global_placement_issue [INFO][FLOW] Using platform directory ./platforms/nangate45 make: *** No rule to make target 'global_placement_issue'. Stop.

JiaDYuan avatar Jul 25 '22 08:07 JiaDYuan

sorry. Its mistake. Try this: make global_place_issue

vijayank88 avatar Jul 25 '22 08:07 vijayank88

@vijayank88

yuanjiadong@Serveur-calcul:~/OpenROAD-flow-scripts/flow$ make global_place_issue [INFO][FLOW] Using platform directory ./platforms/nangate45 #Creating run-me-gcd-nangate45-base.sh script #Creating vars-gcd-nangate45-base.sh/tcl script #remove variables starting with a dot #remove non portable commands #remove QT variable #Archiving issue to global_place_gcd_nangate45_base_2022-07-25_10-59.tar.gz tar: ./logs/nangate45/gcd/base: Warning: Cannot stat: No such file or directory tar: ./objects/nangate45/gcd/base: Warning: Cannot stat: No such file or directory tar: ./reports/nangate45/gcd/base: Warning: Cannot stat: No such file or directory tar: ./results/nangate45/gcd/base: Warning: Cannot stat: No such file or directory_

Sorry, I didn't run the gcd design. I was running a single core Rocket design with the nangate45 PDK.

JiaDYuan avatar Jul 25 '22 09:07 JiaDYuan

Try DESIGN_CONFIG=./designs/nangate45/SingleRocket/config.mk make global_place_issue

vijayank88 avatar Jul 25 '22 09:07 vijayank88

@vijayank88 yes, I succeeded getting the global_place_SingleRocket_nangate45_base_2022-07-25_11-51.tar.gz file.

But it's 820MB heavy... file size is too big..

Nevertheless, I will attach the verilog files of the SingleRocket here:

SingleRocket.zip

JiaDYuan avatar Jul 25 '22 10:07 JiaDYuan

@JiaDYuan Share /designs/nangate45/SingleRocket/config.mk /designs/nangate45/SingleRocket/constraint.sdc as well. Then only i can able to replicate your error

vijayank88 avatar Jul 25 '22 10:07 vijayank88

@vijayank88

Here are config.mk, constraint.sdc, lib and lef files attached: config+constraint+lib+lef.zip

JiaDYuan avatar Jul 25 '22 11:07 JiaDYuan

@vvbandeira What's this error meant?

[INFO GPL-0075] Routability numCall: 1 inflationIterCnt: 1 bloatIterCnt: 0
Elapsed time: 5:35:57[h:]min:sec. CPU time: user 19597.61 sys 545.80 (99%). Peak memory: 57298472KB.
make: *** [results/nangate45/SingleRocket/base/3_3_place_gp.odb] Error 9

vijayank88 avatar Jul 26 '22 10:07 vijayank88

@vijayank88 this looks like an out-of-memory error.

vvbandeira avatar Jul 26 '22 14:07 vvbandeira

@vvbandeira Can you run this design at your end? Even at my end its got killed twice. Both absolute/relative die size. Source files attached above.

Update config.mk with following variable to avoid placement density issue: export PLACE_DENSITY = 0.51

vijayank88 avatar Jul 27 '22 05:07 vijayank88

Using the latest code looks like a density issue (see below).

OpenROAD v2.0-4526-gc525def45
This program is licensed under the BSD-3 license. See the LICENSE file for details.
Components of this program may be licensed under more restrictive licenses which must be honored.
[INFO GPL-0002] DBU: 2000
[INFO GPL-0003] SiteSize: 380 2800
[INFO GPL-0004] CoreAreaLxLy: 40280 39200
[INFO GPL-0005] CoreAreaUxUy: 7278520 3158400
[INFO GPL-0006] NumInstances: 1111893
[INFO GPL-0007] NumPlaceInstances: 1092925
[INFO GPL-0008] NumFixedInstances: 18968
[INFO GPL-0009] NumDummyInstances: 0
[INFO GPL-0010] NumNets: 1435642
[INFO GPL-0011] NumPins: 4328218
[INFO GPL-0012] DieAreaLxLy: 0 0
[INFO GPL-0013] DieAreaUxUy: 7318800 3197600
[INFO GPL-0014] CoreAreaLxLy: 40280 39200
[INFO GPL-0015] CoreAreaUxUy: 7278520 3158400
[INFO GPL-0016] CoreArea: 22577518208000
[INFO GPL-0017] NonPlaceInstsArea: 20181952000
[INFO GPL-0018] PlaceInstsArea: 11477327568000
[INFO GPL-0019] Util(%): 50.88
[INFO GPL-0020] StdInstsArea: 11477327568000
[INFO GPL-0021] MacroInstsArea: 0
[ERROR GPL-0302] Use a higher -density or re-floorplan with a larger core area.
Given target density: 0.30
Suggested target density: 0.51
Error: global_place_skip_io.tcl, 30 GPL-0302
Elapsed time: 0:06.84[h:]min:sec. CPU time: user 6.31 sys 0.52 (100%). Peak memory: 2721284KB.
make: *** [Makefile:471: results/nangate45/SingleRocket/base/3_1_place_gp_skip_io.odb] Error 1

Tough, after I changed to using the recommended density of 0.51: I am running now with Valgrind to make sure is not a memory error. If it is not, we will need to investigate the GPL code, 129GB of RAM looks excessive.

[INFO GPL-0100] worst slack -2.02e-09
[INFO GPL-0103] Weighted 143553 nets.
[NesterovSolve] Iter: 720 overflow: 0.280691 HPWL: 29228281359
[NesterovSolve] Iter: 730 overflow: 0.251856 HPWL: 29099461513
[NesterovSolve] Iter: 740 overflow: 0.226439 HPWL: 28926181559
[INFO GPL-0100] worst slack -2.22e-09
[INFO GPL-0103] Weighted 143560 nets.
[NesterovSolve] Iter: 750 overflow: 0.200645 HPWL: 28792313400
[INFO GPL-0075] Routability numCall: 1 inflationIterCnt: 1 bloatIterCnt: 0
Elapsed time: 1:59:04[h:]min:sec. CPU time: user 7033.68 sys 106.78 (99%). Peak memory: 129120956KB.
make: *** [Makefile:485: results/nangate45/SingleRocket/base/3_3_place_gp.odb] Error 9

vvbandeira avatar Jul 28 '22 12:07 vvbandeira

@vvbandeira Sorry about that. I forgot to mention to update density value to 0.51. Yes maybe the reason for failure is RAM. I had only 128GB RAM in my GCP machine.

vijayank88 avatar Jul 28 '22 13:07 vijayank88

@vijayank88

Hi, may I ask why does it require so many RAM to run global placement? Even 128G is not enough? Is this case normal?

JiaDYuan avatar Jul 30 '22 19:07 JiaDYuan

You have 1M placeable objects so this is quite a large block but that still seems excessive.
@vijayank88 do you have this case setup to run?

maliberty avatar Jul 30 '22 21:07 maliberty

Hi Matt,

User shared RTL in the thread.

Vitor is trying i think.

On Sun, Jul 31, 2022, 2:52 AM Matt Liberty @.***> wrote:

You have 1M placeable objects so this is quite a large block but that still seems excessive. @vijayank88 https://github.com/vijayank88 do you have this case setup to run?

— Reply to this email directly, view it on GitHub https://github.com/The-OpenROAD-Project/OpenROAD/issues/2082#issuecomment-1200296375, or unsubscribe https://github.com/notifications/unsubscribe-auth/AUOQKCPN2YWVLLCHYDKJDRTVWWMK3ANCNFSM54K5YBUQ . You are receiving this because you were mentioned.Message ID: @.***>

vijayank88 avatar Jul 31 '22 02:07 vijayank88

@vvbandeira Any update on this? Is able to pass global placement stage?

vijayank88 avatar Aug 01 '22 09:08 vijayank88

@vijayank88 I ran with Valgrind and found no memory error. It might be a problem with the internal logic. @maliberty suggestions? I have the design setup on my GCP machine in case you want to take a look let me know.

vvbandeira avatar Aug 01 '22 17:08 vvbandeira

I think its similar to https://github.com/The-OpenROAD-Project/OpenROAD/issues/2221 Rocket mini chip code. as per @maliberty suggestion Dropping in a ram (dff or openram) would likely solve many of your issues

vijayank88 avatar Aug 06 '22 11:08 vijayank88

@JiaDYuan Have you tried Matt's suggestion to update the RTL?

vijayank88 avatar Jun 19 '23 12:06 vijayank88