arXiv · 2106.12270
Weighted Random Sampling on GPUs
Abstract
An alias table is a data structure that allows for efficiently drawing weighted random samples in constant time and can be constructed in linear time. The PSA algorithm by H\"ubschle-Schneider and Sanders is able to construct alias tables in parallel on the CPU. In this report, we transfer the PSA algorithm to the GPU. Our construction algorithm achieves a speedup of 17 on a consumer GPU in comparison to the PSA method on a 16-core high-end desktop CPU. For sampling, we achieve an up to 24 times higher throughput. Both operations also require several times less energy than on the CPU. Adaptations helping to achieve this include changing memory access patterns to do coalesced access. Where this is not possible, we first copy data to the faster shared memory using coalesced access. We also enhance a generalization of binary search enabling to search for a range of items in parallel. Besides naive sampling, we also give improved batched sampling algorithms.
Explore related subjects
Keep this discovery
Hans-Peter Lehmann, Lorenz Hübschle-Schneider, Peter Sanders. 2021-06-23. Weighted Random Sampling on GPUs. https://arxiv.org/abs/2106.12270
Cite the original work for its findings. Save a collection to share your selection of sources.