Transcript pptx
© KLMH
Multi-Threaded Collision Aware Global Routing
Lienig
Bounded Length Maze Routing
© KLMH
Contributions
Optimal Bounded Length Maze Routing
Heuristic Bounded Length Maze Routing
Lienig
Parallel Multi-Threaded Collision Aware Strategy for Multi-core Platforms
© KLMH
Bounded Length vs Bounded Box
Bounded Length
Bounded Box
Algo :
Algo :
1. While(!viol) {
1. While(!viol) {
2.
viol = Route(net, BL);
2.
viol = Route(net, BB);
3.
if(!viol) {
3.
if(!viol) {
increase BL;
5.
6.
}
}
Start with Manhattan distance
4.
increase BB;
5.
6.
}
}
Start with the MBB
Lienig
4.
© KLMH
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;
4.
cost[s] = 0;
5.
cost[u] = infinity for all nodes except s
6.
While(curr_node != t) {
7.
//might have multiple copies of a node
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);
15.
//extracts the min cost node from Q
}
Lienig
Complexity : O(|E| + |V|log|V|)
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.
FLOW DIAGRAM
© KLMH
PROPOSED
ROUTER
}
}
Post Refinement
10. Layer Assignment
Lienig
NCR Route : Negotiation Based
Congestion Rip up & Route
© KLMH
Optimal Bounded Length Maze Routing
Idea : Discard a path Pi(s,v) if,
wl(Pi) + Manh(v,t) > BL
Comparison to Traditional Routing:
1. Prunes all paths with BL violations,
thereby making the search space smaller
Lienig
2. Keep more than one path unlike Traditional
routing.
© KLMH
OPTIMAL BLMR Cont’d
What happens if keep the paths with lower cost.
In this figure,
cost(P1) = 80, cost(P2) = 90
wl(P1)
= 11, wl(P2)
= 5
BL = 16
If we keep only P1 (lower cost), then
it does not have enough slack to detour
the congested graph around t. Thus, keep both P1 & P2.
However, if cost(Pi) < cost(Pj) and wl(Pi) < wl(Pj),
Lienig
then Pj is inferior to Pj, can discard Pj.
© KLMH
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
Lienig
path.
© KLMH
Heuristic BLMR cont.
Heuristic :
ewk (v,t) = Manh(v, t) × (Lk-1(s, t) / Manh(s, t)) --1
Condition :
wl(Pi )+ ewk (v, t) ≤ BL ---------------------------------2
ewk (v,t) : estimated wire length from v to t in kth iteration
Lk-1(s, t) : actual routed wirelength from s to t in k-1th iteration
Pi(s,v) : Path from s to v
wl(Pi ) :
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 kth iteration : Path might be discarded by equation 2,
thus in (k+1)th iteration, it gets better.
Lienig
2.Under-estimated wl from v to t in kth iteration, actual wl (LK) corrects it in the next
iteration
© KLMH
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
BLnk = Manh (s n , t n ) × (arctan(k − α )
+ β)
Lienig
α, β are user defined (use 9,2.5 for this paper)
© KLMH
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
Lienig
Load might not be shared evenly between the threads because of differing
congestions in different parts of the grid graph.
TASK BASED CONCURRENCY
&
© KLMH
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)
Lienig
Partition vs
TCS
Lienig
© KLMH
Challenges Cont’d
© KLMH
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.
Not clear at Wave propagation
Not clear at BackTracing
Clear after BackTracing – both the threads have used the resource.
Lienig
When will it be clear that collision occurred ?
© KLMH
Collision Aware RR
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)
Lienig
Observations :
© KLMH
Using Observations in Collision Aware RR
Thread T2 : marks the edges previously used by the net
Lienig
Thread T1 : see the increased cost of the common edges
Collision Aware RR
1.
© KLMH
ALGORITHMS
Collision Aware BLMR
Algorithm Collision-aware Rip-up and
Reroute
1.
Algorithm Collision-aware BLMR
2.
Input:
2.
3.
TaskQueue TQ;
Input: grid graph G, net N,
bounded-length BL
4.
while ( G has overflows)
3.
mark_grid_edge( path(N) ,G);
5.
update(TQ) // insert overflow net to TQ;
4.
ripup(path(N) ,G);
6.
//parallel by each thread
5.
7.
while (TQ is not empty);
collision_aware_wave_propagation(
N, G, BL);
8.
N ←extract_a_task(TQ);
6.
newPath←back_tracing(N, G);
9.
k
BL n
7.
unmark_grid_edge(path(N) ,G);
10.
collision_aware_BLMR(G, N, BLkn );
8.
path(N)←newPath;
11.
end while
end
grid graph G
←relax_bounded_length(N);
Lienig
end
Lienig
© KLMH
Evaluation
Lienig
© KLMH
Evaluation cont.
© KLMH
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
Lienig
Collision Aware RR : avoid overflow due to race conditions.
Lienig
© KLMH
THANK YOU