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}