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.0→ok
Hooks1.0→ok
AD gradientsn/a→n/a
time_to_load0.99→ok

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.