Open gdalle opened 1 month ago
Hi @gdalle - yes, that's definitely the plan, or at least to use DifferentiationInterface.jl as the default for all backends and then only specialize a few things if necessary. AutoDiffOperator will then mostly focus on the "multiplicative operator" aspect, and will (like now) mostly be limited to vector-like values (but offer some added type stability in some cases, like with Zygote, in exchange).
AbstractADType
will likely also play a more central role then - when I started AutoDiffOperators, there was no central implementations for ADTypes
yet, that's entirely different now, of course.
I had planned for to wait until the (probably not too distant) next Julia LTS release, I hadn't realised that DifferentiationInterface now supports Julia v1.6 - are there some strings attached to this?
No strings attached, except that I was only able to test on 1.6 with a narrow subset of backends:
The others may work or may fail, but I can't make any promises
The others may work or may fail, but I can't make any promises
No worries @gdalle , it's not like a have a large number of backends in AutoDiffOperators so far (and thanks to DifferentiationInterface I hopefully don't have to add more in the future, they'll just "be there"). :-)
I have some other urgent things pending at the moment, but I'll try to do this sometime soonish. I'll let you know if I need anything additional in DifferentiationInterface, though from what I've seen so far it's probably already fine.
Also, thank you for creating DifferentiationInterface, I think it fills a critical hole in the ecosystem!
As far as AutoDiffOperators is concerned, it's long-term role was intended to be the "operator" part, the backend implementations here were mostly a stopgap anyway.
I'm glad we can be of use! Good luck with the refactor. I thought about adding lazy matrix stuff in DifferentiationInterface, but I don't think most people need it, so it's great if you take care of it as an additional layer
lazy matrix stuff in DifferentiationInterface, but I don't think most people need it, so it's great if you take care of it as an additional layer
True, and also this way we can be a bit more opinionated about the details of that in AutoDiffOperators than would be appropriate in DifferentiationInterface (which I expect will very soon become a central package).
which I expect will very soon become a central package
I certainly hope so. My arrogant take is that people don't yet realize the range of stuff it can do, and how efficient it is at doing them. But we have already convinced all of SciML, and hopefully more users are on the way.
Yes, that fact that SciML has adopted it is a clear statement by itself. :-)
Hi @oschulz! Now that DifferentiationInterface.jl is getting more and more mature, would you be interested in switching this package and its dependents to our autodiff framework? Happy to help you make the necessary changes if you deem it relevant