AIPLJun 30, 2016

Swift: Compiled Inference for Probabilistic Programming Languages

arXiv:1606.09242v130 citations
Originality Incremental advance
AI Analysis

This addresses performance bottlenecks for users of probabilistic programming languages, enabling faster inference in complex models, though it is incremental as it builds on existing PPL compilation techniques.

The paper tackles the runtime interpretation overhead in probabilistic programming language (PPL) inference engines, especially for contingent and open-universe models, by introducing Swift, a compiler for the BLOG PPL that generates optimized code, resulting in speedups from 12x to 326x in experiments.

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.

Foundations

The foundational work for this paper's niche, ranked by how specifically the neighbourhood builds on it — not by global fame.

Your Notes