SciML / LinearSolve.jl

LinearSolve.jl: High-Performance Unified Interface for Linear Solvers in Julia. Easily switch between factorization and Krylov methods, add preconditioners, and all in one interface.
https://docs.sciml.ai/LinearSolve/stable/
Other
235 stars 51 forks source link

Don't select an algorithm for SVDFactorization #488

Open avik-pal opened 3 months ago

avik-pal commented 3 months ago

Selecting an algorithm for SVDFactorization will cause it to fail for CUDA. Possible solutions:

  1. Keep it as nothing and use the default versions used in the downstream package
ChrisRackauckas commented 3 months ago

I don't get what this means.

avik-pal commented 3 months ago

https://github.com/SciML/LinearSolve.jl/blob/7911113c6b14b6897cc356e277ccd5a98faa7dd7/src/factorization.jl#L324 sets the algorithm as DivideAndConquer, the CUSOLVER ones which is dispatched via svd(::CuArray) don't map directly to the LinearAlgebra ones so svd(::CuArray; alg = DivideAndConquer() is an error

ChrisRackauckas commented 3 months ago

I see. We had to do the same before with QR factorization pivoting choices. This is an easy thing to fix, good first issue.