-
Notifications
You must be signed in to change notification settings - Fork 7
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
Documentation #172
Comments
The following paragraph is too brief for users to define new tangent types independently. Let's provide a complete example illustrating all (or more) necessary functions.
https://compintell.github.io/Tapir.jl/stable/known_limitations/#Tangent-Types |
@yebai and I discussed today that a side-by-side comparison of |
Great work! The section on Algorithmic Differentiation in the documentation is a long page, with only first-level headings in the navigation panel. It might be helpful to allow second or third-level headings in the navigation panel. There might be a typo in the current documentation (v0.4.50) For the first example:
The line after that sentence reads YX' + XY. See this script for an example, for the
I get this in the REPL on my machine:
Please let me know if I got this example wrong. |
Thanks for the suggestion -- I wasn't aware that this was possible! I'll look into it.
I think you must be right that I have a typo on the basis of the dimensions of
Great idea. For the typo and adding the cyclic trace property reminder, would you be interested in opening a PR, or shall I go ahead and make the fix? |
Hi Will, I can open a PR but it needs to wait until this weekend or later. Please go ahead and add a PR without me if you have an upcoming release and would like to incorporate this change. If you can wait for this weekend, would you be open to me adding some other minor writing style or grammar-related updates in the PR? You're welcomed to keep only the edits that make sense to you when reviewing the PR. |
I'm happy to wait until the weekend :)
Please do, I look forward to your PR! |
The purpose of this issue is to plan out the first iteration of documentation in Tapir, and to figure out what order to do things in.
Structure plan:
Developer Docs
This is probably the most important documentation to do well, because it will make it possible to on-board other people. My basic plan is to start simple, and build up.
All of these documentations will be built around diagrams -- these will probably be hand-drawn to minimise the amount of time I have to spend messing around with annoying printing.
Explain the rrule!! abstraction#175 dealt with thisThis page will explain in detail what
rrule!!
s and things output bybuild_rrule
must do, with a couple of worked examples. A non-exhaustive list of points to discuss includes:Differentiation a Function Comprising a Single Block
With the rrule abstraction introduced, we can discuss
At the end of this section the reader should have a solid understanding of what's going on with AD in Tapir.jl. In particular, we'll be able to discuss the transformation which happen to each primal line with needing to think about control flow, and will be able to discuss the basic mechanisms by which we share information between the forwards and reverse passes, how we use + generate OpaqueClosures, etc.
Handling Dynamic Control Flow and CFG Transformations
With the above done, we can turn out attention to handling dynamic control flow. The basic idea is to convince the reader that each possible trajectory through the CFG corresponds to a different linearisation of the control
At this point, we'll need to explain how control flow is handled in SSA (phi nodes, goto / goto-if-not nodes etc), and then jointly explain how
These two steps are necessarily somewhat coupled.
BBCode Explainer
TODO: plan this
Tutorials
TODO: plan these
Interface Documentation
TODO: plan these
Misc:
The text was updated successfully, but these errors were encountered: