Title: Dominatorbased partitioning for Delay Optimization
1Dominator-based partitioning for Delay
Optimization
- David Bañeres Jordi Cortadella
- Univ. Politècnica de Catalunya
- Spain
Mike Kishinevsky SCL, Intel Corporation Hillsboro
, USA
2Outline
- Introduction
- Vertex dominator
- Dominator-based Partition (DBP)
- Comparisons
- DBP vs DEPART
- DBP vs hMetis
3Outline
- Introduction
- Vertex dominator
- Dominator-based Partition (DBP)
- Comparisons
- DBP vs DEPART
- DBP vs hMetis
4Partitioning in synthesis
Behavioural Synthesis
- RTL Partitioning
Logic Synthesis
- Placement - Routing
Physical Design
5Boolean Network
6Boolean Network
Represents a Boolean function
7Boolean Network
Primary Outputs
8Boolean Network
Primary Outputs
Primary Inputs
9Boolean Network
OUTPUTS
fanouts
fanins
INPUTS
10Boolean Network
OUTPUTS
Inmediate fanins
INPUTS
11Boolean Network
OUTPUTS
Transitive fanins
INPUTS
12Boolean Network
OUTPUTS
INPUTS
13Why on Logic Synthesis?
- Algebraic minimization Cost O(n2)
- Extraction of algebraic divisors
- Double cube divisor
- Factor extraction
- Boolean minimization Cost O(2n)
- Dont care calculation
- Delay minimization
14Why on Logic Synthesis?
Algebraic minimization Boolean minimization
15Why on Logic Synthesis?
Algebraic minimization Boolean minimization
16Why on Logic Synthesis?
Algebraic minimization Boolean minimization
17Why on Logic Synthesis?
Algebraic minimization Boolean minimization
18Sweep Algebraic methods
Light computational tools
19Sweep Algebraic methods
Light computational tools
Partition
DIVIDE CONQUER
Aggressive tools
Merge
20Sweep Algebraic methods
Light computational tools
Partition
Dont cares Delay optimization
Aggressive tools
Merge
21Partitioning in Synthesis
- Placement
- Iterative by Partitioning (Capo)
- FPGA
- MLC Sze04
- Logic Time-driven Optimization
- REDUCE DEPTH Touati91
- CLUSTER Yang97
- DEPART Aggarwal97
22REDUCE DEPTH Touati91
OUTPUTS
MaxSize 5 nodes
INPUTS
23CLUSTER Yang97
Area-driven optimization
Partition
- Optimization
- Delay-driven
- Area-driven
Optimization Method
Merge
24Partitioning in Synthesis
- Placement
- Iterative by Partitioning (Capo)
- FPGA
- MLC Sze04
- Logic Time-driven Optimization
- REDUCE DEPTH Touati91
- CLUSTER Yang97
- DEPART Aggarwal97
25Outline
- Introduction
- Vertex dominator
- Dominator-based Partition (DBP)
- Comparisons
- DBP vs DEPART
- DBP vs hMetis
26Vertex Dominator
- Code optimization in compilers
- Test pattern generation techniques
- Non-disjoint decomposition of Boolean functions
Dubrova04
27Vertex Dominator
- Single Dominator
- A vertex x dominates another vertex y in a graph
if every path from y to root contains x
Lenguauer79.
28Vertex Dominator
OUTPUTS
Single vertex dominator
INPUTS
29Vertex Dominator
OUTPUTS
Single vertex dominator
INPUTS
30Vertex Dominator
OUTPUTS
INPUTS
31Vertex Dominator
OUTPUTS
INPUTS
32Vertex Dominator
OUTPUTS
INPUTS
33Vertex Dominator
- Single Dominator
- A vertex x dominates another vertex y in a graph
if every path from y to root contains x
Languager79. - K-Vertex Dominator
- A set of vertices Xx1, x2,, xk dominates
another vertex y in a graph if every path from y
to root contains some vertex xi ? X Dubrova04.
34Vertex Dominator
OUTPUTS
2-vertex dominator
INPUTS
35Vertex Dominator
OUTPUTS
3-vertex dominator
INPUTS
36Why Vertex Dominator?
OUTPUTS
INPUTS
37Why Vertex Dominator?
OUTPUTS
INPUTS
38Why Vertex Dominator?
OUTPUTS
INPUTS
39Why Vertex Dominator?
OUTPUTS
- High interaction rest of the network
INPUTS
40Why Vertex Dominator?
OUTPUTS
- High interaction rest of the network
- Low freedom for restructuring
INPUTS
41Why Vertex Dominator?
OUTPUTS
INPUTS
42Why Vertex Dominator?
OUTPUTS
INPUTS
43Why Vertex Dominator?
OUTPUTS
- Low interaction rest of the network
INPUTS
44Why Vertex Dominator?
OUTPUTS
- Low interaction rest of the network
- High freedom for restructuring
INPUTS
45Outline
- Introduction
- Vertex dominator
- Dominator-based Partition (DBP)
- Comparisons
- DBP vs DEPART
- DBP vs hMetis
46Critical path
47Flowchart DBP
Select critical Region
Select non-critical Region
Dominator partition
Dominator partition
Delay Optimization
Area Optimization
NO
YES
YES
Improvement?
Improvement?
48Notation
49Notation
Primary outputs
Internal nodes
Primary inputs
50Dominator-based partition
MaxSize 8 nodes
51Dominator-based partition
MaxSize 8 nodes
52Dominator-based partition
4
MaxSize 8 nodes
53Dominator-based partition
4
MaxSize 8 nodes
54Dominator-based partition
4
MaxSize 8 nodes
55Dominator-based partition
2
4
- Single Dominators
- Double-vertex Dominators
MaxSize 8 nodes
56Dominator-based partition
NODES 14 !!
2
4
- Single Dominators
- Double-vertex Dominators
MaxSize 8 nodes
57Dominator-based partition
2
4
- Single Dominators
- Double-vertex Dominators
MaxSize 8 nodes
58Dominator-based partition
2
4
- Single Dominators
- Double-vertex Dominators
- Cluster remaining single nodes
MaxSize 8 nodes
59Dominator-based partition
2
- Single Dominators
- Double-vertex Dominators
- Cluster remaining single nodes
MaxSize 8 nodes
60Dominator-based partition
2
??
- Single Dominators
- Double-vertex Dominators
- Cluster remaining single nodes
MaxSize 8 nodes
61Dominator-based partition
2
- Single Dominators
- Double-vertex Dominators
- Cluster remaining single nodes
MaxSize 8 nodes
62Dominator-based partition
2
- Single Dominators
- Double-vertex Dominators
- Cluster remaining single nodes
MaxSize 8 nodes
63Dominator-based partition
64Consistent delay propagation
Topological Order
65Preserving topological order
66(No Transcript)
67(No Transcript)
68(No Transcript)
691
70(No Transcript)
712
1
72(No Transcript)
73Outline
- Introduction
- Vertex dominator
- Dominator-based Partition (DBP)
- Comparisons
- DBP vs DEPART
- DBP vs hMetis
74DEPART
- DElay optimization using PARTitioning
Aggarwal97.
75Size of clusters in DEPART
MaxSize 8 nodes
76Size of clusters in DEPART
MaxSize 8 nodes
77Size of clusters in DEPART
MaxSize 8 nodes
78Size of clusters in DEPART
MaxSize 8 nodes
- Disadvantage
- Root nodes are excluded from minimization
79Delay Optimization
DBP
DEPART
Select Critical Region
Select Critical Outputs
50 Nodes 200 Nodes
Transitive partition
Dominator partition
Delay Optimization
Delay Optimization
Speed_up
YES
YES
Improvement?
Improvement?
80Delay Optimization
Delay script speed_up Size clusters DBP -gt 50
nodes DEPART -gt 200 nodes
81Delay Optimization
Delay script speed_up Size clusters DBP -gt 50
nodes DEPART -gt 200 nodes
82Delay Optimization
Delay script speed_up Size clusters DBP -gt 50
nodes DEPART -gt 200 nodes
83Delay Optimization
Delay script speed_up Size clusters DBP -gt 50
nodes DEPART -gt 200 nodes
84Delay Optimization
Even better that internal partitioning of
speed_up!!!
85Outline
- Introduction
- Vertex dominator
- Dominator-based Partition (DBP)
- Comparisons
- DBP vs DEPART
- DBP vs hMetis
86hMetis
87hMetis
??
88hMetis with weighted critical paths
89Time propagation on hMetis
INPUTS
OUTPUTS
90Time propagation on hMetis
DBP
INPUTS
OUTPUTS
91Time propagation on hMetis
Cut of 7 edges
DBP
INPUTS
OUTPUTS
hMetis
92Experimental Results
DBP
hMetis
Select Critical Region
Select Critical Region
hMetis
Dominator partition
50 Nodes
Delay Optimization
Delay Optimization
Speed_up
YES
YES
Improvement?
Improvement?
93DBP vs hMetis
94DBP vs hMetis
95DBP vs hMetis
96Size of clusters
DBP
hMetis
97Conclusions
- DBP produces good partitions of Logic
minimization - Selection of dominators
- Topological order to propagate delay information
- Size of clusters is crucial to obtain a trade-off
between runtime and results - Future work extend to sequential circuits.
98(No Transcript)
99hMetis with weights
100Importance of Dominators
101Importance of Dominators
DBP
hMetis
a
c
c
a
b
b
102Why on Logic Synthesis?
RTL
Partition
Logic Synthesis
Merge
103Why on Boolean Minimization?
RTL
Partition
Logic Synthesis
Merge
104Vertex Dominator
- K-vertex dominator
- Given a network G (V,E), a subset of nodes X
x1,x2, ,xk ? V is a dominator of a node u ?
V - X if - Every path from u to a primary output contains
some vertex xi ? X, and - no proper subset of X is a dominator of u.
105Vertex Dominator
2-vertex dominator
106Vertex Dominator
107(No Transcript)
108DEPART
- DElay optimization using PARTitioning
Aggarwal97. - Non-overlapping among clusters (bins).
- Select critical primary outputs.
- Select clusters by cones of influence of the root
node. - Order of minimization by criticality of the
clusters
109Time propagation on hMetis
DBP
hMetis
3
1
45
45
15
16
3
3
7
3
7
45
45
17
17
110Why on Logic Synthesis?
Cost Minimization Tools O(n2)
Espresso Brayton84 Speed_up Singh88
Full_simplify Savoj91 Time_dec Cortadella03
111Dominator-based partition
2
4
MaxSize 8 nodes
112Dominator-based partition
2
4
MaxSize 8 nodes
113hMetis
114hMetis without weights
??
115hMetis with weights
116Preserving topological order
1171
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1181
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1191
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1201
1211
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1222
1
1231
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1