EDA (CS286.5b) Day 14 Routing (Pathfind, netflow).

Slides:



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

ECE 667 Synthesis and Verification of Digital Circuits
§3 Shortest Path Algorithms Given a digraph G = ( V, E ), and a cost function c( e ) for e  E( G ). The length of a path P from source to destination.
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)
Penn ESE 535 Spring DeHon 1 ESE535: Electronic Design Automation Day 12: February 23, 2011 Routing 2 (Pathfinder)
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.
1 s-t Graph Cuts for Binary Energy Minimization  Now that we have an energy function, the big question is how do we minimize it? n Exhaustive search is.
1 Maximum Flow w s v u t z 3/33/3 1/91/9 1/11/1 3/33/3 4/74/7 4/64/6 3/53/5 1/11/1 3/53/5 2/22/2 
1 search CS 331/531 Dr M M Awais A* Examples:. 2 search CS 331/531 Dr M M Awais 8-Puzzle f(N) = g(N) + h(N)
EDA (CS286.5b) Day 5 Partitioning: Intro + KLFM. Today Partitioning –why important –practical attack –variations and issues.
Penn ESE Fall DeHon 1 ESE (ESE534): Computer Organization Day 19: March 26, 2007 Retime 1: Transformations.
Routing 1 Outline –What is Routing? –Why Routing? –Routing Algorithms Overview –Global Routing –Detail Routing –Shortest Path Algorithms Goal –Understand.
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 7 Placement (Simulated Annealing) Assignment #1 due Friday.
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)
Lecture 5: FPGA Routing September 17, 2013 ECE 636 Reconfigurable Computing Lecture 5 FPGA Routing.
ECE669 L10: Graph Applications March 2, 2004 ECE 669 Parallel Computer Architecture Lecture 10 Graph Applications.
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)
EDA (CS286.5b) Day 18 Retiming. Today Retiming –cycle time (clock period) –C-slow –initial states –register minimization.
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.
Escape Routing For Dense Pin Clusters In Integrated Circuits Mustafa Ozdal, Design Automation Conference, 2007 Mustafa Ozdal, IEEE Trans. on CAD, 2009.
Particle Filtering in Network Tomography
Geography and CS Philip Chan. How do I get there? Navigation Which web sites can give you turn-by-turn directions?
1 Coupling Aware Timing Optimization and Antenna Avoidance in Layer Assignment Di Wu, Jiang Hu and Rabi Mahapatra Texas A&M University.
CALTECH CS137 Winter DeHon 1 CS137: Electronic Design Automation Day 2: January 6, 2006 Spatial Routing.
CS774. Markov Random Field : Theory and Application Lecture 13 Kyomin Jung KAIST Oct
Solving Hard Instances of FPGA Routing with a Congestion-Optimal Restrained-Norm Path Search Space Keith So School of Computer Science and Engineering.
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 ESE 535 Spring DeHon 1 ESE535: Electronic Design Automation Day 14: March 16, 2015 Routing 2 (Pathfinder)
Modern VLSI Design 2e: Chapter 7 Copyright  1998 Prentice Hall PTR Topics n Block placement. n Global routing. n Switchbox routing.
ARCHER:A HISTORY-DRIVEN GLOBAL ROUTING ALGORITHM Muhammet Mustafa Ozdal, Martin D. F. Wong ICCAD ’ 07.
Goal Programming Linear program has multiple objectives, often conflicting in nature Target values or goals can be set for each objective identified Not.
CALTECH CS137 Winter DeHon CS137: Electronic Design Automation Day 7: February 3, 2002 Retiming.
CSE 589 Part VI. Reading Skiena, Sections 5.5 and 6.8 CLR, chapter 37.
Lecture 3: Uninformed Search
ECE 260B – CSE 241A /UCB EECS Kahng/Keutzer/Newton Physical Design Flow Read Netlist Initial Placement Placement Improvement Cost Estimation Routing.
Operational Research & ManagementOperations Scheduling Economic Lot Scheduling 1.Summary Machine Scheduling 2.ELSP (one item, multiple items) 3.Arbitrary.
CS223 Advanced Data Structures and Algorithms 1 Maximum Flow Neil Tang 3/30/2010.
CS 484 Load Balancing. Goal: All processors working all the time Efficiency of 1 Distribute the load (work) to meet the goal Two types of load balancing.
CALTECH CS137 Winter DeHon CS137: Electronic Design Automation Day 14: February 27, 2002 Routing 2 (Pathfinder)
Algorithm Design and Analysis (ADA)
Chapter 7 May 3 Ford-Fulkerson algorithm Step-by-step walk through of an example Worst-case number of augmentations Edmunds-Karp modification Time complexity.
1 EE5900 Advanced Embedded System For Smart Infrastructure Static Scheduling.
FPGA Routing Pathfinder [Ebeling, et al., 1995] Introduced negotiated congestion During each routing iteration, route nets using shortest.
Register-Transfer (RT) Synthesis Greg Stitt ECE Department University of Florida.
11/21/02CSE Max Flow CSE Algorithms Max Flow Problems.
Penn ESE535 Spring DeHon 1 ESE535: Electronic Design Automation Day 15: March 13, 2013 High Level Synthesis II Dataflow Graph Sharing.
Brian Williams, Fall 041 Analysis of Uninformed Search Methods Brian C. Williams Sep 21 st, 2004 Slides adapted from: Tomas Lozano Perez,
1 Chapter 5 Branch-and-bound Framework and Its Applications.
CS 312: Algorithm Analysis Lecture #27: Network Flow This work is licensed under a Creative Commons Attribution-Share Alike 3.0 Unported License.Creative.
Dijkstra’s shortest path Algorithm
CS137: Electronic Design Automation
The minimum cost flow problem
Greedy Algorithms / Interval Scheduling Yin Tat Lee
ESE535: Electronic Design Automation
Instructor: Shengyu Zhang
CSE Algorithms Max Flow Problems 11/21/02 CSE Max Flow.
Artificial Intelligence
Routing Algorithms.
CS137: Electronic Design Automation
EE5900 Advanced Embedded System For Smart Infrastructure
Under a Concurrent and Hierarchical Scheme
Presentation transcript:

EDA (CS286.5b) Day 14 Routing (Pathfind, netflow)

Today Routing –Pathfinder graph based global routing simultaneous global/detail

Global Routing Find sequence of channels for all routes –minimizing channel sizes –minimize max channel size –meeting channel capacity limits

Global  Graph Graph Problem on routes through regions w

Global/Detail With limited switching (e.g. FPGA) –can represent routing graph exactly

Routing in Graph Find (shortest/available) path between source and sink –search problem (e.g. BFS, Alpha-Beta)

Easy? Finding a path is moderately easy What’s hard? –Can I just iterate and pick paths?

Example s1s3s2 d2d1d3 All links capacity 1 si  di

Challenge Satisfy all routes simultaneously Routes share potential resources Greedy/iterative –not know who needs will need which resources –i.e. resource/path choice looks arbitrary –…but earlier decisions limit flexibility for later (somewhat like scheduling) –order affect result

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

Negotiated Congestion Here –route signals –allow overuse –identify overuse and encourage signals to avoid reroute signals based on overuse/past congestion

Basic Algorithm Route signals along minimum cost path If congestion/overuse –assign higher cost to congested resources Repeat until done

Key idea Congested paths/resources become expensive When there is freedom –future routes, with freedom to avoid, will When there is less freedom –have to take routes Routes which must use congested resources will, while others will chose uncongested paths

Cost Function (1) Cost = base  f(#routes using,time) Base cost of resource –delay of path –encourage small resource usage (minimum length path, if possible) –minimizing delay  minimizing resources Congestion –penalizes (over) sharing –increase sharing penalty over time

Example (first order congestion) s1s3s2 d2d1d Base costs (delays) 111 Capacity

Example (need for history) s1s3s2 d2d1d Base costs (delays) 111 Capacity 1 1 Need to redirect uncongested paths; how encourage?

Cost Function (2) Cost = (base + history)*f(#resources,time) History –avoid paths with history of congestion

Example (need for history) s1s3s2 d2d1d Base costs (delays) 111 Capacity 1 1

Cost Function (3) Cost = e  (#routes) I.e. cost exponential in overuse  carefully chosen (only reroute overused) Klein+Stein+Tardos/STOC’90

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

Cost Function (Delay) Cost= –W(edge)*delay + (1-W(edge))*congest –congest as before (base+history)*f(#signals,time) W(edge) = D(edge)/Dmax –1 for critical path –<1 for paths with slack Use W(edge) to order routes Update each round

Convergence Chan+Schlag [FPGA’2000] –cases where doesn’t converge –special case of bipartite graphs converge if incremental or if prefer uncongested to least history cost theory –only reroute overflow –converge in O(|E|) reroutes

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 Effect –maybe more iterations –less time –? Better convergence

Run Time? Route |E| edges Each path search O(|E graph |) worst case –…generally less Iterations?

Runtime Theory O((|E|+|E graph |)| E graph |log(|E graph |)) Roughly: –O(|E|) iterations –Updating flows per iteration O(| E graph |log(|E graph |))

Search Ordering Default: breadth first search for shortest 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)

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 [Tessier/thesis’98]

Domain Negotiation For Conventional FPGAs (and many networks) –path freedom bushy in middle low on endpoints

Multistage/Benes [ignore color coding here]

Conventional FPGA Domains

HSRA Domains

Domain Negotiation Path bottlenecks exist at both endpoints Most critical place for congestion Most efficient: work search from both ends –more limiting in A*/Alpha-Beta 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)

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 –reroute with new costs Accommodate delay and congestion

Today’s Big Ideas Exploit freedom Technique: –network flow –iterative improvement/relaxation –approximation algorithm