Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

The big table of overloads #115

Closed
gdalle opened this issue Mar 27, 2024 · 5 comments · Fixed by #207
Closed

The big table of overloads #115

gdalle opened this issue Mar 27, 2024 · 5 comments · Fixed by #207
Labels
backend Related to one or more autodiff backends

Comments

@gdalle
Copy link
Owner

gdalle commented Mar 27, 2024

This table recaps the features of each extension, with respect to high-level operators.
Each cell can have four values

  • ❌: the backend does not support this operator
  • ❔: the backend supports this operator but our extension doesn't call it yet / doesn't handle preparation
  • ✅: our extension calls the backend operator and handles preparation if possible
backend derivative gradient jacobian hvp hessian
ChainRulesCore
Diffractor
Enzyme (forward)
Enzyme (reverse)
FastDifferentiation
FiniteDiff
FiniteDifferences
ForwardDiff
PolyesterForwardDiff
ReverseDiff
SparseDiffTools
Symbolics
Tapir
Tracker
Zygote
@adrhill
Copy link
Collaborator

adrhill commented Mar 27, 2024

The long-term goal should be to replace all ❔ with ✅, right?

@adrhill
Copy link
Collaborator

adrhill commented Mar 27, 2024

It would be nice to have a copy of this in our developer documentation.

@gdalle
Copy link
Owner Author

gdalle commented Mar 27, 2024

I like having this info in one place to help with maintenance. I think the issue makes more sense?

@wsmoses
Copy link

wsmoses commented Apr 14, 2024

@gdalle Enzyme does have support for a pure derivative (presumably scalar?) operator, you just call autodiff with it.

@gdalle
Copy link
Owner Author

gdalle commented Apr 15, 2024

Thanks, this table is more about the shortcuts that each backend defines with other names. I know that with Enzyme most of what I want to do can be achieved with ´autodiff´, and there are probably a few places where performance is suboptimal, but I'll try to fix those

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
backend Related to one or more autodiff backends
Projects
None yet
Development

Successfully merging a pull request may close this issue.

3 participants