Abstract
Finding the <it>k</it>th-largest value in a list of <it>n</it> values is a well-studied problem for which many algorithms have been proposed. A naïve approach is to sort the list and then simply select the <it>k</it>th term in the sorted list. However, when the sorted list is not needed, this method does quite a bit of unnecessary work. Although sorting can be accomplished efficiently when working with a graphics processing unit (GPU), this article proposes two GPU algorithms, <tt>radixSelect</tt> and <tt>bucketSelect</tt>, which are several times faster than sorting the vector. As the problem size grows so does the time savings of these algorithms with a sixfold speed-up over GPU sorting for float vectors larger than 2
24
and for double vectors larger than 2
20
, ultimately reaching a 19.1 times speed-up for double vectors of length 2
28
.
Funder
Division of Mathematical Sciences
Publisher
Association for Computing Machinery (ACM)
Subject
Theoretical Computer Science
Reference17 articles.
1. Selection by distributive partitioning
2. Beliakov G. 2011. Parallel calculation of the median and order statistics on GPUs with application to robust regression. Comput. Res. Repository abs/1104.2. Beliakov G. 2011. Parallel calculation of the median and order statistics on GPUs with application to robust regression. Comput. Res. Repository abs/1104.2.
3. Normalized Iterative Hard Thresholding: Guaranteed Stability and Performance
4. GPU-Quicksort
Cited by
24 articles.
订阅此论文施引文献
订阅此论文施引文献,注册后可以免费订阅5篇论文的施引文献,订阅后可以查看论文全部施引文献