Skip to content

Conversation

@penelopeysm
Copy link
Member

No description provided.

@penelopeysm
Copy link
Member Author

ah thwarted by the julia registry, i think that's my signal to not do work for today

@github-actions
Copy link
Contributor

github-actions bot commented Nov 18, 2025

Benchmark Report

  • this PR's head: 14997d5493a212d3ab6b563173c99f3d4835aad2
  • base branch: 4e57712b1813861d11e157b2fc093a353c5a0414

Computer Information

Julia Version 1.11.7
Commit f2b3dbda30a (2025-09-08 12:10 UTC)
Build Info:
  Official https://julialang.org/ release
Platform Info:
  OS: Linux (x86_64-linux-gnu)
  CPU: 4 × AMD EPYC 7763 64-Core Processor
  WORD_SIZE: 64
  LLVM: libLLVM-16.0.6 (ORCJIT, znver3)
Threads: 1 default, 0 interactive, 1 GC (on 4 virtual cores)

Benchmark Results

┌───────────────────────┬───────┬─────────────┬───────────────────┬────────┬─────────────────────────────────┬───────────────────────────┬─────────────────────────────────┐
│                       │       │             │                   │        │        t(eval) / t(ref)         │     t(grad) / t(eval)     │        t(grad) / t(ref)         │
│                       │       │             │                   │        │ ──────────┬───────────┬──────── │ ──────┬─────────┬──────── │ ──────────┬───────────┬──────── │
│                 Model │   Dim │  AD Backend │           VarInfo │ Linked │      base │   this PR │ speedup │  base │ this PR │ speedup │      base │   this PR │ speedup │
├───────────────────────┼───────┼─────────────┼───────────────────┼────────┼───────────┼───────────┼─────────┼───────┼─────────┼─────────┼───────────┼───────────┼─────────┤
│               Dynamic │    10 │    mooncake │             typed │   true │    386.87 │    425.68 │    0.91 │ 11.74 │    8.07 │    1.45 │   4543.18 │   3436.64 │    1.32 │
│                   LDA │    12 │ reversediff │             typed │   true │   2754.74 │   2562.52 │    1.08 │  2.09 │    5.56 │    0.37 │   5743.77 │  14255.81 │    0.40 │
│   Loop univariate 10k │ 10000 │    mooncake │             typed │   true │ 146409.84 │ 104421.75 │    1.40 │  5.31 │    4.88 │    1.09 │ 776923.21 │ 509406.52 │    1.53 │
├───────────────────────┼───────┼─────────────┼───────────────────┼────────┼───────────┼───────────┼─────────┼───────┼─────────┼─────────┼───────────┼───────────┼─────────┤
│    Loop univariate 1k │  1000 │    mooncake │             typed │   true │  13077.56 │   8874.66 │    1.47 │  5.68 │    4.15 │    1.37 │  74276.30 │  36789.08 │    2.02 │
│      Multivariate 10k │ 10000 │    mooncake │             typed │   true │  30623.97 │  43075.33 │    0.71 │  9.51 │    7.55 │    1.26 │ 291249.58 │ 325261.08 │    0.90 │
│       Multivariate 1k │  1000 │    mooncake │             typed │   true │   4053.17 │   4973.64 │    0.81 │  7.62 │    9.34 │    0.82 │  30901.96 │  46449.75 │    0.67 │
├───────────────────────┼───────┼─────────────┼───────────────────┼────────┼───────────┼───────────┼─────────┼───────┼─────────┼─────────┼───────────┼───────────┼─────────┤
│ Simple assume observe │     1 │ forwarddiff │             typed │  false │     16.46 │      3.68 │    4.48 │  1.84 │    2.95 │    0.63 │     30.35 │     10.84 │    2.80 │
│           Smorgasbord │   201 │ forwarddiff │             typed │  false │   2401.04 │   1286.09 │    1.87 │ 47.23 │   72.08 │    0.66 │ 113408.95 │  92705.68 │    1.22 │
│           Smorgasbord │   201 │ forwarddiff │       simple_dict │   true │  22850.86 │       err │     err │ 24.21 │     err │     err │ 553144.50 │       err │     err │
├───────────────────────┼───────┼─────────────┼───────────────────┼────────┼───────────┼───────────┼─────────┼───────┼─────────┼─────────┼───────────┼───────────┼─────────┤
│           Smorgasbord │   201 │ forwarddiff │ simple_namedtuple │   true │    995.36 │       err │     err │ 78.39 │     err │     err │  78029.91 │       err │     err │
│           Smorgasbord │   201 │      enzyme │             typed │   true │   2424.26 │   1820.52 │    1.33 │  5.23 │    3.71 │    1.41 │  12671.98 │   6755.41 │    1.88 │
│           Smorgasbord │   201 │    mooncake │             typed │   true │   2414.78 │   1818.84 │    1.33 │  5.82 │    4.33 │    1.35 │  14063.23 │   7871.26 │    1.79 │
├───────────────────────┼───────┼─────────────┼───────────────────┼────────┼───────────┼───────────┼─────────┼───────┼─────────┼─────────┼───────────┼───────────┼─────────┤
│           Smorgasbord │   201 │ reversediff │             typed │   true │   2479.36 │   1807.83 │    1.37 │ 55.34 │   89.42 │    0.62 │ 137205.64 │ 161650.23 │    0.85 │
│           Smorgasbord │   201 │ forwarddiff │      typed_vector │   true │   2456.14 │   1819.46 │    1.35 │ 45.02 │   53.31 │    0.84 │ 110568.88 │  96995.48 │    1.14 │
│           Smorgasbord │   201 │ forwarddiff │           untyped │   true │   2177.88 │   1819.09 │    1.20 │ 47.05 │   58.35 │    0.81 │ 102466.80 │ 106147.46 │    0.97 │
├───────────────────────┼───────┼─────────────┼───────────────────┼────────┼───────────┼───────────┼─────────┼───────┼─────────┼─────────┼───────────┼───────────┼─────────┤
│           Smorgasbord │   201 │ forwarddiff │    untyped_vector │   true │   2224.73 │   1812.92 │    1.23 │ 46.19 │   57.19 │    0.81 │ 102769.66 │ 103682.18 │    0.99 │
│              Submodel │     1 │    mooncake │             typed │   true │     24.76 │      8.69 │    2.85 │  5.18 │    4.29 │    1.21 │    128.21 │     37.28 │    3.44 │
└───────────────────────┴───────┴─────────────┴───────────────────┴────────┴───────────┴───────────┴─────────┴───────┴─────────┴─────────┴───────────┴───────────┴─────────┘

@penelopeysm
Copy link
Member Author

i mean those results look way more sensible so not sure what i did wrong on the other PRs

@penelopeysm penelopeysm changed the title attempt to debug fastldf benchmarks (do not merge!) attempt to debug fastldf benchmarks Nov 18, 2025
@penelopeysm penelopeysm marked this pull request as draft November 18, 2025 15:51
@penelopeysm
Copy link
Member Author

penelopeysm commented Nov 18, 2025

Chairmarks

┌───────────────────────┬───────┬─────────────┬───────────────────┬────────┬─────────────────────────────────┬───────────────────────────┐
│                       │       │             │                   │        │        t(eval) / t(ref)         │     t(grad) / t(eval)     │
│                       │       │             │                   │        │ ──────────┬───────────┬──────── │ ──────┬─────────┬──────── │
│                 Model │   Dim │  AD Backend │           VarInfo │ Linked │      base │   this PR │ speedup │  base │ this PR │ speedup │
├───────────────────────┼───────┼─────────────┼───────────────────┼────────┼───────────┼───────────┼─────────┼───────┼─────────┼─────────┤
│               Dynamic │    10 │    mooncake │             typed │   true │    440.56 │    351.07 │    1.25 │  9.99 │   11.79 │    0.85 │
│                   LDA │    12 │ reversediff │             typed │   true │   2856.92 │   2559.59 │    1.12 │  1.99 │    5.44 │    0.37 │
│   Loop univariate 10k │ 10000 │    mooncake │             typed │   true │ 150171.02 │ 101118.97 │    1.49 │  5.49 │    3.89 │    1.41 │
│    Loop univariate 1k │  1000 │    mooncake │             typed │   true │  13791.01 │   7623.38 │    1.81 │  6.32 │    4.80 │    1.32 │
│      Multivariate 10k │ 10000 │    mooncake │             typed │   true │  31419.70 │  31876.48 │    0.99 │  9.63 │   10.03 │    0.96 │
│       Multivariate 1k │  1000 │    mooncake │             typed │   true │   4111.92 │   3438.80 │    1.20 │  7.77 │    9.30 │    0.84 │
│ Simple assume observe │     1 │ forwarddiff │             typed │  false │     16.85 │      3.57 │    4.71 │  1.89 │    2.95 │    0.64 │
│           Smorgasbord │   201 │      enzyme │             typed │   true │   2540.30 │   1597.13 │    1.59 │  6.62 │    4.94 │    1.34 │
│           Smorgasbord │   201 │ forwarddiff │       simple_dict │   true │  23025.34 │       err │     err │ 27.20 │     err │     err │
│           Smorgasbord │   201 │ forwarddiff │ simple_namedtuple │   true │   1032.90 │       err │     err │ 83.56 │     err │     err │
│           Smorgasbord │   201 │ forwarddiff │             typed │  false │   2514.44 │   1160.29 │    2.17 │ 86.00 │  126.19 │    0.68 │
│           Smorgasbord │   201 │ forwarddiff │      typed_vector │   true │   2580.53 │   1594.88 │    1.62 │ 47.57 │   59.53 │    0.80 │
│           Smorgasbord │   201 │ forwarddiff │           untyped │   true │   2278.27 │   1579.90 │    1.44 │ 47.33 │   58.43 │    0.81 │
│           Smorgasbord │   201 │ forwarddiff │    untyped_vector │   true │   2305.71 │   1580.65 │    1.46 │ 47.61 │   56.19 │    0.85 │
│           Smorgasbord │   201 │    mooncake │             typed │   true │   2535.99 │   2107.19 │    1.20 │  5.71 │    4.03 │    1.42 │
│           Smorgasbord │   201 │ reversediff │             typed │   true │   2632.39 │   1591.10 │    1.65 │ 56.51 │   89.50 │    0.63 │
│              Submodel │     1 │    mooncake │             typed │   true │     25.77 │      8.06 │    3.20 │  5.54 │    4.62 │    1.20 │
└───────────────────────┴───────┴─────────────┴───────────────────┴────────┴───────────┴───────────┴─────────┴───────┴─────────┴─────────┘

BenchmarkTools

┌───────────────────────┬───────┬─────────────┬───────────────────┬────────┬────────────────────────────────┬───────────────────────────┐
│                       │       │             │                   │        │        t(eval) / t(ref)        │     t(grad) / t(eval)     │
│                       │       │             │                   │        │ ──────────┬──────────┬──────── │ ──────┬─────────┬──────── │
│                 Model │   Dim │  AD Backend │           VarInfo │ Linked │      base │  this PR │ speedup │  base │ this PR │ speedup │
├───────────────────────┼───────┼─────────────┼───────────────────┼────────┼───────────┼──────────┼─────────┼───────┼─────────┼─────────┤
│               Dynamic │    10 │    mooncake │             typed │   true │    479.02 │   430.56 │    1.11 │ 10.55 │    8.74 │    1.21 │
│                   LDA │    12 │ reversediff │             typed │   true │   3431.95 │  2496.24 │    1.37 │  2.14 │    6.39 │    0.34 │
│   Loop univariate 10k │ 10000 │    mooncake │             typed │   true │ 154456.94 │ 99788.29 │    1.55 │  5.26 │    3.92 │    1.34 │
│    Loop univariate 1k │  1000 │    mooncake │             typed │   true │  14213.45 │  7617.13 │    1.87 │  5.82 │    4.74 │    1.23 │
│      Multivariate 10k │ 10000 │    mooncake │             typed │   true │  31011.75 │ 32043.42 │    0.97 │  9.99 │    9.81 │    1.02 │
│       Multivariate 1k │  1000 │    mooncake │             typed │   true │   3667.26 │  3657.08 │    1.00 │  8.76 │    8.75 │    1.00 │
│ Simple assume observe │     1 │ forwarddiff │             typed │  false │     18.54 │     3.87 │    4.79 │  1.72 │    2.69 │    0.64 │
│           Smorgasbord │   201 │      enzyme │             typed │   true │   3248.70 │  1638.07 │    1.98 │  4.35 │    6.18 │    0.70 │
│           Smorgasbord │   201 │ forwarddiff │       simple_dict │   true │  23786.40 │      err │     err │ 30.55 │     err │     err │
│           Smorgasbord │   201 │ forwarddiff │ simple_namedtuple │   true │   1517.77 │      err │     err │ 57.24 │     err │     err │
│           Smorgasbord │   201 │ forwarddiff │             typed │  false │   3881.23 │  1430.12 │    2.71 │ 28.28 │   55.07 │    0.51 │
│           Smorgasbord │   201 │ forwarddiff │      typed_vector │   true │   2710.69 │  1707.36 │    1.59 │ 41.28 │   53.09 │    0.78 │
│           Smorgasbord │   201 │ forwarddiff │           untyped │   true │   2382.86 │  1988.06 │    1.20 │ 43.83 │   48.49 │    0.90 │
│           Smorgasbord │   201 │ forwarddiff │    untyped_vector │   true │   2665.92 │  1643.96 │    1.62 │ 37.69 │   56.62 │    0.67 │
│           Smorgasbord │   201 │    mooncake │             typed │   true │   3236.65 │  1574.52 │    2.06 │  5.35 │    6.02 │    0.89 │
│           Smorgasbord │   201 │ reversediff │             typed │   true │   3302.25 │  2010.17 │    1.64 │ 46.21 │   71.19 │    0.65 │
│              Submodel │     1 │    mooncake │             typed │   true │     26.56 │     9.21 │    2.88 │  6.97 │    4.68 │    1.49 │
└───────────────────────┴───────┴─────────────┴───────────────────┴────────┴───────────┴──────────┴─────────┴───────┴─────────┴─────────┘

@penelopeysm
Copy link
Member Author

But looking at the numbers, it looks like benchmarking on CI is just a lottery to begin with, doesn't matter which package you're using.

This is especially so considering that the same model, with the same link status, on this PR should all have the same evaluation times (fastLDF removes the VarInfo so there's no difference between whichever varinfo it was constructed with). Yet both packages have weird variations in runtimes for evaluation that don't follow any particular pattern.

@penelopeysm
Copy link
Member Author

NGL the fact that I have to wait 4 minutes for the whole thing to precompile again just so that it can read in json files and pretty print them is not exactly the best advertisement for Julia.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants