-
-
Notifications
You must be signed in to change notification settings - Fork 212
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
remove @adjoint function cholesky
#1114
Conversation
I'm generally on board. The integration test failures are related to DistributionsAD but the buildkite errors are curious seeing as they shouldn't be involved here at all. |
Yeah, this failure in the CI / Julia 1 test looks like something is actually not going quite right in the cholesky gradient: https://github.com/FluxML/Zygote.jl/runs/4106058861?check_suite_focus=true#step:6:189 |
Maybe one should check if #1104 fixed (some of) the issues and rerun the tests based on the master branch? |
There's 28 more tests in total and 3 more broken tests, comparing master-merged-in vs previous run... so doesn't seem to have helped unfortunately... |
I just remembered JuliaDiff/ChainRules.jl#611, I think it causes most of the test errors here (JuliaDiff/ChainRules.jl#611 (comment)). |
The problems with the CR rule for |
Looks great 👍 The remaining test error is caused by a newly added feature of the rule in ChainRules - it also supports failed factorizations for some input types now. So updating the test should be sufficient I assume. ChainRules 1.35.3 also only supports Julia >= 1.6 (the Julia compat in CR was updated quite a while ago), so the Julia compat should be updated or the Zygote rule only be removed on Julia >= 1.6 if you want to keep support for older Julia versions. The downstream test error of DynamicPPL was fixed in the latest release of DistributionsAD (just released around 1-2 hours ago). |
@FluxML/ad @CarloLucibello should we take the opportunity to bump compat to 1.6? Both upstream (CR) and downstream (Flux) have already done so now. |
Yes let's bump |
@devmotion I've tried to think about how to fix the test but I couldn't think of anything, so I've just removed it for now; if you've got any better idea what a test should look like please just suggest |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Can you also update the Github action to 1.6?
Co-authored-by: David Widmann <[email protected]>
…l into st/remove_cholesky_adjoint
If this looks good, we can roll it and #1226 into v0.6.41. |
I'll take the +1 as approval from @devmotion, so if you wouldn't mind rebasing @st-- we can get this merged. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
A more formal approval 🙂 Looks good to me, tests seem to pass now (apart from nightlies and NeuralPDE which fail on master as well).
Molly.jl failure is either spurious or caused by changes outside this PR, will see what CI says post-merge. Always a good day when another |
The adjoint of
cholesky
is already defined in ChainRules.jl, but it is overridden by Zygote's definition, which is missing the case for Hermitian:This PR bumps the julia compat to 1.6 and ChainRules to 1.35.3, at which point we can safely remove the adjoint. It also adds a test for the Hermitian case.