Swift: Compiled Inference for Probabilistic Programming Languages
Abstract
A probabilistic program defines a probability measure over its semantic structures. One common goal of probabilistic programming languages (PPLs) is to compute posterior probabilities for arbitrary models and queries, given observed evidence, using a generic inference engine. Most PPL inference engines---even the compiled ones---incur significant runtime interpretation overhead, especially for contingent and open-universe models. This paper describes Swift, a compiler for the BLOG PPL. Swift-generated code incorporates optimizations that eliminate interpretation overhead, maintain dynamic dependencies efficiently, and handle memory management for possible worlds of varying sizes. Experiments comparing Swift with other PPL engines on a variety of inference problems demonstrate speedups ranging from 12x to 326x.
Cite
@article{arxiv.1606.09242,
title = {Swift: Compiled Inference for Probabilistic Programming Languages},
author = {Yi Wu and Lei Li and Stuart Russell and Rastislav Bodik},
journal= {arXiv preprint arXiv:1606.09242},
year = {2016}
}
Comments
IJCAI 2016