phased scheduling of stream programs michal karczmarek, william thies and saman amarasinghe mit lcs
Post on 20-Dec-2015
215 views
TRANSCRIPT
![Page 1: Phased Scheduling of Stream Programs Michal Karczmarek, William Thies and Saman Amarasinghe MIT LCS](https://reader036.vdocuments.us/reader036/viewer/2022062516/56649d435503460f94a1ecb9/html5/thumbnails/1.jpg)
Phased Schedulingof Stream Programs
Michal Karczmarek, William Thies
and Saman Amarasinghe
MIT LCS
![Page 2: Phased Scheduling of Stream Programs Michal Karczmarek, William Thies and Saman Amarasinghe MIT LCS](https://reader036.vdocuments.us/reader036/viewer/2022062516/56649d435503460f94a1ecb9/html5/thumbnails/2.jpg)
Streaming Application Domain
Based on audio, video and data streams Increasingly prevalent
Embedded systems Cell phones, handheld computers, etc.
Desktop applications Streaming media Software radio Real-time encryption
High-performance servers Software Routers (ex. Click) Cell phone base stations HDTV editing consoles
2
![Page 3: Phased Scheduling of Stream Programs Michal Karczmarek, William Thies and Saman Amarasinghe MIT LCS](https://reader036.vdocuments.us/reader036/viewer/2022062516/56649d435503460f94a1ecb9/html5/thumbnails/3.jpg)
Properties of Stream Programs
A large (possibly infinite) amount of data Limited lifespan of each data item Little processing of each data item
A regular, static computation pattern Stream program structure is relatively constant A lot of opportunities for compiler
optimizations
3
![Page 4: Phased Scheduling of Stream Programs Michal Karczmarek, William Thies and Saman Amarasinghe MIT LCS](https://reader036.vdocuments.us/reader036/viewer/2022062516/56649d435503460f94a1ecb9/html5/thumbnails/4.jpg)
StreamIt Language
Streaming Language from MIT LCS Similar to Synchronous Data Flow
(SDF) Provides hierarchy & structure Four Structures:
Filter Pipeline SplitJoin FeedbackLoop
All Structures have Single-Input Channel Single-Output Channel
Filters allow ‘peeking’ – looking at items which are not consumed
Splitter
LPF
CClip
ACorr
Sink
Joiner
Source
LPF
HPF
Compress
LPF
HPF
Compress
LPF
HPF
Compress
LPF
HPF
Compress
4
![Page 5: Phased Scheduling of Stream Programs Michal Karczmarek, William Thies and Saman Amarasinghe MIT LCS](https://reader036.vdocuments.us/reader036/viewer/2022062516/56649d435503460f94a1ecb9/html5/thumbnails/5.jpg)
The Contributions
New scheduling technique called Phased Scheduling
Small buffer sizes for hierarchical programs Fine grained control over schedule size vs buffer
size tradeoff Allows for separate compilation by always
avoiding deadlock Performs initialization for peeking Filters
5
![Page 6: Phased Scheduling of Stream Programs Michal Karczmarek, William Thies and Saman Amarasinghe MIT LCS](https://reader036.vdocuments.us/reader036/viewer/2022062516/56649d435503460f94a1ecb9/html5/thumbnails/6.jpg)
Overview
General Stream Concepts StreamIt Details Program Steady State and Initialization Single Appearance and Pull Scheduling Phased Scheduling
Minimal Latency
Results Related Work and Conclusion
6
![Page 7: Phased Scheduling of Stream Programs Michal Karczmarek, William Thies and Saman Amarasinghe MIT LCS](https://reader036.vdocuments.us/reader036/viewer/2022062516/56649d435503460f94a1ecb9/html5/thumbnails/7.jpg)
Stream Programs
Consist of Filters and Channels Filters perform computation Channels act as FIFO queues
for data between Filters
filter
filter
filter
filter
7
![Page 8: Phased Scheduling of Stream Programs Michal Karczmarek, William Thies and Saman Amarasinghe MIT LCS](https://reader036.vdocuments.us/reader036/viewer/2022062516/56649d435503460f94a1ecb9/html5/thumbnails/8.jpg)
Filters
Execute a work function which: Consumes data from their input Produces data to their output
Filters consume and produce constant amount of data on every execution of the work function Rates are known at compilation time
Filter executions are atomic
filter
8
![Page 9: Phased Scheduling of Stream Programs Michal Karczmarek, William Thies and Saman Amarasinghe MIT LCS](https://reader036.vdocuments.us/reader036/viewer/2022062516/56649d435503460f94a1ecb9/html5/thumbnails/9.jpg)
Stream Program Schedule
Describes the order in which filters are executed
Needs to manage grossly mismatched rates between filters
Manages data buffered up in channels between filters
Controls latency of data processing
9
![Page 10: Phased Scheduling of Stream Programs Michal Karczmarek, William Thies and Saman Amarasinghe MIT LCS](https://reader036.vdocuments.us/reader036/viewer/2022062516/56649d435503460f94a1ecb9/html5/thumbnails/10.jpg)
Overview
General Stream Concepts StreamIt Details Program Steady State and Initialization Single Appearance and Pull Scheduling Phased Scheduling
Minimal Latency
Results Related Work and Conclusion
10
![Page 11: Phased Scheduling of Stream Programs Michal Karczmarek, William Thies and Saman Amarasinghe MIT LCS](https://reader036.vdocuments.us/reader036/viewer/2022062516/56649d435503460f94a1ecb9/html5/thumbnails/11.jpg)
StreamIt - Filter
Performs the computation Consumes pop data items Produces push data items Inspects peek data items
peek, pop
push
11
![Page 12: Phased Scheduling of Stream Programs Michal Karczmarek, William Thies and Saman Amarasinghe MIT LCS](https://reader036.vdocuments.us/reader036/viewer/2022062516/56649d435503460f94a1ecb9/html5/thumbnails/12.jpg)
StreamIt - Filter
Example: FIR filter
peek = 3 pop = 1
FIR
push = 1
12
![Page 13: Phased Scheduling of Stream Programs Michal Karczmarek, William Thies and Saman Amarasinghe MIT LCS](https://reader036.vdocuments.us/reader036/viewer/2022062516/56649d435503460f94a1ecb9/html5/thumbnails/13.jpg)
StreamIt - Filter
Example: FIR filter Inspects 3 data items
peek = 3 pop = 1
FIR
push = 1
13
![Page 14: Phased Scheduling of Stream Programs Michal Karczmarek, William Thies and Saman Amarasinghe MIT LCS](https://reader036.vdocuments.us/reader036/viewer/2022062516/56649d435503460f94a1ecb9/html5/thumbnails/14.jpg)
StreamIt - Filter
Example: FIR filter Inspects 3 data items Consumes 1 data item
peek = 3 pop = 1
FIR
push = 1
14
![Page 15: Phased Scheduling of Stream Programs Michal Karczmarek, William Thies and Saman Amarasinghe MIT LCS](https://reader036.vdocuments.us/reader036/viewer/2022062516/56649d435503460f94a1ecb9/html5/thumbnails/15.jpg)
StreamIt - Filter
Example: FIR filter Inspects 3 data items Consumes 1 data item Produces 1 data item
peek = 3 pop = 1
FIR
push = 1
15
![Page 16: Phased Scheduling of Stream Programs Michal Karczmarek, William Thies and Saman Amarasinghe MIT LCS](https://reader036.vdocuments.us/reader036/viewer/2022062516/56649d435503460f94a1ecb9/html5/thumbnails/16.jpg)
StreamIt - Filter
Example: FIR filter Inspects 3 data items Consumes 1 data item Produces 1 data item
peek = 3 pop = 1
FIR
push = 1
16
![Page 17: Phased Scheduling of Stream Programs Michal Karczmarek, William Thies and Saman Amarasinghe MIT LCS](https://reader036.vdocuments.us/reader036/viewer/2022062516/56649d435503460f94a1ecb9/html5/thumbnails/17.jpg)
StreamIt - Filter
Example: FIR filter Inspects 3 data items Consumes 1 data item Produces 1 data item And again…
peek = 3 pop = 1
FIR
push = 1
17
![Page 18: Phased Scheduling of Stream Programs Michal Karczmarek, William Thies and Saman Amarasinghe MIT LCS](https://reader036.vdocuments.us/reader036/viewer/2022062516/56649d435503460f94a1ecb9/html5/thumbnails/18.jpg)
StreamIt - Filter
Example: FIR filter Inspects 3 data items Consumes 1 data item Produces 1 data item And again…
peek = 3 pop = 1
FIR
push = 1
18
![Page 19: Phased Scheduling of Stream Programs Michal Karczmarek, William Thies and Saman Amarasinghe MIT LCS](https://reader036.vdocuments.us/reader036/viewer/2022062516/56649d435503460f94a1ecb9/html5/thumbnails/19.jpg)
StreamIt - Filter
Example: FIR filter Inspects 3 data items Consumes 1 data item Produces 1 data item And again…
peek = 3 pop = 1
FIR
push = 1
19
![Page 20: Phased Scheduling of Stream Programs Michal Karczmarek, William Thies and Saman Amarasinghe MIT LCS](https://reader036.vdocuments.us/reader036/viewer/2022062516/56649d435503460f94a1ecb9/html5/thumbnails/20.jpg)
StreamIt - Filter
Example: FIR filter Inspects 3 data items Consumes 1 data item Produces 1 data item And again…
peek = 3 pop = 1
FIR
push = 1
20
![Page 21: Phased Scheduling of Stream Programs Michal Karczmarek, William Thies and Saman Amarasinghe MIT LCS](https://reader036.vdocuments.us/reader036/viewer/2022062516/56649d435503460f94a1ecb9/html5/thumbnails/21.jpg)
StreamIt - Filter
Example: FIR filter Inspects 3 data items Consumes 1 data item Produces 1 data item And again…
peek = 3 pop = 1
FIR
push = 1
21
![Page 22: Phased Scheduling of Stream Programs Michal Karczmarek, William Thies and Saman Amarasinghe MIT LCS](https://reader036.vdocuments.us/reader036/viewer/2022062516/56649d435503460f94a1ecb9/html5/thumbnails/22.jpg)
StreamIt Pipeline
Connects multiple components together
Sequential (data-wise) computation
Inserts implicit buffers between them
A
B
C
22
![Page 23: Phased Scheduling of Stream Programs Michal Karczmarek, William Thies and Saman Amarasinghe MIT LCS](https://reader036.vdocuments.us/reader036/viewer/2022062516/56649d435503460f94a1ecb9/html5/thumbnails/23.jpg)
StreamIt SplitJoin
Also connects several components together
Parallel computation construct
Allows for computation of same data (DUPLICATE splitter) or different data (ROUND_ROBIN splitter)
BA
splitter
joiner
23
![Page 24: Phased Scheduling of Stream Programs Michal Karczmarek, William Thies and Saman Amarasinghe MIT LCS](https://reader036.vdocuments.us/reader036/viewer/2022062516/56649d435503460f94a1ecb9/html5/thumbnails/24.jpg)
StreamIt FeedbackLoop
ONLY structure to allow data cycles
Needs initialization on feedbackPath
Amount of data on feedbackPath is delay
B L
splitter
joiner
delay
24
![Page 25: Phased Scheduling of Stream Programs Michal Karczmarek, William Thies and Saman Amarasinghe MIT LCS](https://reader036.vdocuments.us/reader036/viewer/2022062516/56649d435503460f94a1ecb9/html5/thumbnails/25.jpg)
Overview
General Stream Concepts StreamIt Details Program Steady State and Initialization Single Appearance and Pull Scheduling Phased Scheduling
Minimal Latency
Results Related Work and Conclusion
25
![Page 26: Phased Scheduling of Stream Programs Michal Karczmarek, William Thies and Saman Amarasinghe MIT LCS](https://reader036.vdocuments.us/reader036/viewer/2022062516/56649d435503460f94a1ecb9/html5/thumbnails/26.jpg)
Scheduling – Steady State
Every valid stream graph has a Steady State Steady State does not change the amount of
data buffered between components Steady State can be executed repeatedly
forever without growing buffers
26
![Page 27: Phased Scheduling of Stream Programs Michal Karczmarek, William Thies and Saman Amarasinghe MIT LCS](https://reader036.vdocuments.us/reader036/viewer/2022062516/56649d435503460f94a1ecb9/html5/thumbnails/27.jpg)
Steady State Example
3:2 Rate Converter First filter (A) upsamples by
factor of 3 Second filter (B)
downsamples by factor of 2
pop = 1
A
push = 3
pop = 2
B
push = 1
27
![Page 28: Phased Scheduling of Stream Programs Michal Karczmarek, William Thies and Saman Amarasinghe MIT LCS](https://reader036.vdocuments.us/reader036/viewer/2022062516/56649d435503460f94a1ecb9/html5/thumbnails/28.jpg)
Steady State Example
A executes 2 times pushes 2 * 3 = 6 items
B executes 3 times pops 3 * 2 = 6 items
Number of data items stored between Filters does not change
pop = 1
A
push = 3
pop = 2
B
push = 1
2 *
3 *
28
![Page 29: Phased Scheduling of Stream Programs Michal Karczmarek, William Thies and Saman Amarasinghe MIT LCS](https://reader036.vdocuments.us/reader036/viewer/2022062516/56649d435503460f94a1ecb9/html5/thumbnails/29.jpg)
Steady State Example
3:2 Rate Converter First filter (A) upsamples by
factor of 3 Second filter (B) downsamples
by factor of two Schedule:
pop = 1
A
push = 3
pop = 2
B
push = 1
2
0
0
29
![Page 30: Phased Scheduling of Stream Programs Michal Karczmarek, William Thies and Saman Amarasinghe MIT LCS](https://reader036.vdocuments.us/reader036/viewer/2022062516/56649d435503460f94a1ecb9/html5/thumbnails/30.jpg)
Steady State Example
3:2 Rate Converter First filter (A) upsamples by
factor of 3 Second filter (B) downsamples
by factor of two Schedule:
A
pop = 1
A
push = 3
pop = 2
B
push = 1
2
0
0
30
![Page 31: Phased Scheduling of Stream Programs Michal Karczmarek, William Thies and Saman Amarasinghe MIT LCS](https://reader036.vdocuments.us/reader036/viewer/2022062516/56649d435503460f94a1ecb9/html5/thumbnails/31.jpg)
Steady State Example
3:2 Rate Converter First filter (A) upsamples by
factor of 3 Second filter (B) downsamples
by factor of two Schedule:
A
pop = 1
A
push = 3
pop = 2
B
push = 1
1
0
0
31
![Page 32: Phased Scheduling of Stream Programs Michal Karczmarek, William Thies and Saman Amarasinghe MIT LCS](https://reader036.vdocuments.us/reader036/viewer/2022062516/56649d435503460f94a1ecb9/html5/thumbnails/32.jpg)
Steady State Example
3:2 Rate Converter First filter (A) upsamples by
factor of 3 Second filter (B) downsamples
by factor of two Schedule:
A
pop = 1
A
push = 3
pop = 2
B
push = 1
1
3
0
32
![Page 33: Phased Scheduling of Stream Programs Michal Karczmarek, William Thies and Saman Amarasinghe MIT LCS](https://reader036.vdocuments.us/reader036/viewer/2022062516/56649d435503460f94a1ecb9/html5/thumbnails/33.jpg)
Steady State Example
3:2 Rate Converter First filter (A) upsamples by
factor of 3 Second filter (B) downsamples
by factor of two Schedule:
AA
pop = 1
A
push = 3
pop = 2
B
push = 1
1
3
0
33
![Page 34: Phased Scheduling of Stream Programs Michal Karczmarek, William Thies and Saman Amarasinghe MIT LCS](https://reader036.vdocuments.us/reader036/viewer/2022062516/56649d435503460f94a1ecb9/html5/thumbnails/34.jpg)
Steady State Example
3:2 Rate Converter First filter (A) upsamples by
factor of 3 Second filter (B) downsamples
by factor of two Schedule:
AA
pop = 1
A
push = 3
pop = 2
B
push = 1
0
3
0
34
![Page 35: Phased Scheduling of Stream Programs Michal Karczmarek, William Thies and Saman Amarasinghe MIT LCS](https://reader036.vdocuments.us/reader036/viewer/2022062516/56649d435503460f94a1ecb9/html5/thumbnails/35.jpg)
Steady State Example
3:2 Rate Converter First filter (A) upsamples by
factor of 3 Second filter (B) downsamples
by factor of two Schedule:
AA
pop = 1
A
push = 3
pop = 2
B
push = 1
0
6
0
35
![Page 36: Phased Scheduling of Stream Programs Michal Karczmarek, William Thies and Saman Amarasinghe MIT LCS](https://reader036.vdocuments.us/reader036/viewer/2022062516/56649d435503460f94a1ecb9/html5/thumbnails/36.jpg)
Steady State Example
3:2 Rate Converter First filter (A) upsamples by
factor of 3 Second filter (B) downsamples
by factor of two Schedule:
AAB
pop = 1
A
push = 3
pop = 2
B
push = 1
0
6
0
36
![Page 37: Phased Scheduling of Stream Programs Michal Karczmarek, William Thies and Saman Amarasinghe MIT LCS](https://reader036.vdocuments.us/reader036/viewer/2022062516/56649d435503460f94a1ecb9/html5/thumbnails/37.jpg)
Steady State Example
3:2 Rate Converter First filter (A) upsamples by
factor of 3 Second filter (B) downsamples
by factor of two Schedule:
AAB
pop = 1
A
push = 3
pop = 2
B
push = 1
0
4
0
37
![Page 38: Phased Scheduling of Stream Programs Michal Karczmarek, William Thies and Saman Amarasinghe MIT LCS](https://reader036.vdocuments.us/reader036/viewer/2022062516/56649d435503460f94a1ecb9/html5/thumbnails/38.jpg)
Steady State Example
3:2 Rate Converter First filter (A) upsamples by
factor of 3 Second filter (B) downsamples
by factor of two Schedule:
AAB
pop = 1
A
push = 3
pop = 2
B
push = 1
0
4
1
38
![Page 39: Phased Scheduling of Stream Programs Michal Karczmarek, William Thies and Saman Amarasinghe MIT LCS](https://reader036.vdocuments.us/reader036/viewer/2022062516/56649d435503460f94a1ecb9/html5/thumbnails/39.jpg)
Steady State Example
3:2 Rate Converter First filter (A) upsamples by
factor of 3 Second filter (B) downsamples
by factor of two Schedule:
AABB
pop = 1
A
push = 3
pop = 2
B
push = 1
0
4
1
39
![Page 40: Phased Scheduling of Stream Programs Michal Karczmarek, William Thies and Saman Amarasinghe MIT LCS](https://reader036.vdocuments.us/reader036/viewer/2022062516/56649d435503460f94a1ecb9/html5/thumbnails/40.jpg)
Steady State Example
3:2 Rate Converter First filter (A) upsamples by
factor of 3 Second filter (B) downsamples
by factor of two Schedule:
AABB
pop = 1
A
push = 3
pop = 2
B
push = 1
0
2
1
40
![Page 41: Phased Scheduling of Stream Programs Michal Karczmarek, William Thies and Saman Amarasinghe MIT LCS](https://reader036.vdocuments.us/reader036/viewer/2022062516/56649d435503460f94a1ecb9/html5/thumbnails/41.jpg)
Steady State Example
3:2 Rate Converter First filter (A) upsamples by
factor of 3 Second filter (B) downsamples
by factor of two Schedule:
AABB
pop = 1
A
push = 3
pop = 2
B
push = 1
0
2
2
41
![Page 42: Phased Scheduling of Stream Programs Michal Karczmarek, William Thies and Saman Amarasinghe MIT LCS](https://reader036.vdocuments.us/reader036/viewer/2022062516/56649d435503460f94a1ecb9/html5/thumbnails/42.jpg)
Steady State Example
3:2 Rate Converter First filter (A) upsamples by
factor of 3 Second filter (B) downsamples
by factor of two Schedule:
AABBB
pop = 1
A
push = 3
pop = 2
B
push = 1
0
2
2
42
![Page 43: Phased Scheduling of Stream Programs Michal Karczmarek, William Thies and Saman Amarasinghe MIT LCS](https://reader036.vdocuments.us/reader036/viewer/2022062516/56649d435503460f94a1ecb9/html5/thumbnails/43.jpg)
Steady State Example
3:2 Rate Converter First filter (A) upsamples by
factor of 3 Second filter (B) downsamples
by factor of two Schedule:
AABBB
pop = 1
A
push = 3
pop = 2
B
push = 1
0
0
2
43
![Page 44: Phased Scheduling of Stream Programs Michal Karczmarek, William Thies and Saman Amarasinghe MIT LCS](https://reader036.vdocuments.us/reader036/viewer/2022062516/56649d435503460f94a1ecb9/html5/thumbnails/44.jpg)
Steady State Example
3:2 Rate Converter First filter (A) upsamples by
factor of 3 Second filter (B) downsamples
by factor of two Schedule:
AABBB
pop = 1
A
push = 3
pop = 2
B
push = 1
0
0
3
44
![Page 45: Phased Scheduling of Stream Programs Michal Karczmarek, William Thies and Saman Amarasinghe MIT LCS](https://reader036.vdocuments.us/reader036/viewer/2022062516/56649d435503460f94a1ecb9/html5/thumbnails/45.jpg)
Steady State Example
3:2 Rate Converter First filter (A) upsamples by
factor of 3 Second filter (B) downsamples
by factor of two Schedule:
AABBB
pop = 1
A
push = 3
pop = 2
B
push = 1
0
0
3
45
![Page 46: Phased Scheduling of Stream Programs Michal Karczmarek, William Thies and Saman Amarasinghe MIT LCS](https://reader036.vdocuments.us/reader036/viewer/2022062516/56649d435503460f94a1ecb9/html5/thumbnails/46.jpg)
Steady State Example
3:2 Rate Converter First filter (A) upsamples by
factor of 3 Second filter (B) downsamples
by factor of two Schedule:
AABBB A
pop = 1
A
push = 3
pop = 2
B
push = 1
2
0
0
46
![Page 47: Phased Scheduling of Stream Programs Michal Karczmarek, William Thies and Saman Amarasinghe MIT LCS](https://reader036.vdocuments.us/reader036/viewer/2022062516/56649d435503460f94a1ecb9/html5/thumbnails/47.jpg)
Steady State Example
3:2 Rate Converter First filter (A) upsamples by
factor of 3 Second filter (B) downsamples
by factor of two Schedule:
AABBB A
pop = 1
A
push = 3
pop = 2
B
push = 1
1
0
0
47
![Page 48: Phased Scheduling of Stream Programs Michal Karczmarek, William Thies and Saman Amarasinghe MIT LCS](https://reader036.vdocuments.us/reader036/viewer/2022062516/56649d435503460f94a1ecb9/html5/thumbnails/48.jpg)
Steady State Example
3:2 Rate Converter First filter (A) upsamples by
factor of 3 Second filter (B) downsamples
by factor of two Schedule:
AABBB A
pop = 1
A
push = 3
pop = 2
B
push = 1
1
3
0
48
![Page 49: Phased Scheduling of Stream Programs Michal Karczmarek, William Thies and Saman Amarasinghe MIT LCS](https://reader036.vdocuments.us/reader036/viewer/2022062516/56649d435503460f94a1ecb9/html5/thumbnails/49.jpg)
Steady State Example
3:2 Rate Converter First filter (A) upsamples by
factor of 3 Second filter (B) downsamples
by factor of two Schedule:
AABBB AB
pop = 1
A
push = 3
pop = 2
B
push = 1
1
3
0
49
![Page 50: Phased Scheduling of Stream Programs Michal Karczmarek, William Thies and Saman Amarasinghe MIT LCS](https://reader036.vdocuments.us/reader036/viewer/2022062516/56649d435503460f94a1ecb9/html5/thumbnails/50.jpg)
Steady State Example
3:2 Rate Converter First filter (A) upsamples by
factor of 3 Second filter (B) downsamples
by factor of two Schedule:
AABBB AB
pop = 1
A
push = 3
pop = 2
B
push = 1
1
1
0
50
![Page 51: Phased Scheduling of Stream Programs Michal Karczmarek, William Thies and Saman Amarasinghe MIT LCS](https://reader036.vdocuments.us/reader036/viewer/2022062516/56649d435503460f94a1ecb9/html5/thumbnails/51.jpg)
Steady State Example
3:2 Rate Converter First filter (A) upsamples by
factor of 3 Second filter (B) downsamples
by factor of two Schedule:
AABBB AB
pop = 1
A
push = 3
pop = 2
B
push = 1
1
1
1
51
![Page 52: Phased Scheduling of Stream Programs Michal Karczmarek, William Thies and Saman Amarasinghe MIT LCS](https://reader036.vdocuments.us/reader036/viewer/2022062516/56649d435503460f94a1ecb9/html5/thumbnails/52.jpg)
Steady State Example
3:2 Rate Converter First filter (A) upsamples by
factor of 3 Second filter (B) downsamples
by factor of two Schedule:
AABBB ABA
pop = 1
A
push = 3
pop = 2
B
push = 1
1
1
1
52
![Page 53: Phased Scheduling of Stream Programs Michal Karczmarek, William Thies and Saman Amarasinghe MIT LCS](https://reader036.vdocuments.us/reader036/viewer/2022062516/56649d435503460f94a1ecb9/html5/thumbnails/53.jpg)
Steady State Example
3:2 Rate Converter First filter (A) upsamples by
factor of 3 Second filter (B) downsamples
by factor of two Schedule:
AABBB ABA
pop = 1
A
push = 3
pop = 2
B
push = 1
0
1
1
53
![Page 54: Phased Scheduling of Stream Programs Michal Karczmarek, William Thies and Saman Amarasinghe MIT LCS](https://reader036.vdocuments.us/reader036/viewer/2022062516/56649d435503460f94a1ecb9/html5/thumbnails/54.jpg)
Steady State Example
3:2 Rate Converter First filter (A) upsamples by
factor of 3 Second filter (B) downsamples
by factor of two Schedule:
AABBB ABA
pop = 1
A
push = 3
pop = 2
B
push = 1
0
4
1
54
![Page 55: Phased Scheduling of Stream Programs Michal Karczmarek, William Thies and Saman Amarasinghe MIT LCS](https://reader036.vdocuments.us/reader036/viewer/2022062516/56649d435503460f94a1ecb9/html5/thumbnails/55.jpg)
Steady State Example
3:2 Rate Converter First filter (A) upsamples by
factor of 3 Second filter (B) downsamples
by factor of two Schedule:
AABBB ABAB
pop = 1
A
push = 3
pop = 2
B
push = 1
0
4
1
55
![Page 56: Phased Scheduling of Stream Programs Michal Karczmarek, William Thies and Saman Amarasinghe MIT LCS](https://reader036.vdocuments.us/reader036/viewer/2022062516/56649d435503460f94a1ecb9/html5/thumbnails/56.jpg)
Steady State Example
3:2 Rate Converter First filter (A) upsamples by
factor of 3 Second filter (B) downsamples
by factor of two Schedule:
AABBB ABAB
pop = 1
A
push = 3
pop = 2
B
push = 1
0
2
1
56
![Page 57: Phased Scheduling of Stream Programs Michal Karczmarek, William Thies and Saman Amarasinghe MIT LCS](https://reader036.vdocuments.us/reader036/viewer/2022062516/56649d435503460f94a1ecb9/html5/thumbnails/57.jpg)
Steady State Example
3:2 Rate Converter First filter (A) upsamples by
factor of 3 Second filter (B) downsamples
by factor of two Schedule:
AABBB ABAB
pop = 1
A
push = 3
pop = 2
B
push = 1
0
2
2
57
![Page 58: Phased Scheduling of Stream Programs Michal Karczmarek, William Thies and Saman Amarasinghe MIT LCS](https://reader036.vdocuments.us/reader036/viewer/2022062516/56649d435503460f94a1ecb9/html5/thumbnails/58.jpg)
Steady State Example
3:2 Rate Converter First filter (A) upsamples by
factor of 3 Second filter (B) downsamples
by factor of two Schedule:
AABBB ABABB
pop = 1
A
push = 3
pop = 2
B
push = 1
0
2
2
58
![Page 59: Phased Scheduling of Stream Programs Michal Karczmarek, William Thies and Saman Amarasinghe MIT LCS](https://reader036.vdocuments.us/reader036/viewer/2022062516/56649d435503460f94a1ecb9/html5/thumbnails/59.jpg)
Steady State Example
3:2 Rate Converter First filter (A) upsamples by
factor of 3 Second filter (B) downsamples
by factor of two Schedule:
AABBB ABABB
pop = 1
A
push = 3
pop = 2
B
push = 1
0
0
2
59
![Page 60: Phased Scheduling of Stream Programs Michal Karczmarek, William Thies and Saman Amarasinghe MIT LCS](https://reader036.vdocuments.us/reader036/viewer/2022062516/56649d435503460f94a1ecb9/html5/thumbnails/60.jpg)
Steady State Example
3:2 Rate Converter First filter (A) upsamples by
factor of 3 Second filter (B) downsamples
by factor of two Schedule:
AABBB ABABB
pop = 1
A
push = 3
pop = 2
B
push = 1
0
0
3
60
![Page 61: Phased Scheduling of Stream Programs Michal Karczmarek, William Thies and Saman Amarasinghe MIT LCS](https://reader036.vdocuments.us/reader036/viewer/2022062516/56649d435503460f94a1ecb9/html5/thumbnails/61.jpg)
Steady State Example
3:2 Rate Converter First filter (A) upsamples by
factor of 3 Second filter (B) downsamples
by factor of two Schedule:
AABBB ABABB
pop = 1
A
push = 3
pop = 2
B
push = 1
0
0
3
61
![Page 62: Phased Scheduling of Stream Programs Michal Karczmarek, William Thies and Saman Amarasinghe MIT LCS](https://reader036.vdocuments.us/reader036/viewer/2022062516/56649d435503460f94a1ecb9/html5/thumbnails/62.jpg)
Steady State Example - Buffers
AABBB requires 6 data items of buffer space between filters A and B
ABABB requires 4 data items of buffer space between filters A and B
pop = 1
A
push = 3
pop = 2
B
push = 1
0
0
3
62
![Page 63: Phased Scheduling of Stream Programs Michal Karczmarek, William Thies and Saman Amarasinghe MIT LCS](https://reader036.vdocuments.us/reader036/viewer/2022062516/56649d435503460f94a1ecb9/html5/thumbnails/63.jpg)
Steady State Example - Latency
AABBB – First data item output after third execution of an filter Also A already consumed 2
data items ABABB – First data item
output after second execution of an filter A consumed only 1 data item
pop = 1
A
push = 3
pop = 2
B
push = 1
0
0
3
63
![Page 64: Phased Scheduling of Stream Programs Michal Karczmarek, William Thies and Saman Amarasinghe MIT LCS](https://reader036.vdocuments.us/reader036/viewer/2022062516/56649d435503460f94a1ecb9/html5/thumbnails/64.jpg)
Initialization
Filter Peeking provides a new challenge
Just Steady State doesn’t work:
pop = 1
A
push = 3
peek = 3, pop = 2
B
push = 1
3
0
0
64
![Page 65: Phased Scheduling of Stream Programs Michal Karczmarek, William Thies and Saman Amarasinghe MIT LCS](https://reader036.vdocuments.us/reader036/viewer/2022062516/56649d435503460f94a1ecb9/html5/thumbnails/65.jpg)
Initialization
Filter Peeking provides a new challenge
Just Steady State doesn’t work: A
pop = 1
A
push = 3
peek = 3, pop = 2
B
push = 1
2
3
0
65
![Page 66: Phased Scheduling of Stream Programs Michal Karczmarek, William Thies and Saman Amarasinghe MIT LCS](https://reader036.vdocuments.us/reader036/viewer/2022062516/56649d435503460f94a1ecb9/html5/thumbnails/66.jpg)
Initialization
Filter Peeking provides a new challenge
Just Steady State doesn’t work: AA
pop = 1
A
push = 3
peek = 3, pop = 2
B
push = 1
1
6
0
66
![Page 67: Phased Scheduling of Stream Programs Michal Karczmarek, William Thies and Saman Amarasinghe MIT LCS](https://reader036.vdocuments.us/reader036/viewer/2022062516/56649d435503460f94a1ecb9/html5/thumbnails/67.jpg)
Initialization
Filter Peeking provides a new challenge
Just Steady State doesn’t work: AAB
pop = 1
A
push = 3
peek = 3, pop = 2
B
push = 1
1
4
1
67
![Page 68: Phased Scheduling of Stream Programs Michal Karczmarek, William Thies and Saman Amarasinghe MIT LCS](https://reader036.vdocuments.us/reader036/viewer/2022062516/56649d435503460f94a1ecb9/html5/thumbnails/68.jpg)
Initialization
Filter Peeking provides a new challenge
Just Steady State doesn’t work: AABB Can’t execute B again!
pop = 1
A
push = 3
peek = 3, pop = 2
B
push = 1
1
2
2
68
![Page 69: Phased Scheduling of Stream Programs Michal Karczmarek, William Thies and Saman Amarasinghe MIT LCS](https://reader036.vdocuments.us/reader036/viewer/2022062516/56649d435503460f94a1ecb9/html5/thumbnails/69.jpg)
Initialization
Filter Peeking provides a new challenge
Just Steady State doesn’t work: AABB Can’t execute B again!
Can execute A one extra time: AABB
pop = 1
A
push = 3
peek = 3, pop = 2
B
push = 1
1
2
2
69
![Page 70: Phased Scheduling of Stream Programs Michal Karczmarek, William Thies and Saman Amarasinghe MIT LCS](https://reader036.vdocuments.us/reader036/viewer/2022062516/56649d435503460f94a1ecb9/html5/thumbnails/70.jpg)
Initialization
Filter Peeking provides a new challenge
Just Steady State doesn’t work: AABB Can’t execute B again!
Can execute A one extra time: AABBA
pop = 1
A
push = 3
peek = 3, pop = 2
B
push = 1
0
5
2
70
![Page 71: Phased Scheduling of Stream Programs Michal Karczmarek, William Thies and Saman Amarasinghe MIT LCS](https://reader036.vdocuments.us/reader036/viewer/2022062516/56649d435503460f94a1ecb9/html5/thumbnails/71.jpg)
Initialization
Filter Peeking provides a new challenge
Just Steady State doesn’t work: AABB Can’t execute B again!
Can execute A one extra time: AABBAB Left 3 items between A and B!
pop = 1
A
push = 3
peek = 3, pop = 2
B
push = 1
0
3
3
71
![Page 72: Phased Scheduling of Stream Programs Michal Karczmarek, William Thies and Saman Amarasinghe MIT LCS](https://reader036.vdocuments.us/reader036/viewer/2022062516/56649d435503460f94a1ecb9/html5/thumbnails/72.jpg)
Initialization
Must have data between A and B before starting execution of Steady State Schedule
Construct two schedules: One for Initialization One for Steady State
Initialization Schedule leaves data in buffers so Steady State can execute
pop = 1
A
push = 3
peek = 3, pop = 2
B
push = 1
0
3
3
72
![Page 73: Phased Scheduling of Stream Programs Michal Karczmarek, William Thies and Saman Amarasinghe MIT LCS](https://reader036.vdocuments.us/reader036/viewer/2022062516/56649d435503460f94a1ecb9/html5/thumbnails/73.jpg)
Initialization
Initialization Schedule:
pop = 1
A
push = 3
peek = 3, pop = 2
B
push = 1
3
0
0
73
![Page 74: Phased Scheduling of Stream Programs Michal Karczmarek, William Thies and Saman Amarasinghe MIT LCS](https://reader036.vdocuments.us/reader036/viewer/2022062516/56649d435503460f94a1ecb9/html5/thumbnails/74.jpg)
Initialization
Initialization Schedule: A
pop = 1
A
push = 3
peek = 3, pop = 2
B
push = 1
2
3
0
74
![Page 75: Phased Scheduling of Stream Programs Michal Karczmarek, William Thies and Saman Amarasinghe MIT LCS](https://reader036.vdocuments.us/reader036/viewer/2022062516/56649d435503460f94a1ecb9/html5/thumbnails/75.jpg)
Initialization
Initialization Schedule: A Leave 3 items between A and B
Steady State Schedule:
pop = 1
A
push = 3
peek = 3, pop = 2
B
push = 1
2
3
0
75
![Page 76: Phased Scheduling of Stream Programs Michal Karczmarek, William Thies and Saman Amarasinghe MIT LCS](https://reader036.vdocuments.us/reader036/viewer/2022062516/56649d435503460f94a1ecb9/html5/thumbnails/76.jpg)
Initialization
Initialization Schedule: A Leave 3 items between A and B
Steady State Schedule: A
pop = 1
A
push = 3
peek = 3, pop = 2
B
push = 1
1
6
0
76
![Page 77: Phased Scheduling of Stream Programs Michal Karczmarek, William Thies and Saman Amarasinghe MIT LCS](https://reader036.vdocuments.us/reader036/viewer/2022062516/56649d435503460f94a1ecb9/html5/thumbnails/77.jpg)
Initialization
Initialization Schedule: A Leave 3 items between A and B
Steady State Schedule: AA
pop = 1
A
push = 3
peek = 3, pop = 2
B
push = 1
0
9
0
77
![Page 78: Phased Scheduling of Stream Programs Michal Karczmarek, William Thies and Saman Amarasinghe MIT LCS](https://reader036.vdocuments.us/reader036/viewer/2022062516/56649d435503460f94a1ecb9/html5/thumbnails/78.jpg)
Initialization
Initialization Schedule: A Leave 3 items between A and B
Steady State Schedule: AAB
pop = 1
A
push = 3
peek = 3, pop = 2
B
push = 1
0
7
1
78
![Page 79: Phased Scheduling of Stream Programs Michal Karczmarek, William Thies and Saman Amarasinghe MIT LCS](https://reader036.vdocuments.us/reader036/viewer/2022062516/56649d435503460f94a1ecb9/html5/thumbnails/79.jpg)
Initialization
Initialization Schedule: A Leave 3 items between A and B
Steady State Schedule: AABB
pop = 1
A
push = 3
peek = 3, pop = 2
B
push = 1
0
5
2
79
![Page 80: Phased Scheduling of Stream Programs Michal Karczmarek, William Thies and Saman Amarasinghe MIT LCS](https://reader036.vdocuments.us/reader036/viewer/2022062516/56649d435503460f94a1ecb9/html5/thumbnails/80.jpg)
Initialization
Initialization Schedule: A Leave 3 items between A and B
Steady State Schedule: AABBB
pop = 1
A
push = 3
peek = 3, pop = 2
B
push = 1
0
3
3
80
![Page 81: Phased Scheduling of Stream Programs Michal Karczmarek, William Thies and Saman Amarasinghe MIT LCS](https://reader036.vdocuments.us/reader036/viewer/2022062516/56649d435503460f94a1ecb9/html5/thumbnails/81.jpg)
Initialization
Initialization Schedule: A Leave 3 items between A and B
Steady State Schedule: AABBB Leave 3 items between A and B
pop = 1
A
push = 3
peek = 3, pop = 2
B
push = 1
0
3
3
81
![Page 82: Phased Scheduling of Stream Programs Michal Karczmarek, William Thies and Saman Amarasinghe MIT LCS](https://reader036.vdocuments.us/reader036/viewer/2022062516/56649d435503460f94a1ecb9/html5/thumbnails/82.jpg)
Overview
General Stream Concepts StreamIt Details Program Steady State and Initialization Single Appearance and Push Scheduling Phased Scheduling
Minimal Latency
Results Related Work and Conclusion
82
![Page 83: Phased Scheduling of Stream Programs Michal Karczmarek, William Thies and Saman Amarasinghe MIT LCS](https://reader036.vdocuments.us/reader036/viewer/2022062516/56649d435503460f94a1ecb9/html5/thumbnails/83.jpg)
Scheduling
Steady State tells us how many times each component needs to execute
Need to decide on an order of execution Order of execution affects
Buffer size Schedule size Latency
83
![Page 84: Phased Scheduling of Stream Programs Michal Karczmarek, William Thies and Saman Amarasinghe MIT LCS](https://reader036.vdocuments.us/reader036/viewer/2022062516/56649d435503460f94a1ecb9/html5/thumbnails/84.jpg)
Single Appearance Scheduling (SAS)
Every Filter is listed in the schedule only once
Use loop-nests to express the multiplicity of execution of Filters
Buffer size is not optimal Schedule size is minimal
84
![Page 85: Phased Scheduling of Stream Programs Michal Karczmarek, William Thies and Saman Amarasinghe MIT LCS](https://reader036.vdocuments.us/reader036/viewer/2022062516/56649d435503460f94a1ecb9/html5/thumbnails/85.jpg)
Schedule Size
Schedules can be stored in two ways Explicitly – in a schedule data structure Implicitly – as code which executes the schedule’s loop-
nests Schedule size = number of appearances of nodes
(filters and splitters/joiners) in the schedule Single appearance schedule size is same as number of
nodes in the program Other scheduling techniques can have larger size SAS schedule size is minimal: all nodes must appear in
every schedule at least once85
![Page 86: Phased Scheduling of Stream Programs Michal Karczmarek, William Thies and Saman Amarasinghe MIT LCS](https://reader036.vdocuments.us/reader036/viewer/2022062516/56649d435503460f94a1ecb9/html5/thumbnails/86.jpg)
SAS Example – Buffer Size
Example: CD-DAT CD to Digital Audio Tape rate
converter Mismatched rates cause large
number of executions in Steady State
1
A
2
3
B
2
7
C
8
7
D
5
147 *
98 *
28 *
32 *
86
![Page 87: Phased Scheduling of Stream Programs Michal Karczmarek, William Thies and Saman Amarasinghe MIT LCS](https://reader036.vdocuments.us/reader036/viewer/2022062516/56649d435503460f94a1ecb9/html5/thumbnails/87.jpg)
SAS Example – Buffer Size
Naïve SAS schedule: 147A 98B 28C 32D Required Buffer Size: 714 Unnecessarily large buffer
requirements!
294
196
224
1
A
2
3
B
2
7
C
8
7
D
5
147 *
98 *
28 *
32 *
87
![Page 88: Phased Scheduling of Stream Programs Michal Karczmarek, William Thies and Saman Amarasinghe MIT LCS](https://reader036.vdocuments.us/reader036/viewer/2022062516/56649d435503460f94a1ecb9/html5/thumbnails/88.jpg)
SAS Example – Buffer Size
Naïve SAS schedule: 147A 98B 28C 32D Required Buffer Size: 714 Unnecessarily large buffer
requirements! Optimal SAS CD-DAT schedule:
49{3A 2B} 4{7C 8D} Required Buffer size: 258
1
A
2
3
B
2
7
C
8
7
D
5
88
![Page 89: Phased Scheduling of Stream Programs Michal Karczmarek, William Thies and Saman Amarasinghe MIT LCS](https://reader036.vdocuments.us/reader036/viewer/2022062516/56649d435503460f94a1ecb9/html5/thumbnails/89.jpg)
SAS Example – Buffer Size
Naïve SAS schedule: 147A 98B 28C 32D Required Buffer Size: 714 Unnecessarily large buffer
requirements! Optimal SAS CD-DAT schedule:
49{3A 2B} 4{7C 8D} Required Buffer size: 258
1
A
2
3
B
2
7
C
8
7
D
5
6
3 *
2 *
89
![Page 90: Phased Scheduling of Stream Programs Michal Karczmarek, William Thies and Saman Amarasinghe MIT LCS](https://reader036.vdocuments.us/reader036/viewer/2022062516/56649d435503460f94a1ecb9/html5/thumbnails/90.jpg)
SAS Example – Buffer Size
Naïve SAS schedule: 147A 98B 28C 32D Required Buffer Size: 714 Unnecessarily large buffer
requirements! Optimal SAS CD-DAT schedule:
49{3A 2B} 4{7C 8D} Required Buffer size: 258
1
A
2
3
B
2
7
C
8
7
D
5
6
3 *
2 *
90
![Page 91: Phased Scheduling of Stream Programs Michal Karczmarek, William Thies and Saman Amarasinghe MIT LCS](https://reader036.vdocuments.us/reader036/viewer/2022062516/56649d435503460f94a1ecb9/html5/thumbnails/91.jpg)
SAS Example – Buffer Size
Naïve SAS schedule: 147A 98B 28C 32D Required Buffer Size: 714 Unnecessarily large buffer
requirements! Optimal SAS CD-DAT schedule:
49{3A 2B} 4{7C 8D} Required Buffer size: 258
1
A
2
3
B
2
7
C
8
7
D
5
49 * 6
91
![Page 92: Phased Scheduling of Stream Programs Michal Karczmarek, William Thies and Saman Amarasinghe MIT LCS](https://reader036.vdocuments.us/reader036/viewer/2022062516/56649d435503460f94a1ecb9/html5/thumbnails/92.jpg)
SAS Example – Buffer Size
Naïve SAS schedule: 147A 98B 28C 32D Required Buffer Size: 714 Unnecessarily large buffer
requirements! Optimal SAS CD-DAT schedule:
49{3A 2B} 4{7C 8D} Required Buffer size: 258
1
A
2
3
B
2
7
C
8
7
D
5
49 * 6
7 *
8 *
56
92
![Page 93: Phased Scheduling of Stream Programs Michal Karczmarek, William Thies and Saman Amarasinghe MIT LCS](https://reader036.vdocuments.us/reader036/viewer/2022062516/56649d435503460f94a1ecb9/html5/thumbnails/93.jpg)
SAS Example – Buffer Size
Naïve SAS schedule: 147A 98B 28C 32D Required Buffer Size: 714 Unnecessarily large buffer
requirements! Optimal SAS CD-DAT schedule:
49{3A 2B} 4{7C 8D} Required Buffer size: 258
1
A
2
3
B
2
7
C
8
7
D
5
49 * 6
7 *
8 *
56
93
![Page 94: Phased Scheduling of Stream Programs Michal Karczmarek, William Thies and Saman Amarasinghe MIT LCS](https://reader036.vdocuments.us/reader036/viewer/2022062516/56649d435503460f94a1ecb9/html5/thumbnails/94.jpg)
SAS Example – Buffer Size
Naïve SAS schedule: 147A 98B 28C 32D Required Buffer Size: 714 Unnecessarily large buffer
requirements! Optimal SAS CD-DAT schedule:
49{3A 2B} 4{7C 8D} Required Buffer size: 258
1
A
2
3
B
2
7
C
8
7
D
5
49 * 6
564 *
94
![Page 95: Phased Scheduling of Stream Programs Michal Karczmarek, William Thies and Saman Amarasinghe MIT LCS](https://reader036.vdocuments.us/reader036/viewer/2022062516/56649d435503460f94a1ecb9/html5/thumbnails/95.jpg)
SAS Example – Buffer Size
Naïve SAS schedule: 147A 98B 28C 32D Required Buffer Size: 714 Unnecessarily large buffer
requirements! Optimal SAS CD-DAT schedule:
49{3A 2B} 4{7C 8D} Required Buffer size: 258
1
A
2
3
B
2
7
C
8
7
D
5
49 * 6
564 *
196
95
![Page 96: Phased Scheduling of Stream Programs Michal Karczmarek, William Thies and Saman Amarasinghe MIT LCS](https://reader036.vdocuments.us/reader036/viewer/2022062516/56649d435503460f94a1ecb9/html5/thumbnails/96.jpg)
SAS Example – Buffer Size
Naïve SAS schedule: 147A 98B 28C 32D Required Buffer Size: 714 Unnecessarily large buffer
requirements! Optimal SAS CD-DAT schedule:
49{3A 2B} 4{7C 8D} Required Buffer size: 258
1
A
2
3
B
2
7
C
8
7
D
5
6
56
196
96
![Page 97: Phased Scheduling of Stream Programs Michal Karczmarek, William Thies and Saman Amarasinghe MIT LCS](https://reader036.vdocuments.us/reader036/viewer/2022062516/56649d435503460f94a1ecb9/html5/thumbnails/97.jpg)
Push Schedule Example – Buffer Size
Push Scheduling: Always execute the bottom-most element
possible
CD-DAT schedule: 2A B A B 2A B A B C D … A B C 2D Required Buffer Size: 26 251 entries in the schedule
Hard to implement efficiently, as schedule is VERY large
4
8
14
1
A
2
3
B
2
7
C
8
7
D
5
97
![Page 98: Phased Scheduling of Stream Programs Michal Karczmarek, William Thies and Saman Amarasinghe MIT LCS](https://reader036.vdocuments.us/reader036/viewer/2022062516/56649d435503460f94a1ecb9/html5/thumbnails/98.jpg)
SAS vs Push Schedule
Need something in between SAS and Push Scheduling
Buffer Size Schedule Size
SAS 258 4
Push Schedule 26 251
98
![Page 99: Phased Scheduling of Stream Programs Michal Karczmarek, William Thies and Saman Amarasinghe MIT LCS](https://reader036.vdocuments.us/reader036/viewer/2022062516/56649d435503460f94a1ecb9/html5/thumbnails/99.jpg)
Overview
General Stream Concepts StreamIt Details Program Steady State and Initialization Single Appearance and Pull Scheduling Phased Scheduling
Minimal Latency
Results Related Work and Conclusion
99
![Page 100: Phased Scheduling of Stream Programs Michal Karczmarek, William Thies and Saman Amarasinghe MIT LCS](https://reader036.vdocuments.us/reader036/viewer/2022062516/56649d435503460f94a1ecb9/html5/thumbnails/100.jpg)
Phased Scheduling
Idea: What if we take the naïve SAS schedule, and
divide it into n roughly equal phases? Buffer requirements would reduce roughly
by factor of n Schedule size would increase by factor of n May be OK, because buffer requirements
dominate schedule size anyway!
100
![Page 101: Phased Scheduling of Stream Programs Michal Karczmarek, William Thies and Saman Amarasinghe MIT LCS](https://reader036.vdocuments.us/reader036/viewer/2022062516/56649d435503460f94a1ecb9/html5/thumbnails/101.jpg)
Phased Scheduling Algorithm
101
CB
A
D
51 4
1 3
32
1 23
A B C D A B C D D A B C C D D D
ABCD ABC(2D) AB(2C)(3D)
(2A)(2B)(2C)(3D) AB(2C)(3D)
(3A)(3B)(4C)(6D)
ABCD ABC(2D) AB(2C)(3D)
Push Schedule
Push phases
Phased schedulemax-phase ≥ 3
(buf-size = 16)
max-phase = 2
(buf-size = 20)
max-phase = 1
(buf-size = 33)
Input stream graphSAS
![Page 102: Phased Scheduling of Stream Programs Michal Karczmarek, William Thies and Saman Amarasinghe MIT LCS](https://reader036.vdocuments.us/reader036/viewer/2022062516/56649d435503460f94a1ecb9/html5/thumbnails/102.jpg)
Phased Scheduling
Example: CD-DAT Try n = 2: Two phases are:
74A 49B 14C 16D 73A 49B 14C 16D
Total Buffer Size: 358 Small schedule increase Greater n for bigger savings
1
A
2
3
B
2
7
C
8
7
D
5
148
98
112
102
![Page 103: Phased Scheduling of Stream Programs Michal Karczmarek, William Thies and Saman Amarasinghe MIT LCS](https://reader036.vdocuments.us/reader036/viewer/2022062516/56649d435503460f94a1ecb9/html5/thumbnails/103.jpg)
Phased Scheduling
Try n = 3: Three phases are:
48A 32B 9C 10D 53A 35B 10C 11D 46A 31B 9C 11D
Total Buffer Size: 259 Basically matched best SAS result
Best SAS was 258
1
A
2
3
B
2
7
C
8
7
D
5
106
71
82
103
![Page 104: Phased Scheduling of Stream Programs Michal Karczmarek, William Thies and Saman Amarasinghe MIT LCS](https://reader036.vdocuments.us/reader036/viewer/2022062516/56649d435503460f94a1ecb9/html5/thumbnails/104.jpg)
Phased Scheduling
Try n = 28: The phases are:
6A 4B 1C 1D 5A 3B 1C 1D … 4A 3B 1C 2D
Total Buffer Size: 35 Drastically beat best SAS result
Best SAS was 258 Close to minimal amount (pull schedule)
Push schedule was 26
1
A
2
3
B
2
7
C
8
7
D
5
13
8
14
104
![Page 105: Phased Scheduling of Stream Programs Michal Karczmarek, William Thies and Saman Amarasinghe MIT LCS](https://reader036.vdocuments.us/reader036/viewer/2022062516/56649d435503460f94a1ecb9/html5/thumbnails/105.jpg)
CD-DAT Comparison:SAS vs Push vs Phased
Buffer Size Schedule Size
SAS 258 4
Push Schedule 26 251
Phased Schedule 35 52
105
![Page 106: Phased Scheduling of Stream Programs Michal Karczmarek, William Thies and Saman Amarasinghe MIT LCS](https://reader036.vdocuments.us/reader036/viewer/2022062516/56649d435503460f94a1ecb9/html5/thumbnails/106.jpg)
Phased Scheduling
Apply technique hierarchically Children have several phases
which all have to be executed Automatically supports cyclo-
static filters Children pop/push less data, so
can manage parent’s buffer sizes more efficiently
CD-DAT
CD reader
DAT
recorder
Equalizer
106
![Page 107: Phased Scheduling of Stream Programs Michal Karczmarek, William Thies and Saman Amarasinghe MIT LCS](https://reader036.vdocuments.us/reader036/viewer/2022062516/56649d435503460f94a1ecb9/html5/thumbnails/107.jpg)
Phased Scheduling
What if a Steady State of a component of a FeedbackLoop required more data than available?
Single Appearance couldn’t do separate compilation!
Phased Scheduling can provide a fine-grained schedule, which will always allow separate compilation (if possible at all)
107
![Page 108: Phased Scheduling of Stream Programs Michal Karczmarek, William Thies and Saman Amarasinghe MIT LCS](https://reader036.vdocuments.us/reader036/viewer/2022062516/56649d435503460f94a1ecb9/html5/thumbnails/108.jpg)
Overview
General Stream Concepts StreamIt Details Program Steady State and Initialization Single Appearance and Pull Scheduling Phased Scheduling
Minimal Latency
Results Related Work and Conclusion
108
![Page 109: Phased Scheduling of Stream Programs Michal Karczmarek, William Thies and Saman Amarasinghe MIT LCS](https://reader036.vdocuments.us/reader036/viewer/2022062516/56649d435503460f94a1ecb9/html5/thumbnails/109.jpg)
Minimal Latency Schedule
Every Phase consumes as few items as possible to produce at least one data item
Every Phase produces as many data items as possible
Guarantees any schedulable program will be scheduled without deadlock
Allows for separate compilation
109
![Page 110: Phased Scheduling of Stream Programs Michal Karczmarek, William Thies and Saman Amarasinghe MIT LCS](https://reader036.vdocuments.us/reader036/viewer/2022062516/56649d435503460f94a1ecb9/html5/thumbnails/110.jpg)
Minimal Latency Scheduling
Simple FeedbackLoop with a tight delay constraint
Not possible to schedule using SAS
Can schedule using Phased Scheduling Use Minimal Latency
Scheduling
3
B
5
4
L
4
2
1 1
1 5
6
delay = 10
*4
*8
*20
*5
110
![Page 111: Phased Scheduling of Stream Programs Michal Karczmarek, William Thies and Saman Amarasinghe MIT LCS](https://reader036.vdocuments.us/reader036/viewer/2022062516/56649d435503460f94a1ecb9/html5/thumbnails/111.jpg)
Minimal Latency Scheduling
Minimal Latency Phased Schedule:
3
B
5
4
L
4
2
1 1
1 5
6
delay = 10
10
0
0
0
111
![Page 112: Phased Scheduling of Stream Programs Michal Karczmarek, William Thies and Saman Amarasinghe MIT LCS](https://reader036.vdocuments.us/reader036/viewer/2022062516/56649d435503460f94a1ecb9/html5/thumbnails/112.jpg)
Minimal Latency Scheduling
Minimal Latency Phased Schedule: join 2B 5split L
3
B
5
4
L
4
2
1 1
1 5
6
delay = 10
9
1
0
0
112
![Page 113: Phased Scheduling of Stream Programs Michal Karczmarek, William Thies and Saman Amarasinghe MIT LCS](https://reader036.vdocuments.us/reader036/viewer/2022062516/56649d435503460f94a1ecb9/html5/thumbnails/113.jpg)
Minimal Latency Scheduling
Minimal Latency Phased Schedule: join 2B 5split L join 2B 5split L 3
B
5
4
L
4
2
1 1
1 5
6
delay = 10
8
2
0
0
113
![Page 114: Phased Scheduling of Stream Programs Michal Karczmarek, William Thies and Saman Amarasinghe MIT LCS](https://reader036.vdocuments.us/reader036/viewer/2022062516/56649d435503460f94a1ecb9/html5/thumbnails/114.jpg)
Minimal Latency Scheduling
Minimal Latency Phased Schedule: join 2B 5split L join 2B 5split L join 2B 5split L
3
B
5
4
L
4
2
1 1
1 5
6
delay = 10
7
3
0
0
114
![Page 115: Phased Scheduling of Stream Programs Michal Karczmarek, William Thies and Saman Amarasinghe MIT LCS](https://reader036.vdocuments.us/reader036/viewer/2022062516/56649d435503460f94a1ecb9/html5/thumbnails/115.jpg)
Minimal Latency Scheduling
Minimal Latency Phased Schedule: join 2B 5split L join 2B 5split L join 2B 5split L join 2B 5split 2L
3
B
5
4
L
4
2
1 1
1 5
6
delay = 10
10
0
0
0
115
![Page 116: Phased Scheduling of Stream Programs Michal Karczmarek, William Thies and Saman Amarasinghe MIT LCS](https://reader036.vdocuments.us/reader036/viewer/2022062516/56649d435503460f94a1ecb9/html5/thumbnails/116.jpg)
Minimal Latency Schedule
Minimal Latency Phased Schedule: join 2B 5split L join 2B 5split L join 2B 5split L join 2B 5split 2L
Can also be expressed as: 3 {join 2B 5split L} join 2B 5split 2L
Common to have repeated Phases
3
B
5
4
L
4
2
1 1
1 5
6
delay = 10
116
![Page 117: Phased Scheduling of Stream Programs Michal Karczmarek, William Thies and Saman Amarasinghe MIT LCS](https://reader036.vdocuments.us/reader036/viewer/2022062516/56649d435503460f94a1ecb9/html5/thumbnails/117.jpg)
Why not SAS?
Naïve SAS schedule 4join 8B 20split 5L: Not valid because 4join
consumes 20 data items Would like to form a loop-nest
that includes join and L But multiplicity of executions
of L and join have no common divisors
3
B
5
4
L
4
2
1 1
1 5
6
delay = 10
*4
*8
*20
*5
117
![Page 118: Phased Scheduling of Stream Programs Michal Karczmarek, William Thies and Saman Amarasinghe MIT LCS](https://reader036.vdocuments.us/reader036/viewer/2022062516/56649d435503460f94a1ecb9/html5/thumbnails/118.jpg)
Overview
General Stream Concepts StreamIt Details Program Steady State and Initialization Single Appearance and Pull Scheduling Phased Scheduling
Minimal Latency
Results Related Work and Conclusion
118
![Page 119: Phased Scheduling of Stream Programs Michal Karczmarek, William Thies and Saman Amarasinghe MIT LCS](https://reader036.vdocuments.us/reader036/viewer/2022062516/56649d435503460f94a1ecb9/html5/thumbnails/119.jpg)
Results
SAS vs Minimal Latency Used 17 applications
9 from our ASPLOS paper 2 artificial benchmarks 2 from Murthy99 Remaining 4 from our internal applications
119
![Page 120: Phased Scheduling of Stream Programs Michal Karczmarek, William Thies and Saman Amarasinghe MIT LCS](https://reader036.vdocuments.us/reader036/viewer/2022062516/56649d435503460f94a1ecb9/html5/thumbnails/120.jpg)
Results - Buffer Size
120
![Page 121: Phased Scheduling of Stream Programs Michal Karczmarek, William Thies and Saman Amarasinghe MIT LCS](https://reader036.vdocuments.us/reader036/viewer/2022062516/56649d435503460f94a1ecb9/html5/thumbnails/121.jpg)
Results – Schedule Size
121
![Page 122: Phased Scheduling of Stream Programs Michal Karczmarek, William Thies and Saman Amarasinghe MIT LCS](https://reader036.vdocuments.us/reader036/viewer/2022062516/56649d435503460f94a1ecb9/html5/thumbnails/122.jpg)
Results - Combined
122
![Page 123: Phased Scheduling of Stream Programs Michal Karczmarek, William Thies and Saman Amarasinghe MIT LCS](https://reader036.vdocuments.us/reader036/viewer/2022062516/56649d435503460f94a1ecb9/html5/thumbnails/123.jpg)
Overview
General Stream Concepts StreamIt Details Program Steady State and Initialization Single Appearance and Pull Scheduling Phased Scheduling
Minimal Latency
Results Related Work and Conclusion
123
![Page 124: Phased Scheduling of Stream Programs Michal Karczmarek, William Thies and Saman Amarasinghe MIT LCS](https://reader036.vdocuments.us/reader036/viewer/2022062516/56649d435503460f94a1ecb9/html5/thumbnails/124.jpg)
Related Work
Synchronous Data Flow (SDF) Ptolemy [Lee et al.] Many results for SAS on SDF
Memory Efficient Scheduling [Bhattacharyya97] Buffer Merging [Murthy99]
Cyclo-Static [Bilsen96] Peeking in US Navy Processing Graph Method
[Goddard2000] Languages: LUSTRE, Esterel, Signal
124
![Page 125: Phased Scheduling of Stream Programs Michal Karczmarek, William Thies and Saman Amarasinghe MIT LCS](https://reader036.vdocuments.us/reader036/viewer/2022062516/56649d435503460f94a1ecb9/html5/thumbnails/125.jpg)
Conclusion
Presented Phased Scheduling Algorithm Provides efficient interface for hierarchical scheduling Enables separate compilation with safety from deadlock Provides flexible buffer / schedule size trade-off Reduces latency of data throughput
Step towards a large scale hierarchical stream programming model
125
![Page 126: Phased Scheduling of Stream Programs Michal Karczmarek, William Thies and Saman Amarasinghe MIT LCS](https://reader036.vdocuments.us/reader036/viewer/2022062516/56649d435503460f94a1ecb9/html5/thumbnails/126.jpg)
Phased Schedulingof Stream Programs
StreamIt Homepage
http://cag.lcs.mit.edu/streamit
126