Files
TheRock/rocm-libraries/projects/rocalution/docs/install/rocALUTION-install.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

266 lines
10 KiB
ReStructuredText

.. meta::
:description: Install rocALUTION
:keywords: rocALUTION, ROCm, library, API, install, linux, build, HIP SDK
.. _install-rocalution:
********************************
Install rocALUTION
********************************
.. _linux-installation:
You can install rocALUTION as part of the AMD ROCm software stack on Linux,
or build it from source. Install ROCm before you build or use rocALUTION.
When you install rocALUTION through ROCm, you get a single-node, accelerator-enabled library.
If you need a different configuration, such as multi-node or distributed execution, build rocALUTION from source.
.. _windows-installation:
Prerequisites
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
You need a ROCm enabled platform to use rocALUTION. For more information, including a list of supported GPUs and Linux distributions, see the `ROCm on Linux install guide <https://rocm.docs.amd.com/projects/install-on-linux/en/latest/index.html>`__.
You need the following prerequisites to build rocALUTION from source:
- `git <https://git-scm.com/>`__
- `CMake <https://cmake.org/>`__ (version 3.5 or later)
- `rocBLAS <https://rocm.docs.amd.com/projects/rocBLAS/en/latest/index.html>`__
- `rocSPARSE <https://rocm.docs.amd.com/projects/rocSPARSE/en/latest/index.html>`__
- `rocRAND <https://rocm.docs.amd.com/projects/rocRAND/en/latest/index.html>`__
- `rocPRIM <https://rocm.docs.amd.com/projects/rocPRIM/en/latest/index.html>`__
- `Python <https://www.python.org/>`__
- `PyYAML <https://pypi.org/project/PyYAML/>`__
Install these components before you build rocALUTION. Refer to their respective documentation for install instructions.
For multi-node configurations, you must also install:
- `OpenMP <https://www.openmp.org/>`__
- `MPI <https://www.mcs.anl.gov/research/projects/mpi/>`__
Install pre-built packages
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Use the following commands to install rocALUTION on Ubuntu or Debian:
.. code-block:: shell
sudo apt-get update
sudo apt-get install rocalution
Use the following commands to install rocALUTION on RHEL-based platforms:
.. code-block:: shell
sudo yum update
sudo yum install rocalution
Use the following commands to install rocALUTION on SLES:
.. code-block:: shell
sudo zypper refresh
sudo zypper install rocalution
.. note::
On SLES, use ``zypper`` instead of ``dnf``. The ROCm repositories must be
configured first, and installing the full ``rocm`` package is usually
recommended because rocALUTION depends on other ROCm components.
After you install rocALUTION, you can use it like any other library with a C++ API.
Include the header file in your code to call rocALUTION.
The rocALUTION shared library becomes a link-time and run-time dependency for your application.
Build rocALUTION from source
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
You don't need to build rocALUTION from source if you install the prebuilt packages described above.
To build rocALUTION from source, follow the instructions in this section.
You need the `AMD ROCm Platform <https://github.com/ROCm/ROCm>`__ to compile and run rocALUTION.
When you build rocALUTION from source, select supported versions of the math library dependencies (rocBLAS, rocSPARSE, rocRAND, and rocPRIM).
Given a version of rocALUTION, you must use versions of these dependencies that are the same or later.
Download rocALUTION
^^^^^^^^^^^^^^^^^^^^^
You can find the rocALUTION 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.
To limit your local checkout to only the rocALUTION project, configure ``sparse-checkout`` before you clone.
The partial clone feature (``--filter=blob:none``) reduces how much data you download.
Use the following commands for a sparse checkout:
.. note::
To include the rocBLAS, rocSPARSE, rocRAND, and rocPRIM dependencies, set the projects for the sparse checkout using ``git sparse-checkout set projects/rocalution projects/rocblas projects/rocsparse projects/rocrand projects/rocprim``.
.. code-block:: shell
git clone --no-checkout --filter=blob:none https://github.com/ROCm/rocm-libraries.git
cd rocm-libraries
git sparse-checkout init --cone
git sparse-checkout set projects/rocalution
git checkout develop
cd projects/rocalution
.. note::
For ROCm preview releases (7.11, 7.12, 7.13, 7.14), use the ``develop`` branch.
For production ROCm 7.2.x, use ``release/rocm-rel-7.2``.
To build ROCm 6.4.3 and earlier, use the standalone `rocALUTION repository <https://github.com/ROCm/rocALUTION>`__.
For more information, see the documentation associated with the release you want to build.
To download the ``develop`` branch for all projects in rocm-libraries, use these commands.
This process takes longer, but use it if you work with a large number of libraries.
.. code-block:: shell
git clone -b develop https://github.com/ROCm/rocm-libraries.git
cd rocm-libraries/projects/rocalution
Build rocALUTION using the install script
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Use the ``install.sh`` script to install rocALUTION.
The following tables describe how to build different packages of the library, including the dependencies and clients.
.. note::
Run the ``install.sh`` script from the ``projects/rocalution`` directory.
Use install.sh to build rocALUTION with dependencies
"""""""""""""""""""""""""""""""""""""""""""""""""""""
The following table lists the common ways to use ``install.sh`` to build the rocALUTION dependencies and library.
.. list-table::
:header-rows: 1
:widths: 30 70
* - Command
- Description
* - ``./install.sh -h``
- Print the help information.
* - ``./install.sh -d``
- Build the dependencies and library in your local directory. Use the ``-d`` flag only once. For subsequent invocations of ``install.sh``, you don't need to rebuild the dependencies.
* - ``./install.sh``
- Build the library in your local directory. The script assumes the dependencies are available.
* - ``./install.sh -i``
- Build the library, then build and install the rocALUTION package in ``/opt/rocm``. The script prompts you for sudo access. This installs rocALUTION for all users.
* - ``./install.sh --mpi=<dir> -i``
- Build the library with MPI support enabled, then build and install the rocALUTION package in ``/opt/rocm``.
Use install.sh to build rocALUTION with dependencies and clients
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
The clients contain example code, unit tests, and benchmarks.
The following table lists common ways to use ``install.sh`` to build the library, dependencies, and clients.
.. list-table::
:header-rows: 1
:widths: 30 70
* - Command
- Description
* - ``./install.sh -dc``
- Build the dependencies, library, and client in your local directory. Use the ``-d`` flag only once. For subsequent invocations of ``install.sh``, you don't need to rebuild the dependencies.
* - ``./install.sh -c``
- Build the library and client in your local directory. The script assumes the dependencies are available.
* - ``./install.sh -idc``
- Build the library, dependencies, and client, then build and install the rocALUTION package in ``/opt/rocm``. The script prompts you for sudo access. This installs rocALUTION for all users.
* - ``./install.sh -ic``
- Build the library and client, then build and install the rocALUTION package in ``/opt/rocm``. The script prompts you for sudo access. This installs rocALUTION for all users.
* - ``./install.sh -o``
- Build the client executables using an already installed version of the library.
Build rocALUTION using individual make commands
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
The rocALUTION library contains both host and device code, so specify the HIP compiler during the CMake configuration process.
You can build rocALUTION using the following commands:
.. note::
Run these commands from the ``projects/rocalution`` directory.
.. note::
You need CMake 3.5 or later to build rocALUTION.
.. code-block:: shell
# Create and change to build directory
mkdir -p build/release
cd build/release
# Default install path is /opt/rocm, use -DCMAKE_INSTALL_PREFIX= to adjust it
CXX=/opt/rocm/bin/amdclang++ cmake ../..
# Compile rocALUTION library
make -j$(nproc)
# Install rocALUTION to /opt/rocm
make install
You can also configure the following optional CMake directives:
- ``SUPPORT_HIP``: Enable HIP support. This option is ``ON`` by default.
- ``SUPPORT_OMP``: Enable OpenMP support. This option is ``ON`` by default.
- ``SUPPORT_MPI``: Enable MPI support for multi-node execution. This option is ``OFF`` by default.
- ``BUILD_SHARED_LIBS``: Build rocALUTION as a shared library. This option is ``ON`` by default and is recommended.
- ``BUILD_EXAMPLES``: Build the example programs. This option is ``ON`` by default.
For example, to build rocALUTION with MPI support enabled:
.. code-block:: shell
CXX=/opt/rocm/bin/amdclang++ cmake ../.. -DSUPPORT_MPI=ON -DROCM_PATH=/opt/rocm/
Test your rocALUTION installation
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Verify that you built and installed rocALUTION correctly by running the Conjugate Gradient (CG) solver client on a sample Laplacian matrix.
These steps assume you built rocALUTION with client applications enabled (the default configuration).
1. Open a terminal and ensure the ROCm environment is available
(for example, ``rocminfo`` and ``hipcc`` are in your ``PATH``).
2. Change to the directory containing the built CG client.
For a Release build:
.. code-block:: shell
cd build/release/clients/staging
For a Debug build:
.. code-block:: shell
cd build/debug/clients/staging
3. Download a test matrix in Matrix Market format:
.. code-block:: shell
wget https://math.nist.gov/pub/MatrixMarket2/Harwell-Boeing/laplace/gr_30_30.mtx.gz
4. Extract the matrix file:
.. code-block:: shell
gzip -d gr_30_30.mtx.gz
5. Run the CG solver client:
.. code-block:: shell
./cg gr_30_30.mtx
If your installation succeeded, the solver prints iteration and residual information and converges without errors.