Super Mario Bros. problem Input space 5 buttons per frame 24000 - - PowerPoint PPT Presentation
Super Mario Bros. problem Input space 5 buttons per frame 24000 - - PowerPoint PPT Presentation
Super Mario Bros. problem Input space 5 buttons per frame 24000 frames 5 24000 1 . 9 10 16775 possible input sequences Exhaustive search wont work here. Tuning process Naive Representation 1 http://youtu.be/nyYdq1jJQrw
Input space
◮ 5 buttons per frame ◮ 24000 frames ◮ 524000 ≈ 1.9 × 1016775 possible input sequences
Exhaustive search won’t work here.
Tuning process
Naive Representation
1http://youtu.be/nyYdq1jJQrw
Naive Representation
◮ Bad, because most configurations make no sense. ◮ Just mashing random buttons. ◮ Doesn’t work at all (Video 1).
1http://youtu.be/nyYdq1jJQrw
Better Representation
◮ Movements (list):
◮ Direction (left, right, run left, or run right) ◮ Duration (frames)
Better Representation
◮ Movements (list):
◮ Direction (left, right, run left, or run right) ◮ Duration (frames)
◮ Jumps (list):
◮ Start frame ◮ Duration (frames)
Better Representation
◮ Movements (list):
◮ Direction (left, right, run left, or run right) ◮ Duration (frames)
◮ Jumps (list):
◮ Start frame ◮ Duration (frames)
Choosing the right representation is critical
◮ Search space size 106328 ◮ Winning run found in 13641 (≈ 104) attempts ◮ Under 5 minutes of training time
Super Mario Bros Results
1000 1500 2000 2500 3000 3500 60 120 180 240 300 Pixels Moved Right (Progress) Autotuning Time (seconds) Win Level OpenTuner
StreamJIT
Synchronous dataflow programs are graphs of (mostly) stateless workers with statically-known data rates. Using the data rates, the compiler can compute a schedule
- f worker executions, fuse
workers and introduce buffers to remove synchronization, then choose a combination of data, task and pipeline parallelism to fit the machine.
x6 input LowPassFilter 5 1 FMDemodulator 1 (2) 1 DuplicateSplitter 6 1 x6 DuplicateSplitter 1 1 x2 LowPassFilter 1 (4) 1 LowPassFilter 1 (4) 1 RoundrobinJoiner 1 x2 2 Subtractor 2 1 Amplifier 1 1 RoundrobinJoiner 1 x6 6 Summer 6 1
- utput
Fusion, data-parallel fission and splitter/joiner removal
Expand BandStop Process BandPass Compress Expand BandStop Process BandPass Compress Adder BandPass Compress Process Expand BandPass Compress Process Expand BandStop BandStop Adder Adder Adder Adder Adder