Presentation is loading. Please wait.

Presentation is loading. Please wait.

Capo: Robust and Scalable Open-Source Min-cut Floorplacer Jarrod A. Roy, David A. Papa,Saurabh N. Adya, Hayward H. Chan, James F. Lu, Aaron N. Ng, Igor.

Similar presentations


Presentation on theme: "Capo: Robust and Scalable Open-Source Min-cut Floorplacer Jarrod A. Roy, David A. Papa,Saurabh N. Adya, Hayward H. Chan, James F. Lu, Aaron N. Ng, Igor."— Presentation transcript:

1 Capo: Robust and Scalable Open-Source Min-cut Floorplacer Jarrod A. Roy, David A. Papa,Saurabh N. Adya, Hayward H. Chan, James F. Lu, Aaron N. Ng, Igor L. Markov EECS Department University of Michigan, Ann Arbor Credits for original Capo: Caldwell, Kahng & Markov

2 Original Motivation (ca 2000) Co-developed at UCLA with Andy Caldwell under the guidance of Andrew Kahng –First fixed-die placer in the literature –First academic placer using multi-level partitioning (MLPart) –First academic placer in the US to compete heads-on with commercial placers on large industrial netlists –All code written from scratch Capo - an experiment in min-cut placement DAC 2000: Can Recursive Bisection Alone Produce Routable Placements ? –Message: minimizing HPWL is not enough

3 Min-cut Bisection

4 Basic Components & Techniques Overall runtime O(P (log P) 2 ) Three min-cut partitioners –MLPart and FMPart (heur.) & BBPart (optimal) ASPDAC 2000, JEA 2000, ISPD `98/TCAD `01 –Capo makes several different calls to MLPart every time (some are Vcycling) Shifting cut-lines (not a grid): ASIC `98 Optimal end-case placers (B&B): ISPD `98 –Also used in detail placement RowIroning Uniform whitespace allocation: TCAD `03 Non-uniform whitespace allocation: ICCAD `03 Feedback / cycling (Kahng & Reda, DAC `04)

5 Capos Distinctive Features (can be found in some industry tools, but rarely in academic placers) Global placement with Capo often produces legal placements –No cell-shifting / legalization is necessary –Top-down estimates of cell locations and interconnect are very accurate –This seems to improve generic routability –Ensured robust handling of obstacles since 2000 Can make any netlist routable by more generous floorplan (greater whitespace) –Request uniform whitespace distribution! Very low via counts

6 The Integration of Block-packing (using Parquet) ICCAD `04

7 Advanced Details Weighted terminal propagation –Described in a TR by Karypis & Selvakkumaran –More accurate capture of HPWL in min-cut partitioning –Nets with terminals too close to cut-line have cost <1 –Some orig. nets are modeled by two nets for min-cut To improve terminal propagation, use an SOR-based quadratic placer after every round of partitioning –Also tried ACG (Alpert, Nam & Villarrubia; ICCAD`03) Look-ahead criteria for Parquet were sharpened

8 Recent Improvements Whitespace allocation rewritten entirely –New params: -minLocalWS and -safeWS Cutline positioning relative to obstacles –Feature locations are corners of fixed macros –Among those, we minimize cutlength –Cutline direction is selected based on cutlength MLPart & FMPart are 2x faster (loop unroling) –Also, bugfix in Vcycling –Also, variable-effort partitioning in Capo Stronger, much faster RowIroning Stronger macro legalizer, more scalable cell leg. Meta-options: -faster and -tryHarder

9 Large-scale Visualization Example: different whitespace allocation modes Plots of large designs with data compression –Less than 1 bit per cell –The plotter is in the GSRC bookshelf under PlaceUtils

10 Capo Memory & Runtime Data with –faster Linux) 7h40m 17 mins

11 Example of Self-profiling in Capo MLPart took: sec (39.25%) FMPart took: 661.4sec (2.77%) BBPart took: 255.3sec (1.07%) SmPlace took: sec (7.24%) ProblemSetup took: sec (47.66%) SmPlProbSetup took: 133.5sec (0.56%) Level Stats took: 151.2sec (0.63%) Total runtime of measured components: sec (99.2%) MLPart took: sec (51.58%) FMPart took: 38.29sec (4.99%) BBPart took: 20.13sec (2.62%) SmPlace took: sec (18.12%) ProblemSetup took sec (19.67%) SmPlProbSetup took: 4.85sec (0.63%) Level Stats took: 10.79sec (1.41%) Total runtime of measured components: sec (99.03%) Adaptec 1 (250K) Big Blue 4 (2.1M) RowIroning takes additional 10-15% by runtime

12 Infrastructure Available in GSRC Bookshelf (April 2005) Source code & binaries –Converters: Bookshelf to/from LEFDEF –Gnuplotter with data compression –Macro & cell legalizer –Improved stand-alone RowIroning –Complete Capo 9.1 (with MLPart) for Linux (32/64), Solaris (32/64) and Windows Compatible with OpenAccess Ongoing work on further improvements

13 Example: Whats Wrong Here?


Download ppt "Capo: Robust and Scalable Open-Source Min-cut Floorplacer Jarrod A. Roy, David A. Papa,Saurabh N. Adya, Hayward H. Chan, James F. Lu, Aaron N. Ng, Igor."

Similar presentations


Ads by Google