From d3f743696939153573024a1bea6971cf8328b3c8 Mon Sep 17 00:00:00 2001 From: Arpan Chakraborty Date: Sat, 2 May 2026 19:29:17 +0530 Subject: [PATCH 1/3] fix: correct getindex(vi, :) docstring to reflect internal/transformed values --- src/abstract_varinfo.jl | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/abstract_varinfo.jl b/src/abstract_varinfo.jl index 0b1c250b9..0435d5f59 100644 --- a/src/abstract_varinfo.jl +++ b/src/abstract_varinfo.jl @@ -399,8 +399,11 @@ Return an iterator over all `vns` in `vi`. """ getindex(vi::AbstractVarInfo, ::Colon) -Return the current value(s) of `vn` (`vns`) in `vi` in the support of its (their) -distribution(s) as a flattened `Vector`. +Return the internal value(s) stored in `vi` as a flattened `Vector`. Note that +these values may be in transformed (linked) space if `vi` has been linked. + +For untransformed values, use [`getindex_internal`](@ref) after calling +[`invlink`](@ref) on `vi`. The default implementation is to call [`internal_values_as_vector`](@ref). """ From 9d70887951bef96323a846ab65f6573d8e59ae2e Mon Sep 17 00:00:00 2001 From: Arpan Chakraborty Date: Sun, 3 May 2026 09:07:46 +0530 Subject: [PATCH 2/3] feat: report absolute eval time in nanoseconds instead of relative to reference --- benchmarks/benchmarks.jl | 15 ++++----------- 1 file changed, 4 insertions(+), 11 deletions(-) diff --git a/benchmarks/benchmarks.jl b/benchmarks/benchmarks.jl index 5be32fdef..9a3514e0e 100644 --- a/benchmarks/benchmarks.jl +++ b/benchmarks/benchmarks.jl @@ -1,6 +1,6 @@ using Pkg -using Chairmarks: @be, median +using Chairmarks: @be using DynamicPPLBenchmarks: Models, benchmark, model_dimension using JSON: JSON using PrettyTables: pretty_table, fmt__printf, EmptyCells, MultiColumn, TextTableFormat @@ -9,7 +9,7 @@ using StableRNGs: StableRNG rng = StableRNG(23) -colnames = ["Model", "Dim", "AD Backend", "Linked", "t(eval)/t(ref)", "t(grad)/t(eval)"] +colnames = ["Model", "Dim", "AD Backend", "Linked", "t(eval)/ns", "t(grad)/t(eval)"] function print_results(results_table; to_json=false) if to_json # Print to the given file as JSON @@ -78,13 +78,6 @@ function run(; to_json=false) ("LDA", lda_instance, :reversediff, true), ] - # Time running a model-like function that does not use DynamicPPL, as a reference point. - # Eval timings will be relative to this. - reference_time = begin - obs = randn(rng) - median(@be Models.simple_assume_observe_non_model(obs)).time - end - @info "Reference evaluation time: $(reference_time) seconds" results_table = Tuple{ String,Int,String,Bool,Union{Float64,Missing},Union{Float64,Missing} @@ -96,7 +89,7 @@ function run(; to_json=false) results = benchmark(model, adbackend, islinked) @info " t(eval) = $(results.primal_time)" @info " t(grad) = $(results.grad_time)" - (results.primal_time / reference_time), + (results.primal_time * 1e9), (results.grad_time / results.primal_time) catch e @info "benchmark errored: $e" @@ -170,7 +163,7 @@ function combine(head_filename::String, base_filename::String) results_colnames = [ [ EmptyCells(4), - MultiColumn(3, "t(eval) / t(ref)"), + MultiColumn(3, "t(eval)/ns"), MultiColumn(3, "t(grad) / t(eval)"), MultiColumn(3, "t(grad) / t(ref)"), ], From 03079d5230f13f396aba56acc7432d15cf6b39ed Mon Sep 17 00:00:00 2001 From: Arpan Chakraborty Date: Sun, 3 May 2026 09:14:50 +0530 Subject: [PATCH 3/3] style: fix formatting --- benchmarks/benchmarks.jl | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/benchmarks/benchmarks.jl b/benchmarks/benchmarks.jl index 9a3514e0e..27a4fb42c 100644 --- a/benchmarks/benchmarks.jl +++ b/benchmarks/benchmarks.jl @@ -78,7 +78,6 @@ function run(; to_json=false) ("LDA", lda_instance, :reversediff, true), ] - results_table = Tuple{ String,Int,String,Bool,Union{Float64,Missing},Union{Float64,Missing} }[] @@ -89,8 +88,7 @@ function run(; to_json=false) results = benchmark(model, adbackend, islinked) @info " t(eval) = $(results.primal_time)" @info " t(grad) = $(results.grad_time)" - (results.primal_time * 1e9), - (results.grad_time / results.primal_time) + (results.primal_time * 1e9), (results.grad_time / results.primal_time) catch e @info "benchmark errored: $e" missing, missing