1 Understanding force-directed placement Andrew Kennings Electrical and Computer Engineering University of Waterloo.

Slides:



Advertisements
Similar presentations
Heuristic Search techniques
Advertisements

Design Rule Generation for Interconnect Matching Andrew B. Kahng and Rasit Onur Topaloglu {abk | rtopalog University of California, San Diego.
Regularization David Kauchak CS 451 – Fall 2013.
Imbalanced data David Kauchak CS 451 – Fall 2013.
3D-STAF: Scalable Temperature and Leakage Aware Floorplanning for Three-Dimensional Integrated Circuits Pingqiang Zhou, Yuchun Ma, Zhouyuan Li, Robert.
Natarajan Viswanathan Min Pan Chris Chu Iowa State University International Symposium on Physical Design April 6, 2005 FastPlace: An Analytical Placer.
Meng-Kai Hsu, Sheng Chou, Tzu-Hen Lin, and Yao-Wen Chang Electronics Engineering, National Taiwan University Routability Driven Analytical Placement for.
A Size Scaling Approach for Mixed-size Placement Kalliopi Tsota, Cheng-Kok Koh, Venkataramanan Balakrishnan School of Electrical and Computer Engineering.
Sampling Distributions
Ripple: An Effective Routability-Driven Placer by Iterative Cell Movement Xu He, Tao Huang, Linfu Xiao, Haitong Tian, Guxin Cui and Evangeline F.Y. Young.
SimPL: An Effective Placement Algorithm Myung-Chul Kim, Dong-Jin Lee and Igor L. Markov Dept. of EECS, University of Michigan 1ICCAD 2010, Myung-Chul Kim,
Quick Sort, Shell Sort, Counting Sort, Radix Sort AND Bucket Sort
Consistent Placement of Macro-Blocks Using Floorplanning and Standard-Cell Placement Saurabh Adya Igor Markov (University of Michigan)
FastPlace: Efficient Analytical Placement using Cell Shifting, Iterative Local Refinement and a Hybrid Net Model FastPlace: Efficient Analytical Placement.
Early Days of Circuit Placement Martin D. F. Wong Department of Electrical and Computer Engineering University of Illinois at Urbana-Champaign.
Congestion Driven Placement for VLSI Standard Cell Design Shawki Areibi and Zhen Yang School of Engineering, University of Guelph, Ontario, Canada December.
Planning under Uncertainty
11Sahalu JunaiduICS 573: High Performance Computing5.1 Analytical Modeling of Parallel Programs Sources of Overhead in Parallel Programs Performance Metrics.
Balancing Interconnect and Computation in a Reconfigurable Array Dr. André DeHon BRASS Project University of California at Berkeley Why you don’t really.
Computational problems, algorithms, runtime, hardness
A New Force-Directed Graph Drawing Method Based on Edge- Edge Repulsion Chun-Cheng Lin and Hsu-Chen Yen Department of Electrical Engineering, National.
Penn ESE Spring DeHon 1 ESE (ESE534): Computer Organization Day 15: March 12, 2007 Interconnect 3: Richness.
Optimization via Search CPSC 315 – Programming Studio Spring 2009 Project 2, Lecture 4 Adapted from slides of Yoonsuck Choe.
Generating Supply Voltage Islands In Core-based System-on-Chip Designs Final Presentation Steven Beigelmacher Gall Gotfried 04/26/2005.
On Legalization of Row-Based Placements Andrew B. KahngSherief Reda CSE & ECE Departments University of CA, San Diego La Jolla, CA 92093
1 A Tale of Two Nets: Studies in Wirelength Progression in Physical Design Andrew B. Kahng Sherief Reda CSE Department University of CA, San Diego.
Can Recursive Bisection Alone Produce Routable Placements? Andrew E. Caldwell Andrew B. Kahng Igor L. Markov Supported by Cadence.
16.5 Introduction to Cost- based plan selection Amith KC Student Id: 109.
Copyright © Cengage Learning. All rights reserved. CHAPTER 11 ANALYSIS OF ALGORITHM EFFICIENCY ANALYSIS OF ALGORITHM EFFICIENCY.
Placement-Centered Research Directions and New Problems Xiaojian Yang Amir Farrahi Synplicity Inc.
Dynamic Presentation of Key Concepts Module 2 – Part 3 Meters Filename: DPKC_Mod02_Part03.ppt.
Improved results for a memory allocation problem Rob van Stee University of Karlsruhe Germany Leah Epstein University of Haifa Israel WADS 2007 WAOA 2007.
Process Flowsheet Generation & Design Through a Group Contribution Approach Lo ï c d ’ Anterroches CAPEC Friday Morning Seminar, Spring 2005.
TSV-Aware Analytical Placement for 3D IC Designs Meng-Kai Hsu, Yao-Wen Chang, and Valerity Balabanov GIEE and EE department of NTU DAC 2011.
10/11/ VLSI Physical Design Automation Prof. David Pan Office: ACES Placement (2)
March 20, 2007 ISPD An Effective Clustering Algorithm for Mixed-size Placement Jianhua Li, Laleh Behjat, and Jie Huang Jianhua Li, Laleh Behjat,
VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 5: Global Routing © KLMH Lienig 1 EECS 527 Paper Presentation High-Performance.
Archer: A History-Driven Global Routing Algorithm Mustafa Ozdal Intel Corporation Martin D. F. Wong Univ. of Illinois at Urbana-Champaign Mustafa Ozdal.
Seeing the Forest and the Trees: Steiner Wirelength Optimization in Placement Jarrod A. Roy, James F. Lu and Igor L. Markov University of Michigan Ann.
New Modeling Techniques for the Global Routing Problem Anthony Vannelli Department of Electrical and Computer Engineering University of Waterloo Waterloo,
Gordian Placement Tool: Quadratic and Linear Problem Formulation Ryan Speelman Jason Gordon Steven Butt EE 201A
Analytic Placement. Layout Project:  Sending the RTL file: −Thursday, 27 Farvardin  Final deadline: −Tuesday, 22 Ordibehesht  New Project: −Soon 2.
Disclosure risk when responding to queries with deterministic guarantees Krish Muralidhar University of Kentucky Rathindra Sarathy Oklahoma State University.
Massachusetts Institute of Technology 1 L14 – Physical Design Spring 2007 Ajay Joshi.
Placement. Physical Design Cycle Partitioning Placement/ Floorplanning Placement/ Floorplanning Routing Break the circuit up into smaller segments Place.
Deferred Decision Making Enabled Fixed- Outline Floorplanner Jackey Z. Yan and Chris Chu DAC 2008.
STAR Sti, main features V. Perevoztchikov Brookhaven National Laboratory,USA.
Congestion Estimation and Localization in FPGAs: A Visual Tool for Interconnect Prediction David Yeager Darius Chiu Guy Lemieux The University of British.
Quadratic VLSI Placement Manolis Pantelias. General Various types of VLSI placement  Simulated-Annealing  Quadratic or Force-Directed  Min-Cut  Nonlinear.
Thursday, May 9 Heuristic Search: methods for solving difficult optimization problems Handouts: Lecture Notes See the introduction to the paper.
Decision Trees Binary output – easily extendible to multiple output classes. Takes a set of attributes for a given situation or object and outputs a yes/no.
Sorting: Implementation Fundamental Data Structures and Algorithms Klaus Sutner February 24, 2004.
B-TREE. Motivation for B-Trees So far we have assumed that we can store an entire data structure in main memory What if we have so much data that it won’t.
Fast Query-Optimized Kernel Machine Classification Via Incremental Approximate Nearest Support Vectors by Dennis DeCoste and Dominic Mazzoni International.
Caltech CS184 Winter DeHon 1 CS184a: Computer Architecture (Structure and Organization) Day 13: February 6, 2003 Interconnect 3: Richness.
An Exact Algorithm for Difficult Detailed Routing Problems Kolja Sulimma Wolfgang Kunz J. W.-Goethe Universität Frankfurt.
May Mike Drob Grant Furgiuele Ben Winters Advisor: Dr. Chris Chu Client: IBM IBM Contact – Karl Erickson.
Eco 6380 Predictive Analytics For Economists Spring 2016 Professor Tom Fomby Department of Economics SMU.
A Snap-On Placement Tool Israel Waldman. Introduction.
Placement and Routing Algorithms. 2 FPGA Placement & Routing.
HeAP: Heterogeneous Analytical Placement for FPGAs
APLACE: A General and Extensible Large-Scale Placer
ESE534: Computer Organization
ESE534: Computer Organization
EE5780 Advanced VLSI Computer-Aided Design
Data Structures & Algorithms Union-Find Example
EDA Lab., Tsinghua University
CS184a: Computer Architecture (Structures and Organization)
Area Coverage Problem Optimization by (local) Search
Presentation transcript:

1 Understanding force-directed placement Andrew Kennings Electrical and Computer Engineering University of Waterloo

Force-directed placement... Outline of talk  Introduction.  Implementation details. Force computation. Force scaling. Overlap assessment. Stability issues.  Improvements. Median improvement. Multi-level clustering. Unification with partitioning.  Numerical results.  Current and future work.

Force-directed placement... Introduction  Force-directed placement is an alternative placement method compared to simulated annealing-based or top-down partitioning-based methods.  It has two main thrusts: Quadratic optimization to pull connected cells together. Force computation to push cells apart.  Force-directed placement is interesting… Seems fairly generic (no reason mixed-size blocks can’t be handled w/o changing the algorithm). Seems amenable to physical re-synthesis and incremental placement due to “continuous cell trajectories”.

Force-directed placement... The mathematics  Assume that cells are allowed to overlap. Connected cells can be kept close together (and hence indirectly minimize some measure of wire length) by solving a QP:  Simple to solve by differentiating, where we find a positive- definite system of linear equations:  Clearly fast to solve (advantage), but result has a lot of cell overlap (disadvantage).

Force-directed placement... Spreading forces  We can perturb the optimality conditions to change the resulting solution (i.e., the cell positions) slowly over many iterations:  The perturbations are chosen based on the current (overlapping) cell positions in order to remove the cell overlap.  Hence, over many iterations, the cells converge to non- overlapping positions. The above equation resembles a force equation, we have force-directed placement.

Force-directed placement... Force-directed placement in action  This slide is inserted to visually give an idea of what happens during force-directed placement.  Cell trajectories (top) and cumulative forces in cells (bottom) are shown as the force-directed placement progresses.

Force-directed placement... Towards implementation  The best known example of force-directed placement is probably Kraftwerk (1998).  It sounds very simple but we found several difficulties during implementation: How to actually compute forces efficiently? How to properly weight the forces computed at each iteration? How to track the progression of the algorithm and to decide when to stop? How to identify and handle stability problems?  Briefly touch on each of these topics.

Force-directed placement... Efficient force computation  We compute forces by building (bottom-up) a (Barnes-Hut) quad-tree once over the entire placement area.  Then, prior to each QP: Each cell’s area is inserted top-down into bins of the quad-tree at all levels of the quad-tree. Force on quad-tree bins is computed using interaction lists, near neighbor computations, and so forth. Forces on individual cells is then computed by summing up forces from overlapped bins.  Hence, we use a particle-mesh-particle methodology for force computation.

Force-directed placement... Force scaling  The quad-tree provides forces (directions) and proportional lengths.  Investigation turned out that forces need to be scaled in two ways: For mixed-size designs, larger cells overlap more quad- tree bins and therefore get very large forces relative to smallish cells. Forces are not computed in any sort of scale compared to the QP spring forces.

Force-directed placement... Scaling for differing cell sizes  Very large forces on large cells empirically resulted in large blocks getting pushed quickly to the outside of the placement region.  Empirically, found that scaling the force on each cell computed from the quad-tree by the square root of number of overlapped quad-tree bins fixed the problem. Forces on cells of different sizes computed from the quad-tree before scaling and after scaling

Force-directed placement... Scaling for optimality conditions  Recall that forces are combine into optimality conditions but constant force weighting (advocated by Kraftwerk ) was found to hurt quality.  Implemented a state machine to dynamically weighting: Start out small (cells adjust themselves into correct order relative to each other). Increase to encourage fairly rapid spreading. Based on a monitoring of cell overlap, adjust weight up or down as appropriate.

Force-directed placement... Overlap assessment  The proper assessment and monitoring of cell overlap is important. Provides: indication of algorithm progression. indication of problems in convergence. mechanism to determine when to stop.  Have developed two metrics: Two metrics since we found that different metrics are useful at different stages of the algorithm.  The two methods are combine in a weighted amount to provide a single number measuring overlap.

Force-directed placement... Overlap assessment – Metric #1  Metric #1 is based on a typical occupancy verses capacity measure of available placement area.  We scan the quad-tree used for force computation top-down, and compute:  Metric is normalized into the range [0,1] where 0 means no overlap, and 1 means (essentially) total overlap.  Metric found to be very good early in placement.

Force-directed placement... Overlap assessment – Metric #2  Metric #2 is based on a O(n log n) plane-sweep algorithm that directly measures the union of cell area.  Metric is normalized into the range [0,1] (divide union of cell area by total cell area) where 1 means no overlap, and 0 means (essentially) total overlap.  Metric found to be very good late in placement. Area of cells individually is 188 units, and the area of their union is 170 units.  170 / 188 = 0.90, or ~10% overlap

Force-directed placement... Stability issues  Discovered that placements occasionally collapse back onto themselves.  Due to the iterative solver and poor conditioning of the system of equations.  Problem easily seen visually, but harder to detect in software -- detected by good overlap assessment!!!

Force-directed placement... Our solution to stability issues  Change in cell positions between two iterations of placement is given by:  Modify by making it more diagonally dominant:  Improves conditioning and makes it easier to solve. Diagonal modification is like adding a fixed point for each cell that tracks the cell’s location.

Force-directed placement... How good is the method so far?  Aforementioned implementation should have paralleled Kraftwerk so we tested: Placed the ISPD-2002 benchmarks using Kraftwerk via bX at the University of Michigan. Measured the overlap in Kraftwerk placements and tuned our tool to stop at roughly the same amount of overlap. Compared wire length.  Not surprisingly results were very comparable to Kraftwerk, but far from other state-of-the-art academic tools like Capo and Fengshui.

Force-directed placement... Problems of cell ordering  Force-directed placement begins from an initial QP that provides rough information about the left/right (top/bottom) ordering of cells. ACB  Hypothesized that there is a cell ordering problem. Spreading forces used to remove overlap make it difficult for cells to cross paths once ordered. Cells A and B connected; attractive force pulling A towards B. Cell C creates an obstacle causing a force keeping A and B apart.

Force-directed placement... Median improvement  We implemented a heuristic that directly attempts to minimize wire length and interleaved it within the force- directed iterations.  Heuristic called as overlap is continually reduced by ~3%.  Essentially considers each cell, and attempts to compute an HPWL minimizing range of locations into which the cell can be placed. The heuristic can re-introduce small amounts of overlap, so careful attention is paid to overlap.

Force-directed placement... Median improvement  For a cell compute median of its connected cells. Move cell into this box (while trying to avoid re-introduction of overlap).  If too much overlap re-introduced expand the box so at least the cell attempts to get re-placed in the “right direction”.

Force-directed placement... Force reorientation  Basically make a hypothetical call to the median improvement in order to get a direction that each cell wishes to follow.  Combine direction with direction computed for cell spreading. Tends to help with HPWL minimization, but with some impact on the required iterations for convergence.  Use force re-orientation prior to solving each QP during force- directed placement.

Force-directed placement... Multi-level clustering  We also implemented multi-level clustering in order to have a multi-level, force-directed placer.  Several objectives in this flow: Help to improve runtime (clustering/de-clustering takes time, but smaller netlists at top levels). Help to improve quality of results (clustering keeps connected cells together, thereby helping to circumvent cell ordering problems).  Makes sense to use clustering; always used in top-down partitioning and simulated annealing placers.

Force-directed placement... Illustrated clustering flow  Our clustering uses physical info + connectivity.  It also (occasionally) performs de- and re-clustering.

Force-directed placement... How good are things now?  Results on IBM-MS standard cell circuits (macro cells reduced to standard row height).

Force-directed placement... How good are things now?  Results on IBM-MS 2002 mixed-size circuits (no pin offsets).

Force-directed placement... How good are things now?  Results on IBM-MS 2004 mixed-size circuits (pin offsets).

Force-directed placement... Commentary on algorithm progression  Force-directed placement with median improvement and clustering provided excellent quality of results compared to other tools (e.g., Capo9.0 and Fengshui2.6 ).  CPU somewhat worse…  Thought about how we could be both better and faster… We did this by considering how the force-directed placer worked at reducing overlap.

Force-directed placement... Iteration count versus overlap  Multi-level force-directed placement exhibits three ranges of placement progression. Getting started. Spreading cells. Incremental overlap removal.  Large initial overlap; potential for more cell ordering problems and wasted runtime.  Could potentially “warm-start” the force-directed method using an alternative placement method.

Force-directed placement... Unification with partitioning  Used partitioning at the top to help generate better cell ordering and initial placements with less overlap.  Question: how to properly stop partitioning and switch to force- directed placement? Too much partitioning would result in a partitioning-based placer. Too little partitioning wouldn’t be useful either.  The proper hand-off to force- directed placement represents the unification.

Force-directed placement... Proper hand-off to force-directed placement  Perform top-down bisection. Terminal propagation done via QP at after each partitioning iteration.  Assess overlap after each partitioning iteration. Terminate partitioning once we have hit a reasonable overlap target.  Need to give force-directed placement the change to do something, and do not want to degenerate into a top-down partitioning-based placer. Initial placement without partitioning… and with partitioning.

Force-directed placement... Numerical results  Results on IBM-MS standard cell circuits (macro cells reduced to standard row height).

Force-directed placement... How good are things now?  Results on IBM-MS 2002 mixed-size circuits (no pin offsets).

Force-directed placement... How good are things now?  Results on IBM-MS 2002 mixed-size circuits (pin offsets).

Force-directed placement... Conclusions  Implementation of a force-directed placer requires attention to detail: Force computation. Force scaling. Proper overlap assessment (useful for many reasons). Stability issues.  To be competitive with today’s tools, force-directed placers require enhancements (vs. basic Kraftwerk description): Median improvement (various forms). Multi-level clustering. Unification with partitioning.

Force-directed placement... Current thoughts and work - Fixed objects  Typical that some objects (e.g., IP) are pre-placed.  Fixed objects become obstacles for force-directed placers.  What modifications (if any) are required in order for force- directed placers to properly account for obstacles?  Other types of placement constraints.

Force-directed placement... Future thoughts and work  Try to significantly reduce CPU w/o loss in quality.  Better parameter selection (i.e., weighting of “this vs. that” at each force-directed iteration) seems beneficial.  Want to look at other objectives; e.g., Routability, Timing, Physical Synthesis.

Force-directed placement... Future thoughts and work – An aside  Related to work on better parameter selection…  Much of the analytic and force-directed methods are much the same… (mFar, Fastplace, Aplace, etc.)  All methods (more or less) have an explicit or implicit objective function that is a weighted combination of wire length and overlap.  Regardless, the resulting optimization generally has two search directions; one for wire length and one for overlap.

Force-directed placement... Future thoughts and work – An aside  Hence, the tricks in the methods are: How to weight wire length direction vs. overlap direction to get good results fast. How far to step once relative weighting is done, and a search direction for minimization is computed.  People need to say more about this type of stuff.  It is also possible that some methods (because of how overlap is handled and the resulting objective function) are “more capable” at certain problems (e.g., moveable pads, obstacles, etc.)

Force-directed placement... The end – Thanks!  Happy to answer any questions…