DocumentCode :
1882177
Title :
Kernel Weaver: Automatically Fusing Database Primitives for Efficient GPU Computation
Author :
Haicheng Wu ; Diamos, G. ; Cadambi, Srihari ; Yalamanchili, Sudhakar
fYear :
2012
fDate :
1-5 Dec. 2012
Firstpage :
107
Lastpage :
118
Abstract :
Data warehousing applications represent an emerging application arena that requires the processing of relational queries and computations over massive amounts of data. Modern general purpose GPUs are high bandwidth architectures that potentially offer substantial improvements in throughput for these applications. However, there are significant challenges that arise due to the overheads of data movement through the memory hierarchy and between the GPU and host CPU. This paper proposes data movement optimizations to address these challenges. Inspired in part by loop fusion optimizations in the scientific computing community, we propose kernel fusion as a basis for data movement optimizations. Kernel fusion fuses the code bodies of two GPU kernels to i) reduce data footprint to cut down data movement throughout GPU and CPU memory hierarchy, and ii) enlarge compiler optimization scope. We classify producer consumer dependences between compute kernels into three types, i) fine-grained thread-to-thread dependences, ii) medium-grained thread block dependences, and iii) coarse-grained kernel dependences. Based on this classification, we propose a compiler framework, Kernel Weaver, that can automatically fuse relational algebra operators thereby eliminating redundant data movement. The experiments on NVIDIA Fermi platforms demonstrate that kernel fusion achieves 2.89x speedup in GPU computation and a 2.35x speedup in PCIe transfer time on average across the micro-benchmarks tested. We present key insights, lessons learned, measurements from our compiler implementation, and opportunities for further improvements.
Keywords :
data warehouses; graphics processing units; multi-threading; optimising compilers; query processing; relational algebra; relational databases; CPU memory hierarchy; GPU computation; GPU kernel; Kernel Weaver; NVIDIA Fermi platform; bandwidth architecture; coarse-grained kernel dependences; compiler framework; compiler optimization; compute kernel; data footprint; data movement optimization; data warehousing; database primitives; fine-grained thread-to-thread dependences; general purpose GPU; host CPU; kernel fusion; loop fusion optimization; medium-grained thread block dependences; producer consumer dependences; relational algebra operator; relational query processing; scientific computing community; throughout GPU; Compiler Optimization; Database; GPU;
fLanguage :
English
Publisher :
ieee
Conference_Titel :
Microarchitecture (MICRO), 2012 45th Annual IEEE/ACM International Symposium on
Conference_Location :
Vancouver, BC
ISSN :
1072-4451
Print_ISBN :
978-1-4673-4819-5
Type :
conf
DOI :
10.1109/MICRO.2012.19
Filename :
6493612
Link To Document :
بازگشت