HK95], Rent Parameter [NOP87], Closeness [SK93],. Connectivity [SU72], etc⦠â Signal flow based : MFFC [CD93], MFFS [CL+97], etc⦠⢠Top-down clustering.
Edge Separability Based Circuit Clustering with Application to Circuit Partitioning Jason Cong and Sung Kyu Lim UCLA VLSI CAD Lab Support : MARCO/DARPA GSRC and Fujitsu Laboratories of America under CA MICRO
Outline • Preliminaries – Problem formulation – Previous works – Motivation and contribution
• ESC algorithm – Overview – Two-phase framework
• Experimental results • Conclusions and ongoing works
2/27
Problem Formulation • Clustering vs partitioning – Divide cells into groups under area constraint A – Clustering if A is small; partitioning otherwise – Clustering = pre-process of partitioning
• Clustering Metrics – Absorption, Density, Rent Parameter, Ratio Cut, Closeness, Connectivity, etc….
• Partitioning Metrics – Cutsize and delay
3/27
Previous Works • Clustering algorithms – Cutsize oriented vs delay oriented
• Bottom-up clustering – Connectivity based : Absorption [SS93], Density [CS93, HK95], Rent Parameter [NOP87], Closeness [SK93], Connectivity [SU72], etc… – Signal flow based : MFFC [CD93], MFFS [CL+97], etc…
• Top-down clustering – Ratio Cut [WC92]
4/27
Motivation • Existing algorithms rely on local connectivity w(e) e2 e3 e1
v1
v2 e4
e5 v3
e6
C1 DEN (C1 ) =
∑ w (e ) / ∑ s(v ) =
e∈C1
v∈C1
w ( e 3 ) + w ( e4 ) + w ( e5 ) s ( v1 ) + s ( v 2 ) + s ( v 3 ) 5/27
Motivation • Existing algorithms rely on local connectivity w(e) e2 e3 e1
v1
v2 e4
C1 CLO (C1 , C 2 ) =
e5
e7
v3
v4
e6
v5 e8
e9 v6
e10
C2
w ( e6 ) w (e ) = min{ c (C 1 ), c (C 2 )} w ( e6 ) + w ( e10 ) 6/27
Contribution • Proposed global connectivity information λ(e) • Efficient way to estimate λ(e) • Demonstrate effectiveness of λ(e) – compared to existing algorithms that use w(e) – two-level ESC vs multi-level hMetis [KA+97, KK99]
7/27
Edge Separability • Edge Separabillity λ(e) – Minimum cutsize that separates x and y, where e=(x, y) – Beyond local connectivity w(e) – Search on entire circuit : max-flow in O(n2logn)
x
w(e)
y
w(e) ≤ λ(e)
8/27
Edge Separability • CAPFOREST [Nagamochi and Ibaraki, 1992] – – – –
O(nlogn) edge labeling algorithm Identify contractible edges Label each edge with q(e) Repeat O(n) to find global mincut
we show that w(e) ≤ q(e) ≤ λ(e)
9/27
CAPFOREST Algorithm • Illustration 0
7 7
1 1
21
1 1
10 1
71 6 7
2 2
9 10
5 5
5
1
1 1
3 3
3
7
1
52
visit nodes in Maximum Adjacency ordering
3 5 4 4
4 10/27
CAPFOREST Algorithm • Illustration 0
7/7/9
0
1/1/4
0
1/1/4
3/3/5
0
1/2/4
0
2/2/6
6/6/7
0
9/10/13
5/5/6
0
1/1/4
0
4/4/7
3/5/6
edge labels denote w(e) / q(e) / λ(e) following holds w(e) ≤ q(e) ≤ λ(e)
0 11/27
ESC Clustering Algorithm • Classification – Graph connectivity based O(nlogn) algorithm – Two-level cluster hierarchy
• Implementation – Transform netlist into G – Perform CAPFOREST to label all edges with q(e) – Sort contractible edges based on rank r(e) q( e ) r (e ) = min{ c( x ), c( y )} – Grow clusters from contraction of edges in the sorted order
12/27
ESC Clustering Algorithm • Illustration (size limit = 3) a
7
b
1
1
3
d
1
6
e
2
9
5
g
1
c edge labels denote w(e) / q(e) / r(e)
f 3
h
4
r (e ) =
q( e ) min{ c( x ), c( y )}
i 13/27
ESC Clustering Algorithm • Illustration (size limit = 3) a
7/7/.78
1/1
b
c
1/1
3/3
d
1/2
e
6/7/1.0 2/2
f
9/10/.77
5/5
g
1/1
h
4/4
edge labels denote w(e) / q(e) / r(e) r (e ) =
3/5
q( e ) min{ c( x ), c( y )}
i 14/27
ESC Clustering Algorithm • Illustration (size limit = 3) a
7/7/.78
b 1/1
1/1
3/3
d
1/2
e
2/2
f
9/10/.77
5/5
g
1/1
h
4/4
edge labels denote w(e) / q(e) / r(e) r (e ) = 3/5
q( e ) min{ c( x ), c( y )}
i 15/27
ESC Clustering Algorithm • Illustration (size limit = 3)
b 3/3
d
1/1
1/1 1/2
e
2/2
f
9/10/.77
5/5
g
1/1
h
4/4
edge labels denote w(e) / q(e) / r(e) r (e ) = 3/5
q( e ) min{ c( x ), c( y )}
i 16/27
ESC Clustering Algorithm • Illustration (size limit = 3)
b 3/3
d 5/5
1/1 1/2
1/1
g
1/1
e
2/2
edge labels denote w(e) / q(e) / r(e)
f
r (e ) = 3/5
4/4
q( e ) min{ c( x ), c( y )}
i 17/27
ESC Clustering Algorithm • Illustration (size limit = 3)
b 3/3
d 5/5/.83
1/1 1/2
1/3
g
1/1
e
2/3
edge labels denote w(e) / q(e) / r(e)
f
r (e ) = 3/6/1.0
4/4
q( e ) min{ c( x ), c( y )}
i 18/27
ESC Clustering Algorithm • Illustration (size limit = 3)
b 3/3
d 5/5/.83
1/1 1/2
e
6/4
1/1
f
edge labels denote w(e) / q(e) / r(e) r (e ) =
q( e ) min{ c( x ), c( y )}
1/3
g 19/27
ESC Clustering Algorithm • Illustration (size limit = 3)
b 3/3
d
1/1 2/3
e
6/4
1/1
f
edge labels denote w(e) / q(e) / r(e) r (e ) =
q( e ) min{ c( x ), c( y )}
20/27
Two-Phase Framework • Edge contraction based bottom-up clustering – Sort edges based on contraction cost – Grow clusters from edge contraction
• Top-down partitioning – Partition top-level – Project cutline – Partition bottom-level
21/27
Existing Algorithms •
Absorption [SS93] (max) : weight of edges absorbed into C ABS (C ) = ∑ w (e ) e∈C
•
Density [CS93, HK95] (max) : density of C in terms of w(e) DEN (C ) =
•
ABS (C ) , s(C ) = size of C s (C )
Rent Parameter [NOP87] (min) : entail better placement result REP (C ) =
ln c(C ) − ln d (C ) 1 , d (C ) = c( x ) ∑ ln s(C ) | C | x∈C
22/27
Existing Algorithms (cont) •
Ratio Cut [WC92] (min) : identify natural clusters RTC (C ) =
c (C ) , c (C ) = w(e ) ∑ s (C ) e incident to C
•
Closeness [SK93] (max) : connectivity to neighboring vertices w(e ) s( x ) + s( y ) CLO (C ) = −γ min{ c( x ), c( y )} ave _ size
•
Connectivity [SU72] (max) : connectivity to neighboring vertices w (e ) w (e ) CON (C ) = + s( x )[c( x ) − w (e )] s( y )[c( y ) − w ( e )]
23/27
Experimental Result • LR [CL+97] bipartitioning on ISPD98 [Alp98] circuits 1.4
Scaled Cutsize
1.2
1.31 1.13
1
1.31 1.19
1.09
1.15 1
0.8 0.6 0.4 0.2 0
ABS
DEN
REP
RTC
CLO
CON
ESC 24/27
Experimental Result • LR/ESC bipartitioning algorithm – – – –
Cluster netlist with ESC algorithm Partition top-level with LR [CL+97] algorithm Project cutline Refine bottom-level with LR algorithm
• LR/ESC-PM multiway partitioning algorithm – Obtain matching of blocks for Pair-wise Movement [CL98] – Apply LR/ESC bipartitioning on block-pairs
25/27
Experimental Result LR-ESC/PM : two-level hMetis[KA+97] and hMetis-Kway[KK99] : multi-level 1.2 1 Scaled Cutsize
• •
1.03
1.02
1.01
0.97
0.8 hMetis-Kway LR/ESC-PM
0.6 0.4 0.2 0
2way
8way
16way
32way 26/27
Conclusions & Ongoing Works • Edge separability λ(e) – Beyond local connectivity w(e) – tighter lower bound of λ(e) in O(nlogn) for all edges
• ESC clustering algorithm – Connectivity based two-level bottom-up clustering – Outperforms other existing algorithms – Comparable to hMetis [KA+97] and hMetis-Kway [KK99]
• Ongoing work – Multi-level ESC – Impact on placement – www.cadlab.ucla.edu 27/27