Types

CudssSolver

CUDSS.CudssSolverType
solver = CudssSolver(A::CuSparseMatrixCSR{T,Cint}, structure::String, view::Char; index::Char='O')
solver = CudssSolver(matrix::CudssMatrix{T}, config::CudssConfig, data::CudssData)

The type T can be Float32, Float64, ComplexF32 or ComplexF64.

CudssSolver contains all structures required to solve a linear system with cuDSS. One constructor of CudssSolver takes 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.

source

CudssBatchedSolver

CUDSS.CudssBatchedSolverType
solver = CudssBatchedSolver(A::CuSparseMatrixCSR{T,Cint}, structure::String, view::Char; index::Char='O')
solver = CudssBatchedSolver(matrix::CudssBatchedMatrix{T}, config::CudssConfig, data::CudssData)

The type T can be Float32, Float64, ComplexF32 or ComplexF64.

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.

source

CudssMatrix

CUDSS.CudssMatrixType
matrix = CudssMatrix(b::CuVector{T})
matrix = CudssMatrix(B::CuMatrix{T})
matrix = CudssMatrix(A::CuSparseMatrixCSR{T,Cint}, struture::String, view::Char; index::Char='O')

The type T can be Float32, Float64, ComplexF32 or ComplexF64.

CudssMatrix is a wrapper for CuVector, CuMatrix and CuSparseMatrixCSR. 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.
source

CudssBatchedMatrix

CUDSS.CudssBatchedMatrixType
matrix = CudssBatchedMatrix(b::Vector{CuVector{T}})
matrix = CudssBatchedMatrix(B::Vector{CuMatrix{T}})
matrix = CudssBatchedMatrix(A::Vector{CuSparseMatrixCSR{T,Cint}}, struture::String, view::Char; index::Char='O')

The type T can be Float32, Float64, ComplexF32 or ComplexF64.

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.
source

CudssConfig

CudssData

CUDSS.CudssDataType
data = CudssData()
data = CudssData(cudss_handle::cudssHandle_t)

CudssData holds internal data (e.g., LU factors arrays).

source