© KLMH Lienig Multi-Threaded Collision Aware Global Routing Bounded Length Maze Routing.

Slides:



Advertisements
Similar presentations
Chapter 5: Tree Constructions
Advertisements

Porosity Aware Buffered Steiner Tree Construction C. Alpert G. Gandham S. Quay IBM Corp M. Hrkic Univ Illinois Chicago J. Hu Texas A&M Univ.
Single Source Shortest Paths
Informed Search Methods How can we improve searching strategy by using intelligence? Map example: Heuristic: Expand those nodes closest in “as the crow.
Solving Problem by Searching
Wen-Hao Liu1, Yih-Lang Li, and Cheng-Kok Koh Department of Computer Science, National Chiao-Tung University School of Electrical and Computer Engineering,
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.
EXPLORING HIGH THROUGHPUT COMPUTING PARADIGM FOR GLOBAL ROUTING Yiding Han, Dean Michael Ancajas, Koushik Chakraborty, and Sanghamitra Roy Electrical and.
38 th Design Automation Conference, Las Vegas, June 19, 2001 Creating and Exploiting Flexibility in Steiner Trees Elaheh Bozorgzadeh, Ryan Kastner, Majid.
Shortest Paths Definitions Single Source Algorithms –Bellman Ford –DAG shortest path algorithm –Dijkstra All Pairs Algorithms –Using Single Source Algorithms.
Power-Aware Placement
ER UCLA UCLA ICCAD: November 5, 2000 Predictable Routing Ryan Kastner, Elaheh Borzorgzadeh, and Majid Sarrafzadeh ER Group Dept. of Computer Science UCLA.
Routing 1 Outline –What is Routing? –Why Routing? –Routing Algorithms Overview –Global Routing –Detail Routing –Shortest Path Algorithms Goal –Understand.
Solving the Protein Threading Problem in Parallel Nocola Yanev, Rumen Andonov Indrajit Bhattacharya CMSC 838T Presentation.
Problem Solving and Search in AI Heuristic Search
Metal Layer Planning for Silicon Interposers with Consideration of Routability and Manufacturing Cost W. Liu, T. Chien and T. Wang Department of CS, NTHU,
VLSI Physical Design Automation Prof. David Pan Office: ACES Lecture 18. Global Routing (II)
Dijkstra’s Algorithm Slide Courtesy: Uwash, UT 1.
Routing 2 Outline –Maze Routing –Line Probe Routing –Channel Routing Goal –Understand maze routing –Understand line probe routing.
VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 5: Global Routing © KLMH Lienig 1 FLUTE: Fast Lookup Table Based RSMT Algorithm.
Introduction to Routing. The Routing Problem Apply after placement Input: –Netlist –Timing budget for, typically, critical nets –Locations of blocks and.
MGR: Multi-Level Global Router Yue Xu and Chris Chu Department of Electrical and Computer Engineering Iowa State University ICCAD
Graphs II Robin Burke GAM 376. Admin Skip the Lua topic.
1 Game AI Path Finding. A Common Situation of Game AI A Common Situation of Game AI Path Planning Path Planning –From a start position to a destination.
Dijkstras Algorithm Named after its discoverer, Dutch computer scientist Edsger Dijkstra, is an algorithm that solves the single-source shortest path problem.
Distributed Asynchronous Bellman-Ford Algorithm
Global Routing. Global routing:  To route all the nets, should consider capacities  Sequential −One net at a time  Concurrent −Order-independent 2.
Global Routing. Global routing:  Sequential −One net at a time  Concurrent −Order-independent −ILP 2.
1 Coupling Aware Timing Optimization and Antenna Avoidance in Layer Assignment Di Wu, Jiang Hu and Rabi Mahapatra Texas A&M University.
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.
Solving Hard Instances of FPGA Routing with a Congestion-Optimal Restrained-Norm Path Search Space Keith So School of Computer Science and Engineering.
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.
Shortest Path Problem Weight of the graph –Nonnegative real number assigned to the edges connecting to vertices Weighted graphs –When a graph.
Computer Science CPSC 322 Lecture Heuristic Search (Ch: 3.6, 3.6.1) Slide 1.
VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 5: Global Routing © KLMH Lienig 1 EECS 527 Paper Presentation Techniques for Fast.
AUTOMATIC BUS PLANNER FOR DENSE PCBS Hui Kong, Tan Yan and Martin D.F. Wong Department of Electrical and Computer Engineering, University of Illinois at.
VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 6: Detailed Routing © KLMH Lienig 1 What Makes a Design Difficult to Route Charles.
ARCHER:A HISTORY-DRIVEN GLOBAL ROUTING ALGORITHM Muhammet Mustafa Ozdal, Martin D. F. Wong ICCAD ’ 07.
1 Efficient Obstacle-Avoiding Rectilinear Steiner Tree Construction Chung-Wei Lin, Szu-Yu Chen, Chi-Feng Li, Yao-Wen Chang, Chia-Lin Yang National Taiwan.
GLOBAL ROUTING Anita Antony PR11EC1011. Approaches for Global Routing Sequential Approach: – Route the nets one at a time. Concurrent Approach: – Consider.
COMP261 Lecture 7 A* Search. A* search Can we do better than Dijkstra's algorithm? Yes! –want to explore more promising paths, not just shortest so far.
The single-source shortest path problem (SSSP) input: a graph G = (V, E) with edge weights, and a specific source node s. goal: find a minimum weight (shortest)
Review: Tree search Initialize the frontier using the starting state While the frontier is not empty – Choose a frontier node to expand according to search.
ILP-Based Inter-Die Routing for 3D ICs Chia-Jen Chang, Pao-Jen Huang, Tai-Chen Chen, and Chien-Nan Jimmy Liu Department of Electrical Engineering, National.
Maze Routing Algorithms with Exact Matching Constraints for Analog and Mixed Signal Designs M. M. Ozdal and R. F. Hentschke Intel Corporation ICCAD 2012.
Routability-driven Floorplanning With Buffer Planning Chiu Wing Sham Evangeline F. Y. Young Department of Computer Science & Engineering The Chinese University.
High-Performance Global Routing with Fast Overflow Reduction Huang-Yu Chen, Chin-Hsiung Hsu, and Yao-Wen Chang National Taiwan University Taiwan.
A* optimality proof, cycle checking CPSC 322 – Search 5 Textbook § 3.6 and January 21, 2011 Taught by Mike Chiang.
An Exact Algorithm for Difficult Detailed Routing Problems Kolja Sulimma Wolfgang Kunz J. W.-Goethe Universität Frankfurt.
FPGA Routing Pathfinder [Ebeling, et al., 1995] Introduced negotiated congestion During each routing iteration, route nets using shortest.
1 Double-Patterning Aware DSA Template Guided Cut Redistribution for Advanced 1-D Gridded Designs Zhi-Wen Lin and Yao-Wen Chang National Taiwan University.
Review: Tree search Initialize the frontier using the starting state
Uniformed Search (cont.) Computer Science cpsc322, Lecture 6
VLSI Physical Design Automation
VLSI Physical Design Automation
Shortest Paths and Minimum Spanning Trees
Programming Abstractions
Multi-Commodity Flow Based Routing
Programming Abstractions
Chapter 5 – Global Routing
Algorithms (2IL15) – Lecture 5 SINGLE-SOURCE SHORTEST PATHS
A* Path Finding Ref: A-star tutorial.
Shortest Paths and Minimum Spanning Trees
Artificial Intelligence
CS 584 Lecture7 Assignment -- Due Now! Paper Review is due next week.
CSE 473 University of Washington
Communication Driven Remapping of Processing Element (PE) in Fault-tolerant NoC-based MPSoCs Chia-Ling Chen, Yen-Hao Chen and TingTing Hwang Department.
Under a Concurrent and Hierarchical Scheme
Presentation transcript:

© KLMH Lienig Multi-Threaded Collision Aware Global Routing Bounded Length Maze Routing

© KLMH Lienig Contributions  Optimal Bounded Length Maze Routing  Heuristic Bounded Length Maze Routing  Parallel Multi-Threaded Collision Aware Strategy for Multi-core Platforms

© KLMH Lienig Bounded Length vs Bounded Box Bounded Length  Algo : 1.While(!viol) { 2. viol = Route(net, BL); 3. if(!viol) { 4. increase BL; 5. } 6. } Start with Manhattan distance Bounded Box  Algo : 1.While(!viol) { 2. viol = Route(net, BB); 3. if(!viol) { 4. increase BB; 5. } 6. } Start with the MBB

© KLMH Lienig Maze Routing Dijkstra Algorithm (G, E, s, t) 1.curr_node = s; 2.Parent[u] = NULL; // parent of all nodes is null initially 3.Q : Fibonacci heap with no nodes initially; //might have multiple copies of a node 4.cost[s] = 0; 5.cost[u] = infinity for all nodes except s 6.While(curr_node != t) { 7. for (each neighbour u of curr_node) { 8. if (cost[curr_node] + w(curr_node, u) < cost[u]) { 9. parent[u] = curr_node; 10. cost[u] = cost[curr_node] + w (curr_node, u); 11. insert_to_Q(u); 12. } 13. } 14. curr_node = Extract_min(Q); //extracts the min cost node from Q 15. } Complexity : O(|E| + |V|log|V|)

© KLMH Lienig PROPOSED ROUTER FLOW DIAGRAM 1.MST Decomposition 2.Congestion Graph G = Route(net, viol) 3.While(!viol) { 4. NCRRoute(net, BL); 5. if(!viol) { 6. BL = Relax(BL) 7. } 8. } 9.Post Refinement 10.Layer Assignment NCR Route : Negotiation Based Congestion Rip up & Route

© KLMH Lienig Optimal Bounded Length Maze Routing  Idea : Discard a path P i (s,v) if, wl(P i ) + Manh(v,t) > BL  Comparison to Traditional Routing: 1.Prunes all paths with BL violations, thereby making the search space smaller 2.Keep more than one path unlike Traditional routing.

© KLMH Lienig OPTIMAL BLMR Cont’d  What happens if keep the paths with lower cost. In this figure, cost(P 1 ) = 80, cost(P 2 ) = 90 wl(P 1 ) = 11, wl(P 2 ) = 5 BL = 16 If we keep only P 1 (lower cost), then it does not have enough slack to detour the congested graph around t. Thus, keep both P 1 & P 2. However, if cost(P i ) < cost(P j ) and wl(P i ) < wl(P j ), then P j is inferior to P j, can discard P j.

© KLMH Lienig Heuristic BLMR Problem with Optimal BLMR  May have any number of paths that meet the criteria. Thus, slower Solution  Need a Heuristic to select a single path.  Examine each path if it has the required wire-length  Select the lowest cost path with enough slack.  If no candidate path have enough slack, select shortest path.

© KLMH Lienig Heuristic BLMR cont. Heuristic : ew k (v,t) = Manh(v, t) × (L k-1 (s, t) / Manh(s, t)) --1 Condition : wl(P i )+ ew k (v, t) ≤ BL ew k (v,t) : estimated wire length from v to t in kth iteration L k-1 (s, t) : actual routed wirelength from s to t in k-1th iteration Pi(s,v) : Path from s to v wl(P i ) : wirelength of Path Pi Manh(v, t) : Manhattan distance from v to t Manh(s, t) : Manhattan distance from s to t The heuristic keeps on getting better with each iteration : 1.Overestimated wl from v to t in k th iteration : Path might be discarded by equation 2, thus in (k+1) th iteration, it gets better. 2.Under-estimated wl from v to t in k th iteration, actual wl (L K ) corrects it in the next iteration

© KLMH Lienig Bounded Length Relaxation  With each iteration of rip-up & re-route, 1.Overflow decreases 2.Wire-length increases For the nets to be routed in the next iteration, BL is relaxed BL nk = Manh (s n, t n ) × (arctan(k − α ) + β) α, β are user defined (use 9,2.5 for this paper)

© KLMH Lienig Task-Based Concurrency Parallelism  Rip & Re-route still takes 99.6% of total routing time on one of the difficult benchmarks (ISPD2007) Task Based vs Partition Based Concurrency  Load might not be shared evenly between the threads because of differing congestions in different parts of the grid graph.

© KLMH Lienig Partition vs TCS TASK BASED CONCURRENCY & CHALLANGES  Each entry in Task Q is a 2 pin routing task  All threads pull one task out of Q Issues  Same routing resource can be used by two threads unaware of each other.  No Common Routing Resources (search restricted by partition)

© KLMH Lienig Challenges Cont’d

© KLMH Lienig Maze Routing & Collisions Maze routing happens in two phases : 1.Wave Propagation : explore every possible move. 2.Back-Tracing : Identify new routing path based on the paths explored. When will it be clear that collision occurred ?  Not clear at Wave propagation  Not clear at BackTracing  Clear after BackTracing – both the threads have used the resource.

© KLMH Lienig Collision Aware RR Observations : 1.Nets closer are the most likely candidates for collisions. 2.About 41% of overflow nets in RR are due to collisions. 3.An overflow net has few overflow edges 4.It reuses most of its edges (80% of edges re-used)

© KLMH Lienig Using Observations in Collision Aware RR  Thread T2 : marks the edges previously used by the net  Thread T1 : see the increased cost of the common edges

© KLMH Lienig ALGORITHMS Collision Aware RR 1.Algorithm Collision-aware Rip-up and Reroute 2.Input: grid graph G 3.TaskQueue TQ; 4.while ( G has overflows) 5.update(TQ) // insert overflow net to TQ; 6.//parallel by each thread 7.while (TQ is not empty); 8.N ←extract_a_task(TQ); 9. BL k n ←relax_bounded_length(N); 10.collision_aware_BLMR(G, N, BL k n ); 11.end while end Collision Aware BLMR 1.Algorithm Collision-aware BLMR 2.Input: grid graph G, net N, bounded-length BL 3.mark_grid_edge( path(N),G); 4.ripup(path(N),G); 5.collision_aware_wave_propagation( N, G, BL); 6.newPath←back_tracing(N, G); 7.unmark_grid_edge(path(N),G); 8.path(N)←newPath; end

© KLMH Lienig Evaluation

© KLMH Lienig Evaluation cont.

© KLMH Lienig Summary BLMR  Bounded length Maze Routing  Optimal BLMR : paths based on slack left to reach the target  Heuristic BLMR : select a single path based on heuristic  The heuristic gets better with each iteration of rip-up & reroute Task Based Concurrency  Better for load sharing compared to partition based concurrancy  Collision may occur due to same resource used by more than one thread  Collision Aware RR : avoid overflow due to race conditions.

© KLMH Lienig THANK YOU