Fast k-selection algorithms for graphics processing units

  • Authors:
  • Tolu Alabi;Jeffrey D. Blanchard;Bradley Gordon;Russel Steinbach

  • Affiliations:
  • Grinnell College;Grinnell College;Grinnell College;Grinnell College

  • Venue:
  • Journal of Experimental Algorithmics (JEA)
  • Year:
  • 2012

Quantified Score

Hi-index 0.00

Visualization

Abstract

Finding the kth-largest value in a list of n 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 kth 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, radixSelect and bucketSelect, 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 224 and for double vectors larger than 220, ultimately reaching a 19.1 times speed-up for double vectors of length 228.