@@ -60,17 +60,37 @@ function benchmark_autodiff!(SUITE)
6060 params_sesolve = [1.0 , 1.0 ]
6161 params_mesolve = [1.0 , 1.0 , 1.0 ]
6262
63+ # Pre-allocate gradient arrays for Enzyme
64+ dparams_sesolve = Enzyme. make_zero (params_sesolve)
65+ dparams_mesolve = Enzyme. make_zero (params_mesolve)
66+
6367 # Benchmark sesolve - Forward
6468 SUITE[" Autodiff" ][" sesolve" ][" Forward" ] = @benchmarkable ForwardDiff. gradient ($ my_f_sesolve_direct, $ params_sesolve)
6569
6670 # Benchmark sesolve - Reverse (Zygote)
67- SUITE[" Autodiff" ][" sesolve" ][" Reverse" ] = @benchmarkable Zygote. gradient ($ my_f_sesolve, $ params_sesolve)
71+ SUITE[" Autodiff" ][" sesolve" ][" Reverse (Zygote)" ] = @benchmarkable Zygote. gradient ($ my_f_sesolve, $ params_sesolve)
72+
73+ # Benchmark sesolve - Reverse (Enzyme)
74+ SUITE[" Autodiff" ][" sesolve" ][" Reverse (Enzyme)" ] = @benchmarkable Enzyme. autodiff (
75+ Enzyme. set_runtime_activity (Enzyme. Reverse),
76+ Const ($ my_f_sesolve),
77+ Active,
78+ Duplicated ($ params_sesolve, $ dparams_sesolve),
79+ )
6880
6981 # Benchmark mesolve - Forward
7082 SUITE[" Autodiff" ][" mesolve" ][" Forward" ] = @benchmarkable ForwardDiff. gradient ($ my_f_mesolve_direct, $ params_mesolve)
7183
7284 # Benchmark mesolve - Reverse (Zygote)
73- SUITE[" Autodiff" ][" mesolve" ][" Reverse" ] = @benchmarkable Zygote. gradient ($ my_f_mesolve, $ params_mesolve)
85+ SUITE[" Autodiff" ][" mesolve" ][" Reverse (Zygote)" ] = @benchmarkable Zygote. gradient ($ my_f_mesolve, $ params_mesolve)
86+
87+ # Benchmark mesolve - Reverse (Enzyme)
88+ SUITE[" Autodiff" ][" mesolve" ][" Reverse (Enzyme)" ] = @benchmarkable Enzyme. autodiff (
89+ Enzyme. set_runtime_activity (Enzyme. Reverse),
90+ Const ($ my_f_mesolve),
91+ Active,
92+ Duplicated ($ params_mesolve, $ dparams_mesolve),
93+ )
7494
7595 return nothing
7696end
0 commit comments