-
Notifications
You must be signed in to change notification settings - Fork 45
Functionality table
Nico edited this page Jun 17, 2020
·
4 revisions
| Function name | Comment |
|---|---|
| init_rocalution | Initialize rocALUTION platform |
| stop_rocalution | Stop rocALUTION platform |
| info_rocalution | Print rocALUTION platform information |
| set_device_rocalution | Set rocALUTION device |
| set_omp_threads_rocalution | Set number of OpenMP threads |
| set_omp_affinity_rocalution | Set OpenMP thread affinity |
| set_omp_threshold_rocalution | Set OpenMP size threshold |
| disable_accelerator_rocalution | Disable accelerator usage |
| rocalution_time | Obtain current time in microseconds |
| Format | Host | HIP |
|---|---|---|
| CSR | Yes | Yes |
| COO | Yes | Yes |
| ELL | Yes | Yes |
| DIA | Yes | Yes |
| HYB | Yes | Yes |
| DENSE | Yes | Yes |
| BCSR | Yes | Yes |
All matrix conversions are performed via the CSR format (either as a source or a destination - e.g. DIA cannot be directly converted to ELL).
| Solver | Host | HIP |
|---|---|---|
| CG - Building | Yes | Yes |
| CG - Solving | Yes | Yes |
| FCG - Building | Yes | Yes |
| FCG - Solving | Yes | Yes |
| CR - Building | Yes | Yes |
| CR - Solving | Yes | Yes |
| BiCGStab - Building | Yes | Yes |
| BiCGStab - Solving | Yes | Yes |
| BiCGStab(l) - Building | Yes | Yes |
| BiCGStab(l) - Solving | Yes | Yes |
| QMRCGStab - Building | Yes | Yes |
| QMRCGStab - Solving | Yes | Yes |
| GMRES - Building | Yes | Yes |
| GMRES - Solving | Yes | Yes |
| FGMRES - Building | Yes | Yes |
| FGMRES - Solving | Yes | Yes |
| Chebyshev - Building | Yes | Yes |
| Chebyshev - Solving | Yes | Yes |
| Mixed-Precision - Building | Yes | Yes |
| Mixed-Precision - Solving | Yes | Yes |
| Fixed-Point Iteration - Building | Yes | Yes |
| Fixed-Point Iteration - Solving | Yes | Yes |
| AMG (Plain Aggregation) - Building | Yes | No |
| AMG (Plain Aggregation) - Solving | Yes | Yes |
| AMG (Smoothed Aggregation) - Building | Yes | No |
| AMG (Smoothed Aggregation) - Solving | Yes | Yes |
| AMG (Ruge-Stueben) - Building | Yes | No |
| AMG (Ruge-Stueben) - Solving | Yes | Yes |
| AMG (Pairwise Aggregation) - Building | Yes | No |
| AMG (Pairwise Aggregation) - Solving | Yes | Yes |
| LU - Building | Yes | No |
| LU - Solving | Yes | No |
| QR - Building | Yes | No |
| QR - Solving | Yes | No |
| Inversion - Building | Yes | No |
| Inversion - Solving | Yes | Yes |
| Solver | Host | HIP |
|---|---|---|
| Jacobi - Building | Yes | Yes |
| Jacobi - Solving | Yes | Yes |
| MultiColoredILU(0,1) - Building | Yes | Yes |
| MultiColoredILU(0,1) - Solving | Yes | Yes |
| MultiColoredILU(>0, >1) - Building | Yes | No |
| MultiColoredILU(>0, >1) - Solving | Yes | Yes |
| MultiElimination(I)LU - Building | Yes | No |
| MultiElimination(I)LU - Solving | Yes | Yes |
| ILU(0) - Building | Yes | Yes |
| ILU(0) - Solving | Yes | Yes |
| ILU(>0) - Building | Yes | No |
| ILU(>0) - Solving | Yes | No |
| ILUT - Building | Yes | No |
| ILUT - Solving | Yes | No |
| IC(0) - Building | Yes | No |
| IC(0) - Solving | Yes | No |
| FSAI - Building | Yes | No |
| FSAI - Solving | Yes | Yes |
| SPAI - Building | Yes | No |
| SPAI - Solving | Yes | Yes |
| Chebyshev - Building | Yes | No |
| Chebyshev - Solving | Yes | Yes |
| MultiColored(S)GS - Building | Yes | No |
| MultiColored(S)GS - Solving | Yes | Yes |
| (S)GS - Building | Yes | No |
| (S)GS - Solving | Yes | No |
| (R)AS - Building | Yes | Yes |
| (R)AS - Solving | Yes | Yes |
| BlockPreconditioner - Building | Yes | Yes |
| BlockPreconditioner - Solving | Yes | Yes |
| SaddlePoint - Building | Yes | No |
| SaddlePoint - Solving | Yes | Yes |
All listed routines are available for all rocALUTION objects.
| Routine | Comment |
|---|---|
| MoveToAccelerator | Move the object to the accelerator backend |
| MoveToHost | Move the object to the host backend |
| MoveToAcceleratorAsync | Move the object to the accelerator backend asynchronously |
| MoveToHostAsync | Move the object to the host backend asynchronously |
| Sync | Sync |
| CloneBackend | Clone the backend descriptor from another object |
| Info | Print object information |
| Clear | Clear the object |
All listed routines are available for all rocALUTION operators.
| Routine | Comment |
|---|---|
| GetM | Obtain the number of rows in the operator |
| GetN | Obtain the number of columns in the operator |
| GetNnz | Obtain the number of non-zeros in the operator |
| GetLocalM | Obtain the number of rows in the local operator |
| GetLocalN | Obtain the number of columns in the local operator |
| GetLocalNnz | Obtain the number of non-zeros in the local operator |
| GetGhostM | Obtain the number of rows in the ghost operator |
| GetGhostN | Obtain the number of columns in the ghost operator |
| GetGhostNnz | Obtain the number of non-zeros in the ghost operator |
| Apply | Apply the operator |
| ApplyAdd | Apply and add the operator |
All matrix operations (except SpMV) require a CSR matrix. Note that if the input matrix is not a CSR matrix, an internal conversion will be performed to CSR format, followed by a back conversion to the previous format after the operation. In this case, a warning message on level 2 will be printed.
| Comment | Host | HIP | |
|---|---|---|---|
| LocalMatrix | |||
| GetFormat | Obtain the matrix format | Yes | Yes |
| Check | Check the matrix for structure and value validity | Yes | No |
| AllocateCSR | Allocate CSR matrix | Yes | Yes |
| AllocateBCSR | Allocate BCSR matrix | Yes | Yes |
| AllocateMCSR | Allocate MCSR matrix | Yes | Yes |
| AllocateCOO | Allocate COO matrix | Yes | Yes |
| AllocateDIA | Allocate DIA matrix | Yes | Yes |
| AllocateELL | Allocate ELL matrix | Yes | Yes |
| AllocateHYB | Allocate HYB matrix | Yes | Yes |
| AllocateDENSE | Allocate DENSE matrix | Yes | Yes |
| SetDataPtrCSR | Initialize matrix with externally allocated CSR data | Yes | Yes |
| SetDataPtrMCSR | Initialize matrix with externally allocated MCSR data | Yes | Yes |
| SetDataPtrCOO | Initialize matrix with externally allocated COO data | Yes | Yes |
| SetDataPtrDIA | Initialize matrix with externally allocated DIA data | Yes | Yes |
| SetDataPtrELL | Initialize matrix with externally allocated ELL data | Yes | Yes |
| SetDataPtrDENSE | Initialize matrix with externally allocated DENSE data | Yes | Yes |
| LeaveDataPtrCSR | Direct Memory access | Yes | Yes |
| LeaveDataPtrMCSR | Direct Memory access | Yes | Yes |
| LeaveDataPtrCOO | Direct Memory access | Yes | Yes |
| LeaveDataPtrDIA | Direct Memory access | Yes | Yes |
| LeaveDataPtrELL | Direct Memory access | Yes | Yes |
| LeaveDataPtrDENSE | Direct Memory access | Yes | Yes |
| Zeros | Set all matrix entries to zero | Yes | Yes |
| Scale | Scale all matrix non-zeros | Yes | Yes |
| ScaleDiagonal | Scale matrix diagonal | Yes | Yes |
| ScaleOffDiagonal | Scale matrix off-diagonal entries | Yes | Yes |
| AddScalar | Add scalar to all matrix non-zeros | Yes | Yes |
| AddScalarDiagonal | Add scalar to matrix diagonal | Yes | Yes |
| AddScalarOffDiagonal | Add scalar to matrix off-diagonal entries | Yes | Yes |
| ExtractSubMatrix | Extract sub-matrix | Yes | Yes |
| ExtractSubMatrices | Extract array of non-overlapping sub-matrices | Yes | Yes |
| ExtractDiagonal | Extract matrix diagonal | Yes | Yes |
| ExtractInverseDiagonal | Extract inverse matrix diagonal | Yes | Yes |
| ExtractL | Extract lower triangular matrix | Yes | Yes |
| ExtractU | Extract upper triangular matrix | Yes | Yes |
| Permute | (Forward) permute the matrix | Yes | Yes |
| PermuteBackward | (Backward) permute the matrix | Yes | Yes |
| CMK | Create CMK permutation vector | Yes | No |
| RCMK | Create reverse CMK permutation vector | Yes | No |
| ConnectivityOrder | Create connectivity (increasing nnz per row) permutation vector | Yes | No |
| MultiColoring | Create multi-coloring decomposition of the matrix | Yes | No |
| MaximalIndependentSet | Create maximal independent set decomposition of the matrix | Yes | No |
| ZeroBlockPermutation | Create permutation where zero diagonal entries are mapped to the last block | Yes | No |
| ILU0Factorize | Create ILU(0) factorization | Yes | Yes |
| LUFactorize | Create LU factorization | Yes | No |
| ILUTFactorize | Create ILU(t,m) factorization | Yes | No |
| ILUpFactorize | Create ILU(p) factorization | Yes | No |
| ICFactorize | Create IC factorization | Yes | Yes |
| QRDecompose | Create QR decomposition | Yes | No |
| ReadFileMTX | Read matrix from matrix market file | Yes | No |
| WriteFileMTX | Write matrix to matrix market file | Yes | No |
| ReadFileCSR | Read matrix from binary file | Yes | No |
| WriteFileCSR | Write matrix to binary file | Yes | No |
| CopyFrom | Copy matrix (values and structure) from another LocalMatrix | Yes | Yes |
| CopyFromAsync | Copy matrix asynchronously | Yes | Yes |
| CloneFrom | Clone an entire matrix (values, structure and backend) from another LocalMatrix | Yes | Yes |
| UpdateValuesCSR | Update CSR matrix values (structure remains identical) | Yes | Yes |
| CopyFromCSR | Copy (import) CSR matrix | Yes | Yes |
| CopyToCSR | Copy (export) CSR matrix | Yes | Yes |
| CopyFromCOO | Copy (import) COO matrix | Yes | Yes |
| CopyToCOO | Copy (export) COO matrix | Yes | Yes |
| CopyFromHostCSR | Allocate and copy (import) a CSR matrix from host | Yes | No |
| ConvertToCSR | Convert a matrix to CSR format | Yes | Yes |
| ConvertToMCSR | Convert a matrix to MCSR format | Yes | No |
| ConvertToBCSR | Convert a matrix to BCSR format | Yes | Yes |
| ConvertToCOO | Convert a matrix to COO format | Yes | Yes |
| ConvertToELL | Convert a matrix to ELL format | Yes | Yes |
| ConvertToDIA | Convert a matrix to DIA format | Yes | Yes |
| ConvertToHYB | Convert a matrix to HYB format | Yes | Yes |
| ConvertToDENSE | Convert a matrix to DENSE format | Yes | Yes |
| ConvertTo | Convert a matrix | Yes | |
| SymbolicPower | Perform symbolic power computation (structure only) | Yes | No |
| MatrixAdd | Matrix addition | Yes | Yes |
| MatrixMult | Multiply two matrices | Yes | Yes |
| DiagonalMatrixMult | Multiply matrix with diagonal matrix (stored in LocalVector) | Yes | Yes |
| DiagonalMatrixMultL | Multiply matrix with diagonal matrix (stored in LocalVector) from left | Yes | Yes |
| DiagonalMatrixMultR | Multiply matrix with diagonal matrix (stored in LocalVector) from right | Yes | Yes |
| Gershgorin | Compute the spectrum approximation with Gershgorin circles theorem | Yes | No |
| Compress | Delete all entries where abs(a_ij) <= drop_off
|
Yes | Yes |
| Transpose | Transpose the matrix | Yes | Yes |
| Sort | Sort the matrix indices | Yes | No |
| Key | Compute a unique matrix key | Yes | No |
| ReplaceColumnVector | Replace a column vector of a matrix | Yes | No |
| ReplaceRowVector | Replace a row vector of a matrix | Yes | No |
| ExtractColumnVector | Extract a column vector of a matrix | Yes | No |
| ExtractRowVector | Extract a row vector of a matrix | Yes | No |
| LocalVector | |||
| GetSize | Obtain vector size | Yes | Yes |
| Check | Check vector for valid entries | Yes | No |
| Allocate | Allocate vector | Yes | Yes |
| Sync | Sync | Yes | Yes |
| SetDataPtr | Initialize vector with external data | Yes | Yes |
| LeaveDataPtr | Direct Memory Access | Yes | Yes |
| Zeros | Set vector entries to zero | Yes | Yes |
| Ones | Set vector entries to one | Yes | Yes |
| SetValues | Set vector entries to scalar | Yes | Yes |
| SetRandomUniform | Initialize vector with uniformly distributed random numbers | Yes | No |
| SetRandomNorm | Initialize vector with normally distributed random numbers | Yes | No |
| ReadFileASCII | Read vector for ASCII file | Yes | No |
| WriteFileASCII | Write vector to ASCII file | Yes | No |
| ReadFileBinary | Read vector from binary file | Yes | No |
| WriteFileBinary | Write vector to binary file | Yes | No |
| CopyFrom | Copy vector (values) from another LocalVector | Yes | Yes |
| CopyFromAsync | Copy vector asynchronously | Yes | Yes |
| CopyFromFloat | Copy vector from another LocalVector | Yes | Yes |
| CopyFromDouble | Copy vector from another LocalVector | Yes | Yes |
| CopyFromPermute | Copy vector under specified (forward) permutation | Yes | Yes |
| CopyFromPermuteBackward | Copy vector under specified (backward) permutation | Yes | Yes |
| CloneFrom | Clone vector (values and backend descriptor) from another LocalVector | Yes | Yes |
| CopyFromData | Copy (import) vector from array | Yes | Yes |
| CopyToData | Copy (export) vector to array | Yes | Yes |
| Permute | (Foward) permute vector in-place | Yes | Yes |
| PermuteBackward | (Backward) permute vector in-place | Yes | Yes |
| AddScale | y = a * x + y |
Yes | Yes |
| ScaleAdd | y = x + a * y |
Yes | Yes |
| ScaleAddScale | y = b * x + a * y |
Yes | Yes |
| ScaleAdd2 | z = a * x + b * y + c * z |
Yes | Yes |
| Scale | x = a * x |
Yes | Yes |
| ExclusiveScan | Compute exclusive sum | Yes | No |
| Dot | Compute dot product | Yes | Yes |
| DotNonConj | Compute non-conjugated dot product | Yes | Yes |
| Norm | Compute L2 norm | Yes | Yes |
| Reduce | Obtain the sum of all vector entries | Yes | Yes |
| Asum | Obtain the absolute sum of all vector entries | Yes | Yes |
| Amax | Obtain the absolute maximum entry of the vector | Yes | Yes |
| PointWiseMult | Perform point wise multiplication of two vectors | Yes | Yes |
| Power | Compute vector power | Yes | Yes |
| Comment | |
|---|---|
| SetMPICommunicator | Set MPI communicator |
| GetGlobalSize | Get global size |
| GetLocalSize | Get local size |
| GetNumReceivers | Get number of receivers |
| GetNumSenders | Get number of senders |
| GetNumProcs | Get number of processes |
| SetGlobalSize | Set global size |
| SetLocalSize | Set local size |
| SetBoundaryIndex | Set boundary indices |
| SetReceivers | Set number of receivers, array of receiver process number and start offsets |
| SetSenders | Set number of senders, array of sender process number and start offsets |
| Status | Check status |
| ReadFileASCII | Read ParallelManager from ASCII file |
| WriteFileASCII | Write ParallelManager to ASCII file |