Data/Task Reordering

The power-efficient massively parallel Graphics Processing Units (GPUs) have become increasingly influential for general-purpose computing over the past few years. However, their efficiency is sensitive to dynamic irregular memory references and control flows in an application. Experiments have shown great performance gains when these irregularities are removed. But it remains an open question how to achieve those gains through software approaches on modern GPUs.This paper presents a systematic exploration to tackle dynamic irregularities in both control flows and memory references. It reveals some properties of dynamic irregularities in both control flows and memory references, their interactions, and their relations with program data and threads. It describes several heuristics-based algorithms and runtime adaptation techniques for effectively removing dynamic irregularities through data reordering and job swapping. It presents a framework, G-Streamline, as a unified software solution to dynamic irregularities in GPU computing. G-Streamline has several distinctive properties. It is a pure software solution and works on the fly, requiring no hardware extensions or offline profiling. It treats both types of irregularities at the same time in a holistic fashion, maximizing the whole-program performance by resolving conflicts among optimizations. Its optimization overhead is largely transparent to GPU kernel executions, jeopardizing no basic efficiency of the GPU application. Finally, it is robust to the presence of various complexities in GPU applications. Experiments show that G-Streamline is effective in reducing dynamic irregularities in GPU computing, producing speedups between 1.07 and 2.5 for a variety of applications.

References

2011

  1. ASPLOS
    On-the-Fly Elimination of Dynamic Irregularities for GPU Computing
    Eddy Z. Zhang, Yunlian Jiang, Ziyu Guo, and 2 more authors
    In Proceedings of the Sixteenth International Conference on Architectural Support for Programming Languages and Operating Systems, Jun 2011

2010

  1. PPoPP
    Does Cache Sharing on Modern CMP Matter to the Performance of Contemporary Multithreaded Programs?
    Eddy Z. Zhang, Yunlian Jiang, and Xipeng Shen
    In Proceedings of the 15th ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming, Jun 2010
  2. ICS
    Streamlining GPU Applications on the Fly: Thread Divergence Elimination through Runtime Thread-Data Remapping
    Eddy Z. Zhang, Yunlian Jiang, Ziyu Guo, and 1 more author
    In Proceedings of the 24th ACM International Conference on Supercomputing, Jun 2010