-
-
Notifications
You must be signed in to change notification settings - Fork 213
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
StaticArray block vec' * mat segfault on 0.5.11 #837
Comments
This is because the rules in ChainRules.jl restrict the element types of the multiplicands to just complex and real numbers, whereas the previous rule in Zygote caught all eltypes. The segfault is from Zygote then trying to recurse into StaticArray's |
I don't see why generated functions would be a massive issue, but worth fixing in ChainRules. Perhaps we might be able to have a stub in Zygote too for specific type signatures, but that seems a bit too narrow at first glance. |
I am not sure that this is a ChainRules problem, so much as a problem with the previous invalid rule in Zygote causing a different error to occur before the segfault could. But here is a similar example that does show that a rule is now missing.
Zygote 0.5.10
I think we should accept real complex or AbstractArrays, thought it it always a bit problematic to be too wide. |
The following throws an error on Zygote 0.5.10, but segfaults on Zygote 0.5.11 & beyond (with Julia 1.5.3 / ChainRules v0.7.33)
From the v0.5.10...v0.5.11 diff, it seems likely its some difference in the ChainRules adjoint which was switched to there.
An edge-case no doubt and it wasn't even working before (but at least no segfault), but thought I'd point out in case its a sign of a more general thing that could be worth fixing.
Full stack trace
The text was updated successfully, but these errors were encountered: