Closed rexyang624 closed 4 days ago
I downgraded CUDA from v5.4.2 to v5.2.0 (the version which I think is before the update of lib/cusolver/dense.jl
), and indeed the above calculation performs smoothly.
It looks like it's a duplicated issue of #2413 associated with the implementation with the new 64-bit API, but I also dig into changes made from 5.2.0 to 5.3.0 in dense.jl
function bufferSize()
out = Ref{Cint}(0)
$bname(dense_handle(), jobz, uplo, n, A, lda, W, out)
- return out[]
+ return out[] * sizeof($elty)
end
Is the issue caused by the size of the buffer got enlarged by sizeof($elty)
which causing it beyond Int32
?
Calling the explicit 64-bit API CUDA.CUSOLVER.Xsyevd!
resolved my issue.
The high-level APIs should take care of this though. In any case, https://github.com/JuliaGPU/CUDA.jl/issues/2413 is similar, so I added your MWE there.
I encountered this issue originally in an eigenvalue problem,
where I got the error
I did similar calculation half a year ago successfully on the same computer but was in an older version of CUDA.jl
Later I found out it was the same issue related to #1880, where I used the exact the same code:
to reproduce similar not exactly the same error message:
I noticed this issued was fixed by modifying the
sizeof(work)
tolength(work)
in dense.jl, but many changes have been implemented afterwards. I'm not sure why this issue reappears.I also checked everything is updated to the latest version: