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 |
devmotion
left a comment
There was a problem hiding this comment.
Can you also update the Github action to 1.6?
Co-authored-by: David Widmann <devmotion@users.noreply.github.com>
…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. |
devmotion
left a comment
There was a problem hiding this comment.
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
choleskyis 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.