A Fast and Generic GPU-Based Parallel Reduction Implementation
Walid Jradi, Hugo do Nascimento, Wellington Martins

TL;DR
This paper presents a GPU-based parallel reduction method that is fast, generic, and portable, achieving significant speedups across different hardware and frameworks.
Contribution
It introduces a new GPU parallel reduction approach using techniques like Loop Unrolling and Persistent Threads, improving speed and portability.
Findings
Achieved 2.8x speedup over previous work
Effective on AMD and NVidia hardware
Compatible with OpenCL and CUDA
Abstract
Reduction operations are extensively employed in many computational problems. A reduction consists of, given a finite set of numeric elements, combining into a single value all elements in that set, using for this a combiner function. A parallel reduction, in turn, is the reduction operation concurrently performed when multiple execution units are available. The current work reports an investigation on this subject and depicts a GPU-based parallel approach for it. Employing techniques like Loop Unrolling, Persistent Threads and Algebraic Expressions to avoid thread divergence, the presented approach was able to achieve a 2.8x speedup when compared to the work of Catanzaro, using a generic, simple and easily portable code. Experiments conducted to evaluate the approach show that the strategy is able to perform efficiently in AMD and NVidia's hardware, as well as in OpenCL and CUDA.
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
