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.
Note: Several slides in this Lecture are fromProf. Miodrag Potkonjak, UCLA CS
Techniques Well Understood and Mature
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 (*)
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
*
*


+
+
<
*
*
*
Step 2Cstep 1
Cstep 2
Cstep 3
1/2
Cstep 4
1/3
Time Frames
0
1
1
2
2
3
3
4
4
Step 31
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
Conditional StatementsForce(i) = DG(i) * x(i)
DG(i) ~ Current Distribution Graph value
x(i) ~ Change in operation’s probability
Self Force(j) = [Force(i)]
Cstep 2
*
*
*
Cstep 3


+
+
<
1/2
*
Cstep 4
*
*
1/3
1
0
1
2
3
4
2
3
4
DG for Multiply
Example
*
*
*
*
+
+
<
*
*
Predecessor & Successor ForcesForce (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
1
s
0
1
2
d
2
3
3
d
d
4
4
Storage distribution for S
5
ASAP Lifetime
MAX Lifetime
ALAP Lifetime
Minimization of Register CostsForce Directed
7 registers minimum
5 registers minimum
Minimization of Register Costs( contd.)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
PipeliningReference:
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.
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