110 likes | 219 Views
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.
E N D
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 • Parallel programming is hard • Heterogeneous programming is hard • Forward compatibility • Legacy applications I am a frustrated programmer
What Do We Want: Fluid Software • Program adjusts to whatever system has • Many-core/accelerators/whatever • Automatic, works on legacy code *.c Compiler *.exe Runtime Optimizer
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
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
Saturate IDCT conv420 to422 conv422 to424 Decode Block predict and add block store ppm MPEG2 Decode • Example dynamically discovered task graph Thies et al. 2007
Saturate IDCT conv420 to422 conv422 to424 Decode Block predict and add block store ppm Task Mapping • Place each task on best processor • Predict most effective processor • Generate code (runtime/quality tradeoff) • Forward compatible CPU GPU FPGA
Saturate IDCT conv420 to422 conv422 to424 Decode Block predict and add block store ppm 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
B C A D CPU GPU FPGA Fluid Software System *.exe Decompose Task Manager Task Mapper
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 programmer