GPUSort: a high performance GPU sorting library. Most present day computers sport powerful GPUs (Graphics Processing Units) capable of beating even high-end CPUs in terms of raw FLOPS when performing at their peak. Consequently, there has been lot of work recently on implementing different problems on GPUs to exploit their high processing power. One such problem is sorting, which has been a major computational bottleneck in applications spanning the breadth of computer science, most importantly in databases and data mining. We have designed algorithms to perform sorting on the GPU and extract the maximum computational throughoutput of the GPU. Our algorithm maps the bitonic sorting network to GPUs using simple texture mapping operations and effectively utilizes the memory bandwidth using cache-efficient memory accesses. We have observed that our implementation is faster than qsort() running on a 3.4 GHz Pentium processor system with a NVIDIA GeForce 6800 Ultra GPU. GPUSort is a C++ class which contains our implementation. It is capable of sorting floating point values in both 16 and 32-bit precision, and can also quickly sort records based on a floating point key. Please refer to the documentation for details regarding the API and the contents of the distribution. Also, please read through the system requirements below before using the library.

Keywords for this software

Anything in here will be replaced on browsers that support the canvas element