-
Notifications
You must be signed in to change notification settings - Fork 8
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
Forwards-Mode Design Docs #386
Conversation
Codecov ReportAll modified and coverable lines are covered by tests ✅
|
Performance Ratio:
|
@gdalle I think you could take a look at this now. Please feel free to push directly to it if there are changes that you would like to make. (build is available at the bottom of the CI run list). |
Thank you for this very useful clarification! My two remaining questions are:
|
My intention here was to make
Do you think I should add a sentence somewhere to make this clearer?
Good point. Do you think just referring to "rule compilation time" and "rule run time" or something would make sense? Or perhaps "rule generation" and "rule execution", as you propose? |
Yes.
Either is fine I guess. |
Great. I've tweaked the doc to reflect the changes. I was only able to find a single example of discussing Either way, what do you make of this? Do you think this plan seems sensible? |
I think it makes sense but I won't know what info I've missing until I've started! |
@willtebbutt could you clarify why the function argument in this section appears in a |
I have a more philosophical question about this page, which can also clarify reverse mode. The Mooncake implementation replaces |
Hi, I will share my thoughts on the objectives of a new ForwardDiff implementation. I hope it is helpful and happy to discuss it further. (This is copied from a private disscussion with @willtebbutt.)
|
Agreed, and this is shaping up rather nicely in #389. |
Sounds good. I'm going to quickly add a section comparing ForwardDiff.jl to this (mainly to make sure we've noted down some of the things that @yebai has noted above), then I'll merge. |
Apologies, I missed this. I'm not quite sure what you mean by |
I mean that most of the differentiation work happens outside of the IR, by hooking into alternative high-level Julia functions ( |
I think this is more or less the only way to do it. One reason is that, since dynamic dispatch is a thing, you don't know what all of the code is at rule-generation time, so there's no way that you could inline everything. |
This is initial work on my thinking regarding forwards-mode AD. I wanted to have finished a complete draft today, but the day got away from me. A complete draft should be finished tomorrow, at which point I'll ask for review.