What are `autodiff_deferred` and `autodiff_thunk` for in Enzyme?

gdalle
Mon, 25 Mar 2024 07:26:46 +0000
Machine Learning

I think I understand the basic autodiff function (see this post) but it has three variants:

autodiff_deferred

autodiff_thunk (which seems broken on 1.11)

autodiff_deferred_thunk

Is there someone who can explain to me:

why “deferring” computations is useful for GPU or higher-order?

in which cases I should use the “thunk” version?

whether there are performance differences?

24 posts - 3 participants