Are you comparing against some baseline approach that isn’t considered slow? How much time does that approach take?
In my experience Zygote can be extremely slow: `Zygote.gradient` is 54000 TIMES slower than `jax.gradient`. I ran into this once and never used Zygote since. ForwardDiff seems to be the fastest, easiest to use and most stable. Just browsing this forum I see people having trouble with Enzyme, for example (usually crashes and unintuitive behavior), but I don’t think I’ve ever seen anyone struggle with ForwardDiff: it usually just works, and it’s often surprisingly fast.
EDIT recent examples of people having issues with Enzyme:
- Lux/Enzyme error when Training my model?
- Issue: Enzyme + Flux double differentiation on custom layer
- People struggling with Enzyme’s native API: Make mutating function more AD-friendly - #5 by MrMR
- Zygote works, but Enzyme errors: Type instability in custom Lux masking layer when using Enzyme/Reactant