t Gooi - UCSD VLSI CAD Laboratory

Download Report

Transcript t Gooi - UCSD VLSI CAD Laboratory

Design Cost Modeling and Data
Collection Infrastructure
Andrew B. Kahng and Stefanus Mantik*
UCSD CSE and ECE Departments
(*) Cadence Design Systems, Inc.
http://vlsicad.ucsd.edu/
ITRS Design Cost Model
 Engineer cost/year increases 5% / year ($181,568 in 1990)
 EDA tool cost/year (per engineer) increases 3.9% / year
 Productivity due to 8 major Design Technology
innovations
 RTL methodology
…
 Large-block reuse
 IC implementation suite
 Intelligent testbench
 Electronic System-level methodology
 Matched up against SOC-LP PDA content:
 SOC-LP PDA design cost = $20M in 2003
 Would have been $630M without EDA innovations
SOC Design Cost
Very Large Block Reuse
ES Level Methodology
Intelligent Testbench
IC Implementation tools
Large Block Reuse
Small Block Reuse
$10,000,000,000
Tall Thin Engineer
In house P&R
$100,000,000,000
Total Design Cost
$1,000,000,000
629,769,273
$100,000,000
20,152,617
RTL Methodology Only
With All Future Improvements
$10,000,000
1985
1990
1995
2000
2005
Year
2010
2015
2020
Outline
 Introduction and motivations
 METRICS system architecture
 Design quality metrics and tool quality metrics
 Applications of the METRICS system
 Issues and conclusions
Motivations
 How do we improve design productivity ?
 Is our design technology / capability better than last year?
 How do we formally capture best known methods, and how
do we identify them in the first place ?
 Does our design environment support continuous
improvement, exploratory what-if design, early predictions
of success / failure, ...?
 Currently, no standards or infrastructure for measuring
and recording the semiconductor design process
 Can
benefit project management
 accurate resource prediction at any point in design cycle
 accurate project post-mortems
 Can benefit tool R&D
 feedback on tool usage and parameters used
 improved benchmarking
Fundamental Gaps
 Data to be measured is not available
 Data
is only available through tool log files
 Metrics naming and semantics are not consistent among
different tools
 We do not always know what data should be measured
 Some
metrics are less obviously useful
 Other metrics are almost impossible to discern
Purpose of METRICS
 Standard infrastructure for the collection and the
storage of design process information
 Standard list of design metrics and process metrics
 Analyses and reports that are useful for design
process optimization
METRICS allows: Collect, Data-Mine,
Measure, Diagnose, then Improve
Outline
 Introduction and motivations
 METRICS system architecture
 Components
of METRICS System
 Flow tracking
 METRICS Standard
 Design quality metrics and tool quality metrics
 Applications of the METRICS system
 Issues and conclusions
METRICS System Architecture
Tool
Transmitter
Tool
Tool
Transmitter
Transmitter
wrapper
Java
Applets
API
XML
Inter/Intra-net
Web
Server
DB
DAC00
Reporting
Data
Mining
Metrics Data Warehouse
METRICS Server
Internet/Intranet
Input
Form
Receiver
Servlet
Reporting
Servlet
Data translator
Apache + Servlet
Receiver
Java Beans Decryptor
DB
JDBC
Dataminer
XML Parser
Reporting
External
Interface
Example Reports
nexus12 2%
nexus11 2%
nexus10 1%
nexus4 95%
% aborted per machine
synthesis ATPG
22%
20%
postSyntTA
13%
placedTA
physical
7%
18%
BA 8%
funcSim
7%
LVS 5%
% aborted per task
CPU_TIME = 12 + 0.027 NUM_CELLS
Correlation = 0.93
Flow Tracking
Task sequence: T1, T2, T1, T2, T3, T3, T3, T4, T2, T1, T2, T4
S
T1
T1
T2
T2
T3
T1
T2
T3
T2
T3
T4
T4
F
Run Current TASK_NO
FLOW_SEQUENCE
No
Task T1 T2 T3 T4
1
T1
1 - - 1
2
T2
1 1 - 1/1
3
T1
2 - - 2
4
T2
2 1 - 2/1
5
T3
2 1 1 2/1/1
6
T3
2 1 2 2/1/2
7
T3
2 1 3 2/1/3
8
T4
2 1 3 1
2/1/3/1
9
T2
2 2 - 2/2
10
T1
3 - - 3
11
T2
3 1 - 3/1
12
T4
3 1 - 1
3/1/0/1
Testbeds: Metricized P&R Flow
DEF
Capo Placer
Placed DEF
UCLA + Cadence flow
LEF
Legal DEF
QP
QP ECO
Placed DEF
Incr.
WRoute
Routed DEF
Congestion
Map
Incr WRoute
Cadence PKS flow
Final DEF
CongestionAnalysis
Synthesis & Tech Map
Pre-placement Opt
DEF
LEF
GCF,TLF
CTGen
M
E
T
R
I
C
S
Clocked DEF
Constraints
QP Opt
Optimized DEF
WRoute
Pearl
Routed DEF
QP
Post-placement Opt
Ambit
PKS
GRoute
WRoute
Cadence SLC flow
METRICS Standards
 Standard metrics naming across tools
name  same meaning, independent of tool
supplier
 generic metrics and tool-specific metrics
 no more ad hoc, incomparable log files
 same
 Standard schema for metrics database
 Standard middleware for database interface
Generic and Specific Tool Metrics
Generic Tool Metrics
tool_name
tool_version
tool_vendor
compiled_date
start_time
end_time
tool_user
host_name
host_id
cpu_type
os_name
os_version
cpu_time
string
string
string
mm/dd/yyyy
hh:mm:ss
hh:mm:ss
string
string
string
string
string
string
hh:mm:ss
Placement Tool Metrics
num_cells
num_nets
layout_size
row_utilization
wirelength
weighted_wl
integer
integer
double
double
double
double
Routing Tool Metrics
num_layers
integer
num_violations integer
num_vias
integer
wirelength
double
wrong-way_wl double
max_congestion double
Partial list of metrics now being collected in Oracle8i
Open Source Architecture
 METRICS components are industry standards
 e.g.,
Oracle 8i, Java servlets, XML, Apache web server,
PERL/TCL scripts, etc.
 Custom generated codes for wrappers and APIs are
publicly available
 collaboration
in development of wrappers and APIs
 porting to different operating systems
 Codes are available at:
http://www.gigascale.org/metrics
Outline
 Introduction and motivations
 METRICS system architecture
 Design quality metrics and tool quality metrics
 Applications of the METRICS system
 Issues and conclusions
Tool Quality Metric: Behavior in the
Presence of Input Noise [ISQED02]
 Goal: tool predictability
 Ideal
scenario: can predict final solution quality even
before running the tool
 Requires understanding of tool behavior
 Heuristic nature of tool: predicting results is difficult
 Lower bound on prediction accuracy: inherent tool
noise
 Input noise  "insignificant" variations in input data
(sorting, scaling, naming, ...) that can nevertheless
affect solution quality
 Goal: understand how tools behave in presence of
noise, and possibly exploit inherent tool noise
Monotone Behavior
 Monotonicity
solutions w.r.t. inputs
Quality
Quality
 monotone
Parameter
Parameter
Monotonicity Studies
 OptimizationLevel: 1(fast/worst) … 10(slow/best)
3
10
2.5
0
-10
1
2
3
4
5
6
7
8
9
2
-20
1.5
-30
1
-40
0.5
QP CPU
Total CPU
-50
QP WL
WR WL
0
-0.5
-60
1
2
3
4
5
6
7
8
Opt Level
1
2
3
4
5
6
7
8
9
QP WL
2.50
0.97
-0.20
-0.11
1.43
0.58
1.29
0.64
1.70
QP CPU
-59.7
-51.6
-40.4
-39.3
-31.5
-31.3
-17.3
-11.9
-6.73
WR WL
2.95
1.52
-0.29
0.07
1.59
0.92
0.89
0.94
1.52
Total CPU
4.19
-6.77
-16.2
-15.2
-7.23
-10.6
-6.99
-3.75
-0.51
9
 Note: OptimizationLevel is the tool's own knob for "effort"; it may or may
not be well-conceived with respect to the underlying heuristics (bottom
line is that the tool behavior is "non-monotone" from user viewpoint)
Noise Studies: Random Seeds
 200 runs with different random seeds
 ½-percent
spread in solution quality due to random seed
35
-0.05%
30
20
15
10
5
% Quality Loss
0.
12
0.
08
0.
04
0
-0
.0
4
-0
.0
8
-0
.1
2
-0
.1
6
-0
.2
0
-0
.2
4
# Run
25
Noise: Random Ordering & Naming
 Data sorting  no effect on reordering
 Five naming perturbation

random cell names without hierarchy (CR)



random net names without hierarchy (NR)
random cell names with hierarchy (CH)



E.g., AFDX|CTRL|AX239  CELL00134
E.g., AFDX|CTRL|AX129  ID012|ID79|ID216
random net names with hierarchy (NH)
random master cell names (MC)

E.g., NAND3X4  MCELL0123
Noise: Random Naming (contd.)
 Wide range of variations (±3%)
 Hierarchy matters
16
CR
NR
NR
CH
NH
NH
MC
14
Number of Runs
12
10
8
6
4
2
0
-4
-2
0
2
% Quality Loss
4
6
Noise: Hierarchy
 Swap hierarchy

AA|BB|C03  XX|YY|C03
XX|YY|Z12  AA|BB|Z12
10
Number of Runs

8
6
4
2
0
-1
1
3
5
7
% Quality Loss
9
11
13
Outline
 Introduction and motivations
 METRICS system architecture
 Design quality and tool quality
 Applications of the METRICS system
 Issues and conclusions
Categories of Collected Data
 Design instances and design parameters
 attributes
and metrics of the design instances
 e.g., number of gates, target clock frequency, number of
metal layers, etc.
 CAD tools and invocation options
 list
of tools and user options that are available
 e.g., tool version, optimism level, timing driven option,
etc.
 Design solutions and result qualities
 qualities
of the solutions obtained from given tools and
design instances
 e.g., number of timing violations, total tool runtime,
layout area, etc.
Three Basic Application Types
 Design instances and design parameters
 CAD tools and invocation options
 Design solutions and result qualities
 Given  and , estimate the expected quality of 
 e.g.,
runtime predictions, wirelength estimations, etc.
 Given  and , find the appropriate setting of 
 e.g.,
best value for a specific option, etc.
 Given  and , identify the subspace of  that is
“doable” for the tool
 e.g.,
category of designs that are suitable for the given
tools, etc.
Estimation of QP CPU and Wirelength
 Goal:
 Estimate
QPlace runtime for CPU budgeting and block
partition
 Estimate placement quality (total wirelength)
 Collect QPlace metrics from 2000+ regression logfiles
 Use data mining (Cubist 1.07) to classify and predict, e.g.:



Rule 1: [101 cases, mean 334.3, range 64 to 3881, est err 276.3] if
ROW_UTILIZATION <= 76.15 then CPU_TIME = -249 + 6.7 ROW_UTILIZATION +
55 NUM_ROUTING_LAYER - 14 NUM_LAYER
Rule 2: [168 cases, mean 365.7, range 20 to 5352, est err 281.6] if
NUM_ROUTING_LAYER <= 4 then CPU_TIME = -1153 + 192
NUM_ROUTING_LAYER + 12.9 ROW_UTILIZATION - 49 NUM_LAYER
Rule 3: [161 cases, mean 795.8, range 126 to 1509, est err 1069.4] if
NUM_ROUTING_LAYER > 4 and ROW_UTILIZATION > 76.15 then CPU_TIME = -33
+ 8.2 ROW_UTILIZATION + 55 NUM_ROUTING_LAYER - 14 NUM_LAYER
 Data mining limitation  sparseness of data
Cubist 1.07 Predictor for Total Wirelength
Optimization of Incremental Multilevel
FM Partitioning
 Motivation: Incremental Netlist Partitioning
 Scenario: Design changes (netlist ECOs) are made,
but we want the top-down placement result to remain
similar to previous result
Clustering
Refinement
Optimization of Incremental Multilevel
FM Partitioning
 Motivation: Incremental Netlist Partitioning
 Scenario: Design changes (netlist ECOs) are made,
but we want the top-down placement result to remain
similar to previous result
 Good approach [CaldwellKM00]: “V-cycling” based
multilevel Fiduccia-Mattheyses
 Our goal: What is the best tuning of the approach for a
given instance?



break up the ECO perturbation into multiple smaller
perturbations?
#starts of the partitioner?
within a specified CPU budget?
Optimization of Incremental Multilevel
FM Partitioning (contd.)
 Given: initial partitioning solution, CPU budget and
instance perturbation (I)
 Find: number of stages of incremental partitioning (i.e.,
how to break up I ) and number of starts
S
 Ti
T1
T2
T3
...
Tn
F
= incremental multilevel FM partitioning
 Self-loop  multistart
 n  number of breakups (I = 1 + 2 + 3 + ... + n)
Flow Optimization Results
 If (27401 < num edges  34826) and (143.09 < cpu time  165.28)
and (perturbation delta  0.1) then num_inc_stages = 4 and
num_starts = 3
 If (27401 < num edges  34826) and (85.27 < cpu time  143.09) and
(perturbation delta  0.1) then num_inc_stages = 2 and num_starts
=1
Design
Num Nets Cut
 ...
Name Optimized Regular
ibm01
215
217
ibm05
1685
1723
ibm02
249
269
ibm03
618
669
ibm06
363
371
ibm04
444
488
ibm08
1127
1219
ibm10
752
773
Up to 10% cutsize reduction with same CPU budget, using tuned
#starts, #stages, etc. in ML FM
Outline
 Introduction and motivations
 METRICS system architecture
 Design quality and tool quality
 Applications for METRICS system
 Issues and conclusions
METRICS Deployment and Adoption
 Security: proprietary and confidential information
cannot pass across company firewall  may be
difficult to develop metrics and predictors across
multiple companies
 Standardization: flow, terminology, data management
 Social: “big brother”, collection of social metrics
 Data cleanup: obsolete designs, old methodology, old
tools
 Data availability with standards: log files, API, or
somewhere in between?
 “Design Factories” are using METRICS
Conclusions
 METRICS System : automatic data collection and realtime reporting
 New design and process metrics with standard naming
 Analysis of EDA tool quality in presence of input noise
 Applications of METRICS: tool solution quality
estimator (e.g., placement) and instance-specific tool
parameter tuning (e.g., incremental partitioner)
 Ongoing works:
 Construct active feedback from METRICS to design
process for automated process improvement
 Expand the current metrics list to include enterprise
metrics (e.g., number of engineers, number of spec
revisions, etc.)
Thank You