File tree Expand file tree Collapse file tree 1 file changed +33
-0
lines changed Expand file tree Collapse file tree 1 file changed +33
-0
lines changed Original file line number Diff line number Diff line change @@ -441,3 +441,36 @@ to avoid allocations and automatically offloads to the GPU.
441441struct MetalLUFactorization <: AbstractFactorization end
442442
443443struct BLISLUFactorization <: AbstractFactorization end
444+
445+ """
446+ `CUSOLVERRFFactorization(; symbolic = :RF, reuse_symbolic = true)`
447+
448+ A GPU-accelerated sparse LU factorization using NVIDIA's cusolverRF library.
449+ This solver is specifically designed for sparse matrices on CUDA GPUs and
450+ provides high-performance factorization and solve capabilities.
451+
452+ ## Keyword Arguments
453+
454+ - `symbolic`: The symbolic factorization method to use. Options are:
455+ - `:RF` (default): Use cusolverRF's built-in symbolic analysis
456+ - `:KLU`: Use KLU for symbolic analysis
457+ - `reuse_symbolic`: Whether to reuse the symbolic factorization when the
458+ sparsity pattern doesn't change (default: `true`)
459+
460+ !!! note
461+ This solver requires CUSOLVERRF.jl to be loaded and only supports
462+ `Float64` element types with `Int32` indices.
463+ """
464+ struct CUSOLVERRFFactorization <: AbstractSparseFactorization
465+ symbolic:: Symbol = :RF
466+ reuse_symbolic:: Bool = true
467+
468+ function CUSOLVERRFFactorization (; symbolic:: Symbol = :RF , reuse_symbolic:: Bool = true )
469+ ext = Base. get_extension (@__MODULE__ , :CUSOLVERRFFactorization )
470+ if ext === nothing
471+ error (" CUSOLVERRFFactorization requires that CUSOLVERRF.jl is loaded, i.e. `using CUSOLVERRF`" )
472+ else
473+ return new {} (symbolic, reuse_symbolic)
474+ end
475+ end
476+ end
You can’t perform that action at this time.
0 commit comments