Turing AD tests

Turing.jl documentation | Turing.jl GitHub | Source code for these tests

This page is intended as a brief overview of how different AD backends perform on a variety of Turing.jl models. Note that the inclusion of any AD backend here does not imply an endorsement from the Turing team; this table is purely for information.

Results

Model name \ AD typeEnzymeForwardEnzymeReverseFiniteDifferencesForwardDiffMooncakeReverseDiffReverseDiffCompiledZygote
assume_beta2.524(?) error26.6751.7808.47716.8422.021600.984
assume_dirichlet3.216(?) errorwrong1.46911.31027.3153.250643.017
assume_lkjcholu16.503(?) errorwrong7.03811.27029.9534.759error
assume_mvnormal(?) error3.91844.9051.3158.62117.0982.188548.526
assume_normal2.790(?) error30.0701.5049.37723.5692.882826.264
assume_submodel2.9564.06732.7471.2308.32511.5071.208712.017
assume_wishart(?) error(?) errorerror1.08510.58228.5203.289299.048
control_flow2.7613.19441.1351.4529.51120.245wrong957.387
dot_assume3.1452.33082.9081.3457.62229.3993.297error
dot_assume_observe_indexwrongwrong57.0181.5217.29345.6224.681error
dot_observe3.0152.84131.0251.75210.60362.6636.569error
dynamic_constraint2.6382.79340.3421.3268.88726.5793.1131065.369
multiple_constraints_same_var4.43623.112wrong1.25416.91819.3991.925error
n0104.5762.064149.4391.7985.54135.1343.469error
n05020.1382.882642.1969.5905.26640.7963.967error
n10041.4512.8721251.38316.0764.75941.1083.910error
n500205.4502.6346835.75360.5164.76334.6463.385error
observe_index2.9882.65828.7061.79710.77461.2586.520error
observe_literal2.9993.32130.3171.56912.26036.5784.1041182.073
observe_multivariate2.9614.54655.1251.5147.06432.9383.156error
observe_submodel2.9064.73819.5261.2908.01814.1721.438809.574