A Fast and Generic GPU-Based Parallel Reduction Implementation - Jradi, Walid Abdala Rfaei; do Nascimento, Hugo Alexandre Dantas; Martins, Wellington Santos (Anais do Simpósio em Sistemas Computacionais de Alto Desempenho (SSCAD), 2018)
Reduction operations are extensively employed in many computational problems, where a finite set of numeric elements are combined into a single value, using for this a combining function. A parallel reduction, in turn, is the operation concurrently performed when multiple execution units are available. The present work depicts a GPU-based parallel approach for it, which employs techniques like loop unrolling, persistent threads and algebraic expressions to avoid thread divergence, and was able to outperform the methods currently in use. Experiments conducted to evaluate the approach show that the strategy performs efficiently on both AMD and NVidia’s hardwares, as well as using OpenCL and CUDA, making it portable.