Benchmarks
Benchmarks for the convolution distributions, reading the analytic and numeric quadrature backends against the bare component distributions.
Quick start
Install the benchpkg CLI once:
task benchmark-install
# Or: julia -e 'using Pkg; Pkg.add("AirspeedVelocity")'then run the suite:
# Benchmark current state
task benchmark
# Compare main branch vs current state
task benchmark-compare
# Filter to specific benchmarks
task benchmark -- --filter=Convolved
task benchmark-compare -- --filter=QuantileBenchmark structure
Baseline/
Gamma/ (logpdf, cdf)
Normal/ (logpdf, cdf)
Convolved/
analytic/ (construction, logpdf/pdf/cdf scalar,
logpdf broadcast, logpdf/pdf/cdf batched,
rand, mean)
numeric/ (same operations)
Difference/
analytic/ (construction, logpdf/cdf scalar,
logpdf/cdf broadcast, rand, mean)
numeric/ (same operations)
Product/
analytic/ (construction, logpdf/cdf scalar,
logpdf/cdf broadcast, rand, mean)
numeric/ (same operations)
Timeseries/
Gamma delay (convolve_series(discretise_pmf(delay, m), series))
Convolved delay
Poisson delay (discrete: convolve_series(delay, series))
Quantile/
Convolved analytic/ (median, grid)
Convolved numeric/ (median)
Difference numeric/ (median)
Product numeric/ (median)
AD gradients/
<every test/ADFixtures scenario>/
ForwardDiff, ReverseDiff (tape), Enzyme forward, Enzyme reverse,
Mooncake forward, Mooncake reverseAnalytic vs numeric
convolved, difference, and product use a closed form where one exists (Normal + Normal, equal-scale Gamma, equal-rate Exponential; Normal - Normal; LogNormal * LogNormal) and AD-safe Gauss-Legendre quadrature otherwise. The analytic rows should sit near the Baseline floor; the gap between the numeric rows and their analytic counterparts is the cost of the quadrature backend. The batched rows share the composite quadrature grid across evaluation points; their gap to the logpdf broadcast row over the same points is the headline batching win. Pass method = NumericSolver() to force the numeric path.
CI integration
Pull requests benchmark head and base in separate jobs via the benchmark workflow and post a single comparison comment. Pushes to main and tagged releases append to the performance history below.
Performance history
Benchmark summary (overall)
| Suite | Median ratio | Trend | Status |
|---|---|---|---|
| AD gradients | n/a | → | n/a |
| Baseline | n/a | → | n/a |
| Convolved | n/a | → | n/a |
| Difference | n/a | → | n/a |
| Product | n/a | → | n/a |
| Quantile | n/a | → | n/a |
| Timeseries | n/a | → | n/a |
| time_to_load | n/a | → | n/a |
Ratio: latest vs oldest shown revision (1.00 = no change, higher = slower/larger). ⚠ reg = at/above the regression threshold.
<details> <summary>Per-suite detail</summary>
Ratio summary
Most recent 1 revision, columns labelled by commit date.
AD gradients
Time
| Benchmark | 3f63739bc73a64... |
|---|---|
| Convolved Gamma+LogNormal batched logpdf wrt params/Enzyme forward | 0.0449 ± 0.0031 ms |
| Convolved Gamma+LogNormal batched logpdf wrt params/Enzyme reverse | 0.391 ± 0.021 ms |
| Convolved Gamma+LogNormal batched logpdf wrt params/ForwardDiff | 0.0359 ± 0.00076 ms |
| Convolved Gamma+LogNormal batched logpdf wrt params/Mooncake forward | 0.186 ± 0.0085 ms |
| Convolved Gamma+LogNormal batched logpdf wrt params/Mooncake reverse | 0.484 ± 0.044 ms |
| Convolved Gamma+LogNormal batched logpdf wrt params/ReverseDiff (tape) | 1.8 ± 0.15 ms |
| Convolved Gamma+LogNormal batched logpdf wrt points/Enzyme forward | 0.0593 ± 0.0026 ms |
| Convolved Gamma+LogNormal batched logpdf wrt points/Enzyme reverse | 0.39 ± 0.023 ms |
| Convolved Gamma+LogNormal batched logpdf wrt points/ForwardDiff | 0.0458 ± 0.0028 ms |
| Convolved Gamma+LogNormal batched logpdf wrt points/Mooncake forward | 0.386 ± 0.016 ms |
| Convolved Gamma+LogNormal batched logpdf wrt points/Mooncake reverse | 0.473 ± 0.035 ms |
| Convolved Gamma+LogNormal batched logpdf wrt points/ReverseDiff (tape) | 1.96 ± 0.15 ms |
| Convolved Gamma+LogNormal numerical/Enzyme forward | 0.0518 ± 0.0019 ms |
| Convolved Gamma+LogNormal numerical/Enzyme reverse | 0.0899 ± 0.0057 ms |
| Convolved Gamma+LogNormal numerical/ForwardDiff | 0.0493 ± 0.00027 ms |
| Convolved Gamma+LogNormal numerical/Mooncake forward | 0.209 ± 0.01 ms |
| Convolved Gamma+LogNormal numerical/Mooncake reverse | 0.444 ± 0.033 ms |
| Convolved Gamma+LogNormal numerical/ReverseDiff (tape) | 1.97 ± 0.16 ms |
| Convolved Gamma+Normal mean+var moments/Enzyme forward | 5.45 ± 0.2 μs |
| Convolved Gamma+Normal mean+var moments/Enzyme reverse | 0.0389 ± 0.0065 μs |
| Convolved Gamma+Normal mean+var moments/ForwardDiff | 0.437 ± 0.033 μs |
| Convolved Gamma+Normal mean+var moments/Mooncake forward | 4.09 ± 0.61 μs |
| Convolved Gamma+Normal mean+var moments/Mooncake reverse | 3.66 ± 0.39 μs |
| Convolved Gamma+Normal mean+var moments/ReverseDiff (tape) | 2.15 ± 0.18 μs |
| Convolved LogNormal+Gamma numerical/Enzyme forward | 0.068 ± 0.0025 ms |
| Convolved LogNormal+Gamma numerical/Enzyme reverse | 0.107 ± 0.0071 ms |
| Convolved LogNormal+Gamma numerical/ForwardDiff | 0.0606 ± 0.0017 ms |
| Convolved LogNormal+Gamma numerical/Mooncake forward | 0.276 ± 0.013 ms |
| Convolved LogNormal+Gamma numerical/Mooncake reverse | 0.457 ± 0.032 ms |
| Convolved LogNormal+Gamma numerical/ReverseDiff (tape) | 1.87 ± 0.15 ms |
| Convolved Normal+Normal analytical/Enzyme forward | 6.25 ± 0.086 μs |
| Convolved Normal+Normal analytical/Enzyme reverse | 2.77 ± 0.11 μs |
| Convolved Normal+Normal analytical/ForwardDiff | 0.482 ± 0.061 μs |
| Convolved Normal+Normal analytical/Mooncake forward | 4.54 ± 0.47 μs |
| Convolved Normal+Normal analytical/Mooncake reverse | 20.4 ± 2.8 μs |
| Convolved Normal+Normal analytical/ReverseDiff (tape) | 13.4 ± 1 μs |
| Difference Gamma-LogNormal numerical wrt X/Enzyme forward | 0.0845 ± 0.003 ms |
| Difference Gamma-LogNormal numerical wrt X/Enzyme reverse | 0.149 ± 0.0073 ms |
| Difference Gamma-LogNormal numerical wrt X/ForwardDiff | 0.0855 ± 0.0025 ms |
| Difference Gamma-LogNormal numerical wrt X/Mooncake forward | 0.367 ± 0.013 ms |
| Difference Gamma-LogNormal numerical wrt X/Mooncake reverse | 0.647 ± 0.045 ms |
| Difference Gamma-LogNormal numerical wrt X/ReverseDiff (tape) | 3.39 ± 0.27 ms |
| Difference Gamma-Normal mean+var moments/Enzyme forward | 5.44 ± 0.16 μs |
| Difference Gamma-Normal mean+var moments/Enzyme reverse | 0.04 ± 0.0062 μs |
| Difference Gamma-Normal mean+var moments/ForwardDiff | 0.445 ± 0.043 μs |
| Difference Gamma-Normal mean+var moments/Mooncake forward | 4.08 ± 0.6 μs |
| Difference Gamma-Normal mean+var moments/Mooncake reverse | 3.75 ± 0.38 μs |
| Difference Gamma-Normal mean+var moments/ReverseDiff (tape) | 2.19 ± 0.23 μs |
| Difference LogNormal-Gamma numerical wrt Y/Enzyme forward | 0.107 ± 0.004 ms |
| Difference LogNormal-Gamma numerical wrt Y/Enzyme reverse | 0.167 ± 0.0076 ms |
| Difference LogNormal-Gamma numerical wrt Y/ForwardDiff | 0.103 ± 0.0029 ms |
| Difference LogNormal-Gamma numerical wrt Y/Mooncake forward | 0.468 ± 0.014 ms |
| Difference LogNormal-Gamma numerical wrt Y/Mooncake reverse | 0.689 ± 0.065 ms |
| Difference LogNormal-Gamma numerical wrt Y/ReverseDiff (tape) | 3.4 ± 0.27 ms |
| Difference Normal-Normal analytical/Enzyme forward | 6.07 ± 0.13 μs |
| Difference Normal-Normal analytical/Enzyme reverse | 2.63 ± 0.087 μs |
| Difference Normal-Normal analytical/ForwardDiff | 0.452 ± 0.049 μs |
| Difference Normal-Normal analytical/Mooncake forward | 4.69 ± 0.79 μs |
| Difference Normal-Normal analytical/Mooncake reverse | 20.4 ± 2.8 μs |
| Difference Normal-Normal analytical/ReverseDiff (tape) | 14.3 ± 1 μs |
| Product Gamma*LogNormal mean+var moments/Enzyme forward | 5.45 ± 1.1 μs |
| Product Gamma*LogNormal mean+var moments/Enzyme reverse | 0.0556 ± 0.0071 μs |
| Product Gamma*LogNormal mean+var moments/ForwardDiff | 0.477 ± 0.034 μs |
| Product Gamma*LogNormal mean+var moments/Mooncake forward | 4.4 ± 0.55 μs |
| Product Gamma*LogNormal mean+var moments/Mooncake reverse | 5.17 ± 0.86 μs |
| Product Gamma*LogNormal mean+var moments/ReverseDiff (tape) | 8.87 ± 0.57 μs |
| Product Gamma*LogNormal numerical wrt X/Enzyme forward | 0.0878 ± 0.0043 ms |
| Product Gamma*LogNormal numerical wrt X/Enzyme reverse | 0.155 ± 0.0069 ms |
| Product Gamma*LogNormal numerical wrt X/ForwardDiff | 0.0866 ± 0.00055 ms |
| Product Gamma*LogNormal numerical wrt X/Mooncake forward | 0.385 ± 0.014 ms |
| Product Gamma*LogNormal numerical wrt X/Mooncake reverse | 0.682 ± 0.04 ms |
| Product Gamma*LogNormal numerical wrt X/ReverseDiff (tape) | 3.85 ± 0.27 ms |
| Product LogNormal*Gamma numerical wrt Y/Enzyme forward | 0.107 ± 0.0036 ms |
| Product LogNormal*Gamma numerical wrt Y/Enzyme reverse | 0.18 ± 0.0088 ms |
| Product LogNormal*Gamma numerical wrt Y/ForwardDiff | 0.101 ± 0.003 ms |
| Product LogNormal*Gamma numerical wrt Y/Mooncake forward | 0.482 ± 0.013 ms |
| Product LogNormal*Gamma numerical wrt Y/Mooncake reverse | 0.717 ± 0.047 ms |
| Product LogNormal*Gamma numerical wrt Y/ReverseDiff (tape) | 3.88 ± 0.26 ms |
| Product LogNormal*LogNormal analytical/Enzyme forward | 6.13 ± 0.19 μs |
| Product LogNormal*LogNormal analytical/Enzyme reverse | 2.71 ± 0.11 μs |
| Product LogNormal*LogNormal analytical/ForwardDiff | 0.437 ± 0.052 μs |
| Product LogNormal*LogNormal analytical/Mooncake forward | 4.4 ± 0.4 μs |
| Product LogNormal*LogNormal analytical/Mooncake reverse | 13.1 ± 1.2 μs |
| Product LogNormal*LogNormal analytical/ReverseDiff (tape) | 17.3 ± 1.3 μs |
| Timeseries convolve discrete Poisson delay/Enzyme forward | 5.5 ± 0.21 μs |
| Timeseries convolve discrete Poisson delay/Enzyme reverse | 0.908 ± 0.066 μs |
| Timeseries convolve discrete Poisson delay/ForwardDiff | 0.701 ± 0.067 μs |
| Timeseries convolve discrete Poisson delay/Mooncake forward | 4.95 ± 0.66 μs |
| Timeseries convolve discrete Poisson delay/Mooncake reverse | 14 ± 1.1 μs |
| Timeseries convolve discrete Poisson delay/ReverseDiff (tape) | 24.3 ± 1.6 μs |
| Timeseries convolve discretised Convolved Gamma+LogNormal delay/Enzyme forward | 0.426 ± 0.017 ms |
| Timeseries convolve discretised Convolved Gamma+LogNormal delay/Enzyme reverse | 0.53 ± 0.02 ms |
| Timeseries convolve discretised Convolved Gamma+LogNormal delay/ForwardDiff | 0.383 ± 0.012 ms |
| Timeseries convolve discretised Convolved Gamma+LogNormal delay/Mooncake forward | 1.79 ± 0.056 ms |
| Timeseries convolve discretised Convolved Gamma+LogNormal delay/Mooncake reverse | 1.41 ± 0.072 ms |
| Timeseries convolve discretised Convolved Gamma+LogNormal delay/ReverseDiff (tape) | 6.99 ± 0.48 ms |
| Timeseries convolve discretised Gamma delay/Enzyme forward | 7.8 ± 0.27 μs |
| Timeseries convolve discretised Gamma delay/Enzyme reverse | 5.43 ± 0.22 μs |
| Timeseries convolve discretised Gamma delay/ForwardDiff | 2.4 ± 0.054 μs |
| Timeseries convolve discretised Gamma delay/Mooncake forward | 9.25 ± 1.5 μs |
| Timeseries convolve discretised Gamma delay/Mooncake reverse | 16.5 ± 2.1 μs |
| Timeseries convolve discretised Gamma delay/ReverseDiff (tape) | 28.8 ± 1.6 μs |
Memory
| Benchmark | 3f63739bc73a64... |
|---|---|
| Convolved Gamma+LogNormal batched logpdf wrt params/Enzyme forward | 0.088 k allocs: 11.6 kB |
| Convolved Gamma+LogNormal batched logpdf wrt params/Enzyme reverse | 1.35 k allocs: 0.168 MB |
| Convolved Gamma+LogNormal batched logpdf wrt params/ForwardDiff | 0.04 k allocs: 4.7 kB |
| Convolved Gamma+LogNormal batched logpdf wrt params/Mooncake forward | 0.264 k allocs: 27.2 kB |
| Convolved Gamma+LogNormal batched logpdf wrt params/Mooncake reverse | 2.08 k allocs: 0.666 MB |
| Convolved Gamma+LogNormal batched logpdf wrt params/ReverseDiff (tape) | 28.5 k allocs: 1.2 MB |
| Convolved Gamma+LogNormal batched logpdf wrt points/Enzyme forward | 0.151 k allocs: 22.6 kB |
| Convolved Gamma+LogNormal batched logpdf wrt points/Enzyme reverse | 1.36 k allocs: 0.169 MB |
| Convolved Gamma+LogNormal batched logpdf wrt points/ForwardDiff | 0.081 k allocs: 7.2 kB |
| Convolved Gamma+LogNormal batched logpdf wrt points/Mooncake forward | 0.519 k allocs: 0.0521 MB |
| Convolved Gamma+LogNormal batched logpdf wrt points/Mooncake reverse | 2.07 k allocs: 0.665 MB |
| Convolved Gamma+LogNormal batched logpdf wrt points/ReverseDiff (tape) | 0.0327 M allocs: 1.23 MB |
| Convolved Gamma+LogNormal numerical/Enzyme forward | 0.078 k allocs: 3.41 kB |
| Convolved Gamma+LogNormal numerical/Enzyme reverse | 0.147 k allocs: 18.8 kB |
| Convolved Gamma+LogNormal numerical/ForwardDiff | 21 allocs: 1.03 kB |
| Convolved Gamma+LogNormal numerical/Mooncake forward | 0.142 k allocs: 7.5 kB |
| Convolved Gamma+LogNormal numerical/Mooncake reverse | 2.35 k allocs: 0.639 MB |
| Convolved Gamma+LogNormal numerical/ReverseDiff (tape) | 31.1 k allocs: 1.29 MB |
| Convolved Gamma+Normal mean+var moments/Enzyme forward | 0.032 k allocs: 1.3 kB |
| Convolved Gamma+Normal mean+var moments/Enzyme reverse | 2 allocs: 0.0938 kB |
| Convolved Gamma+Normal mean+var moments/ForwardDiff | 7 allocs: 0.484 kB |
| Convolved Gamma+Normal mean+var moments/Mooncake forward | 0.07 k allocs: 3.33 kB |
| Convolved Gamma+Normal mean+var moments/Mooncake reverse | 0.078 k allocs: 3.71 kB |
| Convolved Gamma+Normal mean+var moments/ReverseDiff (tape) | 0.041 k allocs: 1.7 kB |
| Convolved LogNormal+Gamma numerical/Enzyme forward | 0.078 k allocs: 3.41 kB |
| Convolved LogNormal+Gamma numerical/Enzyme reverse | 0.147 k allocs: 18.8 kB |
| Convolved LogNormal+Gamma numerical/ForwardDiff | 21 allocs: 1.03 kB |
| Convolved LogNormal+Gamma numerical/Mooncake forward | 0.142 k allocs: 7.5 kB |
| Convolved LogNormal+Gamma numerical/Mooncake reverse | 2.37 k allocs: 0.633 MB |
| Convolved LogNormal+Gamma numerical/ReverseDiff (tape) | 30.2 k allocs: 1.26 MB |
| Convolved Normal+Normal analytical/Enzyme forward | 0.036 k allocs: 1.11 kB |
| Convolved Normal+Normal analytical/Enzyme reverse | 24 allocs: 1.03 kB |
| Convolved Normal+Normal analytical/ForwardDiff | 7 allocs: 0.266 kB |
| Convolved Normal+Normal analytical/Mooncake forward | 0.058 k allocs: 2.91 kB |
| Convolved Normal+Normal analytical/Mooncake reverse | 0.289 k allocs: 0.0329 MB |
| Convolved Normal+Normal analytical/ReverseDiff (tape) | 0.238 k allocs: 9.92 kB |
| Difference Gamma-LogNormal numerical wrt X/Enzyme forward | 0.096 k allocs: 8.14 kB |
| Difference Gamma-LogNormal numerical wrt X/Enzyme reverse | 0.159 k allocs: 23.1 kB |
| Difference Gamma-LogNormal numerical wrt X/ForwardDiff | 27 allocs: 2.61 kB |
| Difference Gamma-LogNormal numerical wrt X/Mooncake forward | 0.178 k allocs: 17 kB |
| Difference Gamma-LogNormal numerical wrt X/Mooncake reverse | 2.46 k allocs: 1.03 MB |
| Difference Gamma-LogNormal numerical wrt X/ReverseDiff (tape) | 0.0532 M allocs: 2.07 MB |
| Difference Gamma-Normal mean+var moments/Enzyme forward | 0.032 k allocs: 1.3 kB |
| Difference Gamma-Normal mean+var moments/Enzyme reverse | 2 allocs: 0.0938 kB |
| Difference Gamma-Normal mean+var moments/ForwardDiff | 7 allocs: 0.484 kB |
| Difference Gamma-Normal mean+var moments/Mooncake forward | 0.07 k allocs: 3.33 kB |
| Difference Gamma-Normal mean+var moments/Mooncake reverse | 0.078 k allocs: 3.71 kB |
| Difference Gamma-Normal mean+var moments/ReverseDiff (tape) | 0.041 k allocs: 1.7 kB |
| Difference LogNormal-Gamma numerical wrt Y/Enzyme forward | 0.096 k allocs: 8.14 kB |
| Difference LogNormal-Gamma numerical wrt Y/Enzyme reverse | 0.159 k allocs: 23.2 kB |
| Difference LogNormal-Gamma numerical wrt Y/ForwardDiff | 27 allocs: 2.61 kB |
| Difference LogNormal-Gamma numerical wrt Y/Mooncake forward | 0.178 k allocs: 17 kB |
| Difference LogNormal-Gamma numerical wrt Y/Mooncake reverse | 2.46 k allocs: 1.03 MB |
| Difference LogNormal-Gamma numerical wrt Y/ReverseDiff (tape) | 0.0532 M allocs: 2.07 MB |
| Difference Normal-Normal analytical/Enzyme forward | 0.036 k allocs: 1.11 kB |
| Difference Normal-Normal analytical/Enzyme reverse | 24 allocs: 1.02 kB |
| Difference Normal-Normal analytical/ForwardDiff | 7 allocs: 0.266 kB |
| Difference Normal-Normal analytical/Mooncake forward | 0.058 k allocs: 2.91 kB |
| Difference Normal-Normal analytical/Mooncake reverse | 0.289 k allocs: 0.0331 MB |
| Difference Normal-Normal analytical/ReverseDiff (tape) | 0.268 k allocs: 10.9 kB |
| Product Gamma*LogNormal mean+var moments/Enzyme forward | 0.032 k allocs: 1.3 kB |
| Product Gamma*LogNormal mean+var moments/Enzyme reverse | 2 allocs: 0.0938 kB |
| Product Gamma*LogNormal mean+var moments/ForwardDiff | 7 allocs: 0.484 kB |
| Product Gamma*LogNormal mean+var moments/Mooncake forward | 0.07 k allocs: 3.33 kB |
| Product Gamma*LogNormal mean+var moments/Mooncake reverse | 0.093 k allocs: 5.09 kB |
| Product Gamma*LogNormal mean+var moments/ReverseDiff (tape) | 0.127 k allocs: 5.25 kB |
| Product Gamma*LogNormal numerical wrt X/Enzyme forward | 0.096 k allocs: 8.14 kB |
| Product Gamma*LogNormal numerical wrt X/Enzyme reverse | 0.159 k allocs: 23.1 kB |
| Product Gamma*LogNormal numerical wrt X/ForwardDiff | 27 allocs: 2.61 kB |
| Product Gamma*LogNormal numerical wrt X/Mooncake forward | 0.178 k allocs: 17 kB |
| Product Gamma*LogNormal numerical wrt X/Mooncake reverse | 2.57 k allocs: 1.15 MB |
| Product Gamma*LogNormal numerical wrt X/ReverseDiff (tape) | 0.058 M allocs: 2.44 MB |
| Product LogNormal*Gamma numerical wrt Y/Enzyme forward | 0.096 k allocs: 8.14 kB |
| Product LogNormal*Gamma numerical wrt Y/Enzyme reverse | 0.159 k allocs: 23.2 kB |
| Product LogNormal*Gamma numerical wrt Y/ForwardDiff | 27 allocs: 2.61 kB |
| Product LogNormal*Gamma numerical wrt Y/Mooncake forward | 0.178 k allocs: 17 kB |
| Product LogNormal*Gamma numerical wrt Y/Mooncake reverse | 2.57 k allocs: 1.15 MB |
| Product LogNormal*Gamma numerical wrt Y/ReverseDiff (tape) | 0.058 M allocs: 2.44 MB |
| Product LogNormal*LogNormal analytical/Enzyme forward | 0.036 k allocs: 1.11 kB |
| Product LogNormal*LogNormal analytical/Enzyme reverse | 24 allocs: 1.02 kB |
| Product LogNormal*LogNormal analytical/ForwardDiff | 7 allocs: 0.266 kB |
| Product LogNormal*LogNormal analytical/Mooncake forward | 0.058 k allocs: 2.91 kB |
| Product LogNormal*LogNormal analytical/Mooncake reverse | 0.27 k allocs: 12.5 kB |
| Product LogNormal*LogNormal analytical/ReverseDiff (tape) | 0.298 k allocs: 12 kB |
| Timeseries convolve discrete Poisson delay/Enzyme forward | 0.033 k allocs: 1.2 kB |
| Timeseries convolve discrete Poisson delay/Enzyme reverse | 10 allocs: 0.5 kB |
| Timeseries convolve discrete Poisson delay/ForwardDiff | 11 allocs: 0.547 kB |
| Timeseries convolve discrete Poisson delay/Mooncake forward | 0.068 k allocs: 3.58 kB |
| Timeseries convolve discrete Poisson delay/Mooncake reverse | 0.198 k allocs: 16.1 kB |
| Timeseries convolve discrete Poisson delay/ReverseDiff (tape) | 0.462 k allocs: 18.2 kB |
| Timeseries convolve discretised Convolved Gamma+LogNormal delay/Enzyme forward | 0.247 k allocs: 13.6 kB |
| Timeseries convolve discretised Convolved Gamma+LogNormal delay/Enzyme reverse | 0.373 k allocs: 0.0585 MB |
| Timeseries convolve discretised Convolved Gamma+LogNormal delay/ForwardDiff | 0.087 k allocs: 5.36 kB |
| Timeseries convolve discretised Convolved Gamma+LogNormal delay/Mooncake forward | 0.5 k allocs: 27.9 kB |
| Timeseries convolve discretised Convolved Gamma+LogNormal delay/Mooncake reverse | 2.31 k allocs: 1.59 MB |
| Timeseries convolve discretised Convolved Gamma+LogNormal delay/ReverseDiff (tape) | 0.0943 M allocs: 3.69 MB |
| Timeseries convolve discretised Gamma delay/Enzyme forward | 0.04 k allocs: 1.62 kB |
| Timeseries convolve discretised Gamma delay/Enzyme reverse | 0.034 k allocs: 1.7 kB |
| Timeseries convolve discretised Gamma delay/ForwardDiff | 11 allocs: 0.703 kB |
| Timeseries convolve discretised Gamma delay/Mooncake forward | 0.082 k allocs: 4.23 kB |
| Timeseries convolve discretised Gamma delay/Mooncake reverse | 0.184 k allocs: 17 kB |
| Timeseries convolve discretised Gamma delay/ReverseDiff (tape) | 0.449 k allocs: 18 kB |
Baseline
Time
| Benchmark | 3f63739bc73a64... |
|---|---|
| Gamma/cdf | 2.57 ± 0.24 μs |
| Gamma/logpdf | 1.99 ± 0.26 μs |
| Normal/cdf | 1.22 ± 0.22 μs |
| Normal/logpdf | 0.784 ± 0.035 μs |
Memory
| Benchmark | 3f63739bc73a64... |
|---|---|
| Gamma/cdf | 2 allocs: 0.906 kB |
| Gamma/logpdf | 2 allocs: 0.906 kB |
| Normal/cdf | 2 allocs: 0.906 kB |
| Normal/logpdf | 2 allocs: 0.906 kB |
Convolved
Time
| Benchmark | 3f63739bc73a64... |
|---|---|
| analytic/cdf batched | 2.19 ± 0.3 μs |
| analytic/cdf scalar | 17 ± 0.46 ns |
| analytic/construction | 2.6 ± 0.019 ns |
| analytic/logpdf batched | 0.787 ± 0.032 μs |
| analytic/logpdf broadcast | 1.84 ± 0.25 μs |
| analytic/logpdf scalar | 16.4 ± 0.073 ns |
| analytic/mean | 2.25 ± 0.006 ns |
| analytic/pdf batched | 0.807 ± 0.038 μs |
| analytic/pdf scalar | 16.7 ± 0.063 ns |
| analytic/rand | 1.01 ± 0.042 μs |
| numeric/cdf batched | 0.579 ± 0.0065 ms |
| numeric/cdf scalar | 12.6 ± 0.06 μs |
| numeric/construction | 2.32 ± 0.013 ns |
| numeric/logpdf batched | 0.457 ± 0.0085 ms |
| numeric/logpdf broadcast | 0.795 ± 0.014 ms |
| numeric/logpdf scalar | 8.01 ± 0.69 μs |
| numeric/mean | 4.33 ± 0.29 ns |
| numeric/pdf batched | 0.453 ± 0.01 ms |
| numeric/pdf scalar | 7.34 ± 0.17 μs |
| numeric/rand | 2.22 ± 0.32 μs |
Memory
| Benchmark | 3f63739bc73a64... |
|---|---|
| analytic/cdf batched | 2 allocs: 0.906 kB |
| analytic/cdf scalar | 0 allocs: 0 B |
| analytic/construction | 0 allocs: 0 B |
| analytic/logpdf batched | 2 allocs: 0.906 kB |
| analytic/logpdf broadcast | 2 allocs: 0.906 kB |
| analytic/logpdf scalar | 0 allocs: 0 B |
| analytic/mean | 0 allocs: 0 B |
| analytic/pdf batched | 2 allocs: 0.906 kB |
| analytic/pdf scalar | 0 allocs: 0 B |
| analytic/rand | 2 allocs: 0.906 kB |
| numeric/cdf batched | 24 allocs: 8.32 kB |
| numeric/cdf scalar | 3 allocs: 0.172 kB |
| numeric/construction | 0 allocs: 0 B |
| numeric/logpdf batched | 25 allocs: 8.41 kB |
| numeric/logpdf broadcast | 0.338 k allocs: 29.8 kB |
| numeric/logpdf scalar | 3 allocs: 0.172 kB |
| numeric/mean | 0 allocs: 0 B |
| numeric/pdf batched | 23 allocs: 7.5 kB |
| numeric/pdf scalar | 3 allocs: 0.172 kB |
| numeric/rand | 2 allocs: 0.906 kB |
Difference
Time
| Benchmark | 3f63739bc73a64... |
|---|---|
| analytic/cdf broadcast | 2.77 ± 0.25 μs |
| analytic/cdf scalar | 9.09 ± 0.26 ns |
| analytic/construction | 2.32 ± 0.014 ns |
| analytic/logpdf broadcast | 1.22 ± 0.096 μs |
| analytic/logpdf scalar | 11.4 ± 0.039 ns |
| analytic/mean | 2.62 ± 0.24 ns |
| analytic/rand | 1.02 ± 0.059 μs |
| numeric/cdf broadcast | 1.12 ± 0.02 ms |
| numeric/cdf scalar | 15.9 ± 1.5 μs |
| numeric/construction | 2.82 ± 0.081 ns |
| numeric/logpdf broadcast | 0.984 ± 0.019 ms |
| numeric/logpdf scalar | 9.83 ± 0.12 μs |
| numeric/mean | 4.33 ± 0.29 ns |
| numeric/rand | 2.31 ± 0.29 μs |
Memory
| Benchmark | 3f63739bc73a64... |
|---|---|
| analytic/cdf broadcast | 2 allocs: 0.906 kB |
| analytic/cdf scalar | 0 allocs: 0 B |
| analytic/construction | 0 allocs: 0 B |
| analytic/logpdf broadcast | 2 allocs: 0.906 kB |
| analytic/logpdf scalar | 0 allocs: 0 B |
| analytic/mean | 0 allocs: 0 B |
| analytic/rand | 2 allocs: 0.906 kB |
| numeric/cdf broadcast | 0.402 k allocs: 0.0467 MB |
| numeric/cdf scalar | 4 allocs: 0.469 kB |
| numeric/construction | 0 allocs: 0 B |
| numeric/logpdf broadcast | 0.402 k allocs: 0.0467 MB |
| numeric/logpdf scalar | 4 allocs: 0.469 kB |
| numeric/mean | 0 allocs: 0 B |
| numeric/rand | 2 allocs: 0.906 kB |
Product
Time
| Benchmark | 3f63739bc73a64... |
|---|---|
| analytic/cdf broadcast | 3.87 ± 0.32 μs |
| analytic/cdf scalar | 18.1 ± 0.073 ns |
| analytic/construction | 2.6 ± 0.013 ns |
| analytic/logpdf broadcast | 1.46 ± 0.24 μs |
| analytic/logpdf scalar | 13.6 ± 0.38 ns |
| analytic/mean | 7.54 ± 0.57 ns |
| analytic/rand | 3.37 ± 0.28 μs |
| numeric/cdf broadcast | 1.23 ± 0.035 ms |
| numeric/cdf scalar | 15 ± 0.38 μs |
| numeric/construction | 2.6 ± 0.075 ns |
| numeric/logpdf broadcast | 1.05 ± 0.031 ms |
| numeric/logpdf scalar | 10.2 ± 0.29 μs |
| numeric/mean | 4.33 ± 0.14 ns |
| numeric/rand | 2.27 ± 0.28 μs |
Memory
| Benchmark | 3f63739bc73a64... |
|---|---|
| analytic/cdf broadcast | 2 allocs: 0.906 kB |
| analytic/cdf scalar | 0 allocs: 0 B |
| analytic/construction | 0 allocs: 0 B |
| analytic/logpdf broadcast | 2 allocs: 0.906 kB |
| analytic/logpdf scalar | 0 allocs: 0 B |
| analytic/mean | 0 allocs: 0 B |
| analytic/rand | 2 allocs: 0.906 kB |
| numeric/cdf broadcast | 0.402 k allocs: 0.0467 MB |
| numeric/cdf scalar | 4 allocs: 0.469 kB |
| numeric/construction | 0 allocs: 0 B |
| numeric/logpdf broadcast | 0.402 k allocs: 0.0467 MB |
| numeric/logpdf scalar | 4 allocs: 0.469 kB |
| numeric/mean | 0 allocs: 0 B |
| numeric/rand | 2 allocs: 0.906 kB |
Quantile
Time
| Benchmark | 3f63739bc73a64... |
|---|---|
| Convolved analytic/grid | 0.432 ± 0.055 ms |
| Convolved analytic/median | 17.1 ± 0.91 μs |
| Convolved numeric/median | 0.233 ± 0.011 ms |
| Difference numeric/median | 0.272 ± 0.012 ms |
| Product numeric/median | 0.318 ± 0.014 ms |
Memory
| Benchmark | 3f63739bc73a64... |
|---|---|
| Convolved analytic/grid | 5.71 k allocs: 0.324 MB |
| Convolved analytic/median | 0.265 k allocs: 15.6 kB |
| Convolved numeric/median | 0.339 k allocs: 19.6 kB |
| Difference numeric/median | 0.302 k allocs: 21.8 kB |
| Product numeric/median | 0.381 k allocs: 27 kB |
Timeseries
Time
| Benchmark | 3f63739bc73a64... |
|---|---|
| Convolved delay | 0.631 ± 0.018 ms |
| Gamma delay | 1.33 ± 0.12 μs |
| Poisson delay | 1.12 ± 0.14 μs |
Memory
| Benchmark | 3f63739bc73a64... |
|---|---|
| Convolved delay | 0.226 k allocs: 24.1 kB |
| Gamma delay | 4 allocs: 0.594 kB |
| Poisson delay | 4 allocs: 0.594 kB |
time_to_load
Time
| Benchmark | 3f63739bc73a64... |
|---|---|
| time_to_load | 0.782 ± 0.025 s |
Memory
| Benchmark | 3f63739bc73a64... |
|---|---|
| time_to_load | 0.149 k allocs: 11.2 kB |
Per-benchmark timelines
<details> <summary>Show 9 plots</summary>









</details>
</details>