File tree Expand file tree Collapse file tree 2 files changed +40
-1
lines changed Expand file tree Collapse file tree 2 files changed +40
-1
lines changed Original file line number Diff line number Diff line change @@ -43,6 +43,11 @@ For sparse LU-factorizations, `KLUFactorization` if there is less structure
43
43
to the sparsity pattern and ` UMFPACKFactorization ` if there is more structure.
44
44
Pardiso.jl's methods are also known to be very efficient sparse linear solvers.
45
45
46
+ For GPU-accelerated sparse LU-factorizations, ` CUSOLVERRFFactorization ` provides
47
+ access to NVIDIA's cusolverRF library, offering significant performance improvements
48
+ for sparse systems on CUDA-capable GPUs. This is particularly effective for large
49
+ sparse matrices that can benefit from GPU parallelization.
50
+
46
51
While these sparse factorizations are based on implementations in other languages,
47
52
and therefore constrained to standard number types (` Float64 ` , ` Float32 ` and
48
53
their complex counterparts), ` SparspakFactorization ` is able to handle general
@@ -219,7 +224,7 @@ LinearSolve.PardisoJL
219
224
220
225
### CUDA.jl
221
226
222
- Note that ` CuArrays ` are supported by ` GenericFactorization ` in the “ normal” way.
227
+ Note that ` CuArrays ` are supported by ` GenericFactorization ` in the " normal" way.
223
228
The following are non-standard GPU factorization routines.
224
229
225
230
!!! note
@@ -230,6 +235,16 @@ The following are non-standard GPU factorization routines.
230
235
CudaOffloadFactorization
231
236
```
232
237
238
+ ### CUSOLVERRF.jl
239
+
240
+ !!! note
241
+
242
+ Using this solver requires adding the package CUSOLVERRF.jl, i.e. ` using CUSOLVERRF `
243
+
244
+ ``` @docs
245
+ CUSOLVERRFFactorization
246
+ ```
247
+
233
248
### IterativeSolvers.jl
234
249
235
250
!!! note
Original file line number Diff line number Diff line change @@ -121,6 +121,30 @@ sol = LS.solve(prob, LS.LUFactorization())
121
121
122
122
For now, CUDSS only supports CuSparseMatrixCSR type matrices.
123
123
124
+ For high-performance sparse LU factorization on GPUs, you can also use CUSOLVERRF.jl:
125
+
126
+ ``` julia
127
+ using CUSOLVERRF
128
+ sol = LS. solve (prob, LS. CUSOLVERRFFactorization ())
129
+ ```
130
+
131
+ CUSOLVERRF provides access to NVIDIA's cusolverRF library, which offers significant
132
+ performance improvements for sparse LU factorization on GPUs. It supports both
133
+ ` :RF ` (default) and ` :KLU ` symbolic factorization methods, and can reuse symbolic
134
+ factorization for matrices with the same sparsity pattern:
135
+
136
+ ``` julia
137
+ # Use KLU for symbolic factorization
138
+ sol = LS. solve (prob, LS. CUSOLVERRFFactorization (symbolic = :KLU ))
139
+
140
+ # Reuse symbolic factorization for better performance
141
+ sol = LS. solve (prob, LS. CUSOLVERRFFactorization (reuse_symbolic = true ))
142
+ ```
143
+
144
+ !!! note
145
+
146
+ CUSOLVERRF only supports ` Float64 ` element types with ` Int32 ` indices.
147
+
124
148
Note that ` KrylovJL ` methods also work with sparse GPU arrays:
125
149
126
150
``` julia
You can’t perform that action at this time.
0 commit comments