From 4f184f80caffb6d54166a18514a1c994872bb1fb Mon Sep 17 00:00:00 2001
From: Penelope Yong
Date: Thu, 14 Aug 2025 13:34:02 +0100
Subject: [PATCH 1/5] Bump versions
---
Project.toml | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/Project.toml b/Project.toml
index af96777..61701be 100644
--- a/Project.toml
+++ b/Project.toml
@@ -17,4 +17,5 @@ Turing = "fce5fe82-541a-59a6-adf8-730c64b5f9a0"
Zygote = "e88e6eb3-aa80-5325-afca-941959d7151f"
[compat]
-DynamicPPL = "0.36"
+DynamicPPL = "0.37"
+Turing = "0.40"
From 8b474df306c9f93188fbcfb5a8d5d532d69d7aa9 Mon Sep 17 00:00:00 2001
From: Penelope Yong
Date: Thu, 14 Aug 2025 13:53:08 +0100
Subject: [PATCH 2/5] Add MooncakeForward
---
main.jl | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/main.jl b/main.jl
index 51219a1..8c2ea27 100644
--- a/main.jl
+++ b/main.jl
@@ -16,7 +16,8 @@ ADTYPES = Dict(
"ForwardDiff" => AutoForwardDiff(),
"ReverseDiff" => AutoReverseDiff(; compile = false),
"ReverseDiffCompiled" => AutoReverseDiff(; compile = true),
- "Mooncake" => AutoMooncake(; config = nothing),
+ "MooncakeReverse" => AutoMooncake(),
+ "MooncakeForward" => AutoMooncakeForward(),
"EnzymeForward" => AutoEnzyme(; mode = set_runtime_activity(Forward, true)),
"EnzymeReverse" => AutoEnzyme(; mode = set_runtime_activity(Reverse, true)),
"Zygote" => AutoZygote(),
From 16aba15cd56c4ccc7b674d6724d5501cba0819ce Mon Sep 17 00:00:00 2001
From: Penelope Yong
Date: Thu, 14 Aug 2025 14:22:11 +0100
Subject: [PATCH 3/5] Fix API
---
main.jl | 23 ++++++++++++-----------
1 file changed, 12 insertions(+), 11 deletions(-)
diff --git a/main.jl b/main.jl
index 8c2ea27..f451025 100644
--- a/main.jl
+++ b/main.jl
@@ -1,5 +1,5 @@
using DynamicPPL: DynamicPPL, VarInfo
-using DynamicPPL.TestUtils.AD: run_ad, ADResult, ADIncorrectException
+using DynamicPPL.TestUtils.AD: run_ad, ADResult, ADIncorrectException, WithBackend
using ADTypes
using Random: Xoshiro
@@ -12,14 +12,14 @@ import Zygote
# AD backends to test.
ADTYPES = Dict(
- "FiniteDifferences" => AutoFiniteDifferences(; fdm = central_fdm(5, 1)),
+ "FiniteDifferences" => AutoFiniteDifferences(; fdm=central_fdm(5, 1)),
"ForwardDiff" => AutoForwardDiff(),
- "ReverseDiff" => AutoReverseDiff(; compile = false),
- "ReverseDiffCompiled" => AutoReverseDiff(; compile = true),
+ "ReverseDiff" => AutoReverseDiff(; compile=false),
+ "ReverseDiffCompiled" => AutoReverseDiff(; compile=true),
"MooncakeReverse" => AutoMooncake(),
"MooncakeForward" => AutoMooncakeForward(),
- "EnzymeForward" => AutoEnzyme(; mode = set_runtime_activity(Forward, true)),
- "EnzymeReverse" => AutoEnzyme(; mode = set_runtime_activity(Reverse, true)),
+ "EnzymeForward" => AutoEnzyme(; mode=set_runtime_activity(Forward, true)),
+ "EnzymeReverse" => AutoEnzyme(; mode=set_runtime_activity(Reverse, true)),
"Zygote" => AutoZygote(),
)
@@ -133,7 +133,8 @@ elseif length(ARGS) == 3 && ARGS[1] == "--run"
# https://github.com/TuringLang/ADTests/issues/4
vi = DynamicPPL.unflatten(VarInfo(model), [0.5, -0.5])
params = [-0.5, 0.5]
- result = run_ad(model, adtype; varinfo = vi, params = params, benchmark = true)
+ result = run_ad(model, adtype; varinfo=vi, params=params, test=WithBackend(ADTYPES["FiniteDifferences"], benchmark=true),
+ )
else
vi = VarInfo(Xoshiro(468), model)
linked_vi = DynamicPPL.link!!(vi, model)
@@ -141,13 +142,13 @@ elseif length(ARGS) == 3 && ARGS[1] == "--run"
result = run_ad(
model,
adtype;
- params = params,
- reference_adtype = ADTYPES["FiniteDifferences"],
- benchmark = true,
+ params=params,
+ test=WithBackend(ADTYPES["FiniteDifferences"]),
+ benchmark=true,
)
end
# If reached here - nothing went wrong
- println(result.time_vs_primal)
+ println(result.grad_time / result.primal_time)
catch e
@show e
if e isa ADIncorrectException
From bb4e0dc14be81b0ea871ae50004ef07d2f15f608 Mon Sep 17 00:00:00 2001
From: Penelope Yong
Date: Thu, 14 Aug 2025 14:32:25 +0100
Subject: [PATCH 4/5] fix misplaced parens
---
main.jl | 8 ++------
1 file changed, 2 insertions(+), 6 deletions(-)
diff --git a/main.jl b/main.jl
index f451025..30762fd 100644
--- a/main.jl
+++ b/main.jl
@@ -133,16 +133,12 @@ elseif length(ARGS) == 3 && ARGS[1] == "--run"
# https://github.com/TuringLang/ADTests/issues/4
vi = DynamicPPL.unflatten(VarInfo(model), [0.5, -0.5])
params = [-0.5, 0.5]
- result = run_ad(model, adtype; varinfo=vi, params=params, test=WithBackend(ADTYPES["FiniteDifferences"], benchmark=true),
- )
+ result = run_ad(model, adtype; varinfo=vi, params=params, test=WithBackend(ADTYPES["FiniteDifferences"]), benchmark=true)
else
- vi = VarInfo(Xoshiro(468), model)
- linked_vi = DynamicPPL.link!!(vi, model)
- params = linked_vi[:]
result = run_ad(
model,
adtype;
- params=params,
+ rng=Xoshiro(468),
test=WithBackend(ADTYPES["FiniteDifferences"]),
benchmark=true,
)
From a532c2778f41352c4308a06a540f59a32869f251 Mon Sep 17 00:00:00 2001
From: Penelope Yong
Date: Thu, 14 Aug 2025 14:52:05 +0100
Subject: [PATCH 5/5] add note about enzyme
---
web/src/App.svelte | 11 +++++++++++
1 file changed, 11 insertions(+)
diff --git a/web/src/App.svelte b/web/src/App.svelte
index 5e3a200..06f84bf 100644
--- a/web/src/App.svelte
+++ b/web/src/App.svelte
@@ -102,6 +102,17 @@
>Download the raw data (JSON)
+
+
+ Note about Enzyme: Enzyme does not work with DynamicPPL 0.37
+ / Turing 0.40 because of
+ this issue. If you want to use Enzyme with Turing, please use an older
+ version of Turing / DynamicPPL.
+
+
{#each categorisedData.entries() as [category, modelData]}
{category}