Vis enkel innførsel

dc.contributor.authorLundén, Daniel
dc.contributor.authorÖhman, Joey
dc.contributor.authorKudlicka, Jan
dc.contributor.authorSenderov, Viktor
dc.contributor.authorRonquist, Fredrik
dc.contributor.authorBroman, David
dc.date.accessioned2023-01-04T14:10:12Z
dc.date.available2023-01-04T14:10:12Z
dc.date.created2022-12-19T15:56:31Z
dc.date.issued2022
dc.identifier.isbn978-3-030-99335-1
dc.identifier.urihttps://hdl.handle.net/11250/3041011
dc.description.abstractProbabilistic programming languages (PPLs) allow users to encode arbitrary inference problems, and PPL implementations provide general-purpose automatic inference for these problems. However, constructing inference implementations that are efficient enough is challenging for many real-world problems. Often, this is due to PPLs not fully exploiting available parallelization and optimization opportunities. For example, handling probabilistic checkpoints in PPLs through continuation-passing style transformations or non-preemptive multitasking—as is done in many popular PPLs—often disallows compilation to low-level languages required for high-performance platforms such as GPUs. To solve the checkpoint problem, we introduce the concept of PPL control-flow graphs (PCFGs)—a simple and efficient approach to checkpoints in low-level languages. We use this approach to implement RootPPL: a low-level PPL built on CUDA and C++ with OpenMP, providing highly efficient and massively parallel SMC inference. We also introduce a general method of compiling universal high-level PPLs to PCFGs and illustrate its application when compiling Miking CorePPL—a high-level universal PPL—to RootPPL. The approach is the first to compile a universal PPL to GPUs with SMC inference. We evaluate RootPPL and the CorePPL compiler through a set of real-world experiments in the domains of phylogenetics and epidemiology, demonstrating up to 6× speedups over state-of-the-art PPLs implementing SMC inference.en_US
dc.language.isoengen_US
dc.publisherSpringeren_US
dc.relation.ispartofProgramming Languages and Systems (31st European Symposium on Programming, ESOP 2022)
dc.rightsAttribution-NonCommercial-NoDerivatives 4.0 Internasjonal*
dc.rights.urihttp://creativecommons.org/licenses/by-nc-nd/4.0/deed.no*
dc.subjectProbabilistic Programming Languagesen_US
dc.subjectCompilersen_US
dc.subjectSequential Monte Carloen_US
dc.subjectGPU Compilationen_US
dc.titleCompiling Universal Probabilistic Programming Languages with Efficient Parallel Sequential Monte Carlo Inferenceen_US
dc.title.alternativeCompiling Universal Probabilistic Programming Languages with Efficient Parallel Sequential Monte Carlo Inferenceen_US
dc.typeChapteren_US
dc.description.versionpublishedVersionen_US
dc.source.pagenumber29-56en_US
dc.identifier.doi10.1007/978-3-030-99336-8_2
dc.identifier.cristin2095354
cristin.ispublishedtrue
cristin.fulltextoriginal
cristin.qualitycode1


Tilhørende fil(er)

Thumbnail

Denne innførselen finnes i følgende samling(er)

Vis enkel innførsel

Attribution-NonCommercial-NoDerivatives 4.0 Internasjonal
Med mindre annet er angitt, så er denne innførselen lisensiert som Attribution-NonCommercial-NoDerivatives 4.0 Internasjonal