Working EIG + CUDA AD#236
Conversation
|
Your PR no longer requires formatting changes. Thank you for your contribution! |
|
Sigh... this was working locally for me... back to the CUDA mines we go! |
|
What the helly, it's passing locally for me still... |
|
OK the 1.10 failure is RNG related |
|
Was it just accidentally using a pathological case, or is this actually not very stable to begin with? |
|
I think the former, considering it worked on 1.12... |
lkdvos
left a comment
There was a problem hiding this comment.
If tests pass, happy to merge this!
Or maybe not. Something really weird on 1.10 here |
Codecov Report✅ All modified and coverable lines are covered by tests.
... and 4 files with indirect coverage changes 🚀 New features to boost your workflow:
|
|
There does seem to be something going on, potentially with degenerate eigenvalues. There is a "gauge sensitive" warning. Output generated during execution of 'mooncake/eig':
┌ 7-element Vector{Tuple{Float64, Float64}}:
│ (-0.701143421209963, -1.2117169941375323)
│ (-13314.483677792308, -1.2117169941375323)
│ (-0.6760447251535879, -1.2117169941375323)
│ (-1.5543476938692038, -1.2117169941375323)
│ (3.792817048932193, -1.2117169941375323)
│ (-92.0990632729372, -1.2117169941375323)
│ (0.09235575050115585, -1.2117169941375323)
│
│ ┌ Warning: `eig` cotangents sensitive to gauge choice: (|Δgauge| = 1.3540607507349773)
└ └ @ MatrixAlgebraKit ~/work/MatrixAlgebraKit.jl/MatrixAlgebraKit.jl/src/pullbacks/eig.jl:36I would also have to look into it more closely to see what is going on. Not sure what this vector of tuples exactly means. |
|
@Jutho it's annoyingly hard to interpret, basically it's a comparison of the summed (y, x) differences from AD (right column) and finite differences (left column) for various epsilon in FD. |
|
Ok so that is why the right column is constant, there is no epsilon in AD. But the left column then shows no convergence or consistency for different epsilon, so I assume there is some degeneracy messing things up. I have been wondering if it would be useful to have the "gauge sensitivity" warning be more informative, to explain what exactly is contributing to this. |
Added the
Hermitianwrapper to avoidcholeskyyelling thatV' * Visn't Hermitian.