The power-efficient massively parallel Graphics Processing Units (GPUs) have become increasingly influential for scientific 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 real GPUs. In this paper, we present a systematic exploration to tackle dynamic irregularities in both control flows and memory references. We report findings on their inherent properties, including interactions among different types of irregularities, their relations with program data and threads, the computational complexities in removing them, and heuristics-based algorithms for their removal through data reordering, job swapping, and hybrid transformations. Based on these findings, we develop a framework, named G-Streamline, as a u...
Eddy Z. Zhang, Yunlian Jiang, Ziyu Guo, Kai Tian,