Types
CudssSolver
CUDSS.CudssSolver — Typesolver = CudssSolver(A::CuSparseMatrixCSR{T,INT}, structure::String, view::Char; index::Char='O')
solver = CudssSolver(rowPtr::CuVector{INT}, colVal::CuVector{INT}, nzVal::CuVector{T}, structure::String, view::Char; index::Char='O')
solver = CudssSolver(matrix::CudssMatrix{T,INT}, config::CudssConfig, data::CudssData)The parameter type T is restricted to Float32, Float64, ComplexF32, or ComplexF64, while INT is restricted to Int32 or Int64.
CudssSolver contains all structures required to solve a linear system with cuDSS. It can also be used to solve a batch of linear systems sharing the same sparsity pattern. Two constructors of CudssSolver take as input the same parameters as CudssMatrix.
structure specifies the stucture for the sparse matrix:
"G": General matrix – LDU factorization;"S": Real symmetric matrix – LDLᵀ factorization;"H": Complex Hermitian matrix – LDLᴴ factorization;"SPD": Symmetric positive-definite matrix – LLᵀ factorization;"HPD": Hermitian positive-definite matrix – LLᴴ factorization.
view specifies matrix view for the sparse matrix:
'L': Lower-triangular matrix and all values above the main diagonal are ignored;'U': Upper-triangular matrix and all values below the main diagonal are ignored;'F': Full matrix.
index specifies indexing base for the sparse matrix:
'Z': 0-based indexing;'O': 1-based indexing.
CudssSolver can be also constructed from the three structures CudssMatrix, CudssConfig and CudssData if needed.
CudssBatchedSolver
CUDSS.CudssBatchedSolver — Typesolver = CudssBatchedSolver(A::Vector{CuSparseMatrixCSR{T,INT}}, structure::String, view::Char; index::Char='O')
solver = CudssBatchedSolver(matrix::CudssBatchedMatrix{T,INT}, config::CudssConfig, data::CudssData)The parameter type T is restricted to Float32, Float64, ComplexF32, or ComplexF64, while INT is restricted to Int32 or Int64.
CudssBatchedSolver contains all structures required to solve a batch of linear systems with cuDSS. One constructor of CudssBatchedSolver takes as input the same parameters as CudssBatchedMatrix.
structure specifies the stucture for the sparse matrices:
"G": General matrix – LDU factorization;"S": Real symmetric matrix – LDLᵀ factorization;"H": Complex Hermitian matrix – LDLᴴ factorization;"SPD": Symmetric positive-definite matrix – LLᵀ factorization;"HPD": Hermitian positive-definite matrix – LLᴴ factorization.
view specifies matrix view for the sparse matrices:
'L': Lower-triangular matrix and all values above the main diagonal are ignored;'U': Upper-triangular matrix and all values below the main diagonal are ignored;'F': Full matrix.
index specifies indexing base for the sparse matrices:
'Z': 0-based indexing;'O': 1-based indexing.
CudssBatchedSolver can be also constructed from the three structures CudssBatchedMatrix, CudssConfig and CudssData if needed.
CudssMatrix
CUDSS.CudssMatrix — Typematrix = CudssMatrix(::Type{T}, n::Integer; nbatch::Integer=1)
matrix = CudssMatrix(::Type{T}, m::Integer, n::Integer; nbatch::Integer=1)
matrix = CudssMatrix(b::CuVector{T})
matrix = CudssMatrix(B::CuMatrix{T})
matrix = CudssMatrix(A::CuSparseMatrixCSR{T,INT}, struture::String, view::Char; index::Char='O')
matrix = CudssMatrix(rowPtr::CuVector{INT}, colVal::CuVector{INT}, nzVal::CuVector{T}, struture::String, view::Char; index::Char='O')The parameter type T is restricted to Float32, Float64, ComplexF32, or ComplexF64, while INT is restricted to Int32 or Int64.
CudssMatrix is a wrapper for CuVector, CuMatrix and CuSparseMatrixCSR. CudssMatrix can also represent a batch of CuSparseMatrixCSR sharing the same sparsity pattern. CudssMatrix is used to pass the matrix of the sparse linear system, as well as solution and right-hand side.
structure specifies the stucture for the sparse matrix:
"G": General matrix – LDU factorization;"S": Real symmetric matrix – LDLᵀ factorization;"H": Complex Hermitian matrix – LDLᴴ factorization;"SPD": Symmetric positive-definite matrix – LLᵀ factorization;"HPD": Hermitian positive-definite matrix – LLᴴ factorization.
view specifies matrix view for the sparse matrix:
'L': Lower-triangular matrix and all values above the main diagonal are ignored;'U': Upper-triangular matrix and all values below the main diagonal are ignored;'F': Full matrix.
index specifies indexing base for the sparse matrix:
'Z': 0-based indexing;'O': 1-based indexing.
CudssBatchedMatrix
CUDSS.CudssBatchedMatrix — Typematrix = CudssBatchedMatrix(b::Vector{CuVector{T}})
matrix = CudssBatchedMatrix(B::Vector{CuMatrix{T}})
matrix = CudssBatchedMatrix(A::Vector{CuSparseMatrixCSR{T,INT}}, struture::String, view::Char; index::Char='O')The parameter type T is restricted to Float32, Float64, ComplexF32, or ComplexF64, while INT is restricted to Int32 or Int64.
CudssBatchedMatrix is a wrapper for Vector{CuVector}, Vector{CuMatrix} and Vector{CuSparseMatrixCSR}. CudssBatchedMatrix is used to pass the matrices of the sparse linear systems, as well as solutions and right-hand sides.
structure specifies the stucture for the sparse matrices:
"G": General matrix – LDU factorization;"S": Real symmetric matrix – LDLᵀ factorization;"H": Complex Hermitian matrix – LDLᴴ factorization;"SPD": Symmetric positive-definite matrix – LLᵀ factorization;"HPD": Hermitian positive-definite matrix – LLᴴ factorization.
view specifies matrix view for the sparse matrices:
'L': Lower-triangular matrix and all values above the main diagonal are ignored;'U': Upper-triangular matrix and all values below the main diagonal are ignored;'F': Full matrix.
index specifies indexing base for the sparse matrices:
'Z': 0-based indexing;'O': 1-based indexing.
CudssConfig
CUDSS.CudssConfig — Typeconfig = CudssConfig()CudssConfig stores configuration settings for the solver.
CudssData
CUDSS.CudssData — Typedata = CudssData()
data = CudssData(cudss_handle::cudssHandle_t)CudssData holds internal data (e.g., LU factors arrays).