Data-parallel probabilistic inference
First Claim
1. A method comprising:
- compiling source code, representing a model of a body of data, into an intermediate representation of the model;
wherein the model of the body of data specifies one or more probability distributions;
wherein the intermediate representation of the model represents at least one probability distribution, of the one or more probability distributions, with one or more mathematical expressions;
identifying a particular inference algorithm of a plurality of inference algorithms; and
producing inference code that implements the particular inference algorithm;
wherein the inference code is configured to sample from the at least one probability distribution of the one or more probability distributions; and
wherein producing the inference code is based, at least in part, on an analysis of the one or more mathematical expressions;
wherein the method is performed by one or more computing devices.
1 Assignment
0 Petitions
Accused Products
Abstract
The present invention relates to a probabilistic programming compiler that (a) generates data-parallel inference code to sample from probability distributions in models provided to the compiler; and (b) utilizes a modular framework to allow addition and removal of inference algorithm information based on which the compiler generates the inference code. For a given model, the described compiler can generate inference code that implements any one or more of the inference algorithms that are available to the compiler. The modular compiler framework utilizes an intermediate representation (IR) that symbolically represents features of probability distributions. The compiler then uses the IR as a basis for emitting inference code to sample from the one or more probability distributions represented in the IR. Further, the compiler produces parallelized inference code that facilitates efficient parallel processing of inference computations in order to take advantage of highly data-parallel architectures, such as GPUs.
19 Citations
20 Claims
-
1. A method comprising:
-
compiling source code, representing a model of a body of data, into an intermediate representation of the model; wherein the model of the body of data specifies one or more probability distributions; wherein the intermediate representation of the model represents at least one probability distribution, of the one or more probability distributions, with one or more mathematical expressions; identifying a particular inference algorithm of a plurality of inference algorithms; and producing inference code that implements the particular inference algorithm; wherein the inference code is configured to sample from the at least one probability distribution of the one or more probability distributions; and wherein producing the inference code is based, at least in part, on an analysis of the one or more mathematical expressions; wherein the method is performed by one or more computing devices. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10)
-
-
11. One or more non-transitory computer-readable media storing instructions that, when executed by one or more processors, cause:
-
compiling source code, representing a model of a body of data, into an intermediate representation of the model; wherein the model of the body of data specifies one or more probability distributions; wherein the intermediate representation of the model represents at least one probability distribution, of the one or more probability distributions, with one or more mathematical expressions; identifying a particular inference algorithm of a plurality of inference algorithms; and producing inference code that implements the particular inference algorithm; wherein the inference code is configured to sample from the at least one probability distribution of the one or more probability distributions; and wherein producing the inference code is based, at least in part, on an analysis of the one or more mathematical expressions. - View Dependent Claims (12, 13, 14, 15, 16, 17, 18, 19, 20)
-
Specification