fluid software : handling heterogeneous many-core for programmer productivity
DESCRIPTION
Fluid Software : Handling Heterogeneous Many-Core for Programmer Productivity. Nate Clark. Heterogeneous Many-Core. Need more performance, have many transitors Power limited → Efficiency in designs Domain-specific design/many simpler cores. The Biggest Problem: Software. - PowerPoint PPT PresentationTRANSCRIPT
![Page 1: Fluid Software : Handling Heterogeneous Many-Core for Programmer Productivity](https://reader035.vdocuments.mx/reader035/viewer/2022062316/56814d0d550346895dba48ad/html5/thumbnails/1.jpg)
Fluid Software: Handling Heterogeneous Many-Core for Programmer Productivity
Nate Clark
![Page 2: Fluid Software : Handling Heterogeneous Many-Core for Programmer Productivity](https://reader035.vdocuments.mx/reader035/viewer/2022062316/56814d0d550346895dba48ad/html5/thumbnails/2.jpg)
2
Heterogeneous Many-Core
• Need more performance, have many transitors• Power limited → Efficiency in designs• Domain-specific design/many simpler cores
![Page 3: Fluid Software : Handling Heterogeneous Many-Core for Programmer Productivity](https://reader035.vdocuments.mx/reader035/viewer/2022062316/56814d0d550346895dba48ad/html5/thumbnails/3.jpg)
3
The Biggest Problem: Software
• Parallel programming is hard
• Heterogeneous programming is hard
• Forward compatibility
• Legacy applications
I am afrustrated
programmer
![Page 4: Fluid Software : Handling Heterogeneous Many-Core for Programmer Productivity](https://reader035.vdocuments.mx/reader035/viewer/2022062316/56814d0d550346895dba48ad/html5/thumbnails/4.jpg)
4
What Do We Want: Fluid Software
• Program adjusts to whatever system has– Many-core/accelerators/whatever
• Automatic, works on legacy code
*.c Compiler *.exe RuntimeOptimizer
![Page 5: Fluid Software : Handling Heterogeneous Many-Core for Programmer Productivity](https://reader035.vdocuments.mx/reader035/viewer/2022062316/56814d0d550346895dba48ad/html5/thumbnails/5.jpg)
5
What Does This RTO Need to Do?
• Task Decomposition– Break application into parallelizable pieces
• Task Mapping– Place them on a processor/accelerator
• Task Management– Evaluate solution and dynamically adjust
![Page 6: Fluid Software : Handling Heterogeneous Many-Core for Programmer Productivity](https://reader035.vdocuments.mx/reader035/viewer/2022062316/56814d0d550346895dba48ad/html5/thumbnails/6.jpg)
6
Task Decomposition
• Didn’t this fail in the 80’s?– Hard for programmer to reason about programs– Impossible for compiler
• Dynamic behavior easily predictable– Find probable data/pipeline parallelism
*.exe
![Page 7: Fluid Software : Handling Heterogeneous Many-Core for Programmer Productivity](https://reader035.vdocuments.mx/reader035/viewer/2022062316/56814d0d550346895dba48ad/html5/thumbnails/7.jpg)
7
MPEG2 Decode
Thies et al. 2007
DecodeBlock
Saturate IDCT
predict andadd block
conv420to422
conv422to424
store ppm
• Example dynamically discovered task graph
![Page 8: Fluid Software : Handling Heterogeneous Many-Core for Programmer Productivity](https://reader035.vdocuments.mx/reader035/viewer/2022062316/56814d0d550346895dba48ad/html5/thumbnails/8.jpg)
8
Task Mapping
• Place each task on best processor– Predict most effective processor– Generate code (runtime/quality tradeoff)– Forward compatible
DecodeBlock
Saturate IDCT
predict andadd block
conv420to422
conv422to424
store ppm
FPGACPU GPU
![Page 9: Fluid Software : Handling Heterogeneous Many-Core for Programmer Productivity](https://reader035.vdocuments.mx/reader035/viewer/2022062316/56814d0d550346895dba48ad/html5/thumbnails/9.jpg)
9
Task Management
• Monitor and refine task mapping– What to do when new tasks appear– Understand what’s going on– Scalable control algorithm– Architectural support to help monitoring
DecodeBlock
Saturate IDCT
predict andadd block
conv420to422
conv422to424
store ppm
![Page 10: Fluid Software : Handling Heterogeneous Many-Core for Programmer Productivity](https://reader035.vdocuments.mx/reader035/viewer/2022062316/56814d0d550346895dba48ad/html5/thumbnails/10.jpg)
10
Fluid Software System
*.exe
A
B C
D
FPGACPU GPU
TaskMapper
Decompose
TaskManager
![Page 11: Fluid Software : Handling Heterogeneous Many-Core for Programmer Productivity](https://reader035.vdocuments.mx/reader035/viewer/2022062316/56814d0d550346895dba48ad/html5/thumbnails/11.jpg)
11
Fluid Software Summary
• RTO adjusts software for any architecture– Task decomposition– Task mapping– Task management
• Provide feedback to help programmers write better code
I’m a happy programme
r