Brian Chen
Brian Chen
Dict handling is one of the most finicky bits of Zygote's internals and issues which involve the AD transform even more so. I'm not even sure any active contributors _understand_...
Had another look today and surprisingly it seems `(k, v)` iteration can be handled with just an adjoint (#1285). Iterating `values` is not yet addressed because that takes an entirely...
Have you tried the linked PR?
This turned out to be a fun issue :scream: . In short, kwargs are represented as `Pairs{..., NamedTuple}`. This is an immutable type, but because `Pairs
Try https://github.com/FluxML/Zygote.jl/pull/1295 on for size.
You may want to describe the kinds of kernels you are working with then, because the array interface is not limited to what you describe. It may be that an...
Interesting algorithm! I agree this does not seem possible (or at least not easy) to do with the array interface. Enzyme seems like the best option for differentiating GPU kernels...
Looking at the call chain, this would require a rule for either `reduce(::typeof(+),::CuArray{Float32, 1, CUDA.Mem.DeviceBuffer})::Float32` or `mapreduce(::typeof(identity),::typeof(+),::CuArray{Float32, 1, CUDA.Mem.DeviceBuffer})::Float32`. ChainRules is probably the best place for that.
It seems the CR version is defined differently from the one here. Perhaps that's the source of the gradtest failures?
Ref. https://github.com/FluxML/Zygote.jl/issues/717#issuecomment-1208927447 for visibility.