Efficient compilation of array probabilistic programs

05/17/2018
by   Rajan Walia, et al.
0

Probabilistic programming languages are valuable because they allow us to build, run, and change concise probabilistic models that elide irrelevant details. However, current systems are either inexpressive, failing to support basic features needed to write realistic models, or inefficient, taking orders of magnitude more time to run than hand-coded inference. Without resolving this dilemma, model developers are still required to manually rewrite their high-level models into low-level code to get the needed performance. We tackle this dilemma by presenting an approach for efficient probabilistic programming with arrays. Arrays are a key element of almost any realistic model. Our system extends previous compilation techniques from scalars to arrays. These extensions allow the transformation of high-level programs into known efficient algorithms. We then optimize the resulting code by taking advantage of the domain-specificity of our language. We further JIT-compile the final product using LLVM on a per-execution basis. These steps combined lead to significant new opportunities for specialization. The resulting performance is competitive with manual implementations of the desired algorithms, even though the original program is as concise and expressive as the initial model.

READ FULL TEXT

page 1

page 2

page 3

page 4

research
12/01/2021

Compiling Universal Probabilistic Programming Languages with Efficient Parallel Sequential Monte Carlo Inference

Probabilistic programming languages (PPLs) allow users to encode arbitra...
research
09/30/2018

Extending Stan for Deep Probabilistic Programming

Deep probabilistic programming combines deep neural networks (for automa...
research
08/21/2020

Transforming Probabilistic Programs for Model Checking

Probabilistic programming is perfectly suited to reliable and transparen...
research
09/27/2018

An Introduction to Probabilistic Programming

This document is designed to be a first-year graduate-level introduction...
research
10/16/2020

Probabilistic Programming with CuPPL

Probabilistic Programming Languages (PPLs) are a powerful tool in machin...
research
03/07/2023

Certified Compilation of Choreographies with hacc

Programming communicating processes is challenging, because it requires ...
research
09/07/2015

C3: Lightweight Incrementalized MCMC for Probabilistic Programs using Continuations and Callsite Caching

Lightweight, source-to-source transformation approaches to implementing ...

Please sign up or login with your details

Forgot password? Click here to reset