Highlevel Synthesis Scheduling, Allocation, Assignment,. Note: Several slides in this Lecture are from Prof. Miodrag Potkonjak, UCLA CS. Overview. High Level Synthesis Scheduling, Allocation and Assignment Estimations Transformations. Allocation, Assignment, and Scheduling.
Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.
Highlevel SynthesisScheduling,Allocation, Assignment,
Note: Several slides in this Lecture are fromProf. Miodrag Potkonjak, UCLA CS
Techniques Well Understood and Mature
Control
Step
Control
Step
ASAP Schedule
Sequence Graph
ALAP Schedule(latency constraint = 4)
Sequence Graph
vectors B = ( b1, b2, … , bm ), C = ( c1, c2, … , cn )
AX B
X = ( x1, x2, … , xn ) is an integervalued vector
Let y0 be an integer variable.
For each control step i ( 1 i k ):
define variable xij as
xij = 1, if computation tj is executed in the ith control step.
xij = 0, otherwise.
define variable yi = xi1 + xI2 + ... + xin .
For each computation dependency: ti has to be done before tj, introduce a constraint:
k x1i+ (k1) x2i+ ... + xki kx1j+ (k1) x2j+ ... + xkj+ 1(*)
Minimize:y0
Subject to: x1i+ x2i+ ... + xki = 1 for all 1 i n
yj y0 for all 1 i k
all computation dependency of type (*)
c1
c2
c3
c4
c5
c6
6 computations
3 control steps
3x11+2x21+x31 3x14 +2x24+x34+1
x1i+x2i+x3i = 1 for 1 i 6
dependency constraints
execution constraints
x11 = 1, x12 = 1,
x23 = 1, x24 = 1,
x35 = 1, x36 = 1.
All other xij = 0




*
*
*
*
*
*
*
*
*
*
*
*
+
+
+
+
<
<
ASAP
ALAP
*
*
*


+
+
<
*
*
*
Cstep 1
Cstep 2
Cstep 3
1/2
Cstep 4
1/3
Time Frames
0
0
1
1
2
2
3
3
4
4
1
1
2
2
3
3
4
4
DG for Multiply
DG for Add, Sub, Comp


Fork
+
+
+
Join


0
1
2
+
+
1
+
2
DG for Add
Force(i) = DG(i) * x(i)
DG(i) ~ Current Distribution Graph value
x(i) ~ Change in operation’s probability
Self Force(j) = [Force(i)]
Cstep 1
Cstep 2
*
*
*
Cstep 3


+
+
<
1/2
*
Cstep 4
*
*
1/3
1
0
1
2
3
4
2
3
4
DG for Multiply


*
*
*
*
+
+
<
*
*
Force (i) = temp_DG(i) * x(i)
temp_DG(i) = DG(i) + x(i)/3
Self Force(1) = (DG(1) + x(1)/3)x(1) + (DG(2) + x(2)/3)x(2)
= .5(2.833 + .5/3) .5(2.333  .5/3)
= +.41667
Trans DG(i) = [Prob (op,i) * Opn_No_InOuts]
Opn_No_InOuts ~ combined distinct in/outputs for Op
s
s
1
s
0
1
2
d
2
3
3
d
d
4
4
Storage distribution for S
5
ASAP Lifetime
MAX Lifetime
ALAP Lifetime
ASAP
Force Directed
7 registers minimum
5 registers minimum
Functional Pipelining
1
+
*
*
*
2
<
*
*
*
3, 1’

+
*
*
*
4, 2’

+
<
*
*
*
3’

Instance
4’

+
Instance’
1', 3
2', 4
DG for Multiply
Structural Pipelining
1
*
2
*
3
4
0
1
2
3
4
0
1
2
1
2
3
4
Reference:
Devadas, S.; Newton, A.R.
Algorithms for hardware allocation in data path synthesis.
IEEE Transactions on ComputerAided Design of Integrated Circuits and Systems, July 1989, Vol.8, (no.7):76881.
Local Search
Cost function
?
Solution space
State {r:} (configuration  a set of atomic position )
weight eE({r:])/K BT Boltzmann distribution
E({r:]): energy of configuration
KB: Boltzmann constant
T: temperature
Low temperature limit ??
Physical System
State (configuration)
Energy
Ground State
Rapid Quenching
Careful Annealing
Optimization Problem
Solution
Cost Function
Optimal Solution
Iteration Improvement
Simulated Annealing
1. Get an initial solution S
2. Get an initial temperature T > 0
3. While not yet 'frozen' do the following:
3.1 For 1 i L, do the following:
3.1.1 Pick a random neighbor S'of S
3.1.2 Let =cost(S')  cost(S)
3.1.3 If 0 (downhill move) set S = S'
3.1.4 If >0 (uphill move)
set S=S' with probability e/T
3.2 Set T = rT (reduce temperature)
4. Return S