1 / 11

Fluid Software : Handling Heterogeneous Many-Core for Programmer Productivity

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.

aminia
Download Presentation

Fluid Software : Handling Heterogeneous Many-Core for Programmer Productivity

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Fluid Software: Handling Heterogeneous Many-Core for Programmer Productivity Nate Clark

  2. Heterogeneous Many-Core • Need more performance, have many transitors • Power limited → Efficiency in designs • Domain-specific design/many simpler cores

  3. The Biggest Problem: Software • Parallel programming is hard • Heterogeneous programming is hard • Forward compatibility • Legacy applications I am a frustrated programmer

  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 Runtime Optimizer

  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

  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

  7. 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

  8. 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

  9. 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

  10. B C A D CPU GPU FPGA Fluid Software System *.exe Decompose Task Manager Task Mapper

  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 programmer

More Related