  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.

Data Structures and Algorithms