You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The only backends concerned by this are AutoEnzyme(Enzyme.ReverseModeSplit) and AutoTapir.
For mutating functions, it is dangerous to interrupt reverse mode autodiff after the forward sweep. The variables are in an intermediate state which will only be reverted after the reverse sweep completes.
In particular, Tapir requires running another forward sweep between reverse sweep, so a pullback closure would be useless.
I'm not sure how split reverse Enzyme works, will have to investigate.
backendRelated to one or more autodiff backendscoreRelated to the core utilities of the package
1 participant
Converted from issue
This discussion was converted from issue #142 on January 17, 2025 12:20.
Heading
Bold
Italic
Quote
Code
Link
Numbered list
Unordered list
Task list
Attach files
Mention
Reference
Menu
reacted with thumbs up emoji reacted with thumbs down emoji reacted with laugh emoji reacted with hooray emoji reacted with confused emoji reacted with heart emoji reacted with rocket emoji reacted with eyes emoji
-
The only backends concerned by this are
AutoEnzyme(Enzyme.ReverseModeSplit)
andAutoTapir
.For mutating functions, it is dangerous to interrupt reverse mode autodiff after the forward sweep. The variables are in an intermediate state which will only be reverted after the reverse sweep completes.
In particular, Tapir requires running another forward sweep between reverse sweep, so a pullback closure would be useless.
I'm not sure how split reverse Enzyme works, will have to investigate.
Related:
Beta Was this translation helpful? Give feedback.
All reactions