A GPGPU compiler for memory optimization and parallelism management
By Yi Yang, Ping Xiang, Jingfei Kong, Huiyang Zhou. ACM-SIGPLAN Symposium on Programming Language Design and Implementation, 2010
316 citations recorded by the source corpus.
This paper presents a novel optimizing compiler for general purpose computation on graphics processing units (GPGPU). It addresses two major challenges of developing high performance GPGPU programs: effective utilization of GPU memory hierarchy and judicious management of parallelism. The input to our compiler is a naïve GPU kernel function, which is functionally correct but without any consideration for performance optimization. The compiler analyzes the code, identifies its memory access patterns, and generates both the optimized kernel and the kernel invocation parameters. Our optimization process includes vectorization and memory coalescing for memory bandwidth enhancement, tiling and unrolling for data reuse and parallelism management, and thread block remapping or address-offset insertion for partition-camping elimination. The experiments on a set of scientific and media processing algorithms show that our optimized code achieves very high performance, either superior or very close to the highly fine-tuned library, NVIDIA CUBLAS 2.2, and up to 128 times speedups over the naive versions. Another distinguishing feature of our compiler is the understandability of the optimized code, which is useful for performance analysis and algorithm refinement.
Subfields: Computer Networks and Communications, Hardware and Architecture
View Paper: https://www.semanticscholar.org/paper/547074e26ddcbeaf4d9ae4c184a995aec1366dc4
How researchers see this paper
The researchers whose trusted networks rank it highest, strongest advocate first. Every researcher gets a different order.
In Computer Networks and Communications
- Saugata Ghose
- Onur Mutlu
- Adwait Jog
- Phillip B. Gibbons
- Gennady Pekhimenko
- Jianbin Fang
- Henk J. Sips
- Ana Lucia Varbanescu
In Hardware and Architecture
- Saugata Ghose
- Onur Mutlu
- Adwait Jog
- Phillip B. Gibbons
- Gennady Pekhimenko
- Jianbin Fang
- Henk J. Sips
- Ana Lucia Varbanescu
Citations in the corpus
- A Comprehensive Performance Comparison of CUDA and OpenCL (2011, methodology): “When it comes to a specific architecture, an auto-tuner could be used to boost performance [30].”
- Zorua: A holistic approach to resource virtualization in GPUs (2016, methodology): “First, these tools often require profiling runs [10, 14, 63, 64, 82, 83] on the GPU to determine the best performing resource specifications.”