Swift: Compiled Inference for Probabilistic Programming Languages
arXiv:1606.09242
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.
IJCAI 2016
References in corpus (6)
- Church: a language for generative models
- Automatic Variational Inference in Stan
- General-Purpose MCMC Inference over Relational Structures
- C3: Lightweight Incrementalized MCMC for Probabilistic Programs using Continuations and Callsite Caching
- Gibbs Sampling in Open-Universe Stochastic Languages
- SIMPL: A DSL for Automatic Specialization of Inference Algorithms