-
-
Notifications
You must be signed in to change notification settings - Fork 214
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
LinearExponential() solver broken for CUDA sparse matrices #2523
Comments
Did you set |
while
|
Okay so it looks like the root of the issue is that |
Let's narrow this down to something that's just ExponentialUtilties.jl? There are some basic expv tests: https://github.com/SciML/ExponentialUtilities.jl/blob/master/test/gpu/gputests.jl#L40-L57 so something must be missed by the tests. |
At least for krylov=:simple, the problem is that the V component of the KrylovSubspace is not constructed on the GPU. We have to alter the function alg_cache(alg::LinearExponential, …) in order to take care of constructing the KrylovSubspace in the right way, see my PR https://github.com/SciML/OrdinaryDiffEq.jl/pull/2538. |
Describe the bug 🐞
The LinearExponential() fails, if the ODEProblem is based on a MatrixOperator with a CuSparseMatrixCSC.
Expected behavior
The ODE should be successfully solved. Therefor the solver shouldn't compute the full matrix exponential of the given matrix operator.
Minimal Reproducible Example 👇
Error & Stacktrace⚠️
The solver computes directly the matrix exponential, which fails for a CuSparseMatrixCSC. See my bug report at Exponentiation utilities.
Environment (please complete the following information):
using Pkg; Pkg.status()
using Pkg; Pkg.status(; mode = PKGMODE_MANIFEST)
versioninfo()
The text was updated successfully, but these errors were encountered: