Top-Down? Bottom Up?
A Survey of Hierarchical
Design Methodologies
Trent McConaghy
@trentmc0
Pragmatic Ways to View AI,
by Example
Classification, in 2D
Salary
Age
Salary
Age
Didn’t pay
Paid bills
Credit profile:
Regression, in 1D
age
job
satisfaction
age
job
satisfaction
Regression, in 2D
How: Polynomials, splines, neural networks, support vector
machines, Gaussian process models, boosted trees, … [many refs]
Symbolic Regression (SR)
(Like regression, but output a symbolic model too)
Y
X
Symbolic model:
y=50.2 + 9.1 • x
+ 3.2 • max(0, x2)
Y
X
[e.g. McConaghy 2005;
McConaghy 2011]
AI Has a Toolbox of Ways to Solve…
•Classification – Fraud detection, spam filtering …
•Regression – Stock prediction, sensitivity analysis …
•Whitebox regression – Scientific discovery …
•Optimization – Airfoil design, circuit simulation …
•Structural synthesis – Analog synthesis, robotics …
•Pattern recognition – Face recognition, object recog …
•System identification – Scientific discovery …
•Ranking – Web search, ad serving, social discovery …
•Control – Auto-driving autos, spacecraft trajectories …
•…
AI Sub-fields
• machine learning
• neural networks
• evolutionary computation
• fuzzy logic
• data mining
• artificial general intelligence
• pattern recognition
• ..
• (nee) nonlinear programming
• (nee) databases
• ..
AI Sub-fields of sub fields
• machine learning + neural networks
– recurrent neural networks
– sparse linear regression
– deep learning
– ..
• evolutionary computation
– evolutionary programming, evolution strategies
– genetic algorithms
– genetic programming
• ..
Genetic Programming (GP):
A branch of a branch of AI
But a super-cool one..
Evolution
WTF?
Hornby & Lohn 2005
GP for SR
“A function is a tree”
f(x) = 4.8*x3 + √x2
4.8
√*
x2
+
x3
Searches through the space of trees:
1. Initial random population; evaluate
2. Create children from parents via operators; evaluate
3. Select best; goto 2
GP for SR: Crossover Operator
SR with Vanilla GP – Koza 1991
[Koza1992]
SR With Fancier GP – McConaghy 2005
Circuit synthesis with GP – Koza 2001
Circuit synthesis with GP – McConaghy 2005
Synthesis of jewelry – Hornby 2011
Let’s Get Ambitious!
SCALE
Auto-design a piston?
Evolution?
Auto-design a car?
Evolution?
How do you evolve a 5K-part car?
How do you evolve a
10G-part chip?
Ref. 1st
Preamp 2nd
Preamp Comp. NAND ROM
b0
b5
b6
b7
Latch
vin_minvin_plus
clk
GRAYCODER
S/H
How do you evolve a
37T cell animal?
• Simple
• What 99% of optimization does
• But, doesn’t scale
• Yes, massive compute helps a lot. Eg deep learning
• But even for that: what about a 10x larger net?
1000x?
Approach the Design “Flat”?
Top-Down Design? How, Specifically?
Hierarchy!
Hierarchy in a Circuit
Bottom-up Design? How, Specifically?
Hierarchy! Bringing Method to the Madness
system
SB 1.1 SB 1.2 SB 1.m SB 2.1
subblock 1 subblock 2 subblock n
• Divide, conquer, stitch it back together
• Difficulty(design) ≈ Difficulty(hardest block)
Hierarchical Design Methodologies
system
SB 1.1 SB 1.2 SB 1.m SB 2.1
subblock 1 subblock 2 subblock n
• Target behavior of each sub-block is well defined
• Design involves
• A way to estimate performance of a candidate block
• A way to search each sub-block
• A way to stitch together the blocks
• Many possible ways!
A key requirement: we need a way to estimate
performance of each sub-block
• Input: design parameters (e.g. device sizes)
• Output: performance metrics (e.g. power, …)
• Higher-level blocks are lower fidelity (to simulate faster)
flat top-down
constraint-driven
design space organization & traversal
Top-Down Constraint-Driven Design
SystemSystem
constraints
Top-Down Constraint-Driven Design
SystemSystem design
Subblock 1 Subblock 2
Subblock 1 Subblock 2 Subblock n
constraints
con.con.con.
• Step 1: map specifications down the hierarchy (via search)
Top-Down Constraint-Driven Design
System
SB 1.1 SB 1.2 SB 1.m SB 2.1
System design
Subblock 1 Subblock 2
Subblock 1 Design Subblock 2 Design Subblock n Design
SB 1.1 SB 1.2 SB 1.m SB 2.1
constraints
con.con.con.
con. con. con. con.
Top-Down Constraint-Driven Design
System
SB 1.1 SB 1.2 SB 1.m SB 2.1
System design
Subblock 1 Subblock 2
Subblock 1 Design Subblock 2 Design Subblock n Design
SB 1.1 SB 1.2 SB 1.m SB 2.1
constraints
con.con.con.
con. con. con. con.
Top-Down Constraint-Driven Design
System
SB 1.1 SB 1.2 SB 1.m SB 2.1
System design
Subblock 1 Subblock 2
Subblock 1 Design Subblock 2 Design Subblock n Design
SB 1.1 SB 1.2 SB 1.m SB 2.1
Verify
Verify Verify
• bottom-up verification to verify performance against
specifications
Top-Down Constraint-Driven Design
System
SB 1.1 SB 1.2 SB 1.m SB 2.1
System design
Subblock 1 Subblock 2
Subblock 1 Design Subblock 2 Design Subblock n Design
SB 1.1 SB 1.2 SB 1.m SB 2.1
constraints
con.con.con.
con. con. con. con.
• What happens when constraints cannot be met?
• General heuristic: backtrack
flat top-down
constraint-driven
manual or
semi-auto
feasibility
modeling
design space organization & traversal
flat top-down
constraint-driven
manual or
semi-auto
feasibility
modeling
automatic
bottom-up
feasibility
modeling
design space organization & traversal
Feasibility modeling bottom-up
• Model feasible performance space of a design
• For entire range of design parameters
• E.g. for a car: “can have 200mph top speed and 20 mpg
separately but not together”. Represent this continuously.
Top-down constraint-driven design
• Pros:
• Scale! (Compared to flat)
• Feasible runtime
• Can re-use feasibility models of building blocks
• “Natural choice” for advocates of top-down design
• Cons:
• Need a way to know what performance combinations of
sub-blocks are feasible
• Once feasibility modeling is done, still need to do top-down
steps (i.e. optimization at each node in hierarchy)
flat concurrenttop-down
constraint-driven
design space organization & traversal
Concurrent hierarchical methodology
System
SB 1.1 SB 1.2 SB 1.m SB 2.1
Subblock 1 Subblock 2 Subblock n
optimize all at once via glue constraints
• Pros: an alternative to “flat”
• Cons: scales badly; more complex than “flat”
flat concurrenttop-down
constraint-driven
bottom-up
multi-
objective
design space organization & traversal
Multi-objective bottom-up design (MOBU)
system
SB 1.1 SB 1.2 SB 1.m SB 2.1
subblock 1 subblock 2 subblock n
• Pareto front of a lower level block is “dimensions” in the design
space of each layer that uses it
• Effectively “compresses” lower level design spaces into the
meaningful part (i.e. into the tradeoffs)
• Ref Eeckelaert et al 2005
MOBU Example #1
MOBU Example #2
Multi-objective bottom-up design (MOBU)
• Pros:
• Feasible runtime
• Provides system level tradeoffs
• Can re-use multi-objective tradeoffs of building blocks
• “Model” of tradeoffs is simply the discrete designs themselves
• Once once top-level tradeoffs are known, the designs already exist
too. No need for a subsequent top-down sizing
• Cons:
• No full model of feasibility, just of tradeoffs
• Cannot refine designs precisely, the way that top-down does
How do you
evolve a 37T cell
animal?
flat concurrenttop-down
constraint-driven
bottom-up
multi-
objective
design space organization & traversal
bottom-up
ossification
Bottom-up Ossification
system
SB 1.1 SB 1.2 SB 1.m SB 2.1
subblock 1 subblock 2 subblock n
• Two levels at a time are evolving
• Then lower level’s mutation rate →0 (ossifies), and a new
upper level emerges
Bottom-up Ossification
system
SB 1.1 SB 1.2 SB 1.m SB 2.1
subblock 1 subblock 2 subblock n
• Two levels at a time are evolving
• Then lower level’s mutation rate →0 (ossifies), and a new
upper level emerges
Conclusion
• Hierarchical design methodologies enable ridiculously
complicated designs
• In machine learning
• And in nature!
• They are structured, not ad-hoc
• Top-down constraint-driven
• Multi-objective bottom up
• And more
• Are you ready for 1000x larger nets?
Trent McConaghy
@trentmc0
Survey / further reading
• Georges Gielen, Trent McConaghy, and Tom Eeckelaert,
“Performance Space Modeling for Hierarchical Synthesis of
Analog Integrated Circuits”, Proc. Design Automation Conference,
2005. http://trent.st/content/2005_DAC_hierarchy.pdf
• For further references, see references of that work

Top-Down? Bottom Up? A Survey of Hierarchical Design Methodologies