You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: HISTORY.md
+11-12Lines changed: 11 additions & 12 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -4,6 +4,17 @@
4
4
5
5
### Breaking changes
6
6
7
+
#### Fast Log Density Functions
8
+
9
+
This version provides a reimplementation of `LogDensityFunction` that provides performance improvements on the order of 2–10× for both model evaluation as well as automatic differentiation.
10
+
Exact speedups depend on the model size: larger models have less significant speedups because the bulk of the work is done in calls to `logpdf`.
11
+
12
+
For more information about how this is accomplished, please see https://github.com/TuringLang/DynamicPPL.jl/pull/1113 as well as the `src/fasteval.jl` file, which contains extensive comments.
13
+
14
+
As a result of this change, `LogDensityFunction` no longer stores a VarInfo inside it.
15
+
In general, if `ldf` is a `LogDensityFunction`, it is now only valid to access `ldf.model` and `ldf.adtype`.
16
+
If you were previously relying on this behaviour, you will need to store a VarInfo separately.
17
+
7
18
#### Parent and leaf contexts
8
19
9
20
The `DynamicPPL.NodeTrait` function has been removed.
@@ -24,18 +35,6 @@ Removed the method `returned(::Model, values, keys)`; please use `returned(::Mod
24
35
The method `DynamicPPL.init` (for implementing `AbstractInitStrategy`) now has a different signature: it must return a tuple of the generated value, plus a transform function that maps it back to unlinked space.
25
36
This is a generalisation of the previous behaviour, where `init` would always return an unlinked value (in effect forcing the transform to be the identity function).
26
37
27
-
### Other changes
28
-
29
-
#### FastLDF
30
-
31
-
Added `DynamicPPL.Experimental.FastLDF`, a version of `LogDensityFunction` that provides performance improvements on the order of 2–10× for both model evaluation as well as automatic differentiation.
32
-
Exact speedups depend on the model size: larger models have less significant speedups because the bulk of the work is done in calls to `logpdf`.
33
-
34
-
Please note that `FastLDF` is currently considered internal and its API may change without warning.
35
-
We intend to replace `LogDensityFunction` with `FastLDF` in a release in the near future, but until then we recommend not using it.
36
-
37
-
For more information about `FastLDF`, please see https://github.com/TuringLang/DynamicPPL.jl/pull/1113 as well as the `src/fasteval.jl` file, which contains extensive comments.
38
-
39
38
## 0.38.9
40
39
41
40
Remove warning when using Enzyme as the AD backend.
Copy file name to clipboardExpand all lines: src/experimental.jl
-2Lines changed: 0 additions & 2 deletions
Original file line number
Diff line number
Diff line change
@@ -2,8 +2,6 @@ module Experimental
2
2
3
3
using DynamicPPL: DynamicPPL
4
4
5
-
include("fasteval.jl")
6
-
7
5
# This file only defines the names of the functions, and their docstrings. The actual implementations are in `ext/DynamicPPLJETExt.jl`, since we don't want to depend on JET.jl other than as a weak dependency.
0 commit comments