2018 · 59 citations · 16 references
ComputingComputer ScienceHigh-performance ComputingAlgorithmsComputer ArchitectureParallel ComputingData ParallelismGraphics Processing Unit ArchitectureGraphics Processing Unit ComputingGraphics Processing UnitsHardware AccelerationParallel ArchitecturesBitonic SortGpu AcceleratorsGpu ArchitectureGpu Parallel AlgorithmsGpu SortingMulti-core ComputingTop-k Query ProcessingTop-k Searching
A common operation in many data analytics workloads is to find the top-k items, i.e., the largest or smallest operations according to some sort order (implemented via LIMIT or ORDER BY expressions in SQL). A naive implementation of top-k is to sort all of the items and then return the first k, but this does much more work than needed. Although efficient implementations for top-k have been explored on traditional multi-core processors, there has been no prior systematic study of top-k implementations on GPUs, despite open requests for such implementations in GPU-based frameworks like TensorFlow and ArrayFire. In this work, we present several top-k algorithms for GPUs, including a new algorithm based on bitonic sort called bitonic top-k. The bitonic top-k algorithm is up to a factor of \new15x faster than sort and 4x faster than a variety of other possible implementations for values of k up to 256. We also develop a cost model to predict the performance of several of our algorithms, and show that it accurately predicts actual performance on modern GPUs.
16
TensorFlow: A system for large-scale machine learning
Martı́n Abadi, Paul Barham, Jianmin Chen et al. · arXiv (Cornell University) · 2016 · 8.8K citations · Full text
Sorting networks and their applications
Kenneth E. Batcher · 1968 · 2.4K citations
Naga K. Govindaraju, Jim Gray, Ritesh Kumar et al. · 2006 · 422 citations