JuliaDiff / JuliaDiff/Diffractor.jl
Avoid using rules when propagating `AbstractZero` tangents
Nobody has claimed this yet.
- Dominant language
- Julia
- Stars
- 453
- Forks
- 33
- PR merge metrics
- No merged PRs in 30d
Description
When the pullback argument is an AbstractZero, the tangents with respect to all the primal inputs are also zero. E.g. the Zygote convention uses nothing to represent zero tangents, and it propagates that without looking at the rules. https://github.com/FluxML/Zygote.jl/blob/5b803d12f2d235755ba6f23a9017fc29fefd9985/src/compiler/chainrules.jl#L143.
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by reading the linked Zygote example in src/compiler/chainrules.jl around line 143, then locate the corresponding AbstractZero pullback handling in Diffractor.jl. Verify that zero pullbacks avoid consulting rules and propagate zero tangents for every primal input; add or update tests if the relevant test location is found.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- julia
- Domain
- devtools
- Issue type
- Refactor
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100