Oliver Schulz
Oliver Schulz
Ok I've removed `@adjoint_keepthunks` from ZygoteRules and added an internal `@_adjoint_keepthunks` to Zygote itself instead. I've also added some comments to label it as temporary. `Zygote.@_adjoint_keepthunks` still uses the extended...
Here's a little demo on how this will work once we can disable the unthunking of `rrule` input (step 3 in the proposal above). With ```julia # Requires # *...
Here are some benchmarks for the example above, with bigger arrays: ```julia using Zygote, BenchmarkTools A, B, C, D = [fill(i,100,100) for i in 2:5] ``` ``` julia> @btime sum($A...
Hey @DhairyaLGandhi , it seems all that's missing before we can move with this is your blessing. Would you have time to take a look?
@DhairyaLGandhi , gentle bump - I don't mean to nag, but I would love to start using the first stage of this for some projects.
Thanks! There should be no difference for users writing `ZygoteRules` rules. Starting with step 2 in the plan above, user writing `ChainRulesCore` rules (and I guess the idea is that...
> > Will the requirement be to ubthunk before anythibg in an rrule? > Not necessarily, Also, quite a few rrules will not need to `unthunk` at all, as long...
I wonder if Julia shouldn't have something like a thunk as a native concept. We have something along those lines in so many places/packages.
> unthunk in cases where the thunk is used twice (to avoid the duplicate calculation) Could we use some result caching / lazy value mechanism?
> Could we use some result caching / lazy value mechanism? Might lead to even more mem allocs than we already have, though ...