Enzyme ready for everyday use? (2024)

As a relative marker, Enzyme can now autodiff through OrdinaryDiffEq explicit methods (i.e. non-adjoint direct adjoint). Of course that flexes a lot of Julia, DataStructures, ranges, logging, rules around bit hacks, etc. so it’s a pretty good milestone. There’s still some issues with the implicit algorithms because of nesting Enzyme with PreallocationTools (due to tag reinterpret) that will get fixed by using Enzyme as the Jacobian tooling. We’ve also been doing this change to ODINN.jl, working through making Enzyme handle PyCall xarrays and everything that shows up in a real model code. Those two codes are pretty hard testbeds and I think we’re on track to get them working by the end of the year.

7 Likes