Michael Abbott
Michael Abbott
That's surprising. Did it say `Base.allequal`? ```julia julia> @macroexpand1 @non_differentiable allequal(::Any) quote #= /Users/me/.julia/packages/ChainRulesCore/IzITE/src/rule_definition_tools.jl:383 =# begin function (::(ChainRulesCore.Core).kwftype(ChainRulesCore.typeof((ChainRulesCore.ChainRulesCore).frule)))(#= /Users/me/.julia/packages/ChainRulesCore/IzITE/src/rule_definition_tools.jl:404 =# @nospecialize(var"##kwargs#423"::Any), var"#1553#frule"::ChainRulesCore.typeof((ChainRulesCore.ChainRulesCore).frule), #= /Users/me/.julia/packages/ChainRulesCore/IzITE/src/rule_definition_tools.jl:406 =# @nospecialize(::Any), ::(Core).Typeof(allequal), var"##422"::Any) return (allequal(var"##422";...
CI is 1.7.2, and I tried 1.7.0 and didn't see problems. Glad if it works now!
This is really strange. I wonder why it doesn't happen with anything else using Compat -- do any of these packages define their own `allequal` which clashes somehow? Does it...
Yes, reductions to one scalar won't work on the GPU, I'm sorry. The current KernelAbstractions.jl code is best for broadcasting-like operations, which are done in parallel over the output array....
My guess is that this is a race condition due to a threading bug, or whatever the right GPU terminology is. I can't check locally at the moment, but I...
Sorry I haven't got back to this. I decided that the way I was dividing loops into safe/unsafe was incorrect for the min/max gradients. But haven't re-organised them yet. (I...
No, I think it's an unrelated logic mistake, copying what made sense for `+` over to `max`.
Be warned that these do different things: ```julia julia> @tullio C[k, l] := A[i, j, k, l] * B[i, j] |> sqrt; C[3,4] # sqrt outside the sum 2.0930036101114573 julia>...
That's an interesting quirk. The rules being used are from DiffRules.jl, which ForwardDiff.jl uses to define methods, and hence evaluates the `Symbol`s. But Tullio just sees what you write, so...
One possibly crazy idea would be to move the minimal struct definitions to ChainRulesCore, as `@scalar_rule` could then define methods.