From 2bd401a12e4c6157d81e372c1545702f0113f4a3 Mon Sep 17 00:00:00 2001 From: Penelope Yong Date: Fri, 29 Aug 2025 23:10:43 +0100 Subject: [PATCH 1/6] pretty tables --- benchmarks/Project.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/benchmarks/Project.toml b/benchmarks/Project.toml index 3d14d03ff..dfa38ae62 100644 --- a/benchmarks/Project.toml +++ b/benchmarks/Project.toml @@ -26,6 +26,6 @@ DynamicPPL = "0.37" ForwardDiff = "0.10.38, 1" LogDensityProblems = "2.1.2" Mooncake = "0.4" -PrettyTables = "2.4.0" +PrettyTables = "2.4.0, 3" ReverseDiff = "1.15.3" StableRNGs = "1" From 59f794b8a97f195c4425448f5d25c495725897e8 Mon Sep 17 00:00:00 2001 From: Penelope Yong Date: Sat, 20 Sep 2025 15:16:00 +0100 Subject: [PATCH 2/6] Fixes for PrettyTables=3 --- benchmarks/benchmarks.jl | 19 ++++++------------- 1 file changed, 6 insertions(+), 13 deletions(-) diff --git a/benchmarks/benchmarks.jl b/benchmarks/benchmarks.jl index b733d810c..c749a9ea1 100644 --- a/benchmarks/benchmarks.jl +++ b/benchmarks/benchmarks.jl @@ -2,7 +2,7 @@ using Pkg using DynamicPPLBenchmarks: Models, make_suite, model_dimension using BenchmarkTools: @benchmark, median, run -using PrettyTables: PrettyTables, ft_printf +using PrettyTables: pretty_table, fmt__printf using StableRNGs: StableRNG rng = StableRNG(23) @@ -85,18 +85,11 @@ end table_matrix = hcat(Iterators.map(collect, zip(results_table...))...) header = [ - "Model", - "Dimension", - "AD Backend", - "VarInfo Type", - "Linked", - "Eval Time / Ref Time", - "AD Time / Eval Time", + "Model", "Dim", "AD Backend", "VarInfo", "Linked", "t(eval)/t(ref)", "t(grad)/t(eval)" ] -PrettyTables.pretty_table( +pretty_table( table_matrix; - header=header, - tf=PrettyTables.tf_markdown, - formatters=ft_printf("%.1f", [6, 7]), - crop=:none, # Always print the whole table, even if it doesn't fit in the terminal. + column_labels=header, + backend=:text, + formatters=[fmt__printf("%.1f", [6, 7])], ) From da725576e116819e2c14a97acdca29c0a9f70d24 Mon Sep 17 00:00:00 2001 From: Penelope Yong Date: Sat, 20 Sep 2025 15:16:27 +0100 Subject: [PATCH 3/6] Don't allow PrettyTables=2 --- benchmarks/Project.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/benchmarks/Project.toml b/benchmarks/Project.toml index dfa38ae62..7e7b9f7cb 100644 --- a/benchmarks/Project.toml +++ b/benchmarks/Project.toml @@ -26,6 +26,6 @@ DynamicPPL = "0.37" ForwardDiff = "0.10.38, 1" LogDensityProblems = "2.1.2" Mooncake = "0.4" -PrettyTables = "2.4.0, 3" +PrettyTables = "3" ReverseDiff = "1.15.3" StableRNGs = "1" From 5900c54d67b7901d9759af4ed26f7509654a482a Mon Sep 17 00:00:00 2001 From: Penelope Yong Date: Sat, 20 Sep 2025 15:17:29 +0100 Subject: [PATCH 4/6] restrict models for now --- benchmarks/benchmarks.jl | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/benchmarks/benchmarks.jl b/benchmarks/benchmarks.jl index c749a9ea1..80448c2a1 100644 --- a/benchmarks/benchmarks.jl +++ b/benchmarks/benchmarks.jl @@ -38,18 +38,18 @@ chosen_combinations = [ false, ), ("Smorgasbord", smorgasbord_instance, :typed, :forwarddiff, false), - ("Smorgasbord", smorgasbord_instance, :simple_namedtuple, :forwarddiff, true), - ("Smorgasbord", smorgasbord_instance, :untyped, :forwarddiff, true), - ("Smorgasbord", smorgasbord_instance, :simple_dict, :forwarddiff, true), - ("Smorgasbord", smorgasbord_instance, :typed, :reversediff, true), - ("Smorgasbord", smorgasbord_instance, :typed, :mooncake, true), - ("Loop univariate 1k", loop_univariate1k, :typed, :mooncake, true), - ("Multivariate 1k", multivariate1k, :typed, :mooncake, true), - ("Loop univariate 10k", loop_univariate10k, :typed, :mooncake, true), - ("Multivariate 10k", multivariate10k, :typed, :mooncake, true), - ("Dynamic", Models.dynamic(), :typed, :mooncake, true), - ("Submodel", Models.parent(randn(rng)), :typed, :mooncake, true), - ("LDA", lda_instance, :typed, :reversediff, true), + # ("Smorgasbord", smorgasbord_instance, :simple_namedtuple, :forwarddiff, true), + # ("Smorgasbord", smorgasbord_instance, :untyped, :forwarddiff, true), + # ("Smorgasbord", smorgasbord_instance, :simple_dict, :forwarddiff, true), + # ("Smorgasbord", smorgasbord_instance, :typed, :reversediff, true), + # ("Smorgasbord", smorgasbord_instance, :typed, :mooncake, true), + # ("Loop univariate 1k", loop_univariate1k, :typed, :mooncake, true), + # ("Multivariate 1k", multivariate1k, :typed, :mooncake, true), + # ("Loop univariate 10k", loop_univariate10k, :typed, :mooncake, true), + # ("Multivariate 10k", multivariate10k, :typed, :mooncake, true), + # ("Dynamic", Models.dynamic(), :typed, :mooncake, true), + # ("Submodel", Models.parent(randn(rng)), :typed, :mooncake, true), + # ("LDA", lda_instance, :typed, :reversediff, true), ] # Time running a model-like function that does not use DynamicPPL, as a reference point. From 270926f19ec75530e7f241f87b4e0ab51b26550d Mon Sep 17 00:00:00 2001 From: Penelope Yong Date: Sat, 20 Sep 2025 15:19:40 +0100 Subject: [PATCH 5/6] cache julia env in benchmark workflow --- .github/workflows/Benchmarking.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/Benchmarking.yml b/.github/workflows/Benchmarking.yml index 291723cce..bf188059f 100644 --- a/.github/workflows/Benchmarking.yml +++ b/.github/workflows/Benchmarking.yml @@ -18,6 +18,8 @@ jobs: with: version: '1' + - uses: julia-actions/cache@v2 + - name: Install Dependencies run: julia --project=benchmarks/ -e 'using Pkg; Pkg.instantiate()' From 56841efc27403b83340207a0124c229816a8c5ae Mon Sep 17 00:00:00 2001 From: Penelope Yong Date: Sat, 20 Sep 2025 15:25:42 +0100 Subject: [PATCH 6/6] fix cropping --- benchmarks/benchmarks.jl | 26 ++++++++++++++------------ 1 file changed, 14 insertions(+), 12 deletions(-) diff --git a/benchmarks/benchmarks.jl b/benchmarks/benchmarks.jl index 80448c2a1..dfcdcc271 100644 --- a/benchmarks/benchmarks.jl +++ b/benchmarks/benchmarks.jl @@ -38,18 +38,18 @@ chosen_combinations = [ false, ), ("Smorgasbord", smorgasbord_instance, :typed, :forwarddiff, false), - # ("Smorgasbord", smorgasbord_instance, :simple_namedtuple, :forwarddiff, true), - # ("Smorgasbord", smorgasbord_instance, :untyped, :forwarddiff, true), - # ("Smorgasbord", smorgasbord_instance, :simple_dict, :forwarddiff, true), - # ("Smorgasbord", smorgasbord_instance, :typed, :reversediff, true), - # ("Smorgasbord", smorgasbord_instance, :typed, :mooncake, true), - # ("Loop univariate 1k", loop_univariate1k, :typed, :mooncake, true), - # ("Multivariate 1k", multivariate1k, :typed, :mooncake, true), - # ("Loop univariate 10k", loop_univariate10k, :typed, :mooncake, true), - # ("Multivariate 10k", multivariate10k, :typed, :mooncake, true), - # ("Dynamic", Models.dynamic(), :typed, :mooncake, true), - # ("Submodel", Models.parent(randn(rng)), :typed, :mooncake, true), - # ("LDA", lda_instance, :typed, :reversediff, true), + ("Smorgasbord", smorgasbord_instance, :simple_namedtuple, :forwarddiff, true), + ("Smorgasbord", smorgasbord_instance, :untyped, :forwarddiff, true), + ("Smorgasbord", smorgasbord_instance, :simple_dict, :forwarddiff, true), + ("Smorgasbord", smorgasbord_instance, :typed, :reversediff, true), + ("Smorgasbord", smorgasbord_instance, :typed, :mooncake, true), + ("Loop univariate 1k", loop_univariate1k, :typed, :mooncake, true), + ("Multivariate 1k", multivariate1k, :typed, :mooncake, true), + ("Loop univariate 10k", loop_univariate10k, :typed, :mooncake, true), + ("Multivariate 10k", multivariate10k, :typed, :mooncake, true), + ("Dynamic", Models.dynamic(), :typed, :mooncake, true), + ("Submodel", Models.parent(randn(rng)), :typed, :mooncake, true), + ("LDA", lda_instance, :typed, :reversediff, true), ] # Time running a model-like function that does not use DynamicPPL, as a reference point. @@ -92,4 +92,6 @@ pretty_table( column_labels=header, backend=:text, formatters=[fmt__printf("%.1f", [6, 7])], + fit_table_in_display_horizontally=false, + fit_table_in_display_vertically=false, )