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
248 stars 53 forks source link

StackOverflow when solving problems from an `EnsembleGPUArray` #331

Closed oscardssmith closed 1 year ago

oscardssmith commented 1 year ago

I'm seeing

ERROR: StackOverflowError:
Stacktrace:
  [1] solve!(::LinearSolve.LinearCache{…}, ::LinSolveGPUSplitFactorize, ::Vararg{…}; kwargs::@Kwargs{…}) (repeats 4780 times)
    @ LinearSolve ~/.julia/packages/LinearSolve/tJWKq/src/common.jl:197
  [2] solve!(cache::LinearSolve.LinearCache{…}, args::LinSolveGPUSplitFactorize; kwargs::@Kwargs{…})
    @ LinearSolve ~/.julia/packages/LinearSolve/tJWKq/src/common.jl:197
  [3] solve!(::LinearSolve.LinearCache{…}; kwargs::@Kwargs{…})
    @ LinearSolve ~/.julia/packages/LinearSolve/tJWKq/src/common.jl:197
  [4] dolinsolve(integrator::OrdinaryDiffEq.ODEIntegrator{…}, linsolve::LinearSolve.LinearCache{…}; A::CuArray{…}, linu::Nothing, b::CuArray{…}, du::CuArray{…}, u::CuArray{…}, p::CuArray{…}, t::Float64, weight::CuArray{…}, solverdata::@NamedTuple{…}, reltol::Float64)
    @ OrdinaryDiffEq ~/.julia/packages/OrdinaryDiffEq/2kdef/src/misc_utils.jl:107
ChrisRackauckas commented 1 year ago

This algorithm exists in DiffEqGPU, so it's an issue there.