English

SIMPL: A DSL for Automatic Specialization of Inference Algorithms

Programming Languages 2016-04-19 v1

Abstract

Inference algorithms in probabilistic programming languages (PPLs) can be thought of as interpreters, since an inference algorithm traverses a model given evidence to answer a query. As with interpreters, we can improve the efficiency of inference algorithms by compiling them once the model, evidence and query are known. We present SIMPL, a domain specific language for inference algorithms, which uses this idea in order to automatically specialize annotated inference algorithms. Due to the approach of specialization, unlike a traditional compiler, with SIMPL new inference algorithms can be added easily, and still be optimized using domain-specific information. We evaluate SIMPL and show that partial evaluation gives a 2-6x speedup, caching provides an additional 1-1.5x speedup, and generating C code yields an additional 13-20x speedup, for an overall speedup of 30-150x for several inference algorithms and models.

Keywords

Cite

@article{arxiv.1604.04729,
  title  = {SIMPL: A DSL for Automatic Specialization of Inference Algorithms},
  author = {Rohin Shah and Emina Torlak and Rastislav Bodik},
  journal= {arXiv preprint arXiv:1604.04729},
  year   = {2016}
}
R2 v1 2026-06-22T13:33:50.167Z