Kernel Weaver: Automatically Fusing Database Primitives for Efficient GPU Computation

Kernel Weaver: Automatically Fusing Database Primitives for Efficient GPU Computation

Haicheng Wu, Gregory Diamos, Srihari Cadambi,and Sudhakar Yalamanchili. “Kernel Weaver: Automatically Fusing Database Primitives for Efficient GPU Computation.” The 45th Annual IEEE/ACM International Symposium on Microarchitecture (MICRO 45). December 2012.

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.

Download

Kernel Weaver: Automatically Fusing Database Primitives for Efficient GPU Computation [PDF]

Citation

@inproceedings{Haicheng:fusion,
author = {Wu, Haicheng and Diamos, Gregory and Cadambi, Srihari and Yalamanchili, Sudhakar},
title = {Kernel Weaver: Automatically Fusing Database Primitives for Efficient GPU Computation},
booktitle = {Proceedings of the 45th Annual IEEE/ACM International Symposium on Microarchitecture},
series = {MICRO-45 ’12},
year = {2012},
location = {Vancouver, Canada},
numpages = {12}
}