Files
TheRock/rocm-libraries/projects/rocalution/docs/what-is-rocalution.rst
T
derek.holloway 7502bf64a4
CodeQL / Analyze (actions) (push) Canceled after 0s
CodeQL / Analyze (python) (push) Canceled after 0s
pre-commit / pre-commit (push) Canceled after 0s
Multi-Arch CI / setup (push) Canceled after 0s
Publish build_manylinux_x86_64 images / publish_build_manylinux_x86_64 (push) Canceled after 0s
Setup (Multi-Arch) / setup (push) Canceled after 0s
Multi-Arch CI / Linux::${{ fromJSON(needs.setup.outputs.linux_build_config || '{}').build_variant_label || 'skip' }} (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Publish no_rocm_image_ubi10 image / publish_no_rocm_image_ubi10 (push) Canceled after 0s
Multi-Arch CI / Windows::${{ fromJSON(needs.setup.outputs.windows_build_config || '{}').build_variant_label || 'skip' }} (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Multi-Arch CI / Manifest Diff (push) Canceled after 0s
TheRock Manifest Diff Report / Generate Manifest Diff Report (push) Canceled after 0s
Multi-Arch CI / CI Summary (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04 (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04_ocl_rt images / publish_no_rocm_image_ubuntu24_04_ocl_rt (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04_rocgdb (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04_rocgdb images / publish_no_rocm_image_ubuntu24_04_rocgdb (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04_ocl_rt (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Unit Tests / Unit Tests :: ubuntu-24.04 (push) Canceled after 0s
Unit Tests / Unit Tests :: windows-2022 (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04_media (push) Canceled after 0s
Unit Tests / Unit Tests Summary (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04_openmpi (push) Canceled after 0s
Flatten subprojects into a single base monorepo
2026-09-02 16:34:47 -07:00

125 lines
4.2 KiB
ReStructuredText
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
.. meta::
:description: A sparse linear algebra library with focus on exploring fine-grained parallelism on top of the AMD ROCm runtime and toolchains
:keywords: rocALUTION, ROCm, library, API, tool
.. _what-is-rocalution:
What is rocALUTION?
======================
rocALUTION is a sparse linear algebra library designed for fine-grained parallelism on modern hardware.
Use rocALUTION to efficiently solve large sparse linear systems on CPUs and GPUs using the AMD ROCm runtime and toolchains.
The library targets multi-core CPUs, many-core processors, and AMD GPUs.
Its primary goal is to provide a portable, high-performance framework for iterative sparse solvers while hiding backend-specific complexity.
rocALUTION acts as middleware between parallel backends and application-specific packages.
Implemented in C++ and HIP, rocALUTION offers a flexible and extensible design that integrates easily with other scientific computing libraries.
Overview
---------
You can run rocALUTION on a variety of hardware platforms using multiple execution backends:
- **Host** – Fallback backend designed for CPU execution
- **OpenMP** – Backend optimized for multi-core CPUs
- **GPU (HIP)** – Accelerator backend for HIP-capable AMD GPUs
- **MPI** – Backend for multi-node and multi-GPU configurations
The library is designed to be easy to learn and use:
- You interact with a consistent and intuitive API across all backends
- Example programs are provided to help you get started quickly
- You do not need prior experience with HIP, OpenMP, or MPI programming
rocALUTION has minimal hardware requirements:
- You can run the Host and OpenMP backends on standard CPU systems
- To use GPU acceleration, you need a HIP-capable AMD GPU and the ROCm software stack
Capabilities
------------
rocALUTION provides a wide range of iterative solvers for sparse linear systems:
- **Fixed-point iteration methods**
- Jacobi
- Gauss-Seidel
- Symmetric Gauss-Seidel
- SOR
- SSOR
- **Krylov subspace methods**
- CR
- CG
- BiCGStab
- BiCGStab(l)
- GMRES
- Flexible GMRES
- IDR
- QMRCGSTAB
- Flexible CG
- **Additional solvers**
- Mixed-precision defect-correction schemes
- Chebyshev iteration
- Geometric and algebraic multigrid methods
You can improve solver performance using a broad set of preconditioners:
- **Matrix splitting methods**
- Jacobi
- (Multi-colored) Gauss-Seidel
- Symmetric Gauss-Seidel
- SOR
- SSOR
- **Factorization-based methods**
- ILU(0)
- ILU(p) based on level-of-fill
- ILU(p,q) using the power(q)-pattern method
- Multi-Elimination ILU (nested and recursive)
- ILUT based on thresholding
- IC(0)
- **Approximate inverse methods**
- Chebyshev matrix-valued polynomials
- SPAI
- FSAI
- TNS
- **Additional preconditioners**
- Diagonal-based preconditioners for saddle-point problems
- Block-type sub-preconditioners and solvers
- Additive Schwarz and Restricted Additive Schwarz methods
- Variable-type preconditioners
Design and portability
------------------------------------------------------------------------
rocALUTION is built on a generic and robust design that allows you to extend the library with new solvers, preconditioners, and hardware backends.
You can use any solver as a preconditioner within another solver, enabling complex and highly customized solution strategies.
All solvers and preconditioners are implemented using a single source code base.
You can compile and run your application across all supported backends without changing your code.
Numerical results are portable across platforms, with minor variations due to hardware-specific rounding behavior.
The primary difference you will observe between backends is performance.
rocALUTION supports multiple sparse and dense matrix storage formats:
- Compressed Sparse Row (CSR)
- Modified Compressed Sparse Row (MCSR)
- Dense (DENSE)
- Coordinate (COO)
- ELL
- Diagonal (DIA)
- Hybrid ELL and COO (HYB)
rocALUTION is open source software released under the `MIT License <./license.html>`__.
You can find the source code in the `https://github.com/ROCm/rocm-libraries/tree/develop/projects/rocalution <https://github.com/ROCm/rocm-libraries/tree/develop/projects/rocalution>`__ repository.