TY - GEN
T1 - Reduction operations in parallel loops for GPGPUs
AU - Xu, Rengan
AU - Tian, Xiaonan
AU - Yan, Yonghong
AU - Chandrasekaran, Sunita
AU - Chapman, Barbara
PY - 2014
Y1 - 2014
N2 - Manycore accelerators offer the potential of significantly improving the performance of scientific applications when of- oading compute intensive portions of programs to the accelerators. Directive-based programming models such as Open ACC and Open MP are high-level programming model for users to create applications for accelerators by annotating region of code for offloading with directives. In these programming models, most of the offloaded kernels are data parallel loops processing one or multiple multi-dimensional arrays, and it is often that scalar variables are used in the parallel loop body for reduction operations. Since reduction operation itself has loop-carried dependency preventing the parallelization of the loops, this could have a significant impact on the performance if not handled properly. In this paper, we present the design and parallelization of reduction operations in parallel loops for GPGPU accelerators. Using OpenACC as the high-level directive-based programing model, we discuss how reduction operations are parallelized when appearing in each level of the loop nest and thread hierarchy. We present how we handle the map- ping of the loops and parallelized reduction to single- or multiple-level parallelism of GPGPU architectures. These algorithms have been implemented in the open source OpenACC compiler OpenUH. We compare our implementation with two other commercial OpenACC compilers using test cases and applications, and demonstrate better robustness and competitive performance than others. Categories and Subject Descriptors D.3.3 [Programming Languages]: Language Constructs and Features-Reduction General Terms Design, Algorithms, Measurement.
AB - Manycore accelerators offer the potential of significantly improving the performance of scientific applications when of- oading compute intensive portions of programs to the accelerators. Directive-based programming models such as Open ACC and Open MP are high-level programming model for users to create applications for accelerators by annotating region of code for offloading with directives. In these programming models, most of the offloaded kernels are data parallel loops processing one or multiple multi-dimensional arrays, and it is often that scalar variables are used in the parallel loop body for reduction operations. Since reduction operation itself has loop-carried dependency preventing the parallelization of the loops, this could have a significant impact on the performance if not handled properly. In this paper, we present the design and parallelization of reduction operations in parallel loops for GPGPU accelerators. Using OpenACC as the high-level directive-based programing model, we discuss how reduction operations are parallelized when appearing in each level of the loop nest and thread hierarchy. We present how we handle the map- ping of the loops and parallelized reduction to single- or multiple-level parallelism of GPGPU architectures. These algorithms have been implemented in the open source OpenACC compiler OpenUH. We compare our implementation with two other commercial OpenACC compilers using test cases and applications, and demonstrate better robustness and competitive performance than others. Categories and Subject Descriptors D.3.3 [Programming Languages]: Language Constructs and Features-Reduction General Terms Design, Algorithms, Measurement.
KW - Compiler
KW - OpenACC
KW - OpenUH
KW - Reduction
UR - https://www.scopus.com/pages/publications/84897743819
U2 - 10.1145/2560683.2560692
DO - 10.1145/2560683.2560692
M3 - Conference contribution
AN - SCOPUS:84897743819
SN - 9781450326551
T3 - Proceedings of the 2014 International Workshop on Programming Models and Applications for Multicores and Manycores, PMAM 2014
SP - 10
EP - 20
BT - Proceedings of the 2014 International Workshop on Programming Models and Applications for Multicores and Manycores, PMAM 2014
PB - Association for Computing Machinery
T2 - 2014 International Workshop on Programming Models and Applications for Multicores and Manycores, PMAM 2014
Y2 - 15 February 2014 through 15 February 2014
ER -