Files
TheRock/rocm-systems/projects/hipfile/docs/install/build-from-source.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

123 lines
4.4 KiB
ReStructuredText

.. meta::
:description: Step-by-step instructions for building hipFile from source using CMake on AMD ROCm platforms.
:keywords: hipFile, build from source, CMake, ROCm, install, direct-to-GPU I/O, AMD
**************************************
Build and install hipFile from source
**************************************
To build hipFile as part of the ROCm Core SDK, see `TheRock build instructions <https://github.com/ROCm/TheRock/blob/main/docs/development/README.md>`__.
TheRock is the supported path for full-stack ROCm source builds.
Alternatively, you can build hipFile standalone from ``rocm-systems`` using the
steps below. For ROCm meta packages instead of compiling, see :doc:`./install`.
Prerequisites
=============
hipFile targets Linux with ROCm HIP. For supported GPUs and stack components,
see :ref:`ROCm Core SDK components <rocm:release-components>`.
- CMake 3.21 or later
- A C++ compiler that matches the ``AIS_CXX_STANDARD`` value you select. The
default is C++20.
- HIP and HSA packages from ROCm so CMake can locate ``hip`` and ``hsa-runtime64``
- ``libmount`` from ``util-linux`` for mount metadata parsing
- A Linux kernel that exposes the peer-to-peer DMA (P2PDMA) paths hipFile expects for peer
transfers on AMD builds
Build and install
=================
1. hipFile lives under ``projects/hipfile`` in the `ROCm rocm-systems repository <https://github.com/ROCm/rocm-systems>`__. Clone with a sparse checkout so you only fetch that subtree.
.. code:: shell
git clone --no-checkout --filter=blob:none https://github.com/ROCm/rocm-systems.git
cd rocm-systems
git sparse-checkout init --cone
git sparse-checkout set projects/hipfile
2. Check out the branch you intend to build, then enter the hipFile tree.
.. code:: shell
git checkout develop
cd projects/hipfile
3. Configure, compile, and install with CMake. The defaults wire ``CMAKE_INSTALL_PREFIX``
to ``ROCM_PATH`` so libraries and headers land next to your ROCm install.
.. code:: shell
cmake -B build -DCMAKE_HIP_PLATFORM=amd
cmake --build build -j
sudo cmake --install build
After installation, ``libhipfile.so`` and ``hipfile.h`` appear under the ``lib``
and ``include`` directories beneath ``CMAKE_INSTALL_PREFIX``, typically
``/opt/rocm`` when you don't override ``ROCM_PATH``.
4. Optional CTest pass from the build tree:
.. code:: shell
cd build
ctest --output-on-failure
You can also run ``cmake --build . --target test`` from ``build`` if you
prefer Make-driven test targets.
CMake options
=============
The table lists the most common CMake cache entries for hipFile. Other flags
exist for sanitizers, clang-tidy, and documentation generation. Inspect
``CMakeCache.txt`` after the first configure pass for the full set.
.. list-table::
:header-rows: 1
:widths: 30 18 52
* - Option
- Default
- Description
* - ``CMAKE_HIP_PLATFORM``
- ``amd``
- HIP platform selector. Use ``amd``.
* - ``ROCM_PATH``
- ``/opt/rocm`` or derived from ``ROCM_VERSION``
- ROCm root used for ``CMAKE_PREFIX_PATH`` and the default install prefix.
* - ``ROCM_VERSION``
- Read from ``${ROCM_PATH}/.info/version`` when unset
- ROCm version string for path logic and compatibility checks.
* - ``CMAKE_INSTALL_PREFIX``
- ``${ROCM_PATH}`` when left at the CMake default
- Install root for libraries, headers, and tools.
* - ``BUILD_SHARED_LIBS``
- ``ON``
- Builds shared libraries when ``ON`` and static libraries when ``OFF``.
* - ``AIS_CXX_STANDARD``
- ``20``
- C++ dialect. Allowed values are ``20``, ``23``, and ``26``.
* - ``AIS_INSTALL_EXAMPLES``
- ``ON``
- Installs sample binaries such as ``aiscp`` when enabled.
* - ``AIS_INSTALL_TOOLS``
- ``ON``
- Installs host tools such as ``ais-stats`` when enabled on AMD builds.
* - ``AIS_BUILD_DOCS``
- ``OFF``
- Enables the ``doc`` target when ``ON``. Requires Doxygen in your environment.
* - ``AIS_USE_CODE_COVERAGE``
- ``OFF``
- Adds LLVM coverage instrumentation for Clang builds.
* - ``BUILD_TESTING``
- ``ON`` unless you pass ``-DBUILD_TESTING=OFF``
- Controls whether the hipFile test binaries are built.
* - ``CMAKE_BUILD_TYPE``
- ``RelWithDebInfo``
- CMake build flavor. Other common values are ``Debug``, ``Release``,
``MinSizeRel``, and ``None``.