ESE535: Electronic Design Automation

Slides:



Advertisements
Similar presentations
CALTECH CS137 Winter DeHon CS137: Electronic Design Automation Day 14: March 3, 2004 Scheduling Heuristics and Approximation.
Advertisements

CSE 380 – Computer Game Programming Pathfinding AI
Penn ESE535 Spring DeHon 1 ESE535: Electronic Design Automation Day 11: March 4, 2008 Placement (Intro, Constructive)
Penn ESE Spring DeHon 1 ESE (ESE534): Computer Organization Day 15: March 12, 2007 Interconnect 3: Richness.
Technology Mapping.
EDA (CS286.5b) Day 2 Covering. Why covering now? Nice/simple cost model problem can be solved well (somewhat clever solution) general/powerful technique.
Penn ESE535 Spring DeHon 1 ESE535: Electronic Design Automation Day 2: January 23, 2008 Covering.
Penn ESE535 Spring DeHon 1 ESE535: Electronic Design Automation Day 21: April 15, 2009 Routing 1.
Penn ESE535 Spring DeHon 1 ESE535: Electronic Design Automation Day 19: April 9, 2008 Routing 1.
EDA (CS286.5b) Day 11 Scheduling (List, Force, Approximation) N.B. no class Thursday (FPGA) …
Penn ESE535 Spring DeHon 1 ESE535: Electronic Design Automation Day 5: February 2, 2009 Architecture Synthesis (Provisioning, Allocation)
EDA (CS286.5b) Day 3 Clustering (LUT Map and Delay) N.B. no lecture Thursday.
Penn ESE535 Spring DeHon 1 ESE535: Electronic Design Automation Day 16: March 23, 2009 Covering.
CS294-6 Reconfigurable Computing Day 15 October 13, 1998 LUT Mapping.
Penn ESE535 Spring DeHon 1 ESE535: Electronic Design Automation Day 13: March 17, 2008 Dual Objective Dynamic Programming.
EDA (CS286.5b) Day 9 Simultaneous Optimization (Cover+Place, Area+Delay)
Penn ESE535 Spring DeHon 1 ESE535: Electronic Design Automation Day 5: February 2, 2009 Architecture Synthesis (Provisioning, Allocation)
Penn ESE535 Spring DeHon 1 ESE535: Electronic Design Automation Day 4: January 28, 2015 Partitioning (Intro, KLFM)
Penn ESE535 Spring DeHon 1 ESE535: Electronic Design Automation Day 2: January 26, 2015 Covering Work preclass exercise.
CALTECH CS137 Winter DeHon CS137: Electronic Design Automation Day 12: February 13, 2002 Scheduling Heuristics and Approximation.
Penn ESE535 Spring DeHon 1 ESE535: Electronic Design Automation Day 9: February 16, 2015 Scheduling Variants and Approaches.
Penn ESE535 Spring DeHon 1 ESE535: Electronic Design Automation Day 9: February 14, 2011 Placement (Intro, Constructive)
Penn ESE535 Spring DeHon 1 ESE535: Electronic Design Automation Day 24: April 18, 2011 Covering and Retiming.
Penn ESE535 Spring DeHon 1 ESE535: Electronic Design Automation Day 10: February 18, 2015 Architecture Synthesis (Provisioning, Allocation)
Penn ESE525 Spring DeHon 1 ESE535: Electronic Design Automation Day 6: February 4, 2014 Partitioning 2 (spectral, network flow)
CALTECH CS137 Winter DeHon CS137: Electronic Design Automation Day 10: February 6, 2002 Placement (Simulated Annealing…)
Penn ESE535 Spring DeHon 1 ESE535: Electronic Design Automation Day 23: April 20, 2015 Static Timing Analysis and Multi-Level Speedup.
Technology Mapping. 2 Technology mapping is the phase of logic synthesis when gates are selected from a technology library to implement the circuit. Technology.
CALTECH CS137 Spring DeHon 1 CS137: Electronic Design Automation Day 5: April 12, 2004 Covering and Retiming.
Penn ESE535 Spring DeHon 1 ESE535: Electronic Design Automation Day 6: January 30, 2013 Partitioning (Intro, KLFM)
Penn ESE535 Spring DeHon 1 ESE535: Electronic Design Automation Day 20: April 4, 2011 Static Timing Analysis and Multi-Level Speedup.
Penn ESE535 Spring DeHon 1 ESE535: Electronic Design Automation Day 15: March 13, 2013 High Level Synthesis II Dataflow Graph Sharing.
Penn ESE535 Spring DeHon 1 ESE535: Electronic Design Automation Day 5: February 2, 2015 Clustering (LUT Mapping, Delay)
Penn ESE535 Spring DeHon 1 ESE535: Electronic Design Automation Day 11: February 25, 2015 Placement (Intro, Constructive)
CALTECH CS137 Fall DeHon 1 CS137: Electronic Design Automation Day 18: November 14, 2005 Dual Objective Dynamic Programming.
CALTECH CS137 Fall DeHon 1 CS137: Electronic Design Automation Day 2: September 28, 2005 Covering.
Penn ESE535 Spring DeHon 1 ESE535: Electronic Design Automation Day 25: April 17, 2013 Covering and Retiming.
Penn ESE535 Spring DeHon 1 ESE535: Electronic Design Automation Day 5: January 31, 2011 Scheduling Variants and Approaches.
CS137: Electronic Design Automation
BackTracking CS255.
ESE534: Computer Organization
CS137: Electronic Design Automation
CS137: Electronic Design Automation
ESE535: Electronic Design Automation
CS137: Electronic Design Automation
ESE535: Electronic Design Automation
ESE535: Electronic Design Automation
ESE535: Electronic Design Automation
ESE535: Electronic Design Automation
ESE534: Computer Organization
ESE534: Computer Organization
ESE535: Electronic Design Automation
ESE535: Electronic Design Automation
ESE535: Electronic Design Automation
Topics Logic synthesis. Placement and routing..
ESE535: Electronic Design Automation
ESE535: Electronic Design Automation
ESE535: Electronic Design Automation
CS184a: Computer Architecture (Structures and Organization)
ESE535: Electronic Design Automation
ESE534: Computer Organization
ESE535: Electronic Design Automation
Technology Mapping I based on tree covering
ESE535: Electronic Design Automation
ESE535: Electronic Design Automation
ESE535: Electronic Design Automation
ESE535: Electronic Design Automation
ESE535: Electronic Design Automation
CS137: Electronic Design Automation
CS137: Electronic Design Automation
Presentation transcript:

ESE535: Electronic Design Automation Day 25: April 20, 2011 Dual Objective Dynamic Programming Penn ESE535 Spring 2011 -- DeHon

Today Cover and Place Area and Time Two Dimensional Cover and Place Behavioral (C, MATLAB, …) RTL Gate Netlist Layout Masks Arch. Select Schedule FSM assign Two-level, Multilevel opt. Covering Retiming Placement Routing Today Cover and Place Linear GAMA Optimal Tree-based Area and Time covering for …and linear placement Two Dimensional Cover and Place Lily Penn ESE535 Spring 2011 -- DeHon

Covering Review Use dynamic programming to optimally cover trees problem decomposable into subproblems optimal solution to each are part of optimal no interaction between subproblems small number of distinct subproblems single optimal solution to subproblem Break DAG into trees then cover optimally Penn ESE535 Spring 2011 -- DeHon

Covering Basics Pick best Basic Idea: Assume have optimal solution to all subproblems smaller than current problem Try all ways of implementing current root each candidate solution is new gate + previously solve subtrees Pick best (smallest area, least delay, least power) Penn ESE535 Spring 2011 -- DeHon

Placement How do we integrate placement into this covering process? Penn ESE535 Spring 2011 -- DeHon

GaMa - Linear Placement Problem: cover and place datapaths in rows of FPGA-like cells to minimize area, delay Datapath width extends along one dimension (rows) Composition is 1D along other dimension (columns) Always covering row at a time [Callahan/FPGA’98] Penn ESE535 Spring 2011 -- DeHon

Basic Strategy Restrict each subtree to a contiguous set of rows Build up placement for subtree during cover When consider cover, also consider all sets of arrangements of subtrees effectively expands library set Penn ESE535 Spring 2011 -- DeHon

Simultaneous Placement Benefits Know real delay (including routing) during covering make sure critical logic uses fastest inputs …shortest paths Know adjacency can use special resources requiring adjacent blocks Carry chains, direct connections Penn ESE535 Spring 2011 -- DeHon

GaMa Properties Operates in time linear in graph size O(|rule set|×|graph nodes|) Finds area-optimum for restricted problem trees with contiguous subtrees As is, may not find delay optimum Penn ESE535 Spring 2011 -- DeHon

GaMa Example Y=A×B + (abs(C)+ilog2(D)) Distance Delay 0—3 rows 4—7 rows 1 8+ rows 2 Y=A×B + (abs(C)+ilog2(D)) add A=1, D=1 multiply A=8, T=4 A=6, T=6 abs A=3, T=2 A=2, T=3 ilog2 A=4, T=4 A=3, T=5 Penn ESE535 Spring 2011 -- DeHon

Example: Cover for Delay Y=A×B + (abs(C)+ilog2(D)) × + abs + ilog2 Penn ESE535 Spring 2011 -- DeHon

How Change? add A=1, D=1 multiply A=8, T=4 A=6, T=6 abs A=3, T=2 ilog2 A=4, T=4 A=3, T=5 Penn ESE535 Spring 2011 -- DeHon

GaMa Delay Example Penn ESE535 Spring 2011 -- DeHon

GaMa Delay Problem Area can affect delay Doesn’t know when to pick worse delay to reduce area make non-critical path subtree slower/smaller so overall critical path will be close later Only tracking single objective Fixable as next technique demonstrates Penn ESE535 Spring 2011 -- DeHon

GaMa Results Comparable result quality (area, time) to running through Xilinx tools Placement done in seconds as opposed to minutes to hours for Xilinx simulated annealing, etc. not exploiting datapath regularity Penn ESE535 Spring 2011 -- DeHon

GaMa Questions? Penn ESE535 Spring 2011 -- DeHon

Simultaneous Mapping and Linear Placement of Trees Problem: cover and place standard cell row minimizing area Area: cell width and cut width Technique: combine DP-covering with DP-tree layout [Lou+Salek+Pedram/ICCAD’97] Penn ESE535 Spring 2011 -- DeHon

Task Minimize: Area=gate-width * (gate-height+c*wire-pitch) Penn ESE535 Spring 2011 -- DeHon

Composition Challenge Minimum area solution to subproblems does not necessarily lead to minimum area solution: Penn ESE535 Spring 2011 -- DeHon

Minimize Area Two components of area: Unclear during mapping when need gate-area cut-width Unclear during mapping when need a smaller gate-area vs. a smaller cut-width at the expense of (local) cell area (same problem as area vs. delay in GaMa) Penn ESE535 Spring 2011 -- DeHon

Strategy Recognize that these are incomparable objectives neither is strictly superior to other keep all solutions discard only inferior (dominated) solutions Penn ESE535 Spring 2011 -- DeHon

Dominating/Inferior Solutions A solution is dominated if there is another solution strictly superior in all objectives A=3, T=2 A=2, T=3 neither dominates A=3, T=3 A=3, T=2 A=2, T=3 A=3, T=3 is inferior, being dominated by either of the other two solutions Penn ESE535 Spring 2011 -- DeHon

Non-Inferior Curve Set of dominators defines a curve This is a recurring theme---often prune work using dominator curve Penn ESE535 Spring 2011 -- DeHon

Strategy Keep curve of non-inferior area-cut points During DP build a new curve for each subtree by looking at solution set intersections cross product set of solutions from each subtrees feeding into this subtree Penn ESE535 Spring 2011 -- DeHon

Consequences More work per graph point Theory: points(fanin) × gates keeping and intersecting many points Theory: points(fanin) × gates Points  range of solutions in smallest dimension e.g. points  number of different cut-widths Penn ESE535 Spring 2011 -- DeHon

Algorithm: Tree Cover+Place For each tree node from leafs For each gate cover For each non-inferior point in fanin-subtrees compute optimal tree layout keep non-inferior points (cutwidth, gate-area) Optimal Tree Layout Yannakakis/JACM v32n4p950, Oct. 1985 Penn ESE535 Spring 2011 -- DeHon

Time Notes Computing Optimal Tree layout: O(N log(N)) Per node: O(cutwidth(fanin) * N*log(N)) Loose bound possible to tighten? less points and smaller “N” in tree for earlier subproblems higher faninless depthmore use of small “N” for linear layout problems Penn ESE535 Spring 2011 -- DeHon

Empirical Results Claim: 20% area improvement Penn ESE535 Spring 2011 -- DeHon

Area: Questions Penn ESE535 Spring 2011 -- DeHon

Covering for Area and Delay (no placement) Previously saw was hard to do DP to simultaneously optimize for area and delay properly generate area-time tradeoffs Problem: whether or not needed a fast path not clear until saw speed of siblings [Chaudhary+Pedram/DAC’92] Penn ESE535 Spring 2011 -- DeHon

Strategy Use same technique as just detailed for gate-area + cutwidth I.e. -- at each tree cover keep all non-inferior points (effectively the full area-time curve) as cover, intersect area-time curves to generate new area-time curve When get to a node can pick smallest implementation for a child node that does not increase critical path Penn ESE535 Spring 2011 -- DeHon

Points to Keep Usually small variance in times if use discrete model like LUT delays, only a small number of different times if use continuous model, can get close to optimum by discretizing and keeping a fixed set Similarly, small total variance in area e.g. factor of 2-3 discretizing, gets close w/out giving up much Discretized: run in time linear in N assuming bounded fanin gates Penn ESE535 Spring 2011 -- DeHon

GaMa -- Optimal Delay Use this technique in GaMa solve delay problem get good area-delay tradeoffs GARP has a discrete timing model so already have small spread for conventional FPGA will have to discretize Penn ESE535 Spring 2011 -- DeHon

Rework GaMa Example Y=A×B + (abs(C)+ilog2(D)) Distance Delay 0—3 rows 4—7 rows 1 8+ rows 2 Y=A×B + (abs(C)+ilog2(D)) add A=1, D=1 multiply A=8, T=4 A=6, T=6 abs A=3, T=2 A=2, T=3 ilog2 A=4, T=4 A=3, T=5 Penn ESE535 Spring 2011 -- DeHon

Example + × + Y=A×B + (abs(C)+ilog2(D)) abs ilog2 Penn ESE535 Spring 2011 -- DeHon

Area & Delay: Questions? Penn ESE535 Spring 2011 -- DeHon

Covering and Linear Placement for Area and Delay Have both cut-width + gate-area affects delay tradeoff Result have three objectives to minimize cut-width gate-area gate-delay [Lou+Salek+Pedram/ICCAD’97] Penn ESE535 Spring 2011 -- DeHon

Strategy Repeat trick: keep non-inferior points in three-space <cut-width,gate-area,delay> Intersect spaces to compute new cover spaces May really need to discretize points to limit work Penn ESE535 Spring 2011 -- DeHon

Note Delay calculation: “Optimal” tree layout algorithm being used assumes delay in gates and fanout fanout effect makes heuristic maybe iterate/relax? ignores distance “Optimal” tree layout algorithm being used is optimal with respect to cut-width not optimal with respect to critical path wire length Penn ESE535 Spring 2011 -- DeHon

Empirical Results Mapping for delay: 20% delay improvement achieving effectively same area (of alternative, not of self targeting area) Penn ESE535 Spring 2011 -- DeHon

Placement Area-Delay Questions? Penn ESE535 Spring 2011 -- DeHon

Two Dimensions? Both so far, one-dimensional One-dimensional nice layout restrictions simple metric for delay simple metric for area How extend to two dimensions? Penn ESE535 Spring 2011 -- DeHon

2D Cover and Place Problem: cover and place in 2D to minimize area (delay) Area: gate area + “wirelength” area Delay: gate delay + estimated wire delay [Pedram+Bhat/DAC’91] Penn ESE535 Spring 2011 -- DeHon

Example Covering wrt placement matters nand2 nor2 nor2(nand2(A,B),nand2(C,D))=AND(A,B,C,D) Penn ESE535 Spring 2011 -- DeHon

Strategy Relax placement during covering Initially place unmapped using constructive placement (Day 9) Cover via dynamic programming When cover a node, fanins already visited calculate new placement Center of Mass Periodically re-calculate placement Use estimated/refined placements to get area, delay Penn ESE535 Spring 2011 -- DeHon

Incremental Placement Place newly covered nodes so as to minimize wire lengths (critical path delay?) Penn ESE535 Spring 2011 -- DeHon

Empirical Results In 1mm Not that inspiring 5% area reduction 8% delay reduction Not that inspiring …but this was in the micron era probably have a bigger effect today Penn ESE535 Spring 2011 -- DeHon

2D Place and Cover Questions? Penn ESE535 Spring 2011 -- DeHon

Summary Can consider placement effects while covering Many problems can’t find optimum by minimizing single objective delay (area effects) area (cutwidth effects) Can adapt DP to solve keep all non-inferior points can keep polynomial time if very careful, primarily increase constants Penn ESE535 Spring 2011 -- DeHon

Admin Reading on web Projects due Monday Course evaluations online Penn ESE535 Spring 2011 -- DeHon

Big Ideas: Simultaneous optimization Multi-dimensional objectives dominating points (inferior points) use with dynamic programming Exploit stylized problems can solve optimally Phase Ordering: estimate/iterate Penn ESE535 Spring 2011 -- DeHon