Download presentation
Presentation is loading. Please wait.
Published byJan-Erik Abrahamsson Modified over 5 years ago
1
“Rate-Optimal” Resource-Constrained Software Pipelining
5/26/2019 \course\cpeg421-08s\Topic-7a.ppt
2
Objectives Establish good bounds
Help compiler writers Help architects Study pragmatic issues when implemented as an option of compilers Study its payoffs 5/26/2019 \course\cpeg421-08s\Topic-7a.ppt
3
A Motivating Example for i = 0 to n do 0: a [i] = X + d [i - 2];
1: b [i] = a [i] * F + f [i - 2] + e [i - 2]; 2: c [i] = Y - b [i]; 3: d [i] = 2 * c [i]; 4: e [i] = X - b [i]; 5: f [i] = Y + b [i] end 5/26/2019 \course\cpeg421-08s\Topic-7a.ppt
4
Assume all statements have a delay = 1
2 L: for ( i = 0; i < n; i ++) { 3 S : a [i] = X + d [i - 2]; S : b [i] = a [i] * F + f [i - 2] + e [i - 2]; 1 S : c [i] = Y - b [i]; 1 2 2 S : d [i] = 2 * c [i]; 3 2 2 S : e [i] = X - b [i]; 4 4 5 S : f [i] = Y + b [i] 5 } Data Dependence Graph Program Representation Assume all statements have a delay = 1 5/26/2019 \course\cpeg421-08s\Topic-7a.ppt
5
Question How fast can L run (I.e.optimal computation rate) without resource constraints? How many FUs it needs minimally to achieve the optimal rate? 5/26/2019 \course\cpeg421-08s\Topic-7a.ppt
6
. Schedule A : # of FUs = 4 Schedule A: t (i, Sj) = 2i + tsj where:
ts2 = ts4 = ts5 = 2 ts3 = 3 iter #1 #2 #3 . . . S 1 S 1 2 S , S , S S 2 4 5 3 S S 3 1 4 S , S , S S 2 4 5 5 S S 3 1 6 S , S , S 2 4 5 7 S . 3 Schedule A : # of FUs = 4 5/26/2019 \course\cpeg421-08s\Topic-7a.ppt
7
Can we do better? 5/26/2019 \course\cpeg421-08s\Topic-7a.ppt
8
. Schedule B : # of FUs = 3 Schedule B : t (i, Sj) = 2i + tsj where:
ts2 = ts4 = 2 ts3 = ts5 = 3 iter #1 #2 #3 . . . S 1 S 1 2 S , S S 2 4 3 S S S 3, 5 1 4 S , S S 2 4 5 S S S 3, 5 1 6 S , S 2 4 7 S S . 3, 5 Schedule B : # of FUs = 3 5/26/2019 \course\cpeg421-08s\Topic-7a.ppt
9
Problem Statements Assumptions: homogeneous function units
Problem 0: Given a loop L, determine a “rate-optimal” schedule for L which uses minimum # of FUs. Problem I (FIxed Rate SofTware Pipelining with minimum Resource - FIRST): Given a loop L and a fixed initiation rate determine a schedule for L which uses minimum # of FUs. Problem II (REsource Constrained SofTware Pipelining - REST) Given a loop L and the # of Fus, determine an optimal schedule which can run under the given resource constraints. 5/26/2019 \course\cpeg421-08s\Topic-7a.ppt
10
Problem Formulation of FIRST
How to formulate resource constraints into a linear form? 5/26/2019 \course\cpeg421-08s\Topic-7a.ppt
11
all dependence constraints R is the maximum width
R = Max (width) Min R Subject to: all dependence constraints R is the maximum width for a fixed rate (or period) The SWP kernel: --- The “frustum” 5/26/2019 \course\cpeg421-08s\Topic-7a.ppt
12
Min (max ari) . R Frustum A Now R = max ari r [ 0, II - 1]
time r . 1 2 . . . N-1 3 II-1 Min (max ari) R Frustum A Contribution of node i to step r’s resource requirement Now R = max ari r [ 0, II - 1] 5/26/2019 \course\cpeg421-08s\Topic-7a.ppt
13
FIRST: A Linear Programming Formulation Example
a00 a01 a02 a03 a04 a05 a10 a11 a12 a13 a14 a15 So for node I: ti = ki II + (aoi , a1i ) * 1 Where ari = 1 means node i start at step r = 0 otherwise 5/26/2019 \course\cpeg421-08s\Topic-7a.ppt
14
FIRST: A Linear Programming Formulation
Minimize R Subject to R: Max T T = T Periodic Dependence Constraints and are integers 5/26/2019 \course\cpeg421-08s\Topic-7a.ppt
15
Example Revisited . . . . . Min R R - ( a + a + a + a + a + a ) ³ R -
Subjected to: R - ( a + a + a + a + a + a ) 00 01 02 03 04 05 R - ( a + a + a + a + a + a ) 10 11 12 13 14 15 2 × k + × a + 1 × a = t 00 10 2 × k 1 + × a + 1 × a = t 1 01 11 . 2 × k + × a + 1 × a = t 5 05 15 5 a + a = 1 00 10 a + a = 1 01 11 . a + a = 1 05 15 t - t . 1 1 . t - t 1 4 - 3 t - t 1 5 - 3 . t , k , a 1 i ri 5/26/2019 \course\cpeg421-08s\Topic-7a.ppt
16
Solution so, # of FUs = 3! Schedule C t(i, s) = 2i + ts where t0 = 0
5/26/2019 \course\cpeg421-08s\Topic-7a.ppt
17
Linear Programming A Linear Program is a problem that can be expressed in the following form: minimize cx subject to Ax = b x >= 0 where x: vector of variables to be solved A: matrix of known coefficients c, b: vectors of known coefficients cx: it is called the objective function Ax=b is called the constraints 5/26/2019 \course\cpeg421-08s\Topic-7a.ppt
18
Linear Programming “programming” actually means “planning” here.
Importance of LP many applications the existence of good general-purpose techniques for finding optimal solutions 5/26/2019 \course\cpeg421-08s\Topic-7a.ppt
19
Integer Linear Programming (ILP)
Integer programming have proved valuable for modeling many and diverse types of problems in : planning, routing, scheduling, assignment, and design. Industry applications: transportation, energy, telecommunications, and manufacturing 5/26/2019 \course\cpeg421-08s\Topic-7a.ppt
20
Integer Linear Programming
Classification: mixed integer (part of variables) pure integer (all variables) zero-one (only takes 0 or 1) Much harder to solve Many existing tools and product solve the LP/ILP problem and get optimal solution help to model the problem, and then solve the problem 5/26/2019 \course\cpeg421-08s\Topic-7a.ppt
21
How to handle cases where di 1 for node i
Quiz How to handle cases where di for node i ? >= 5/26/2019 \course\cpeg421-08s\Topic-7a.ppt
22
a((r - 1)%II)i The “Trick”
At time step r, the # of FUs required Contributed by node i {Started at steps in [0, (t + di-1)%II]} a((r - 1)%II)i Note: if actor i requires a FU at time r or 0 otherwise. So objective function becomes: Max Min 5/26/2019 \course\cpeg421-08s\Topic-7a.ppt
23
How to extend the FIRST formulation to heterogeneous function units?
5/26/2019 \course\cpeg421-08s\Topic-7a.ppt
24
Heterogeneous Function Units
Solution Hints: “weighted Sum”! For FU of type k: Mk = max " r Î [ , II - 1 ] and so, the objective should be min Ck Mk Where h is the total # of FU types Mk - 0 FU(i) = k " k Î [ , h - 1 ], " r Î [ , II - 1 ] 5/26/2019 \course\cpeg421-08s\Topic-7a.ppt
25
Resource - constraint rate-optimal software pipelining problem
Solution of the REST Resource - constraint rate-optimal software pipelining problem 5/26/2019 \course\cpeg421-08s\Topic-7a.ppt
26
Hints Based on scheme for “FIRST” and play “trial-and improve”
5/26/2019 \course\cpeg421-08s\Topic-7a.ppt
27
Solution Space for REST
MII = max { RecMII, ResMII} 5/26/2019 \course\cpeg421-08s\Topic-7a.ppt
28
MII = max {RecMII, ResMII }
Note: The bounds of initiation interval 1. Loop-carried dependence constraints: 2. Resource constraints As a result: RecMII = Max cycles C d(C) m(C) ResMII = # of nodes # of FUs MII = max {RecMII, ResMII } 5/26/2019 \course\cpeg421-08s\Topic-7a.ppt
29
Other Work Extend the technique to “more benchmarks” and establish “bounds” Extend the framework to include register constraints Extend the model for pipelined architectures (with structural “hazards”) Extend the model to consider superscalar and multithreaded with dynamic scheduling support. 5/26/2019 \course\cpeg421-08s\Topic-7a.ppt
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.