Kernel Weaver: Automatically Fusing Database Primitives For Efficient Gpu Computation

MICRO(2012)

引用 129|浏览71
暂无评分
摘要
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.
更多
查看译文
关键词
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,
AI 理解论文
溯源树
样例
生成溯源树,研究论文发展脉络
Chat Paper
正在生成论文摘要