Penn ESE 535 Spring 2011 -- DeHon 1 ESE535: Electronic Design Automation Day 12: February 23, 2011 Routing 2 (Pathfinder)

Slides:



Advertisements
Similar presentations
CALTECH CS137 Fall DeHon 1 CS137: Electronic Design Automation Day 19: November 21, 2005 Scheduling Introduction.
Advertisements

CALTECH CS137 Fall DeHon 1 CS137: Electronic Design Automation Day 22: December 2, 2005 Routing 2 (Pathfinder)
EDA (CS286.5b) Day 10 Scheduling (Intro Branch-and-Bound)
~1~ Infocom’04 Mar. 10th On Finding Disjoint Paths in Single and Dual Link Cost Networks Chunming Qiao* LANDER, CSE Department SUNY at Buffalo *Collaborators:
CALTECH CS137 Winter DeHon CS137: Electronic Design Automation Day 14: March 3, 2004 Scheduling Heuristics and Approximation.
1 EE5900 Advanced Embedded System For Smart Infrastructure Static Scheduling.
Penn ESE535 Spring DeHon 1 ESE535: Electronic Design Automation Day 11: March 4, 2008 Placement (Intro, Constructive)
Penn ESE535 Spring DeHon 1 ESE535: Electronic Design Automation Day 17: April 2, 2008 Scheduling Introduction.
Penn ESE535 Spring DeHon 1 ESE535: Electronic Design Automation Day 9: February 20, 2008 Partitioning (Intro, KLFM)
Penn ESE Spring DeHon 1 ESE (ESE534): Computer Organization Day 15: March 12, 2007 Interconnect 3: Richness.
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 ESE Fall DeHon 1 ESE (ESE534): Computer Organization Day 19: March 26, 2007 Retime 1: Transformations.
Penn ESE535 Spring DeHon 1 ESE535: Electronic Design Automation Day 7: February 11, 2008 Static Timing Analysis and Multi-Level Speedup.
Penn ESE Spring DeHon 1 ESE (ESE534): Computer Organization Day 11: February 14, 2007 Compute 1: LUTs.
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)
Penn ESE535 Spring DeHon 1 ESE535: Electronic Design Automation Day 16: March 23, 2009 Covering.
EDA (CS286.5b) Day 14 Routing (Pathfind, netflow).
EDA (CS286.5b) Day 19 Covering and Retiming. “Final” Like Assignment #1 –longer –more breadth –focus since assignment #2 –…but ideas are cummulative –open.
Penn ESE 535 Spring DeHon 1 ESE535: Electronic Design Automation Day 22: April 20, 2009 Routing 2 (Pathfinder)
Penn ESE535 Spring DeHon 1 ESE535: Electronic Design Automation Day 15: March 18, 2009 Static Timing Analysis and Multi-Level Speedup.
Routing 2 Outline –Maze Routing –Line Probe Routing –Channel Routing Goal –Understand maze routing –Understand line probe routing.
Lecture 5: FPGA Routing September 17, 2013 ECE 636 Reconfigurable Computing Lecture 5 FPGA Routing.
Penn ESE 535 Spring DeHon 1 ESE535: Electronic Design Automation Day 20: April 16, 2008 Routing 2 (Pathfinder)
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 8: February 13, 2008 Retiming.
ECE 506 Reconfigurable Computing Lecture 8 FPGA Placement.
Introduction to Routing. The Routing Problem Apply after placement Input: –Netlist –Timing budget for, typically, critical nets –Locations of blocks and.
Penn ESE535 Spring DeHon 1 ESE535: Electronic Design Automation Day 4: January 28, 2015 Partitioning (Intro, KLFM)
ESE Spring DeHon 1 ESE534: Computer Organization Day 19: April 7, 2014 Interconnect 5: Meshes.
CALTECH CS137 Winter DeHon 1 CS137: Electronic Design Automation Day 2: January 6, 2006 Spatial Routing.
Solving Hard Instances of FPGA Routing with a Congestion-Optimal Restrained-Norm Path Search Space Keith So School of Computer Science and Engineering.
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.
Algorithms for Allocating Wavelength Converters in All-Optical Networks Authors: Goaxi Xiao and Yiu-Wing Leung Presented by: Douglas L. Potts CEG 790 Summer.
Penn ESE535 Spring DeHon 1 ESE535: Electronic Design Automation Day 9: February 16, 2015 Scheduling Variants and Approaches.
Penn ESE 535 Spring DeHon 1 ESE535: Electronic Design Automation Day 14: March 16, 2015 Routing 2 (Pathfinder)
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 7: February 3, 2002 Retiming.
Penn ESE535 Spring DeHon 1 ESE535: Electronic Design Automation Day 23: April 20, 2015 Static Timing Analysis and Multi-Level Speedup.
1 A Min-Cost Flow Based Detailed Router for FPGAs Seokjin Lee *, Yongseok Cheon *, D. F. Wong + * The University of Texas at Austin + University of Illinois.
CALTECH CS137 Winter DeHon CS137: Electronic Design Automation Day 13: February 20, 2002 Routing 1.
Penn ESE535 Spring DeHon 1 ESE535: Electronic Design Automation Day 13: March 3, 2015 Routing 1.
Penn ESE534 Spring DeHon 1 ESE534: Computer Organization Day 18: April 2, 2014 Interconnect 4: Switching.
CALTECH CS137 Spring DeHon 1 CS137: Electronic Design Automation Day 5: April 12, 2004 Covering and Retiming.
CALTECH CS137 Winter DeHon CS137: Electronic Design Automation Day 14: February 27, 2002 Routing 2 (Pathfinder)
Penn ESE535 Spring DeHon 1 ESE535: Electronic Design Automation Day 10: February 16, 2011 Placement II (Simulated Annealing)
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 11: February 25, 2015 Placement (Intro, Constructive)
CALTECH CS137 Fall DeHon 1 CS137: Electronic Design Automation Day 21: November 28, 2005 Routing 1.
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.
ESE535: Electronic Design Automation
ESE535: Electronic Design Automation
ESE535: Electronic Design Automation
ESE535: Electronic Design Automation
ESE535: Electronic Design Automation
ESE535: Electronic Design Automation
ESE535: Electronic Design Automation
ESE535: Electronic Design Automation
CS137: Electronic Design Automation
ESE535: Electronic Design Automation
ESE535: Electronic Design Automation
Presentation transcript:

Penn ESE 535 Spring DeHon 1 ESE535: Electronic Design Automation Day 12: February 23, 2011 Routing 2 (Pathfinder)

Penn ESE 535 Spring DeHon 2 Today Routing –Pathfinder graph based global routing simultaneous global/detail Behavioral (C, MATLAB, …) RTL Gate Netlist Layout Masks Arch. Select Schedule FSM assign Two-level, Multilevel opt. Covering Retiming Placement Routing

Penn ESE 535 Spring DeHon 3 Global Routing Problem: Find sequence of channels for all routes –minimizing channel sizes –minimize max channel size –meeting channel capacity limits

Penn ESE 535 Spring DeHon 4 Global  Graph Graph Problem on routes through regions w

Penn ESE 535 Spring DeHon 5 Global/Detail With limited switching (e.g. FPGA) –can represent routing graph exactly

Penn ESE 535 Spring DeHon 6 Global/Detail

Penn ESE 535 Spring DeHon 7 Routing in Graph Find (shortest/available) path between source and sink –search problem (e.g. BFS, A*)

Penn ESE 535 Spring DeHon 8 Breadth First Search (BFS) Start at source src Put src node in priority queue with cost 0 –Priority queue orders by cost While (not found sink) –Pop least cost node from queue Get: current_node, current_cost –Is this sink?  found –For each outgoing edge from current_node Push destination onto queue with cost current_cost+edge_cost

Penn ESE 535 Spring DeHon 9 Easy? Finding a path is moderately easy What’s hard? Can I just iterate and pick paths?

Penn ESE 535 Spring DeHon 10 Example s1s3s2 d2d1d3 All links capacity 1 si disi di

Penn ESE 535 Spring DeHon 11 Challenge Satisfy all routes simultaneously Routes share potential resources Greedy/iterative –not know who will need which resources E.g. consider routing s3->d3 then s2->d2 then s1->d1 –i.e. resource/path choice looks arbitrary –…but earlier decisions limit flexibility for later like scheduling –order effect result s1s3s2 d2d1d3

Penn ESE 535 Spring DeHon 12 Negotiated Congestion Old idea –try once –see where we run into problems –undo problematic/blocking allocation rip-up –use that information to redirect/update costs on subsequent trials retry

Penn ESE 535 Spring DeHon 13 Negotiated Congestion Here –route signals –allow overuse –identify overuse and encourage signals to avoid reroute signals based on overuse/past congestion

Penn ESE 535 Spring DeHon 14 Basic Algorithm Route signals along minimum cost path If congestion/overuse –assign higher cost to congested resources Repeat until done

Penn ESE 535 Spring DeHon 15 Key Idea Congested paths/resources become expensive When there is freedom –future routes, with freedom to avoid congestion will avoid it When there is less freedom –must take congested routes Routes which must use congested resources will, while others will chose uncongested paths

Penn ESE 535 Spring DeHon 16 Cost Function (1) PathCost=  (link costs) LinkCost = base  f(#routes using, time) Base cost of resource –E.g. delay of resource –Encourage minimum resource usage (minimum length path, if possible) –minimizing delay = minimizing resources Congestion –penalizes (over) sharing –increase sharing penalty over time s1s3s2 d2d1d =8

Penn ESE 535 Spring DeHon 17 Example (first order congestion) Base costs (delays) s1s3s2 d2d1d Capacity

Penn ESE 535 Spring DeHon 18 Example (first order congestion) s1s3s2 d2d1d Base costs (delays) Capacity All, individual routes prefer middle; create congestion

Penn ESE 535 Spring DeHon 19 Example (first order congestion) s1s3s2 d2d1d Base costs (delays) Capacity Reroute, avoid congestion

Penn ESE 535 Spring DeHon 20 Example (need for history) Base costs (delays) Capacity Need to redirect uncongested paths; how encourage? s1s2 d2d s3 d3 1 s4 d

Penn ESE 535 Spring DeHon 21 Example (need for history) Cannot route s3  d3 s1s2 d2d s3 d Local congestion alone won’t drive in right directions. Both paths equal cost …neither resolves problem. May ping-pong back and forth. (can imagine longer chain like this) s4 d

Penn ESE 535 Spring DeHon 22 Cost Function (2) Cost = (base + history)*f(#resources,time) History –avoid resources with history of congestion

Penn ESE 535 Spring DeHon 23 Example (need for history) S3  d3 and s4  d4 initially ping-pong Builds up congestion history on path 3 and 4 Eventually makes path 3 and 4 more expensive than path 1; …resolves conflict…  Adaptive cost scheme. s1s2 d2d s3 d s4 d

Delay Penn ESE 535 Spring DeHon 24

Penn ESE 535 Spring DeHon 25 What about delay? Existing formulation uses delay to reduces resources, but doesn’t directly treat Want: –prioritize critical path elements for shorter delay –allow nodes with slack to take longer paths

Penn ESE 535 Spring DeHon 26 Cost Function (Delay) Cost= –(1-W(edge))*delay + W(edge) *congest –congest as before (base+history)*f(#signals,time) W(edge) = Slack(edge)/Dmax –0 for edge on critical path –>0 for paths with slack Use W(edge) to order routes Update critical path and W each round

Penn ESE 535 Spring DeHon 27 Cost Function (Delay) Cost= –(1-W(edge))*delay + W(edge) *congest –congest as before (base+history)*f(#signals,time) W(edge) = Slack(edge)/D max What happens if multiple slack 0 nets contend for edge? W(edge)=Max(minW,Slack(edge)/D max ) –minW > 0

VPR If doesn’t uncongest, weight congestion more Cost= (1-W(e))*delay + W(e) *PF (iter) *congest PF=Pressure Factor Eventually congest dominates delay Penn ESE 535 Spring DeHon 28

VPR Pressure Factor Converges quickly But may “freeze” with higher delay than necessary Netlist Shuffle experiment Penn ESE 535 Spring DeHon 29 [Rubin / FPGA 2011]

VPR Pressure Factor Tuning Penn ESE 535 Spring DeHon 30 [Raphael Rubin 2010]

Alternate Delay Approach Believe pathfinder can resolve congestion Pathfinder has trouble mixing delay and congestion Idea: Turn delay problem into congestion problem –Reject paths that are too long –All signals compete only for resources that will allow them to meet their timing goals Penn ESE 535 Spring DeHon 31

Outlaw Long Paths Issue: Critical path may go through multiple gates –Contain more than one gate  gate path –How allocate slack among paths? Penn ESE 535 Spring DeHon 32 Target 12 Gate 1 Manhattan hop 1

Outlaw Long Paths Issue: Critical path may go through multiple gates –Contain more than one gate  gate path –How allocate slack among paths? Penn ESE 535 Spring DeHon 33 Target 12 Gate 1 Manhattan hop 1

Outlaw Long Paths Issue: Critical path may go through multiple gates –Contain more than one gate  gate path –How allocate slack among paths? Penn ESE 535 Spring DeHon Target 12 Gate 1 Manhattan hop 1 Total Slack?

Slack Budgeting Divide slack among the paths –Slack of 3 –Example: give slack 1 to first link 2 to second Penn ESE 535 Spring DeHon 35 [So / FPGA 2008]

Slack Budgeting Divide slack among the paths Each net now has delay target Reject any path exceeding delay target Reduce to congestion negotiation Penn ESE 535 Spring DeHon 36 [So / FPGA 2008] 5 6

Slack Budgeting Can often find lower delay routes that VPR Takes 10x as long –Mostly in slack budgeting Solution depends on slack budget –Not exploiting full freedom to re-allocate slack among links Penn ESE 535 Spring DeHon 37 [So / FPGA 2008]

Delay Target Routing Similar high-level idea Just set target for Pathfinder cost –Rather than allowing to float Penn ESE 535 Spring DeHon 38

Delay Target Cost= (1-W(edge))*delay + W(edge) *congest W(edge) = Slack(edge)/D target –Previously: denominate was D max Compute Slack based on D target –can be negative W(edge)=Max(minW,Slack(edge)/D target ) –minW > 0 Penn ESE 535 Spring DeHon 39

Delay Target Routing Does allow slack to be used on any of the gate  gate connections on path –…but not being that deliberate/efficient about the allocation Doesn’t require time for slack allocation Penn ESE 535 Spring DeHon 40

Delay Target Routing Penn ESE 535 Spring DeHon 41 [Rubin / FPGA 2011]

Delay Target Routing Less sensitive to initial conditions Penn ESE 535 Spring DeHon 42 [Rubin / FPGA 2011]

Rerouting Penn ESE 535 Spring DeHon 43

Penn ESE 535 Spring DeHon 44 Rerouting Default: reroute everything Can get away rerouting only congested nodes –if keep routes in place –history force into new tracks causing greedy/uncongested routes to be rerouted

Penn ESE 535 Spring DeHon 45 Rerouting Effect of only reroute congested? –maybe more iterations (not reroute a signal until congested) –less time –Convergence? Faster? … prevent convergence? –? Hurt quality? (not see strong case for) –…but might hurt delay quality Maybe followup rerouting everything once clear up congestion?

Penn ESE 535 Spring DeHon 46 Run Time? Route |E| edges Each path search O(|E graph |) worst case –…generally less Iterations?

Penn ESE 535 Spring DeHon 47 Quality and Runtime Experiment For Synthetic netlists on HSRA –Expect to be worst-case problems Congestion only –Quality = # channels Number of individual route trials limited (measured) as multiple of nets in design –(not measuring work per route trial)

Penn ESE 535 Spring DeHon 48 Quality: fixed runtime

Penn ESE 535 Spring DeHon 49 Quality Target

Penn ESE 535 Spring DeHon 50 Quality vs. Time

Penn ESE 535 Spring DeHon 51 Conclusions? Iterations increases with N Quality degrade as we scale?

Penn ESE 535 Spring DeHon 52 Techniques to Accelerate (already in use in data just shown)

Penn ESE 535 Spring DeHon 53 Search Ordering Default: breadth first search for shortest –O(total-paths) –O(N p ) for HSRA Alternately: use A*: –estimated costs/path length, prune candidates earlier –can be more depth first (search promising paths as long as know can’t be worse)

Penn ESE 535 Spring DeHon 54 BFS  A* Start at source Put src node in priority queue with cost 0 –Priority queue orders by cost –Cost =  (path so far) + min path to dest While (not found sink) –Pop least cost node from queue Get: current_node, current_cost –Is this sink?  found –For each outgoing edge Push destination onto queue with cost current_cost+edge_cost

Penn ESE 535 Spring DeHon 55 BFS vs. A*

Penn ESE 535 Spring DeHon 56 Single-side, Directed (A*) Only expand search windows as prove necessary to have longer route.

Penn ESE 535 Spring DeHon 57 Search: one-side vs. two-sides One-side vs. Two-sides

Penn ESE 535 Spring DeHon 58 Searching In general: –greedy/depth first searching find a path faster may be more expensive – (not least delay, congest cost) –tradeoff by weighting estimated delay on remaining path vs. cost to this point control greediness of router –More greedy is faster at cost of less optimal paths (wider channels) 40% W  10x time reduction [Tessier/thesis’98]

Penn ESE 535 Spring DeHon 59 Searching Use A* like search –Always expanded (deepen) along shortest …as long as can prove no other path will dominate –Uncongested: takes O(path-length) time –Worst-case reduces to breadth-first O(total-paths) O(N p ) for HSRA

Penn ESE 535 Spring DeHon 60 Domain Negotiation For Conventional FPGAs (and many networks) –path freedom bushy in middle low on endpoints

Penn ESE 535 Spring DeHon 61 Mesh Expand

Penn ESE 535 Spring DeHon 62 Multistage/Benes Switches in all paths 0000 to 1111

Penn ESE 535 Spring DeHon 63 Conventional FPGA Domains Called: subset disjoint

Penn ESE 535 Spring DeHon 64 Conventional FPGA Domains Called: subset disjoint

Penn ESE 535 Spring DeHon 65 Domain Routing No point in searching along an entire path from source Just to find it’s heavily congested at sink (SRC) sink

Penn ESE 535 Spring DeHon 66 HSRA Domains

Penn ESE 535 Spring DeHon 67 Domain Negotiation Path bottlenecks exist at both endpoints Most critical place for congestion Most efficient: work search from both ends –more limiting in A* search –focus on paths with least (no) congestion on endpoints first –FPGAs -- picking “domain” first –otherwise paths may look equally good up to end (little pruning)

Penn ESE 535 Spring DeHon 68 Summary Finding short path easy/well known Complication: need to route set of signals –who gets which path? –Arbitrary decisions earlier limit options later Idea: iterate/relax using congestion history –update path costs based on congestion Cost adaptive to route –reroute with new costs Accommodate delay and congestion

Penn ESE 535 Spring DeHon 69 Admin No class next Monday 2/28 –work on assign 4 Reading for next Wednesday online Assignment 4 due Wed. 3/2 Andre away Monday and Tuesday

Penn ESE 535 Spring DeHon 70 Big Ideas Exploit freedom Technique: –Graph algorithms (BFS, DFS) –Search techniques: A* –Iterative improvement/relaxation –Adaptive cost refinement