docs: Add section on building rocprofsys without ROCm (#57)

Adds brief information in install.rst regarding

Provided build scripts
What to do when building rocprofiler-systems w/o ROCm
Recent changes to the configuration settings as a result of rocprofiler-sdk support.
Fixes minor formatting issues in install.rst resulting in Sphinx build warnings

---------

Co-authored-by: David Galiffi <David.Galiffi@amd.com>
Этот коммит содержится в:
Peter Park
2024-12-16 16:29:15 -05:00
коммит произвёл GitHub
родитель 888b9a43a0
Коммит 02ed6e187e
+57 -11
Просмотреть файл
@@ -70,7 +70,7 @@ Other modes of use, such as sampling and causal profiling, are not dependent on
might be more portable.
Installing ROCm Systems Profiler from binary distributions
================================================
==========================================================
Every ROCm Systems Profiler release provides binary installer scripts of the form:
@@ -112,11 +112,11 @@ To install ROCm Systems Profiler using a binary installer script, follow these s
./rocprofiler-systems-1.0.0-ubuntu-18.04-ROCm-405000-OMPT-PAPI.sh --prefix=/opt/rocprofiler-systems --exclude-subdir
Installing ROCm Systems Profiler from source
========================================
Building ROCm Systems Profiler from source
==========================================
ROCm Systems Profiler needs a GCC compiler with full support for C++17 and CMake v3.16 or higher.
The Clang compiler may be used in lieu of the GCC compiler if `Dyninst <https://github.com/dyninst/dyninst>`_
The Clang compiler may be used instead of the GCC compiler if `Dyninst <https://github.com/dyninst/dyninst>`_
is already installed.
Build requirements
@@ -160,7 +160,6 @@ while Dyninst requires TBB), and the CMake option to build the package alongside
.. csv-table::
:header: "Third-Party Library", "Minimum Version", "Required By", "CMake Option"
:widths: 15, 10, 12, 40
"Dyninst", "12.0", "ROCm Systems Profiler", "``ROCPROFSYS_BUILD_DYNINST`` (default: OFF)"
"Libunwind", "", "ROCm Systems Profiler", "``ROCPROFSYS_BUILD_LIBUNWIND`` (default: ON)"
@@ -176,9 +175,8 @@ Optional third-party packages
* `ROCm <https://rocm.docs.amd.com/projects/install-on-linux/en/latest>`_
* HIP
* Roctracer for HIP API and kernel tracing
* ROCM-SMI for GPU monitoring
* Rocprofiler for GPU hardware counters
* ROCm SMI Lib for GPU monitoring
* ROCprofiler SDK for GPU hardware counters and ROCm tracing
* `PAPI <https://icl.utk.edu/papi/>`_
* MPI
@@ -237,8 +235,10 @@ Installing Dyninst via Spack
spack install --reuse dyninst
spack load -r dyninst
Installing ROCm Systems Profiler
-----------------------------------
.. _cmake-options:
Building and installing ROCm Systems Profiler
---------------------------------------------
ROCm Systems Profiler has CMake configuration options for MPI support (``ROCPROFSYS_USE_MPI`` or
``ROCPROFSYS_USE_MPI_HEADERS``),
@@ -275,6 +275,37 @@ in `the Perfetto UI <https://ui.perfetto.dev>`_.
cmake --build rocprof-sys-build --target install
source /opt/rocprofiler-systems/share/rocprofiler-systems/setup-env.sh
.. _build-script:
Using the build script
^^^^^^^^^^^^^^^^^^^^^^
This method automates the CMake process with a script that wraps the CMake
commands and handles build logic, environment variables, and packaging. Run
``./scripts/build-release.sh`` with your desired options to generate packages.
Use ``./scripts/build-release.sh --help`` for more information.
.. code-block:: shell-session
./scripts/build-release.sh --help
Options:
--core [+nopython] [+python] Core (Use '+nopython' to build w/o python, use '+python' to python build with python)
--mpi [+nopython] [+python] MPI (Use '+nopython' to build w/o python, use '+python' to python build with python)
--rocm [+nopython] [+python] ROCm (Use '+nopython' to build w/o python, use '+python' to python build with python)
--rocm-mpi [+nopython] [+python] ROCm + MPI (Use '+nopython' to build w/o python, use '+python' to python build with python)
--mpi-impl [openmpi|mpich] MPI implementation
--lto [on|off] Enable LTO (default: off)
--strip [on|off] Strip libraries (default: off)
--perfetto-tools [on|off] Install perfetto tools (default: on)
--static-libgcc [on|off] Build with static libgcc (default: on)
--static-libstdcxx [on|off] Build with static libstdc++ (default: on)
--hidden-visibility [on|off] Build with hidden visibility (default: on)
--max-threads N Max number of threads supported (default: 2048)
--parallel N Number of parallel build jobs (default: 12)
--generators [STGZ][DEB][RPM][+others] CPack generators (default: stgz deb rpm)
.. _mpi-support-rocprof-sys:
MPI support within ROCm Systems Profiler
@@ -304,6 +335,20 @@ ROCm Systems Profiler on an application built against OpenMPI causes a segmentat
This happens because the value of the ``MPI_COMM_WORLD`` is truncated
during the function wrapping before being passed along to the underlying MPI function.
ROCm Systems Profiler without ROCm
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
To build ROCm Systems Profiler for use on systems without a GPU or the ROCm runtime, disable ROCm
support using the CMake configuration option ``ROCPROFSYS_USE_ROCM=OFF``. See :ref:`cmake-options`
for more information.
Alternatively, use the provided build script with the appropriate options. See :ref:`build-script`.
For example, to build without ROCm support and create a STGZ installer, use the following command:
.. code-block:: shell
./scripts/build-release.sh --core +python --generators STGZ
.. _post-installation-steps:
Post-installation steps
@@ -408,4 +453,5 @@ Configuring PAPI to collect hardware counters
To use PAPI to collect the majority of hardware counters, ensure
the ``/proc/sys/kernel/perf_event_paranoid`` setting has a value less than or equal to ``2``.
For more information, see the :ref:`rocprof-sys_papi_events` section.
For more information, see the :ref:`rocprof-sys_papi_events` section.