DocumentCode
3704244
Title
Exploiting Hyper-Loop Parallelism in Vectorization to Improve Memory Performance on CUDA GPGPU
Author
Shixiong Xu;David Gregg
Author_Institution
Dept. of Comput. Sci., Univ. of Dublin, Dublin, Ireland
Volume
3
fYear
2015
Firstpage
53
Lastpage
60
Abstract
Memory performance is of great importance to achieve high performance on the Nvidia CUDA GPU. Previous work has proposed specific optimizations such as thread coarsening, caching data in shared memory, and global data layout transformation. We argue that vectorization based on hyper loop parallelism can be used as a unified technique to optimize the memory performance. In this paper, we put forward a compiler framework based on the Cetus source-to-source compiler to improve the memory performance on the CUDA GPU by efficiently exploiting hyper loop parallelism in vectorization. We introduce abstractions of SIMD vectors and SIMD operations that match the execution model and memory model of the CUDA GPU, along with three different execution mapping strategies for efficiently offloading vectorized code to CUDA GPUs. In addition, as we employ the vectorization in C-to-CUDA with automatic parallelization, our technique further refines the mapping granularity between coarse-grain loop parallelism and GPU threads. We evaluated our proposed technique on two platforms, an embedded GPU system -- Jetson TK1 -- and a desktop GPU -- GeForce GTX 645. The experimental results demonstrate that our vectorization technique based on hyper loop parallelism can yield performance speedups up to 2.5× compared to the direct coarse-grain loop parallelism mapping.
Keywords
"Graphics processing units","Parallel processing","Instruction sets","Optimization","Message systems","Layout","Arrays"
Publisher
ieee
Conference_Titel
Trustcom/BigDataSE/ISPA, 2015 IEEE
Type
conf
DOI
10.1109/Trustcom.2015.612
Filename
7345628
Link To Document