Abstract
AbstractUniversal probabilistic programming languages (PPLs) make it relatively easy to encode and automatically solve statistical inference problems. To solve inference problems, PPL implementations often apply Monte Carlo inference algorithms that rely on execution suspension. State-of-the-art solutions enable execution suspension either through (i) continuation-passing style (CPS) transformations or (ii) efficient, but comparatively complex, low-level solutions that are often not available in high-level languages. CPS transformations introduce overhead due to unnecessary closure allocations—a problem the PPL community has generally overlooked. To reduce overhead, we develop a new efficient selective CPS approach for PPLs. Specifically, we design a novel static suspension analysis technique that determines parts of programs that require suspension, given a particular inference algorithm. The analysis allows selectively CPS transforming the program only where necessary. We formally prove the correctness of the analysis and implement the analysis and transformation in the Miking CorePPL compiler. We evaluate the implementation for a large number of Monte Carlo inference algorithms on real-world models from phylogenetics, epidemiology, and topic modeling. The evaluation results demonstrate significant improvements across all models and inference algorithms.
Publisher
Springer Nature Switzerland
Reference50 articles.
1. The Miking benchmark suite.https://github.com/miking-lang/miking-benchmarks (2023), accessed:2023-01-02
2. Miking DPPL. https://github.com/miking-lang/miking-dppl (2023),accessed: 2023-01-02
3. Appel, A.W.: Compiling with Continuations. Cambridge University Press (1991)
4. Asai, K., Uehara, C.: Selective cps transformation for shift and reset. In: Proceedings of the ACM SIGPLAN Workshop on Partial Evaluation and Program Manipulation. pp. 40–52. Association for Computing Machinery (2017).
5. Baudart, G., Burroni, J., Hirzel, M., Mandel, L., Shinnar, A.: Compiling stanto generative probabilistic languages and extension to deep probabilisticprogramming. In: Proceedings of the 42nd ACM SIGPLAN International Conferenceon Programming Language Design and Implementation. pp. 497–510. Associationfor Computing Machinery (2021)