DeepAI AI Chat
Log In Sign Up

Onesweep: A Faster Least Significant Digit Radix Sort for GPUs

by   Andy Adinets, et al.

We present Onesweep, a least-significant digit (LSD) radix sorting algorithm for large GPU sorting problems residing in global memory. Our parallel algorithm employs a method of single-pass prefix sum that only requires  2n global read/write operations for each digit-binning iteration. This exhibits a significant reduction in last-level memory traffic versus contemporary GPU radix sorting implementations, where each iteration of digit binning requires two passes through the dataset totaling  3n global memory operations. On the NVIDIA A100 GPU, our approach achieves 29.4 GKey/s when sorting 256M random 32-bit keys. Compared to CUB, the current state-of-the-art GPU LSD radix sort, our approach provides a speedup of  1.5x. For 32-bit keys with varied distributions, our approach provides more consistent performance compared to HRS, the current state-of-the-art GPU MSD radix sort, and outperforms it in almost all cases.


An O(N) Sorting Algorithm: Machine Learning Sorting

We propose an O(N) sorting algorithm based on Machine Learning method, w...

Bandwidth-Optimal Random Shuffling for GPUs

Linear-time algorithms that are traditionally used to shuffle data on CP...

A Creativity Survey of Parallel Sorting Algorithm

Sorting is one of the most fundamental problems in the field of computer...

Defeating duplicates: A re-design of the LearnedSort algorithm

LearnedSort is a novel sorting algorithm that, unlike traditional method...

Sorting in Memristive Memory

Sorting is needed in many application domains. The data is read from mem...

GPU Programming - Speeding Up the 3D Surface Generator VESTA

The novel "Volume-Enclosing Surface exTraction Algorithm" (VESTA) genera...

NNS: The Case For Neural Network-based Sorting

CPU-SIMD/GPU/TPUs will be increasingly powerful. The algorithm using neu...