Skip to content

Performance over time

How EpiAwareADTools's benchmark suites have moved across recent revisions: an overall summary across the package first, then one section per suite.

Summary

Each benchmark suite's headline timing across recent revisions.

SuiteMedian ratioTrendStatus
Baseline1.0ok
Hooks1.0ok
AD gradientsn/an/a
time_to_load0.99ok

Ratio: latest vs oldest shown revision (1.00 = no change, higher = slower/larger). ⚠ reg = at/above the regression threshold.

Tables below show the most recent 5 revisions, columns labelled by commit date.

Baseline

Time

Benchmarkv0.2.1v0.2.0v0.1.2v0.1.1566ba153f5adbf...
Beta/ccdf19 ± 5.3 μs19.2 ± 5.6 μs19.1 ± 5.3 μs14.2 ± 5.5 μs19.4 ± 5.9 μs
Beta/cdf19.1 ± 5.5 μs19.4 ± 5.8 μs19.2 ± 5.6 μs14.3 ± 5.5 μs19.1 ± 5.5 μs
Beta/logccdf21.3 ± 5.6 μs21.6 ± 5.8 μs21.4 ± 5.6 μs16.3 ± 5.5 μs21.7 ± 6.2 μs
Beta/logcdf22.4 ± 5.6 μs21.8 ± 5.8 μs21.9 ± 5.6 μs16.7 ± 5.4 μs22 ± 5.8 μs
Beta/pdf7.8 ± 0.083 μs7.77 ± 0.065 μs7.76 ± 0.072 μs7.8 ± 0.088 μs7.8 ± 0.069 μs
Gamma/ccdf3.74 ± 0.43 μs3.75 ± 0.44 μs3.74 ± 0.42 μs3.73 ± 0.44 μs3.72 ± 0.46 μs
Gamma/cdf3.74 ± 0.44 μs3.75 ± 0.44 μs3.75 ± 0.44 μs3.74 ± 0.42 μs3.72 ± 0.44 μs
Gamma/logccdf5.93 ± 0.11 μs5.94 ± 0.095 μs5.91 ± 0.082 μs5.94 ± 0.095 μs5.91 ± 0.067 μs
Gamma/logcdf5.67 ± 0.085 μs5.66 ± 0.084 μs5.65 ± 0.082 μs5.65 ± 0.078 μs5.65 ± 0.067 μs
Gamma/pdf3.62 ± 0.43 μs3.63 ± 0.45 μs3.63 ± 0.43 μs3.61 ± 0.44 μs3.61 ± 0.47 μs

Memory

Benchmarkv0.2.1v0.2.0v0.1.2v0.1.1566ba153f5adbf...
Beta/ccdf0.09 k allocs: 14 kB0.09 k allocs: 14 kB0.09 k allocs: 14 kB0.09 k allocs: 14 kB0.09 k allocs: 14 kB
Beta/cdf0.09 k allocs: 14 kB0.09 k allocs: 14 kB0.09 k allocs: 14 kB0.09 k allocs: 14 kB0.09 k allocs: 14 kB
Beta/logccdf0.09 k allocs: 14 kB0.09 k allocs: 14 kB0.09 k allocs: 14 kB0.09 k allocs: 14 kB0.09 k allocs: 14 kB
Beta/logcdf0.09 k allocs: 14 kB0.09 k allocs: 14 kB0.09 k allocs: 14 kB0.09 k allocs: 14 kB0.09 k allocs: 14 kB
Beta/pdf2 allocs: 0.906 kB2 allocs: 0.906 kB2 allocs: 0.906 kB2 allocs: 0.906 kB2 allocs: 0.906 kB
Gamma/ccdf2 allocs: 0.906 kB2 allocs: 0.906 kB2 allocs: 0.906 kB2 allocs: 0.906 kB2 allocs: 0.906 kB
Gamma/cdf2 allocs: 0.906 kB2 allocs: 0.906 kB2 allocs: 0.906 kB2 allocs: 0.906 kB2 allocs: 0.906 kB
Gamma/logccdf2 allocs: 0.906 kB2 allocs: 0.906 kB2 allocs: 0.906 kB2 allocs: 0.906 kB2 allocs: 0.906 kB
Gamma/logcdf2 allocs: 0.906 kB2 allocs: 0.906 kB2 allocs: 0.906 kB2 allocs: 0.906 kB2 allocs: 0.906 kB
Gamma/pdf2 allocs: 0.906 kB2 allocs: 0.906 kB2 allocs: 0.906 kB2 allocs: 0.906 kB2 allocs: 0.906 kB

Hooks

Time

Benchmarkv0.2.1v0.2.0v0.1.2v0.1.1566ba153f5adbf...
Beta/ccdf_ad_safe19.1 ± 5.4 μs20 ± 5.7 μs19 ± 5.4 μs14.2 ± 5.4 μs19.4 ± 5.8 μs
Beta/cdf_ad_safe19 ± 5.3 μs19.9 ± 5.9 μs19 ± 5.3 μs14.3 ± 5.3 μs19.3 ± 5.6 μs
Beta/logccdf_ad_safe21.3 ± 5.5 μs22.6 ± 6.2 μs21.3 ± 5.6 μs16.3 ± 5.4 μs21.7 ± 6.1 μs
Beta/logcdf_ad_safe21 ± 5.4 μs22.1 ± 5.8 μs21.1 ± 5.6 μs16.1 ± 5.4 μs21.2 ± 5.7 μs
Beta/pdf_ad_safe7.82 ± 0.062 μs7.71 ± 0.058 μs7.72 ± 0.055 μs7.81 ± 0.075 μs7.82 ± 0.068 μs
Gamma/ccdf_ad_safe3.82 ± 0.43 μs3.83 ± 0.45 μs3.79 ± 0.43 μs3.81 ± 0.43 μs3.82 ± 0.44 μs
Gamma/cdf_ad_safe3.76 ± 0.43 μs3.75 ± 0.46 μs3.74 ± 0.45 μs3.75 ± 0.44 μs3.73 ± 0.45 μs
Gamma/logccdf_ad_safe6.13 ± 0.064 μs6.15 ± 0.06 μs5.86 ± 0.08 μs5.86 ± 0.072 μs6.12 ± 0.046 μs
Gamma/logcdf_ad_safe5.43 ± 0.084 μs5.45 ± 0.088 μs5.51 ± 0.077 μs5.44 ± 0.073 μs5.43 ± 0.065 μs
Gamma/pdf_ad_safe3.62 ± 0.43 μs3.63 ± 0.46 μs3.62 ± 0.44 μs3.62 ± 0.44 μs3.61 ± 0.45 μs
Normal (fall-through)/cdf_ad_safe1.65 ± 0.34 μs1.66 ± 0.41 μs1.64 ± 0.36 μs1.69 ± 0.37 μs1.66 ± 0.39 μs
Normal (fall-through)/logcdf_ad_safe4.12 ± 0.25 μs4.12 ± 0.27 μs4.12 ± 0.26 μs4.11 ± 0.25 μs4.1 ± 0.24 μs
Normal (fall-through)/pdf_ad_safe1.09 ± 0.39 μs1.1 ± 0.42 μs1.09 ± 0.39 μs0.79 ± 0.39 μs1.12 ± 0.062 μs
_beta_cdf/broadcast19 ± 5.3 μs19.3 ± 5.7 μs19.2 ± 5.5 μs14.2 ± 5.4 μs18.9 ± 5.2 μs
_beta_cdf/scalar0.0537 ± 0.00062 μs0.0544 ± 1.1e-05 μs0.0537 ± 0.00086 μs0.0535 ± 0.00035 μs0.0542 ± 0.00028 μs
_gamma_cdf/broadcast3.76 ± 0.44 μs3.75 ± 0.45 μs3.74 ± 0.44 μs3.76 ± 0.43 μs3.75 ± 0.43 μs
_gamma_cdf/scalar1.74 ± 0.001 ns1.74 ± 0.001 ns1.74 ± 0.001 ns1.74 ± 0.001 ns1.74 ± 0.001 ns

Memory

Benchmarkv0.2.1v0.2.0v0.1.2v0.1.1566ba153f5adbf...
Beta/ccdf_ad_safe0.09 k allocs: 14 kB0.09 k allocs: 14 kB0.09 k allocs: 14 kB0.09 k allocs: 14 kB0.09 k allocs: 14 kB
Beta/cdf_ad_safe0.09 k allocs: 14 kB0.09 k allocs: 14 kB0.09 k allocs: 14 kB0.09 k allocs: 14 kB0.09 k allocs: 14 kB
Beta/logccdf_ad_safe0.09 k allocs: 14 kB0.09 k allocs: 14 kB0.09 k allocs: 14 kB0.09 k allocs: 14 kB0.09 k allocs: 14 kB
Beta/logcdf_ad_safe0.09 k allocs: 14 kB0.09 k allocs: 14 kB0.09 k allocs: 14 kB0.09 k allocs: 14 kB0.09 k allocs: 14 kB
Beta/pdf_ad_safe2 allocs: 0.906 kB2 allocs: 0.906 kB2 allocs: 0.906 kB2 allocs: 0.906 kB2 allocs: 0.906 kB
Gamma/ccdf_ad_safe2 allocs: 0.906 kB2 allocs: 0.906 kB2 allocs: 0.906 kB2 allocs: 0.906 kB2 allocs: 0.906 kB
Gamma/cdf_ad_safe2 allocs: 0.906 kB2 allocs: 0.906 kB2 allocs: 0.906 kB2 allocs: 0.906 kB2 allocs: 0.906 kB
Gamma/logccdf_ad_safe2 allocs: 0.906 kB2 allocs: 0.906 kB2 allocs: 0.906 kB2 allocs: 0.906 kB2 allocs: 0.906 kB
Gamma/logcdf_ad_safe2 allocs: 0.906 kB2 allocs: 0.906 kB2 allocs: 0.906 kB2 allocs: 0.906 kB2 allocs: 0.906 kB
Gamma/pdf_ad_safe2 allocs: 0.906 kB2 allocs: 0.906 kB2 allocs: 0.906 kB2 allocs: 0.906 kB2 allocs: 0.906 kB
Normal (fall-through)/cdf_ad_safe2 allocs: 0.906 kB2 allocs: 0.906 kB2 allocs: 0.906 kB2 allocs: 0.906 kB2 allocs: 0.906 kB
Normal (fall-through)/logcdf_ad_safe2 allocs: 0.906 kB2 allocs: 0.906 kB2 allocs: 0.906 kB2 allocs: 0.906 kB2 allocs: 0.906 kB
Normal (fall-through)/pdf_ad_safe2 allocs: 0.906 kB2 allocs: 0.906 kB2 allocs: 0.906 kB2 allocs: 0.906 kB2 allocs: 0.906 kB
_beta_cdf/broadcast0.09 k allocs: 14 kB0.09 k allocs: 14 kB0.09 k allocs: 14 kB0.09 k allocs: 14 kB0.09 k allocs: 14 kB
_beta_cdf/scalar0 allocs: 0 B0 allocs: 0 B0 allocs: 0 B0 allocs: 0 B0 allocs: 0 B
_gamma_cdf/broadcast2 allocs: 0.906 kB2 allocs: 0.906 kB2 allocs: 0.906 kB2 allocs: 0.906 kB2 allocs: 0.906 kB
_gamma_cdf/scalar0 allocs: 0 B0 allocs: 0 B0 allocs: 0 B0 allocs: 0 B0 allocs: 0 B

AD gradients

Time

Benchmarkv0.2.1v0.2.0v0.1.2v0.1.1566ba153f5adbf...
logcdf_ad_safe TDist/ReverseDiff (tape)16.2 ± 0.53 μs
cdf_ad_safe Gamma/Mooncake forward8.26 ± 0.21 μs
cdf_ad_safe Beta/Enzyme reverse6.95 ± 0.33 μs
logccdf_ad_safe LogNormal/ReverseDiff (tape)9.77 ± 0.41 μs
logpdf Gamma at shape 1/Mooncake reverse28.4 ± 3.6 μs
_t_cdf direct/ForwardDiff1.07 ± 0.015 μs
cdf_ad_safe GeneralizedGamma/ReverseDiff (tape)13.2 ± 0.41 μs
fixed_draw pinned realisation/ReverseDiff (tape)0.998 ± 0.32 μs
logpdf Gamma at shape 1/Enzyme reverse3.24 ± 0.096 μs
cdf_ad_safe LogNormal/Enzyme forward7.74 ± 0.15 μs
cdf_ad_safe LogNormal/ForwardDiff0.589 ± 0.091 μs
logccdf_ad_safe TDist/ReverseDiff (compiled)16.2 ± 0.51 μs
nondifferentiable array argument/ForwardDiff0.482 ± 0.12 μs
cdf_ad_safe Gamma/Enzyme forward9.06 ± 0.16 μs
primal_distribution left-truncated window/ForwardDiff0.668 ± 0.091 μs
logccdf_ad_safe location-scale TDist/ReverseDiff (compiled)27.3 ± 0.83 μs
primal_distribution left-truncated window/ReverseDiff (tape)3.55 ± 0.11 μs
ccdf_ad_safe LogNormal/Mooncake reverse23 ± 7 μs
cdf_ad_safe location-scale TDist/Mooncake reverse23.8 ± 0.9 μs
logcdf GeneralizedGamma/ForwardDiff2.98 ± 0.048 μs
logcdf_ad_safe Weibull/Enzyme forward7.83 ± 0.16 μs
ccdf_ad_safe LogNormal/Mooncake forward6.04 ± 0.4 μs
logccdf_ad_safe location-scale TDist/Enzyme forward11.1 ± 0.21 μs
ccdf_ad_safe location-scale TDist/ReverseDiff (compiled)27.4 ± 0.77 μs
logcdf_ad_safe LogNormal/Enzyme reverse3.3 ± 0.082 μs
_beta_cdf direct/ForwardDiff0.951 ± 0.12 μs
ad_eltype seeds a differentiable buffer/Mooncake forward5.45 ± 0.69 μs
logcdf_ad_safe Beta/Enzyme forward11.4 ± 0.22 μs
pdf_ad_safe Beta/Enzyme reverse6.22 ± 0.38 μs
ccdf_ad_safe location-scale TDist/Mooncake forward15.6 ± 0.33 μs
ccdf_ad_safe Gamma/Enzyme forward9.07 ± 0.17 μs
ccdf_ad_safe Beta/Mooncake forward13 ± 0.36 μs
nondifferentiable array argument/Mooncake reverse4.4 ± 0.18 μs
primal_distribution left-truncated window/Mooncake forward7.55 ± 0.46 μs
cdf_ad_safe TDist/Mooncake reverse23.8 ± 6 μs
_beta_cdf direct/Mooncake forward6.71 ± 0.21 μs
pdf_ad_safe GeneralizedGamma/ReverseDiff (compiled)28.6 ± 0.8 μs
ccdf_ad_safe LogNormal/Enzyme reverse1.69 ± 0.031 μs
logcdf_ad_safe Gamma/ReverseDiff (tape)5.14 ± 0.27 μs
ccdf_ad_safe LogNormal/ForwardDiff0.629 ± 0.098 μs
pdf_ad_safe Beta/ReverseDiff (compiled)18.3 ± 0.63 μs
fixed_draw pinned realisation/Enzyme reverse0.042 ± 0.031 μs
logccdf_ad_safe location-scale TDist/Mooncake reverse24.3 ± 1.1 μs
cdf_ad_safe Weibull/ReverseDiff (compiled)6.4 ± 0.2 μs
logcdf_ad_safe TDist/Enzyme reverse6.52 ± 0.14 μs
_t_cdf direct/Mooncake forward6.87 ± 0.19 μs
ccdf_ad_safe location-scale TDist/Enzyme forward11.1 ± 0.2 μs
ad_eltype seeds a differentiable buffer/Enzyme forward6.72 ± 0.14 μs
logcdf_ad_safe TDist/ReverseDiff (compiled)16.2 ± 0.55 μs
nondifferentiable wrapped term/Enzyme forward6.61 ± 0.13 μs
primal_distribution truncated window/Enzyme forward6.82 ± 0.09 μs
logccdf_ad_safe Weibull/Enzyme forward7.6 ± 0.11 μs
logcdf_ad_safe LogNormal/Enzyme forward7.76 ± 0.16 μs
logcdf_ad_safe Weibull/ReverseDiff (compiled)5.79 ± 0.21 μs
logccdf_ad_safe Gamma/ReverseDiff (tape)4.93 ± 0.13 μs
logccdf_ad_safe TDist/ReverseDiff (tape)16.3 ± 0.54 μs
pdf_ad_safe Gamma/ReverseDiff (tape)14.8 ± 0.53 μs
logccdf_ad_safe Beta/ReverseDiff (compiled)7.91 ± 0.2 μs
ccdf_ad_safe Weibull/Mooncake reverse12.5 ± 0.56 μs
cdf_ad_safe location-scale TDist/Enzyme forward11.1 ± 0.2 μs
fixed_draw pinned realisation/Mooncake reverse4.38 ± 0.12 μs
logcdf GeneralizedGamma/Enzyme forward11.3 ± 0.2 μs
ccdf_ad_safe GeneralizedGamma/Enzyme forward11.3 ± 0.19 μs
cdf_ad_safe Beta/Mooncake forward13 ± 0.33 μs
logcdf GeneralizedGamma/ReverseDiff (tape)14 ± 0.51 μs
pdf_ad_safe Weibull/Enzyme reverse3.35 ± 0.1 μs
primal_distribution truncated window/ReverseDiff (tape)3.99 ± 0.14 μs
fixed_draw pinned realisation/ReverseDiff (compiled)1.01 ± 0.33 μs
logccdf_ad_safe Gamma/ForwardDiff1.85 ± 0.018 μs
ccdf_ad_safe Beta/Enzyme forward11.4 ± 0.23 μs
pdf_ad_safe Beta/ForwardDiff1.1 ± 0.015 μs
cdf_ad_safe LogNormal/Mooncake reverse23 ± 7.2 μs
logcdf_ad_safe LogNormal/ReverseDiff (compiled)11.2 ± 0.44 μs
logccdf_ad_safe Weibull/ReverseDiff (tape)5.1 ± 1.2 μs
pdf_ad_safe Weibull/ForwardDiff0.66 ± 0.083 μs
logsumexp_stream geometric/Mooncake reverse14.7 ± 1 μs
cdf_ad_safe Gamma/ReverseDiff (compiled)4.73 ± 0.13 μs
ccdf_ad_safe Weibull/Enzyme forward7.68 ± 0.11 μs
_gamma_cdf direct/Mooncake forward6.27 ± 0.18 μs
cdf_ad_safe Gamma/ReverseDiff (tape)4.74 ± 0.13 μs
_gamma_cdf direct/ReverseDiff (compiled)1.05 ± 0.2 μs
ccdf_ad_safe GeneralizedGamma/ForwardDiff2.93 ± 0.05 μs
cdf_ad_safe GeneralizedGamma/Enzyme reverse5.88 ± 0.084 μs
logccdf_ad_safe Weibull/ReverseDiff (compiled)5.09 ± 1.3 μs
logccdf_ad_safe GeneralizedGamma/ReverseDiff (compiled)13.3 ± 0.43 μs
ccdf_ad_safe TDist/Mooncake forward8.61 ± 0.2 μs
cdf_ad_safe GeneralizedGamma/ForwardDiff2.92 ± 0.046 μs
pdf_ad_safe Beta/Mooncake reverse30.3 ± 4.5 μs
ccdf_ad_safe Weibull/ForwardDiff0.622 ± 0.092 μs
_gamma_cdf direct/Enzyme reverse0.321 ± 0.003 μs
_t_cdf direct/ReverseDiff (tape)3.4 ± 0.11 μs
logccdf_ad_safe Weibull/ForwardDiff0.575 ± 0.096 μs
pdf_ad_safe GeneralizedGamma/Mooncake reverse21 ± 0.81 μs
logcdf_ad_safe Beta/ForwardDiff3.57 ± 0.025 μs
nondifferentiable array argument/ReverseDiff (tape)1.07 ± 0.39 μs
cdf_ad_safe Weibull/Enzyme reverse1.66 ± 0.033 μs
pdf_ad_safe Gamma/ForwardDiff0.795 ± 0.0097 μs
pdf_ad_safe Weibull/ReverseDiff (tape)15.9 ± 0.53 μs
nondifferentiable array argument/Enzyme forward6.65 ± 0.12 μs
logcdf_ad_safe GeneralizedGamma/Enzyme forward11.3 ± 0.19 μs
_gamma_cdf direct/ForwardDiff0.819 ± 0.033 μs
logccdf_ad_safe TDist/ForwardDiff2.73 ± 0.016 μs
ccdf_ad_safe Weibull/Enzyme reverse1.64 ± 0.031 μs
logcdf_ad_safe location-scale TDist/ReverseDiff (tape)26.8 ± 0.76 μs
_beta_cdf direct/Enzyme forward7.15 ± 0.15 μs
_beta_cdf direct/Mooncake reverse5.51 ± 0.16 μs
cdf_ad_safe Weibull/Enzyme forward7.76 ± 0.15 μs
logccdf_ad_safe GeneralizedGamma/Mooncake reverse19.7 ± 0.7 μs
logccdf_ad_safe GeneralizedGamma/Enzyme reverse6.16 ± 0.094 μs
logccdf_ad_safe Beta/Mooncake forward13.3 ± 0.36 μs
pdf_ad_safe LogNormal/Mooncake forward5.98 ± 0.4 μs
logcdf_ad_safe TDist/ForwardDiff2.75 ± 0.018 μs
logcdf GeneralizedGamma/Enzyme reverse5.99 ± 0.093 μs
logsumexp_stream geometric/Mooncake forward6.78 ± 0.16 μs
pdf_ad_safe Beta/Mooncake forward8.19 ± 0.19 μs
logcdf_ad_safe location-scale TDist/ForwardDiff3.33 ± 0.041 μs
cdf_ad_safe Gamma/Mooncake reverse23.3 ± 3 μs
pdf_ad_safe LogNormal/Enzyme forward7.68 ± 0.13 μs
logccdf_ad_safe TDist/Mooncake reverse25.6 ± 5.7 μs
pdf_ad_safe Beta/Enzyme forward8.42 ± 0.13 μs
logcdf_ad_safe location-scale TDist/Mooncake forward16 ± 0.31 μs
logccdf_ad_safe Beta/ReverseDiff (tape)7.9 ± 0.2 μs
ccdf_ad_safe location-scale TDist/ReverseDiff (tape)27.5 ± 0.79 μs
ccdf_ad_safe Beta/Enzyme reverse6.91 ± 0.29 μs
pdf_ad_safe GeneralizedGamma/ReverseDiff (tape)28.5 ± 0.73 μs
pdf_ad_safe GeneralizedGamma/Enzyme reverse3.46 ± 0.072 μs
logcdf_ad_safe Beta/Enzyme reverse7.13 ± 0.25 μs
logcdf_ad_safe GeneralizedGamma/Mooncake forward16.9 ± 0.32 μs
pdf_ad_safe Gamma/Mooncake reverse29.1 ± 3.8 μs
ccdf_ad_safe Weibull/Mooncake forward6.12 ± 0.38 μs
nondifferentiable captured value/Enzyme reverse0.0427 ± 0.028 μs
ccdf_ad_safe Beta/Mooncake reverse27.1 ± 4 μs
ccdf_ad_safe Gamma/Mooncake reverse23.2 ± 2.9 μs
logccdf_ad_safe GeneralizedGamma/Mooncake forward17.5 ± 0.33 μs
cdf_ad_safe LogNormal/Mooncake forward6.03 ± 0.44 μs
logccdf_ad_safe LogNormal/ReverseDiff (compiled)9.73 ± 0.39 μs
nondifferentiable array argument/ReverseDiff (compiled)1.07 ± 0.38 μs
logpdf Gamma at shape 1/ForwardDiff0.679 ± 0.087 μs
ccdf_ad_safe GeneralizedGamma/ReverseDiff (compiled)15.6 ± 0.52 μs
logcdf_ad_safe Gamma/Enzyme forward9.14 ± 0.13 μs
logsumexp_stream geometric/Enzyme forward6.97 ± 0.092 μs
ccdf_ad_safe TDist/ReverseDiff (tape)16.5 ± 0.52 μs
ad_eltype seeds a differentiable buffer/ForwardDiff0.496 ± 0.15 μs
_t_cdf direct/Enzyme forward7.37 ± 0.11 μs
logccdf_ad_safe GeneralizedGamma/Enzyme forward11.5 ± 0.19 μs
cdf_ad_safe Beta/Enzyme forward11.4 ± 0.21 μs
ccdf_ad_safe GeneralizedGamma/Enzyme reverse5.96 ± 0.08 μs
logccdf_ad_safe LogNormal/Enzyme reverse3.4 ± 0.1 μs
logcdf_ad_safe LogNormal/ReverseDiff (tape)11.2 ± 0.44 μs
pdf_ad_safe Gamma/Mooncake forward6.31 ± 0.19 μs
logcdf_ad_safe LogNormal/Mooncake forward6.41 ± 0.21 μs
nondifferentiable array argument/Enzyme reverse0.102 ± 0.064 μs
logcdf_ad_safe Gamma/Enzyme reverse4.77 ± 0.1 μs
nondifferentiable wrapped term/Mooncake forward4.89 ± 0.6 μs
logccdf_ad_safe Beta/ForwardDiff3.56 ± 0.024 μs
pdf_ad_safe Weibull/Mooncake forward6.56 ± 0.21 μs
pdf_ad_safe LogNormal/Mooncake reverse23.2 ± 7.1 μs
_beta_cdf direct/ReverseDiff (compiled)1.01 ± 0.036 μs
nondifferentiable wrapped term/ForwardDiff0.426 ± 0.091 μs
pdf_ad_safe Weibull/Enzyme forward7.75 ± 0.16 μs
nondifferentiable wrapped term/ReverseDiff (compiled)1.13 ± 0.28 μs
logcdf_ad_safe Beta/ReverseDiff (compiled)7.69 ± 0.19 μs
logccdf_ad_safe Gamma/Mooncake reverse23.8 ± 2.9 μs
ccdf_ad_safe TDist/ReverseDiff (compiled)16.5 ± 0.49 μs
ccdf_ad_safe Beta/ReverseDiff (tape)9.33 ± 0.32 μs
logcdf_ad_safe Beta/ReverseDiff (tape)7.7 ± 0.18 μs
pdf_ad_safe Beta/ReverseDiff (tape)18.2 ± 0.59 μs
cdf_ad_safe GeneralizedGamma/Mooncake reverse19.1 ± 0.68 μs
logcdf_ad_safe Weibull/Mooncake forward6.1 ± 0.42 μs
pdf_ad_safe Gamma/Enzyme forward7.94 ± 0.15 μs
pdf_ad_safe Gamma/ReverseDiff (compiled)15 ± 0.54 μs
ccdf_ad_safe GeneralizedGamma/ReverseDiff (tape)15.6 ± 0.56 μs
nondifferentiable captured value/Mooncake reverse4.33 ± 0.11 μs
logcdf_ad_safe Gamma/Mooncake reverse23.3 ± 2.8 μs
logcdf_ad_safe GeneralizedGamma/ForwardDiff2.98 ± 0.048 μs
logccdf_ad_safe Weibull/Mooncake forward5.53 ± 0.37 μs
cdf_ad_safe Weibull/ForwardDiff0.59 ± 0.086 μs
logccdf_ad_safe Gamma/Enzyme forward9.4 ± 0.18 μs
ccdf_ad_safe Beta/ForwardDiff3.51 ± 0.022 μs
logsumexp_stream geometric/Enzyme reverse1.82 ± 0.007 μs
logsumexp_stream geometric/ForwardDiff1.35 ± 0.0091 μs
logccdf_ad_safe Beta/Enzyme forward11.5 ± 0.2 μs
cdf_ad_safe TDist/Mooncake forward8.54 ± 0.18 μs
logccdf_ad_safe LogNormal/Mooncake reverse16.2 ± 0.72 μs
logcdf_ad_safe Weibull/ForwardDiff0.671 ± 0.082 μs
fixed_draw pinned realisation/ForwardDiff0.429 ± 0.1 μs
cdf_ad_safe location-scale TDist/Mooncake forward15.7 ± 0.33 μs
logcdf_ad_safe TDist/Mooncake forward8.91 ± 0.22 μs
_beta_cdf direct/ReverseDiff (tape)1.01 ± 0.037 μs
logcdf_ad_safe Gamma/ReverseDiff (compiled)5.14 ± 0.25 μs
fixed_draw pinned realisation/Mooncake forward4.84 ± 0.67 μs
cdf_ad_safe Beta/ReverseDiff (compiled)7.38 ± 0.17 μs
nondifferentiable captured value/ReverseDiff (compiled)1.13 ± 0.055 μs
logpdf Gamma at shape 1/ReverseDiff (tape)14.5 ± 0.48 μs
cdf_ad_safe GeneralizedGamma/ReverseDiff (compiled)13.2 ± 0.39 μs
pdf_ad_safe LogNormal/ReverseDiff (tape)12.3 ± 0.41 μs
_gamma_cdf direct/ReverseDiff (tape)1.06 ± 0.21 μs
cdf_ad_safe LogNormal/ReverseDiff (tape)8.85 ± 0.25 μs
logsumexp_stream geometric/ReverseDiff (tape)0.08 ± 0.012 ms
logcdf_ad_safe GeneralizedGamma/Mooncake reverse19.1 ± 0.76 μs
pdf_ad_safe LogNormal/Enzyme reverse3.18 ± 0.084 μs
logcdf_ad_safe TDist/Enzyme forward9.93 ± 0.17 μs
logccdf_ad_safe TDist/Mooncake forward8.89 ± 0.22 μs
logcdf_ad_safe Weibull/Mooncake reverse27.7 ± 3.6 μs
logcdf_ad_safe Weibull/Enzyme reverse3.24 ± 0.09 μs
primal_distribution truncated window/Enzyme reverse0.248 ± 0.022 μs
logcdf_ad_safe location-scale TDist/Enzyme forward11.1 ± 0.19 μs
cdf_ad_safe Beta/Mooncake reverse27.7 ± 4.2 μs
logccdf_ad_safe location-scale TDist/Mooncake forward16 ± 0.32 μs
ccdf_ad_safe LogNormal/Enzyme forward7.77 ± 0.13 μs
logccdf_ad_safe location-scale TDist/Enzyme reverse5.63 ± 0.33 μs
cdf_ad_safe TDist/Enzyme forward9.88 ± 0.15 μs
cdf_ad_safe Weibull/Mooncake reverse12.7 ± 0.65 μs
ccdf_ad_safe location-scale TDist/Enzyme reverse5.62 ± 0.099 μs
cdf_ad_safe TDist/ReverseDiff (compiled)16.4 ± 0.44 μs
cdf_ad_safe Weibull/ReverseDiff (tape)6.42 ± 0.21 μs
logcdf_ad_safe GeneralizedGamma/Enzyme reverse6 ± 0.088 μs
nondifferentiable captured value/ForwardDiff0.431 ± 0.096 μs
pdf_ad_safe GeneralizedGamma/ForwardDiff1.51 ± 0.032 μs
ccdf_ad_safe Weibull/ReverseDiff (compiled)5.81 ± 1.2 μs
ad_eltype seeds a differentiable buffer/ReverseDiff (compiled)4.99 ± 1.3 μs
cdf_ad_safe TDist/ForwardDiff2.6 ± 0.015 μs
logcdf_ad_safe LogNormal/Mooncake reverse16.4 ± 0.72 μs
logccdf_ad_safe Beta/Mooncake reverse27.9 ± 4.1 μs
logcdf_ad_safe location-scale TDist/Enzyme reverse5.63 ± 0.3 μs
ccdf_ad_safe Gamma/ReverseDiff (tape)6.56 ± 0.17 μs
_t_cdf direct/ReverseDiff (compiled)3.4 ± 0.11 μs
fixed_draw pinned realisation/Enzyme forward6.58 ± 0.1 μs
pdf_ad_safe Weibull/Mooncake reverse30 ± 4.9 μs
ccdf_ad_safe TDist/Enzyme forward9.92 ± 0.16 μs
logccdf_ad_safe GeneralizedGamma/ReverseDiff (tape)13.3 ± 0.45 μs
ccdf_ad_safe LogNormal/ReverseDiff (tape)8.4 ± 0.23 μs
cdf_ad_safe LogNormal/Enzyme reverse1.71 ± 0.036 μs
cdf_ad_safe GeneralizedGamma/Enzyme forward11.3 ± 0.19 μs
logcdf_ad_safe location-scale TDist/ReverseDiff (compiled)26.8 ± 0.86 μs
pdf_ad_safe LogNormal/ReverseDiff (compiled)12.3 ± 0.42 μs
logcdf_ad_safe Beta/Mooncake reverse28 ± 4.1 μs
logcdf GeneralizedGamma/ReverseDiff (compiled)14 ± 0.5 μs
primal_distribution truncated window/Mooncake forward6.22 ± 0.17 μs
ccdf_ad_safe GeneralizedGamma/Mooncake reverse19.1 ± 0.67 μs
logcdf_ad_safe location-scale TDist/Mooncake reverse24.5 ± 1.3 μs
ccdf_ad_safe Gamma/ForwardDiff1.68 ± 0.015 μs
logcdf_ad_safe Gamma/Mooncake forward8.52 ± 0.19 μs
logccdf_ad_safe Gamma/Mooncake forward8.86 ± 0.22 μs
cdf_ad_safe LogNormal/ReverseDiff (compiled)8.86 ± 0.26 μs
logcdf_ad_safe LogNormal/ForwardDiff0.657 ± 0.083 μs
logpdf Gamma at shape 1/Mooncake forward6.03 ± 0.4 μs
_beta_cdf direct/Enzyme reverse0.442 ± 0.0036 μs
logsumexp_stream geometric/ReverseDiff (compiled)0.0798 ± 0.012 ms
cdf_ad_safe location-scale TDist/ReverseDiff (compiled)26.8 ± 0.77 μs
logcdf GeneralizedGamma/Mooncake reverse19.1 ± 0.77 μs
primal_distribution truncated window/ForwardDiff0.708 ± 0.088 μs
ccdf_ad_safe location-scale TDist/Mooncake reverse23.7 ± 0.97 μs
cdf_ad_safe location-scale TDist/ForwardDiff3.2 ± 0.045 μs
ad_eltype seeds a differentiable buffer/Enzyme reverse0.133 ± 0.021 μs
_gamma_cdf direct/Enzyme forward6.96 ± 0.11 μs
logccdf_ad_safe LogNormal/ForwardDiff0.683 ± 0.085 μs
logccdf_ad_safe Weibull/Enzyme reverse1.53 ± 0.035 μs
ccdf_ad_safe Gamma/Enzyme reverse4.48 ± 0.1 μs
pdf_ad_safe GeneralizedGamma/Mooncake forward11.1 ± 0.3 μs
logccdf_ad_safe Gamma/Enzyme reverse4.86 ± 0.097 μs
logccdf_ad_safe Beta/Enzyme reverse7.16 ± 0.29 μs
logccdf_ad_safe Weibull/Mooncake reverse21.2 ± 2.7 μs
logcdf_ad_safe Beta/Mooncake forward13.3 ± 0.35 μs
ccdf_ad_safe Weibull/ReverseDiff (tape)5.82 ± 1.2 μs
logccdf_ad_safe TDist/Enzyme reverse6.5 ± 0.14 μs
cdf_ad_safe Gamma/Enzyme reverse4.53 ± 0.092 μs
logccdf_ad_safe location-scale TDist/ReverseDiff (tape)27.2 ± 0.78 μs
logcdf_ad_safe GeneralizedGamma/ReverseDiff (tape)14 ± 0.49 μs
nondifferentiable captured value/ReverseDiff (tape)1.12 ± 0.054 μs
ccdf_ad_safe TDist/Mooncake reverse23.6 ± 5.7 μs
cdf_ad_safe Beta/ReverseDiff (tape)7.38 ± 0.17 μs
logccdf_ad_safe Gamma/ReverseDiff (compiled)4.95 ± 0.14 μs
logcdf GeneralizedGamma/Mooncake forward17.1 ± 0.35 μs
ccdf_ad_safe LogNormal/ReverseDiff (compiled)8.4 ± 0.24 μs
ccdf_ad_safe Beta/ReverseDiff (compiled)9.35 ± 0.31 μs
logccdf_ad_safe LogNormal/Mooncake forward6.55 ± 0.19 μs
ccdf_ad_safe Gamma/Mooncake forward8.33 ± 0.22 μs
logcdf_ad_safe Weibull/ReverseDiff (tape)5.79 ± 0.2 μs
nondifferentiable array argument/Mooncake forward5.13 ± 0.64 μs
ccdf_ad_safe location-scale TDist/ForwardDiff3.21 ± 0.046 μs
primal_distribution truncated window/Mooncake reverse18.9 ± 1.4 μs
_t_cdf direct/Enzyme reverse0.651 ± 0.0042 μs
primal_distribution truncated window/ReverseDiff (compiled)4.01 ± 0.16 μs
logccdf_ad_safe location-scale TDist/ForwardDiff3.35 ± 0.042 μs
nondifferentiable wrapped term/ReverseDiff (tape)1.14 ± 0.31 μs
cdf_ad_safe TDist/ReverseDiff (tape)16.4 ± 0.46 μs
pdf_ad_safe GeneralizedGamma/Enzyme forward8.88 ± 0.17 μs
ccdf_ad_safe TDist/ForwardDiff2.65 ± 0.016 μs
primal_distribution left-truncated window/Mooncake reverse21.4 ± 0.87 μs
logpdf Gamma at shape 1/Enzyme forward7.84 ± 0.13 μs
cdf_ad_safe Gamma/ForwardDiff1.68 ± 0.036 μs
nondifferentiable wrapped term/Mooncake reverse4.45 ± 0.13 μs
logcdf_ad_safe GeneralizedGamma/ReverseDiff (compiled)14 ± 0.51 μs
logpdf Gamma at shape 1/ReverseDiff (compiled)14.5 ± 0.47 μs
cdf_ad_safe Weibull/Mooncake forward6.08 ± 0.39 μs
nondifferentiable wrapped term/Enzyme reverse0.0508 ± 0.032 μs
cdf_ad_safe location-scale TDist/Enzyme reverse5.71 ± 0.1 μs
logcdf_ad_safe Gamma/ForwardDiff1.68 ± 0.016 μs
primal_distribution left-truncated window/Enzyme reverse0.518 ± 0.0061 μs
nondifferentiable captured value/Mooncake forward4.92 ± 0.68 μs
cdf_ad_safe location-scale TDist/ReverseDiff (tape)26.7 ± 0.8 μs
cdf_ad_safe TDist/Enzyme reverse6.65 ± 0.13 μs
cdf_ad_safe GeneralizedGamma/Mooncake forward16.7 ± 0.33 μs
logcdf_ad_safe TDist/Mooncake reverse25.7 ± 5.7 μs
logccdf_ad_safe GeneralizedGamma/ForwardDiff3.13 ± 0.05 μs
ccdf_ad_safe Gamma/ReverseDiff (compiled)6.55 ± 0.17 μs
ccdf_ad_safe GeneralizedGamma/Mooncake forward16.7 ± 0.32 μs
logccdf_ad_safe TDist/Enzyme forward10 ± 0.16 μs
pdf_ad_safe LogNormal/ForwardDiff0.633 ± 0.09 μs
ad_eltype seeds a differentiable buffer/Mooncake reverse6.41 ± 1.3 μs
ccdf_ad_safe TDist/Enzyme reverse6.62 ± 0.14 μs
ad_eltype seeds a differentiable buffer/ReverseDiff (tape)4.95 ± 1.3 μs
cdf_ad_safe Beta/ForwardDiff3.5 ± 0.025 μs
pdf_ad_safe Gamma/Enzyme reverse3.41 ± 0.09 μs
_gamma_cdf direct/Mooncake reverse5.27 ± 0.16 μs
logccdf_ad_safe LogNormal/Enzyme forward7.86 ± 0.12 μs
primal_distribution left-truncated window/Enzyme forward7.04 ± 0.11 μs
pdf_ad_safe Weibull/ReverseDiff (compiled)16 ± 0.53 μs
_t_cdf direct/Mooncake reverse7.55 ± 0.22 μs
nondifferentiable captured value/Enzyme forward6.61 ± 0.11 μs
primal_distribution left-truncated window/ReverseDiff (compiled)3.55 ± 0.12 μs

Memory

Benchmarkv0.2.1v0.2.0v0.1.2v0.1.1566ba153f5adbf...
logcdf_ad_safe TDist/ReverseDiff (tape)0.183 k allocs: 8.16 kB
cdf_ad_safe Gamma/Mooncake forward0.058 k allocs: 2.91 kB
cdf_ad_safe Beta/Enzyme reverse26 allocs: 1.36 kB
logccdf_ad_safe LogNormal/ReverseDiff (tape)0.156 k allocs: 6.97 kB
logpdf Gamma at shape 1/Mooncake reverse0.28 k allocs: 0.0321 MB
_t_cdf direct/ForwardDiff7 allocs: 0.266 kB
cdf_ad_safe GeneralizedGamma/ReverseDiff (tape)0.148 k allocs: 6.17 kB
fixed_draw pinned realisation/ReverseDiff (tape)19 allocs: 0.719 kB
logpdf Gamma at shape 1/Enzyme reverse24 allocs: 1 kB
cdf_ad_safe LogNormal/Enzyme forward0.036 k allocs: 1.11 kB
cdf_ad_safe LogNormal/ForwardDiff7 allocs: 0.266 kB
logccdf_ad_safe TDist/ReverseDiff (compiled)0.183 k allocs: 8.16 kB
nondifferentiable array argument/ForwardDiff9 allocs: 0.344 kB
cdf_ad_safe Gamma/Enzyme forward0.036 k allocs: 1.11 kB
primal_distribution left-truncated window/ForwardDiff7 allocs: 0.266 kB
logccdf_ad_safe location-scale TDist/ReverseDiff (compiled)0.327 k allocs: 13.7 kB
primal_distribution left-truncated window/ReverseDiff (tape)0.06 k allocs: 2.47 kB
ccdf_ad_safe LogNormal/Mooncake reverse0.244 k allocs: 24.7 kB
cdf_ad_safe location-scale TDist/Mooncake reverse0.297 k allocs: 14.7 kB
logcdf GeneralizedGamma/ForwardDiff7 allocs: 0.359 kB
logcdf_ad_safe Weibull/Enzyme forward0.036 k allocs: 1.11 kB
ccdf_ad_safe LogNormal/Mooncake forward0.058 k allocs: 2.91 kB
logccdf_ad_safe location-scale TDist/Enzyme forward0.04 k allocs: 1.25 kB
ccdf_ad_safe location-scale TDist/ReverseDiff (compiled)0.315 k allocs: 13.4 kB
logcdf_ad_safe LogNormal/Enzyme reverse24 allocs: 1 kB
_beta_cdf direct/ForwardDiff7 allocs: 0.359 kB
ad_eltype seeds a differentiable buffer/Mooncake forward0.07 k allocs: 3.47 kB
logcdf_ad_safe Beta/Enzyme forward0.038 k allocs: 1.41 kB
pdf_ad_safe Beta/Enzyme reverse0.04 k allocs: 2.23 kB
ccdf_ad_safe location-scale TDist/Mooncake forward0.064 k allocs: 3.06 kB
ccdf_ad_safe Gamma/Enzyme forward0.036 k allocs: 1.11 kB
ccdf_ad_safe Beta/Mooncake forward0.066 k allocs: 4.11 kB
nondifferentiable array argument/Mooncake reverse0.058 k allocs: 2.52 kB
primal_distribution left-truncated window/Mooncake forward0.066 k allocs: 3.69 kB
cdf_ad_safe TDist/Mooncake reverse0.228 k allocs: 19.3 kB
_beta_cdf direct/Mooncake forward0.064 k allocs: 3.08 kB
pdf_ad_safe GeneralizedGamma/ReverseDiff (compiled)0.373 k allocs: 15.4 kB
ccdf_ad_safe LogNormal/Enzyme reverse10 allocs: 0.312 kB
logcdf_ad_safe Gamma/ReverseDiff (tape)0.078 k allocs: 3.28 kB
ccdf_ad_safe LogNormal/ForwardDiff7 allocs: 0.266 kB
pdf_ad_safe Beta/ReverseDiff (compiled)0.243 k allocs: 10.6 kB
fixed_draw pinned realisation/Enzyme reverse2 allocs: 0.0781 kB
logccdf_ad_safe location-scale TDist/Mooncake reverse0.3 k allocs: 15.2 kB
cdf_ad_safe Weibull/ReverseDiff (compiled)0.127 k allocs: 4.88 kB
logcdf_ad_safe TDist/Enzyme reverse29 allocs: 1.59 kB
_t_cdf direct/Mooncake forward0.058 k allocs: 2.91 kB
ccdf_ad_safe location-scale TDist/Enzyme forward0.04 k allocs: 1.25 kB
ad_eltype seeds a differentiable buffer/Enzyme forward31 allocs: 1.16 kB
logcdf_ad_safe TDist/ReverseDiff (compiled)0.183 k allocs: 8.16 kB
nondifferentiable wrapped term/Enzyme forward28 allocs: 0.969 kB
primal_distribution truncated window/Enzyme forward28 allocs: 0.969 kB
logccdf_ad_safe Weibull/Enzyme forward0.036 k allocs: 1.11 kB
logcdf_ad_safe LogNormal/Enzyme forward0.036 k allocs: 1.11 kB
logcdf_ad_safe Weibull/ReverseDiff (compiled)0.099 k allocs: 3.95 kB
logccdf_ad_safe Gamma/ReverseDiff (tape)0.062 k allocs: 2.52 kB
logccdf_ad_safe TDist/ReverseDiff (tape)0.183 k allocs: 8.16 kB
pdf_ad_safe Gamma/ReverseDiff (tape)0.243 k allocs: 10.4 kB
logccdf_ad_safe Beta/ReverseDiff (compiled)0.11 k allocs: 4.38 kB
ccdf_ad_safe Weibull/Mooncake reverse0.182 k allocs: 8.68 kB
cdf_ad_safe location-scale TDist/Enzyme forward0.04 k allocs: 1.25 kB
fixed_draw pinned realisation/Mooncake reverse0.059 k allocs: 2.59 kB
logcdf GeneralizedGamma/Enzyme forward0.04 k allocs: 1.25 kB
ccdf_ad_safe GeneralizedGamma/Enzyme forward0.04 k allocs: 1.25 kB
cdf_ad_safe Beta/Mooncake forward0.066 k allocs: 4.11 kB
logcdf GeneralizedGamma/ReverseDiff (tape)0.164 k allocs: 7.78 kB
pdf_ad_safe Weibull/Enzyme reverse24 allocs: 0.984 kB
primal_distribution truncated window/ReverseDiff (tape)0.067 k allocs: 2.72 kB
fixed_draw pinned realisation/ReverseDiff (compiled)19 allocs: 0.719 kB
logccdf_ad_safe Gamma/ForwardDiff7 allocs: 0.266 kB
ccdf_ad_safe Beta/Enzyme forward0.038 k allocs: 1.41 kB
pdf_ad_safe Beta/ForwardDiff7 allocs: 0.266 kB
cdf_ad_safe LogNormal/Mooncake reverse0.244 k allocs: 24.7 kB
logcdf_ad_safe LogNormal/ReverseDiff (compiled)0.166 k allocs: 7.41 kB
logccdf_ad_safe Weibull/ReverseDiff (tape)0.097 k allocs: 3.94 kB
pdf_ad_safe Weibull/ForwardDiff7 allocs: 0.266 kB
logsumexp_stream geometric/Mooncake reverse0.118 k allocs: 17.5 kB
cdf_ad_safe Gamma/ReverseDiff (compiled)0.061 k allocs: 2.47 kB
ccdf_ad_safe Weibull/Enzyme forward0.036 k allocs: 1.11 kB
_gamma_cdf direct/Mooncake forward0.064 k allocs: 3.06 kB
cdf_ad_safe Gamma/ReverseDiff (tape)0.061 k allocs: 2.47 kB
_gamma_cdf direct/ReverseDiff (compiled)16 allocs: 0.656 kB
ccdf_ad_safe GeneralizedGamma/ForwardDiff7 allocs: 0.359 kB
cdf_ad_safe GeneralizedGamma/Enzyme reverse14 allocs: 0.75 kB
logccdf_ad_safe Weibull/ReverseDiff (compiled)0.097 k allocs: 3.94 kB
logccdf_ad_safe GeneralizedGamma/ReverseDiff (compiled)0.148 k allocs: 6.17 kB
ccdf_ad_safe TDist/Mooncake forward0.052 k allocs: 2.69 kB
cdf_ad_safe GeneralizedGamma/ForwardDiff7 allocs: 0.359 kB
pdf_ad_safe Beta/Mooncake reverse0.276 k allocs: 0.0331 MB
ccdf_ad_safe Weibull/ForwardDiff7 allocs: 0.266 kB
_gamma_cdf direct/Enzyme reverse2 allocs: 0.0781 kB
_t_cdf direct/ReverseDiff (tape)0.038 k allocs: 1.55 kB
logccdf_ad_safe Weibull/ForwardDiff7 allocs: 0.266 kB
pdf_ad_safe GeneralizedGamma/Mooncake reverse0.251 k allocs: 12.5 kB
logcdf_ad_safe Beta/ForwardDiff7 allocs: 0.266 kB
nondifferentiable array argument/ReverseDiff (tape)21 allocs: 0.797 kB
cdf_ad_safe Weibull/Enzyme reverse10 allocs: 0.312 kB
pdf_ad_safe Gamma/ForwardDiff7 allocs: 0.266 kB
pdf_ad_safe Weibull/ReverseDiff (tape)0.215 k allocs: 9.52 kB
nondifferentiable array argument/Enzyme forward30 allocs: 1.05 kB
logcdf_ad_safe GeneralizedGamma/Enzyme forward0.04 k allocs: 1.25 kB
_gamma_cdf direct/ForwardDiff7 allocs: 0.359 kB
logccdf_ad_safe TDist/ForwardDiff7 allocs: 0.203 kB
ccdf_ad_safe Weibull/Enzyme reverse10 allocs: 0.312 kB
logcdf_ad_safe location-scale TDist/ReverseDiff (tape)0.309 k allocs: 13.2 kB
_beta_cdf direct/Enzyme forward30 allocs: 1.06 kB
_beta_cdf direct/Mooncake reverse0.064 k allocs: 2.91 kB
cdf_ad_safe Weibull/Enzyme forward0.036 k allocs: 1.11 kB
logccdf_ad_safe GeneralizedGamma/Mooncake reverse0.219 k allocs: 10.5 kB
logccdf_ad_safe GeneralizedGamma/Enzyme reverse14 allocs: 0.75 kB
logccdf_ad_safe Beta/Mooncake forward0.066 k allocs: 4.11 kB
pdf_ad_safe LogNormal/Mooncake forward0.058 k allocs: 2.91 kB
logcdf_ad_safe TDist/ForwardDiff7 allocs: 0.203 kB
logcdf GeneralizedGamma/Enzyme reverse14 allocs: 0.797 kB
logsumexp_stream geometric/Mooncake forward0.052 k allocs: 2.69 kB
pdf_ad_safe Beta/Mooncake forward0.058 k allocs: 2.92 kB
logcdf_ad_safe location-scale TDist/ForwardDiff7 allocs: 0.359 kB
cdf_ad_safe Gamma/Mooncake reverse0.217 k allocs: 26 kB
pdf_ad_safe LogNormal/Enzyme forward0.036 k allocs: 1.11 kB
logccdf_ad_safe TDist/Mooncake reverse0.25 k allocs: 20.5 kB
pdf_ad_safe Beta/Enzyme forward0.036 k allocs: 1.11 kB
logcdf_ad_safe location-scale TDist/Mooncake forward0.064 k allocs: 3.06 kB
logccdf_ad_safe Beta/ReverseDiff (tape)0.11 k allocs: 4.38 kB
ccdf_ad_safe location-scale TDist/ReverseDiff (tape)0.315 k allocs: 13.4 kB
ccdf_ad_safe Beta/Enzyme reverse26 allocs: 1.36 kB
pdf_ad_safe GeneralizedGamma/ReverseDiff (tape)0.373 k allocs: 15.4 kB
pdf_ad_safe GeneralizedGamma/Enzyme reverse14 allocs: 0.797 kB
logcdf_ad_safe Beta/Enzyme reverse26 allocs: 1.39 kB
logcdf_ad_safe GeneralizedGamma/Mooncake forward0.064 k allocs: 3.06 kB
pdf_ad_safe Gamma/Mooncake reverse0.28 k allocs: 0.0322 MB
ccdf_ad_safe Weibull/Mooncake forward0.058 k allocs: 2.91 kB
nondifferentiable captured value/Enzyme reverse2 allocs: 0.0781 kB
ccdf_ad_safe Beta/Mooncake reverse0.221 k allocs: 27 kB
ccdf_ad_safe Gamma/Mooncake reverse0.217 k allocs: 26 kB
logccdf_ad_safe GeneralizedGamma/Mooncake forward0.064 k allocs: 3.06 kB
cdf_ad_safe LogNormal/Mooncake forward0.058 k allocs: 2.91 kB
logccdf_ad_safe LogNormal/ReverseDiff (compiled)0.156 k allocs: 6.97 kB
nondifferentiable array argument/ReverseDiff (compiled)21 allocs: 0.797 kB
logpdf Gamma at shape 1/ForwardDiff7 allocs: 0.266 kB
ccdf_ad_safe GeneralizedGamma/ReverseDiff (compiled)0.169 k allocs: 8.09 kB
logcdf_ad_safe Gamma/Enzyme forward0.036 k allocs: 1.11 kB
logsumexp_stream geometric/Enzyme forward25 allocs: 0.766 kB
ccdf_ad_safe TDist/ReverseDiff (tape)0.17 k allocs: 7.81 kB
ad_eltype seeds a differentiable buffer/ForwardDiff9 allocs: 0.438 kB
_t_cdf direct/Enzyme forward28 allocs: 0.969 kB
logccdf_ad_safe GeneralizedGamma/Enzyme forward0.04 k allocs: 1.25 kB
cdf_ad_safe Beta/Enzyme forward0.038 k allocs: 1.41 kB
ccdf_ad_safe GeneralizedGamma/Enzyme reverse14 allocs: 0.75 kB
logccdf_ad_safe LogNormal/Enzyme reverse24 allocs: 1 kB
logcdf_ad_safe LogNormal/ReverseDiff (tape)0.166 k allocs: 7.41 kB
pdf_ad_safe Gamma/Mooncake forward0.058 k allocs: 2.91 kB
logcdf_ad_safe LogNormal/Mooncake forward0.058 k allocs: 2.91 kB
nondifferentiable array argument/Enzyme reverse4 allocs: 0.156 kB
logcdf_ad_safe Gamma/Enzyme reverse24 allocs: 1.03 kB
nondifferentiable wrapped term/Mooncake forward0.058 k allocs: 2.91 kB
logccdf_ad_safe Beta/ForwardDiff7 allocs: 0.266 kB
pdf_ad_safe Weibull/Mooncake forward0.058 k allocs: 2.91 kB
pdf_ad_safe LogNormal/Mooncake reverse0.254 k allocs: 25.2 kB
_beta_cdf direct/ReverseDiff (compiled)16 allocs: 0.656 kB
nondifferentiable wrapped term/ForwardDiff7 allocs: 0.266 kB
pdf_ad_safe Weibull/Enzyme forward0.036 k allocs: 1.11 kB
nondifferentiable wrapped term/ReverseDiff (compiled)19 allocs: 0.719 kB
logcdf_ad_safe Beta/ReverseDiff (compiled)0.092 k allocs: 3.81 kB
logccdf_ad_safe Gamma/Mooncake reverse0.218 k allocs: 26.2 kB
ccdf_ad_safe TDist/ReverseDiff (compiled)0.17 k allocs: 7.81 kB
ccdf_ad_safe Beta/ReverseDiff (tape)0.097 k allocs: 4.14 kB
logcdf_ad_safe Beta/ReverseDiff (tape)0.092 k allocs: 3.81 kB
pdf_ad_safe Beta/ReverseDiff (tape)0.243 k allocs: 10.6 kB
cdf_ad_safe GeneralizedGamma/Mooncake reverse0.209 k allocs: 10.2 kB
logcdf_ad_safe Weibull/Mooncake forward0.058 k allocs: 2.91 kB
pdf_ad_safe Gamma/Enzyme forward0.036 k allocs: 1.11 kB
pdf_ad_safe Gamma/ReverseDiff (compiled)0.243 k allocs: 10.4 kB
ccdf_ad_safe GeneralizedGamma/ReverseDiff (tape)0.169 k allocs: 8.09 kB
nondifferentiable captured value/Mooncake reverse0.054 k allocs: 2.37 kB
logcdf_ad_safe Gamma/Mooncake reverse0.218 k allocs: 26.2 kB
logcdf_ad_safe GeneralizedGamma/ForwardDiff7 allocs: 0.359 kB
logccdf_ad_safe Weibull/Mooncake forward0.058 k allocs: 2.91 kB
cdf_ad_safe Weibull/ForwardDiff7 allocs: 0.266 kB
logccdf_ad_safe Gamma/Enzyme forward0.036 k allocs: 1.11 kB
ccdf_ad_safe Beta/ForwardDiff7 allocs: 0.266 kB
logsumexp_stream geometric/Enzyme reverse2 allocs: 0.0625 kB
logsumexp_stream geometric/ForwardDiff7 allocs: 0.203 kB
logccdf_ad_safe Beta/Enzyme forward0.038 k allocs: 1.41 kB
cdf_ad_safe TDist/Mooncake forward0.052 k allocs: 2.69 kB
logccdf_ad_safe LogNormal/Mooncake reverse0.235 k allocs: 10.8 kB
logcdf_ad_safe Weibull/ForwardDiff7 allocs: 0.266 kB
fixed_draw pinned realisation/ForwardDiff7 allocs: 0.266 kB
cdf_ad_safe location-scale TDist/Mooncake forward0.064 k allocs: 3.06 kB
logcdf_ad_safe TDist/Mooncake forward0.052 k allocs: 2.69 kB
_beta_cdf direct/ReverseDiff (tape)16 allocs: 0.656 kB
logcdf_ad_safe Gamma/ReverseDiff (compiled)0.078 k allocs: 3.28 kB
fixed_draw pinned realisation/Mooncake forward0.058 k allocs: 2.91 kB
cdf_ad_safe Beta/ReverseDiff (compiled)0.073 k allocs: 3.2 kB
nondifferentiable captured value/ReverseDiff (compiled)24 allocs: 0.922 kB
logpdf Gamma at shape 1/ReverseDiff (tape)0.228 k allocs: 9.92 kB
cdf_ad_safe GeneralizedGamma/ReverseDiff (compiled)0.148 k allocs: 6.17 kB
pdf_ad_safe LogNormal/ReverseDiff (tape)0.18 k allocs: 7.91 kB
_gamma_cdf direct/ReverseDiff (tape)16 allocs: 0.656 kB
cdf_ad_safe LogNormal/ReverseDiff (tape)0.131 k allocs: 5.08 kB
logsumexp_stream geometric/ReverseDiff (tape)1.08 k allocs: 0.0443 MB
logcdf_ad_safe GeneralizedGamma/Mooncake reverse0.209 k allocs: 10.2 kB
pdf_ad_safe LogNormal/Enzyme reverse24 allocs: 0.984 kB
logcdf_ad_safe TDist/Enzyme forward31 allocs: 0.875 kB
logccdf_ad_safe TDist/Mooncake forward0.052 k allocs: 2.69 kB
logcdf_ad_safe Weibull/Mooncake reverse0.266 k allocs: 0.0313 MB
logcdf_ad_safe Weibull/Enzyme reverse24 allocs: 0.984 kB
primal_distribution truncated window/Enzyme reverse2 allocs: 0.0781 kB
logcdf_ad_safe location-scale TDist/Enzyme forward0.04 k allocs: 1.25 kB
cdf_ad_safe Beta/Mooncake reverse0.221 k allocs: 27 kB
logccdf_ad_safe location-scale TDist/Mooncake forward0.064 k allocs: 3.06 kB
ccdf_ad_safe LogNormal/Enzyme forward0.036 k allocs: 1.11 kB
logccdf_ad_safe location-scale TDist/Enzyme reverse14 allocs: 1.58 kB
cdf_ad_safe TDist/Enzyme forward31 allocs: 0.875 kB
cdf_ad_safe Weibull/Mooncake reverse0.182 k allocs: 8.68 kB
ccdf_ad_safe location-scale TDist/Enzyme reverse14 allocs: 1.2 kB
cdf_ad_safe TDist/ReverseDiff (compiled)0.17 k allocs: 7.81 kB
cdf_ad_safe Weibull/ReverseDiff (tape)0.127 k allocs: 4.88 kB
logcdf_ad_safe GeneralizedGamma/Enzyme reverse14 allocs: 0.797 kB
nondifferentiable captured value/ForwardDiff7 allocs: 0.266 kB
pdf_ad_safe GeneralizedGamma/ForwardDiff7 allocs: 0.359 kB
ccdf_ad_safe Weibull/ReverseDiff (compiled)0.112 k allocs: 4.41 kB
ad_eltype seeds a differentiable buffer/ReverseDiff (compiled)0.095 k allocs: 4 kB
cdf_ad_safe TDist/ForwardDiff7 allocs: 0.203 kB
logcdf_ad_safe LogNormal/Mooncake reverse0.236 k allocs: 11.1 kB
logccdf_ad_safe Beta/Mooncake reverse0.222 k allocs: 27.3 kB
logcdf_ad_safe location-scale TDist/Enzyme reverse14 allocs: 1.58 kB
ccdf_ad_safe Gamma/ReverseDiff (tape)0.082 k allocs: 3.55 kB
_t_cdf direct/ReverseDiff (compiled)0.038 k allocs: 1.55 kB
fixed_draw pinned realisation/Enzyme forward28 allocs: 0.969 kB
pdf_ad_safe Weibull/Mooncake reverse0.278 k allocs: 0.0322 MB
ccdf_ad_safe TDist/Enzyme forward31 allocs: 0.875 kB
logccdf_ad_safe GeneralizedGamma/ReverseDiff (tape)0.148 k allocs: 6.17 kB
ccdf_ad_safe LogNormal/ReverseDiff (tape)0.119 k allocs: 4.7 kB
cdf_ad_safe LogNormal/Enzyme reverse10 allocs: 0.312 kB
cdf_ad_safe GeneralizedGamma/Enzyme forward0.04 k allocs: 1.25 kB
logcdf_ad_safe location-scale TDist/ReverseDiff (compiled)0.309 k allocs: 13.2 kB
pdf_ad_safe LogNormal/ReverseDiff (compiled)0.18 k allocs: 7.91 kB
logcdf_ad_safe Beta/Mooncake reverse0.222 k allocs: 27.3 kB
logcdf GeneralizedGamma/ReverseDiff (compiled)0.164 k allocs: 7.78 kB
primal_distribution truncated window/Mooncake forward0.058 k allocs: 2.91 kB
ccdf_ad_safe GeneralizedGamma/Mooncake reverse0.209 k allocs: 10.2 kB
logcdf_ad_safe location-scale TDist/Mooncake reverse0.3 k allocs: 15.2 kB
ccdf_ad_safe Gamma/ForwardDiff7 allocs: 0.266 kB
logcdf_ad_safe Gamma/Mooncake forward0.058 k allocs: 2.91 kB
logccdf_ad_safe Gamma/Mooncake forward0.058 k allocs: 2.91 kB
cdf_ad_safe LogNormal/ReverseDiff (compiled)0.131 k allocs: 5.08 kB
logcdf_ad_safe LogNormal/ForwardDiff7 allocs: 0.266 kB
logpdf Gamma at shape 1/Mooncake forward0.058 k allocs: 2.91 kB
_beta_cdf direct/Enzyme reverse2 allocs: 0.0781 kB
logsumexp_stream geometric/ReverseDiff (compiled)1.08 k allocs: 0.0443 MB
cdf_ad_safe location-scale TDist/ReverseDiff (compiled)0.296 k allocs: 12.8 kB
logcdf GeneralizedGamma/Mooncake reverse0.209 k allocs: 10.2 kB
primal_distribution truncated window/ForwardDiff7 allocs: 0.266 kB
ccdf_ad_safe location-scale TDist/Mooncake reverse0.297 k allocs: 14.7 kB
cdf_ad_safe location-scale TDist/ForwardDiff7 allocs: 0.359 kB
ad_eltype seeds a differentiable buffer/Enzyme reverse4 allocs: 0.203 kB
_gamma_cdf direct/Enzyme forward30 allocs: 1.06 kB
logccdf_ad_safe LogNormal/ForwardDiff7 allocs: 0.266 kB
logccdf_ad_safe Weibull/Enzyme reverse10 allocs: 0.312 kB
ccdf_ad_safe Gamma/Enzyme reverse24 allocs: 1 kB
pdf_ad_safe GeneralizedGamma/Mooncake forward0.064 k allocs: 3.06 kB
logccdf_ad_safe Gamma/Enzyme reverse24 allocs: 1 kB
logccdf_ad_safe Beta/Enzyme reverse26 allocs: 1.39 kB
logccdf_ad_safe Weibull/Mooncake reverse0.217 k allocs: 26 kB
logcdf_ad_safe Beta/Mooncake forward0.066 k allocs: 4.11 kB
ccdf_ad_safe Weibull/ReverseDiff (tape)0.112 k allocs: 4.41 kB
logccdf_ad_safe TDist/Enzyme reverse29 allocs: 1.59 kB
cdf_ad_safe Gamma/Enzyme reverse24 allocs: 1 kB
logccdf_ad_safe location-scale TDist/ReverseDiff (tape)0.327 k allocs: 13.7 kB
logcdf_ad_safe GeneralizedGamma/ReverseDiff (tape)0.164 k allocs: 7.78 kB
nondifferentiable captured value/ReverseDiff (tape)24 allocs: 0.922 kB
ccdf_ad_safe TDist/Mooncake reverse0.228 k allocs: 19.3 kB
cdf_ad_safe Beta/ReverseDiff (tape)0.073 k allocs: 3.2 kB
logccdf_ad_safe Gamma/ReverseDiff (compiled)0.062 k allocs: 2.52 kB
logcdf GeneralizedGamma/Mooncake forward0.064 k allocs: 3.06 kB
ccdf_ad_safe LogNormal/ReverseDiff (compiled)0.119 k allocs: 4.7 kB
ccdf_ad_safe Beta/ReverseDiff (compiled)0.097 k allocs: 4.14 kB
logccdf_ad_safe LogNormal/Mooncake forward0.058 k allocs: 2.91 kB
ccdf_ad_safe Gamma/Mooncake forward0.058 k allocs: 2.91 kB
logcdf_ad_safe Weibull/ReverseDiff (tape)0.099 k allocs: 3.95 kB
nondifferentiable array argument/Mooncake forward0.066 k allocs: 3.22 kB
ccdf_ad_safe location-scale TDist/ForwardDiff7 allocs: 0.359 kB
primal_distribution truncated window/Mooncake reverse0.242 k allocs: 11.4 kB
_t_cdf direct/Enzyme reverse2 allocs: 0.0781 kB
primal_distribution truncated window/ReverseDiff (compiled)0.067 k allocs: 2.72 kB
logccdf_ad_safe location-scale TDist/ForwardDiff7 allocs: 0.359 kB
nondifferentiable wrapped term/ReverseDiff (tape)19 allocs: 0.719 kB
cdf_ad_safe TDist/ReverseDiff (tape)0.17 k allocs: 7.81 kB
pdf_ad_safe GeneralizedGamma/Enzyme forward0.04 k allocs: 1.25 kB
ccdf_ad_safe TDist/ForwardDiff7 allocs: 0.203 kB
primal_distribution left-truncated window/Mooncake reverse0.257 k allocs: 11.7 kB
logpdf Gamma at shape 1/Enzyme forward0.036 k allocs: 1.11 kB
cdf_ad_safe Gamma/ForwardDiff7 allocs: 0.266 kB
nondifferentiable wrapped term/Mooncake reverse0.059 k allocs: 2.59 kB
logcdf_ad_safe GeneralizedGamma/ReverseDiff (compiled)0.164 k allocs: 7.78 kB
logpdf Gamma at shape 1/ReverseDiff (compiled)0.228 k allocs: 9.92 kB
cdf_ad_safe Weibull/Mooncake forward0.058 k allocs: 2.91 kB
nondifferentiable wrapped term/Enzyme reverse2 allocs: 0.0781 kB
cdf_ad_safe location-scale TDist/Enzyme reverse14 allocs: 1.2 kB
logcdf_ad_safe Gamma/ForwardDiff7 allocs: 0.266 kB
primal_distribution left-truncated window/Enzyme reverse2 allocs: 0.0781 kB
nondifferentiable captured value/Mooncake forward0.058 k allocs: 2.91 kB
cdf_ad_safe location-scale TDist/ReverseDiff (tape)0.296 k allocs: 12.8 kB
cdf_ad_safe TDist/Enzyme reverse29 allocs: 1.41 kB
cdf_ad_safe GeneralizedGamma/Mooncake forward0.064 k allocs: 3.06 kB
logcdf_ad_safe TDist/Mooncake reverse0.25 k allocs: 20.5 kB
logccdf_ad_safe GeneralizedGamma/ForwardDiff7 allocs: 0.359 kB
ccdf_ad_safe Gamma/ReverseDiff (compiled)0.082 k allocs: 3.55 kB
ccdf_ad_safe GeneralizedGamma/Mooncake forward0.064 k allocs: 3.06 kB
logccdf_ad_safe TDist/Enzyme forward31 allocs: 0.875 kB
pdf_ad_safe LogNormal/ForwardDiff7 allocs: 0.266 kB
ad_eltype seeds a differentiable buffer/Mooncake reverse0.095 k allocs: 5.48 kB
ccdf_ad_safe TDist/Enzyme reverse29 allocs: 1.41 kB
ad_eltype seeds a differentiable buffer/ReverseDiff (tape)0.095 k allocs: 4 kB
cdf_ad_safe Beta/ForwardDiff7 allocs: 0.266 kB
pdf_ad_safe Gamma/Enzyme reverse24 allocs: 1.03 kB
_gamma_cdf direct/Mooncake reverse0.064 k allocs: 2.9 kB
logccdf_ad_safe LogNormal/Enzyme forward0.036 k allocs: 1.11 kB
primal_distribution left-truncated window/Enzyme forward28 allocs: 0.969 kB
pdf_ad_safe Weibull/ReverseDiff (compiled)0.215 k allocs: 9.52 kB
_t_cdf direct/Mooncake reverse0.079 k allocs: 3.69 kB
nondifferentiable captured value/Enzyme forward28 allocs: 0.969 kB
primal_distribution left-truncated window/ReverseDiff (compiled)0.06 k allocs: 2.47 kB

time_to_load

Time

Benchmarkv0.2.1v0.2.0v0.1.2v0.1.1566ba153f5adbf...
time_to_load0.526 ± 0.0069 s0.528 ± 0.002 s0.524 ± 0.0011 s0.524 ± 0.004 s0.52 ± 0.0032 s

Memory

Benchmarkv0.2.1v0.2.0v0.1.2v0.1.1566ba153f5adbf...
time_to_load0.149 k allocs: 11.1 kB0.149 k allocs: 11.1 kB0.15 k allocs: 11.7 kB0.15 k allocs: 11.7 kB0.149 k allocs: 11.1 kB

Per-benchmark timelines

<details> <summary>Show 2 plots</summary>

plot_EpiAwareADTools_1.pngplot_EpiAwareADTools_2.png

</details>

About these benchmarks

Benchmarks for the AD-safe machinery, reading the analytic gamma-CDF hooks against the bare Distributions.jl functions and timing the per-backend gradients of each hook.

Quick start

Install the benchpkg CLI once:

bash
task benchmark-install
# Or: julia -e 'using Pkg; Pkg.add("AirspeedVelocity")'

then run the suite:

bash
# Benchmark current state
task benchmark

# Compare main branch vs current state
task benchmark-compare

# Filter to specific benchmarks
task benchmark -- --filter=Hooks
task benchmark-compare -- --filter="AD gradients"

Benchmark structure

Baseline/
  Gamma/               (cdf, logcdf, ccdf, logccdf, pdf)

Hooks/
  Gamma/               (cdf_ad_safe, logcdf_ad_safe, ccdf_ad_safe,
                        logccdf_ad_safe, pdf_ad_safe — analytic path)
  Normal (fall-through)/ (cdf_ad_safe, logcdf_ad_safe, pdf_ad_safe —
                        generic method, collapses to Distributions)
  _gamma_cdf/          (scalar, broadcast)

AD gradients/
  <every test/ADFixtures scenario>/
    ForwardDiff, ReverseDiff (tape), Enzyme forward, Enzyme reverse,
    Mooncake forward, Mooncake reverse

Primal cost and gradient cost

The Baseline group times the stock Distributions.jl functions each hook wraps. On a Gamma the hooks route through the analytic gamma-CDF path (_gamma_cdf) rather than SpecialFunctions.gamma_inc, so the gap between Hooks/Gamma and Baseline/Gamma is the cost of the AD-safe detour on a plain (non-AD) call. On a Normal the generic method falls straight through to Distributions, so Hooks/Normal (fall-through) should sit on top of the baseline with no measurable overhead.

The AD gradients group is the point of the package: it times DifferentiationInterface.gradient for every scenario in test/ADFixtures across the ForwardDiff, ReverseDiff, Enzyme, and Mooncake backends, which is where the analytic derivative rules earn their keep.

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.