A simple method for rejection sampling efficiency improvement on SIMT architectures

Abstract We derive a probability distribution for the possible number of iterations required for a SIMT (single instruction multiple thread) program using rejection sampling to finish creating a sample across all threads. This distribution is found to match a recently proposed distrib...

Full description

Bibliographic Details
Main Authors: Ridley, Gavin, Forget, Benoit
Other Authors: Massachusetts Institute of Technology. Department of Nuclear Science and Engineering
Format: Article
Language:English
Published: Springer US 2021
Online Access:https://hdl.handle.net/1721.1/136798
Description
Summary:Abstract We derive a probability distribution for the possible number of iterations required for a SIMT (single instruction multiple thread) program using rejection sampling to finish creating a sample across all threads. This distribution is found to match a recently proposed distribution from Chakraborty and Gupta (in: Communications in statistics: theory and methods, 2015) that was shown as a good approximation of certain datasets. This work demonstrates an exact application of this distribution. The distribution can be used to evaluate the relative merit of some sampling methods on the GPU without resort to numerical tests. The distribution reduces to the expected geometric distribution in the single thread per warp limit. A simplified formula to approximate the expected number of iterations required to obtain rejection iteration samples is provided. With this new result, a simple, efficient layout for assigning sampling tasks to threads on a GPU is found as a function of the rejection probability without recourse to more complicated rejection sampling methods.