rocALUTION Documentation¶
rocALUTION is a sparse linear algebra library with focus on exploring fine-grained parallelism on top of AMD’s Radeon Open Compute ROCm runtime and toolchains, targeting modern CPU and GPU platforms. Based on C++ and HIP, it provides a portable, generic and flexible design that allows seamless integration with other scientific software packages.
In the following, three separate chapters are available:
User Manual: This is the manual of rocALUTION. It can be seen as a starting guide for new users but also a reference book for more experienced users.
Design Documentation: The Design Document is targeted to advanced users / developers that want to understand, modify or extend the functionality of the rocALUTION library. To embed rocALUTION into your project, it is not required to read the Design Document.
API: This is a list of API functions provided by rocALUTION.
Contents:
- Design Documentation
- User Manual
- Introduction
- Building and Installing
- Basics
- Single-node Computation
- Multi-node Computation
- Solvers
- Code Structure
- Iterative Linear Solvers
- Building and Solving Phase
- Clear Function and Destructor
- Numerical Update
- Fixed-Point Iteration
- Krylov Subspace Solvers
- Chebyshev Iteration Scheme
- Mixed-Precision Defect Correction Scheme
- MultiGrid Solvers
- Unsmoothed Aggregation AMG
- Smoothed Aggregation AMG
- Ruge-Stueben AMG
- Pairwise AMG
- Direct Linear Solvers
- Preconditioners
Preconditioner
- Code Structure
- Jacobi Method
- (Symmetric) Gauss-Seidel / (S)SOR Method
- Incomplete Factorizations
- AI Chebyshev
- FSAI
- SPAI
- TNS
- MultiColored Preconditioners
- Multi-Elimination Incomplete LU
- Diagonal Preconditioner for Saddle-Point Problems
- (Restricted) Additive Schwarz Preconditioner
- Block-Jacobi (MPI) Preconditioner
- Block Preconditioner
- Variable Preconditioner
- Backends
- Remarks
- Supported Targets
- API
- Host Utility Functions
- Backend Manager
- Base Rocalution
- Operator
- Vector
Vector
Vector::CopyFrom()
Vector::CopyFrom()
Vector::CloneFrom()
Vector::CloneFrom()
Vector::GetSize()
Vector::GetLocalSize()
Vector::GetGhostSize()
Vector::Check()
Vector::Clear()
Vector::Zeros()
Vector::Ones()
Vector::SetValues()
Vector::SetRandomUniform()
Vector::SetRandomNormal()
Vector::ReadFileASCII()
Vector::WriteFileASCII()
Vector::ReadFileBinary()
Vector::WriteFileBinary()
Vector::CopyFromAsync()
Vector::CopyFromFloat()
Vector::CopyFromDouble()
Vector::CopyFrom()
Vector::AddScale()
Vector::AddScale()
Vector::ScaleAdd()
Vector::ScaleAdd()
Vector::ScaleAddScale()
Vector::ScaleAddScale()
Vector::ScaleAddScale()
Vector::ScaleAddScale()
Vector::ScaleAdd2()
Vector::ScaleAdd2()
Vector::Scale()
Vector::Dot()
Vector::Dot()
Vector::DotNonConj()
Vector::DotNonConj()
Vector::Norm()
Vector::Reduce()
Vector::Asum()
Vector::Amax()
Vector::PointWiseMult()
Vector::PointWiseMult()
Vector::PointWiseMult()
Vector::PointWiseMult()
Vector::Power()
- Local Matrix
LocalMatrix
LocalMatrix::AllocateCSR()
LocalMatrix::AllocateBCSR()
LocalMatrix::AllocateMCSR()
LocalMatrix::AllocateCOO()
LocalMatrix::AllocateDIA()
LocalMatrix::AllocateELL()
LocalMatrix::AllocateHYB()
LocalMatrix::AllocateDENSE()
LocalMatrix::SetDataPtrCOO()
LocalMatrix::SetDataPtrCSR()
LocalMatrix::SetDataPtrBCSR()
LocalMatrix::SetDataPtrMCSR()
LocalMatrix::SetDataPtrELL()
LocalMatrix::SetDataPtrDIA()
LocalMatrix::SetDataPtrDENSE()
LocalMatrix::LeaveDataPtrCOO()
LocalMatrix::LeaveDataPtrCSR()
LocalMatrix::LeaveDataPtrBCSR()
LocalMatrix::LeaveDataPtrMCSR()
LocalMatrix::LeaveDataPtrELL()
LocalMatrix::LeaveDataPtrDIA()
LocalMatrix::LeaveDataPtrDENSE()
LocalMatrix::Info()
LocalMatrix::GetFormat()
LocalMatrix::GetBlockDimension()
LocalMatrix::GetM()
LocalMatrix::GetN()
LocalMatrix::GetNnz()
LocalMatrix::Check()
LocalMatrix::Clear()
LocalMatrix::Zeros()
LocalMatrix::Scale()
LocalMatrix::ScaleDiagonal()
LocalMatrix::ScaleOffDiagonal()
LocalMatrix::AddScalar()
LocalMatrix::AddScalarDiagonal()
LocalMatrix::AddScalarOffDiagonal()
LocalMatrix::ExtractSubMatrix()
LocalMatrix::ExtractSubMatrices()
LocalMatrix::ExtractDiagonal()
LocalMatrix::ExtractInverseDiagonal()
LocalMatrix::ExtractU()
LocalMatrix::ExtractL()
LocalMatrix::Permute()
LocalMatrix::PermuteBackward()
LocalMatrix::CMK()
LocalMatrix::RCMK()
LocalMatrix::ConnectivityOrder()
LocalMatrix::MultiColoring()
LocalMatrix::MaximalIndependentSet()
LocalMatrix::ZeroBlockPermutation()
LocalMatrix::ILU0Factorize()
LocalMatrix::LUFactorize()
LocalMatrix::ILUTFactorize()
LocalMatrix::ILUpFactorize()
LocalMatrix::LUAnalyse()
LocalMatrix::LUAnalyseClear()
LocalMatrix::LUSolve()
LocalMatrix::ICFactorize()
LocalMatrix::LLAnalyse()
LocalMatrix::LLAnalyseClear()
LocalMatrix::LLSolve()
LocalMatrix::LLSolve()
LocalMatrix::LAnalyse()
LocalMatrix::LAnalyseClear()
LocalMatrix::LSolve()
LocalMatrix::UAnalyse()
LocalMatrix::UAnalyseClear()
LocalMatrix::USolve()
LocalMatrix::Householder()
LocalMatrix::QRDecompose()
LocalMatrix::QRSolve()
LocalMatrix::Invert()
LocalMatrix::ReadFileMTX()
LocalMatrix::WriteFileMTX()
LocalMatrix::ReadFileCSR()
LocalMatrix::WriteFileCSR()
LocalMatrix::MoveToAccelerator()
LocalMatrix::MoveToAcceleratorAsync()
LocalMatrix::MoveToHost()
LocalMatrix::MoveToHostAsync()
LocalMatrix::Sync()
LocalMatrix::CopyFrom()
LocalMatrix::CopyFromAsync()
LocalMatrix::CloneFrom()
LocalMatrix::UpdateValuesCSR()
LocalMatrix::CopyFromCSR()
LocalMatrix::CopyToCSR()
LocalMatrix::CopyFromCOO()
LocalMatrix::CopyToCOO()
LocalMatrix::CopyFromHostCSR()
LocalMatrix::CreateFromMap()
LocalMatrix::CreateFromMap()
LocalMatrix::ConvertToCSR()
LocalMatrix::ConvertToMCSR()
LocalMatrix::ConvertToBCSR()
LocalMatrix::ConvertToCOO()
LocalMatrix::ConvertToELL()
LocalMatrix::ConvertToDIA()
LocalMatrix::ConvertToHYB()
LocalMatrix::ConvertToDENSE()
LocalMatrix::ConvertTo()
LocalMatrix::Apply()
LocalMatrix::ApplyAdd()
LocalMatrix::SymbolicPower()
LocalMatrix::MatrixAdd()
LocalMatrix::MatrixMult()
LocalMatrix::DiagonalMatrixMult()
LocalMatrix::DiagonalMatrixMultL()
LocalMatrix::DiagonalMatrixMultR()
LocalMatrix::Gershgorin()
LocalMatrix::Compress()
LocalMatrix::Transpose()
LocalMatrix::Transpose()
LocalMatrix::Sort()
LocalMatrix::Key()
LocalMatrix::ReplaceColumnVector()
LocalMatrix::ReplaceRowVector()
LocalMatrix::ExtractColumnVector()
LocalMatrix::ExtractRowVector()
LocalMatrix::AMGConnect()
LocalMatrix::AMGAggregate()
LocalMatrix::AMGPMISAggregate()
LocalMatrix::AMGSmoothedAggregation()
LocalMatrix::AMGSmoothedAggregation()
LocalMatrix::AMGAggregation()
LocalMatrix::AMGAggregation()
LocalMatrix::RSCoarsening()
LocalMatrix::RSPMISCoarsening()
LocalMatrix::RSDirectInterpolation()
LocalMatrix::RSDirectInterpolation()
LocalMatrix::RSExtPIInterpolation()
LocalMatrix::RSExtPIInterpolation()
LocalMatrix::RugeStueben()
LocalMatrix::FSAI()
LocalMatrix::SPAI()
LocalMatrix::InitialPairwiseAggregation()
LocalMatrix::InitialPairwiseAggregation()
LocalMatrix::FurtherPairwiseAggregation()
LocalMatrix::FurtherPairwiseAggregation()
LocalMatrix::CoarsenOperator()
- Local Stencil
- Global Matrix
GlobalMatrix
GlobalMatrix::GlobalMatrix()
GlobalMatrix::GetM()
GlobalMatrix::GetN()
GlobalMatrix::GetNnz()
GlobalMatrix::GetLocalM()
GlobalMatrix::GetLocalN()
GlobalMatrix::GetLocalNnz()
GlobalMatrix::GetGhostM()
GlobalMatrix::GetGhostN()
GlobalMatrix::GetGhostNnz()
GlobalMatrix::MoveToAccelerator()
GlobalMatrix::MoveToHost()
GlobalMatrix::Info()
GlobalMatrix::Check()
GlobalMatrix::AllocateCSR()
GlobalMatrix::AllocateCOO()
GlobalMatrix::Clear()
GlobalMatrix::SetParallelManager()
GlobalMatrix::SetDataPtrCSR()
GlobalMatrix::SetDataPtrCOO()
GlobalMatrix::SetLocalDataPtrCSR()
GlobalMatrix::SetLocalDataPtrCOO()
GlobalMatrix::SetGhostDataPtrCSR()
GlobalMatrix::SetGhostDataPtrCOO()
GlobalMatrix::LeaveDataPtrCSR()
GlobalMatrix::LeaveDataPtrCOO()
GlobalMatrix::LeaveLocalDataPtrCSR()
GlobalMatrix::LeaveLocalDataPtrCOO()
GlobalMatrix::LeaveGhostDataPtrCSR()
GlobalMatrix::LeaveGhostDataPtrCOO()
GlobalMatrix::CloneFrom()
GlobalMatrix::CopyFrom()
GlobalMatrix::ConvertToCSR()
GlobalMatrix::ConvertToMCSR()
GlobalMatrix::ConvertToBCSR()
GlobalMatrix::ConvertToCOO()
GlobalMatrix::ConvertToELL()
GlobalMatrix::ConvertToDIA()
GlobalMatrix::ConvertToHYB()
GlobalMatrix::ConvertToDENSE()
GlobalMatrix::ConvertTo()
GlobalMatrix::Apply()
GlobalMatrix::ApplyAdd()
GlobalMatrix::ReadFileMTX()
GlobalMatrix::WriteFileMTX()
GlobalMatrix::ReadFileCSR()
GlobalMatrix::WriteFileCSR()
GlobalMatrix::Sort()
GlobalMatrix::ExtractInverseDiagonal()
GlobalMatrix::Scale()
GlobalMatrix::InitialPairwiseAggregation()
GlobalMatrix::FurtherPairwiseAggregation()
GlobalMatrix::CoarsenOperator()
- Local Vector
LocalVector
LocalVector::operator[]()
LocalVector::operator[]()
LocalVector::MoveToAccelerator()
LocalVector::MoveToAcceleratorAsync()
LocalVector::MoveToHost()
LocalVector::MoveToHostAsync()
LocalVector::Sync()
LocalVector::Info()
LocalVector::GetSize()
LocalVector::Check()
LocalVector::Allocate()
LocalVector::SetDataPtr()
LocalVector::LeaveDataPtr()
LocalVector::Clear()
LocalVector::Zeros()
LocalVector::Ones()
LocalVector::SetValues()
LocalVector::SetRandomUniform()
LocalVector::SetRandomNormal()
LocalVector::ReadFileASCII()
LocalVector::WriteFileASCII()
LocalVector::ReadFileBinary()
LocalVector::WriteFileBinary()
LocalVector::CopyFrom()
LocalVector::CopyFromAsync()
LocalVector::CopyFromFloat()
LocalVector::CopyFromDouble()
LocalVector::CopyFrom()
LocalVector::CopyFromPermute()
LocalVector::CopyFromPermuteBackward()
LocalVector::CloneFrom()
LocalVector::CopyFromData()
LocalVector::CopyToData()
LocalVector::Permute()
LocalVector::PermuteBackward()
LocalVector::Restriction()
LocalVector::Prolongation()
LocalVector::AddScale()
LocalVector::ScaleAdd()
LocalVector::ScaleAddScale()
LocalVector::ScaleAddScale()
LocalVector::ScaleAdd2()
LocalVector::Scale()
LocalVector::Dot()
LocalVector::DotNonConj()
LocalVector::Norm()
LocalVector::Reduce()
LocalVector::Asum()
LocalVector::Amax()
LocalVector::PointWiseMult()
LocalVector::PointWiseMult()
LocalVector::Power()
LocalVector::SetIndexArray()
LocalVector::GetIndexValues()
LocalVector::GetIndexValues()
LocalVector::SetIndexValues()
LocalVector::SetIndexValues()
LocalVector::GetContinuousValues()
LocalVector::SetContinuousValues()
LocalVector::ExtractCoarseMapping()
LocalVector::ExtractCoarseBoundary()
- Global Vector
GlobalVector
GlobalVector::GlobalVector()
GlobalVector::MoveToAccelerator()
GlobalVector::MoveToHost()
GlobalVector::Info()
GlobalVector::Check()
GlobalVector::GetSize()
GlobalVector::GetLocalSize()
GlobalVector::GetGhostSize()
GlobalVector::Allocate()
GlobalVector::Clear()
GlobalVector::SetParallelManager()
GlobalVector::Zeros()
GlobalVector::Ones()
GlobalVector::SetValues()
GlobalVector::SetRandomUniform()
GlobalVector::SetRandomNormal()
GlobalVector::CloneFrom()
GlobalVector::operator[]()
GlobalVector::operator[]()
GlobalVector::SetDataPtr()
GlobalVector::LeaveDataPtr()
GlobalVector::CopyFrom()
GlobalVector::ReadFileASCII()
GlobalVector::WriteFileASCII()
GlobalVector::ReadFileBinary()
GlobalVector::WriteFileBinary()
GlobalVector::AddScale()
GlobalVector::ScaleAdd()
GlobalVector::ScaleAdd2()
GlobalVector::ScaleAddScale()
GlobalVector::Scale()
GlobalVector::Dot()
GlobalVector::DotNonConj()
GlobalVector::Norm()
GlobalVector::Reduce()
GlobalVector::Asum()
GlobalVector::Amax()
GlobalVector::PointWiseMult()
GlobalVector::PointWiseMult()
GlobalVector::Power()
GlobalVector::Restriction()
GlobalVector::Prolongation()
- Base Classes
- Parallel Manager
ParallelManager
ParallelManager::SetMPICommunicator()
ParallelManager::Clear()
ParallelManager::GetRank()
ParallelManager::GetGlobalSize()
ParallelManager::GetGlobalNrow()
ParallelManager::GetGlobalNcol()
ParallelManager::GetLocalSize()
ParallelManager::GetLocalNrow()
ParallelManager::GetLocalNcol()
ParallelManager::GetNumReceivers()
ParallelManager::GetNumSenders()
ParallelManager::GetNumProcs()
ParallelManager::SetGlobalSize()
ParallelManager::SetGlobalNrow()
ParallelManager::SetGlobalNcol()
ParallelManager::SetLocalSize()
ParallelManager::SetLocalNrow()
ParallelManager::SetLocalNcol()
ParallelManager::SetBoundaryIndex()
ParallelManager::SetReceivers()
ParallelManager::SetSenders()
ParallelManager::LocalToGlobal()
ParallelManager::GlobalToLocal()
ParallelManager::Status()
ParallelManager::ReadFileASCII()
ParallelManager::WriteFileASCII()
- Solvers
- Preconditioners
Preconditioner
AIChebyshev
FSAI
SPAI
TNS
AS
RAS
BlockJacobi
BlockPreconditioner
BlockPreconditioner::Print()
BlockPreconditioner::Clear()
BlockPreconditioner::Set()
BlockPreconditioner::SetDiagonalSolver()
BlockPreconditioner::SetLSolver()
BlockPreconditioner::SetExternalLastMatrix()
BlockPreconditioner::SetPermutation()
BlockPreconditioner::Build()
BlockPreconditioner::Solve()
Jacobi
GS
SGS
ILU
ILUT
IC
VariablePreconditioner
MultiColored
MultiColoredSGS
MultiColoredGS
MultiColoredILU
MultiElimination
DiagJacobiSaddlePointPrecond