pptx

advertisement
© 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
Download