Augur: a Modeling Language for Data-Parallel Probabilistic Inference
Oracle Labs
arXiv:1312.3613 [stat.ML], (12 Dec 2013)
@article{2013arXiv1312.3613T,
author={Tristan}, J.-B. and {Huang}, D. and {Tassarotti}, J. and {Pocock}, A. and {Green}, S.~J. and {Steele}, Jr, G.~L.},
title={"{Augur: a Modeling Language for Data-Parallel Probabilistic Inference}"},
journal={ArXiv e-prints},
archivePrefix={"arXiv"},
eprint={1312.3613},
primaryClass={"stat.ML"},
keywords={Statistics – Machine Learning, Computer Science – Artificial Intelligence, Computer Science – Distributed, Parallel, and Cluster Computing, Computer Science – Programming Languages},
year={2013},
month={dec},
adsurl={http://adsabs.harvard.edu/abs/2013arXiv1312.3613T},
adsnote={Provided by the SAO/NASA Astrophysics Data System}
}
It is time-consuming and error-prone to implement inference procedures for each new probabilistic model. Probabilistic programming addresses this problem by allowing a user to specify the model and having a compiler automatically generate an inference procedure for it. For this approach to be practical, it is important to generate inference code that has reasonable performance. In this paper, we present a probabilistic programming language and compiler for Bayesian networks designed to make effective use of data-parallel architectures such as GPUs. Our language is fully integrated within the Scala programming language and benefits from tools such as IDE support, type-checking, and code completion. We show that the compiler can generate data-parallel inference code scalable to thousands of GPU cores by making use of the conditional independence relationships in the Bayesian network.
December 13, 2013 by hgpu