Files
rocm-systems/docs/install/core-install.rst
T
Peter Park a0dc485ceb Docs: refactor and integrate into ROCm docs portal (#362)
* pip-compile docs/requirements.txt

Signed-off-by: Peter Jun Park <peter.park@amd.com>

Add Sphinx docs config

Signed-off-by: Peter Jun Park <peter.park@amd.com>

Add Sphinx config

Signed-off-by: Peter Jun Park <peter.park@amd.com>

Update docs build config

Signed-off-by: Peter Jun Park <peter.park@amd.com>

* style(conf.py): Apply black formatting to docs/conf.py

Signed-off-by: Sam Wu <22262939+samjwu@users.noreply.github.com>

* Update docs requirements

Signed-off-by: Peter Jun Park <peter.park@amd.com>

Update to rocm-docs-core 1.3.0

Signed-off-by: Peter Jun Park <peter.park@amd.com>

Update docs requirements

Signed-off-by: Peter Jun Park <peter.park@amd.com>

pip-compile requirements

Signed-off-by: Peter Jun Park <peter.park@amd.com>

bump rocm-docs-core to 1.5.0

bump rocm-docs-core to 1.4.1

Signed-off-by: Peter Jun Park <peter.park@amd.com>

* Add dependabot.yml and update CODEOWNERS

Signed-off-by: Peter Jun Park <peter.park@amd.com>

Update toc and conf

Signed-off-by: Peter Jun Park <peter.park@amd.com>

update dependabot

* Port docs to rocm-docs standard

Signed-off-by: Peter Jun Park <peter.park@amd.com>

Add toc and Diataxis cards

Signed-off-by: Peter Jun Park <peter.park@amd.com>

Add basic file structure

Signed-off-by: Peter Jun Park <peter.park@amd.com>

add glossary

Signed-off-by: Peter Jun Park <peter.park@amd.com>

add includes

Signed-off-by: Peter Jun Park <peter.park@amd.com>

Add license.rst

Signed-off-by: Peter Jun Park <peter.park@amd.com>

add compatible hw

Signed-off-by: Peter Jun Park <peter.park@amd.com>

fix spelling and license

Signed-off-by: Peter Jun Park <peter.park@amd.com>

clean up index

Signed-off-by: Peter Jun Park <peter.park@amd.com>

clean up installation guides

Signed-off-by: Peter Jun Park <peter.park@amd.com>

add basic usage (quickstart)

Signed-off-by: Peter Jun Park <peter.park@amd.com>

add ref to global options

update toc

Signed-off-by: Peter Jun Park <peter.park@amd.com>

modularize modes and global options

Signed-off-by: Peter Jun Park <peter.park@amd.com>

add profile mode

Signed-off-by: Peter Jun Park <peter.park@amd.com>

fixes

Signed-off-by: Peter Jun Park <peter.park@amd.com>

reorg and clean up

Signed-off-by: Peter Jun Park <peter.park@amd.com>

add dynamic omniperf version number in installation guide

Signed-off-by: Peter Jun Park <peter.park@amd.com>

add datatemplate

more reorg

Signed-off-by: Peter Jun Park <peter.park@amd.com>

clean up

Signed-off-by: Peter Jun Park <peter.park@amd.com>

reorg images

move profile mode

reorg

reorg

reorg more

fix formatting

fix headings

ref anchor mi2xx note

add extlinks

add extlinks

Signed-off-by: Peter Jun Park <peter.park@amd.com>

black format

fix formatting, anchors

Signed-off-by: Peter Jun Park <peter.park@amd.com>

reorg

fix words and formatting

Signed-off-by: Peter Jun Park <peter.park@amd.com>

formatting

Signed-off-by: Peter Jun Park <peter.park@amd.com>

same

reorg

format

fix formatting

fix toc

Signed-off-by: Peter Jun Park <peter.park@amd.com>

format

* impr internal linking and fix sphinx warnings

Signed-off-by: Peter Jun Park <peter.park@amd.com>

* add spellcheck/linting from rocm-docs-core

Signed-off-by: Peter Jun Park <peter.park@amd.com>

fix rst directives

satisfy spellcheck

fix more spelling

rm unused files

fix spelling and update wordlist

* bump rocm-docs-core to 1.6.0

Signed-off-by: Peter Jun Park <peter.park@amd.com>

* add fixes from @skyreflectedinmirrors and @lpaoletti

Signed-off-by: Peter Jun Park <peter.park@amd.com>

add references to toc

Signed-off-by: Peter Jun Park <peter.park@amd.com>

add more fixes

Signed-off-by: Peter Jun Park <peter.park@amd.com>

* add package manager install section

Signed-off-by: Peter Jun Park <peter.park@amd.com>

* add fixes

Signed-off-by: Peter Jun Park <peter.park@amd.com>

add metadata and fixes

Signed-off-by: Peter Jun Park <peter.park@amd.com>

add fixes

bump to 1.6.1

more fixes

fix fmt in profiling examples

Signed-off-by: Peter Jun Park <peter.park@amd.com>

add missing mem type table

Signed-off-by: Peter Jun Park <peter.park@amd.com>

fix formatting

fmt

* add custom css

Signed-off-by: Peter Jun Park <peter.park@amd.com>

fix css fs

* make images/figs click-to-expand

Signed-off-by: Peter Jun Park <peter.park@amd.com>

add missed image

update

fix link

* update documentation link in README

Signed-off-by: Peter Jun Park <peter.park@amd.com>

* formatting fixes

Signed-off-by: Peter Jun Park <peter.park@amd.com>

more formatting

* fix heading

Signed-off-by: Peter Jun Park <peter.park@amd.com>

* move archived docs

Signed-off-by: Peter Jun Park <peter.park@amd.com>

* exclude archived docs from docs build

Signed-off-by: Peter Jun Park <peter.park@amd.com>

* update archived docs workflow

Signed-off-by: Peter Jun Park <peter.park@amd.com>

move files

update archived docs workflow

Signed-off-by: Peter Jun Park <peter.park@amd.com>

fix version number

clean up workflow

workflow test

workflow test

another workflow test

* rm docs linting

Signed-off-by: Peter Jun Park <peter.park@amd.com>

* Apply cmake-format suggested changes

Signed-off-by: Sam Wu <22262939+samjwu@users.noreply.github.com>

* Apply cmake-format

Signed-off-by: Sam Wu <22262939+samjwu@users.noreply.github.com>

---------

Signed-off-by: Peter Jun Park <peter.park@amd.com>
Signed-off-by: Sam Wu <22262939+samjwu@users.noreply.github.com>
Co-authored-by: Sam Wu <22262939+samjwu@users.noreply.github.com>
2024-08-09 09:46:42 -04:00

237 lines
6.9 KiB
ReStructuredText

.. meta::
:description: Omniperf installation and deployment
:keywords: Omniperf, ROCm, profiler, tool, Instinct, accelerator, AMD,
install, deploy, Grafana, client, configuration, modulefiles
*********************************
Installing and deploying Omniperf
*********************************
Omniperf consists of two installation components.
* :ref:`Omniperf core installation <core-install>` (client-side)
* Provides the core application profiling capability.
* Allows the collection of performance counters, filtering by hardware
block, dispatch, kernel, and more.
* Provides a CLI-based analysis mode.
* Provides a standalone web interface for importing analysis metrics.
* :doc:`Grafana server for Omniperf <grafana-setup>` (server-side) (*optional*)
* Hosts the MongoDB backend and Grafana instance.
* Is packaged in a Docker container for easy setup.
Determine what you need to install based on how you would like to interact with
Omniperf. See the following decision tree to help determine what installation is
right for you.
.. image:: ../data/install/install-decision-tree.png
:align: center
:alt: Decision tree for installing and deploying Omniperf
:width: 800
.. _core-install:
Core installation
=================
The core Omniperf application requires the following basic software
dependencies. As of ROCm 6.2, the core Omniperf is included with your ROCm
installation.
* Python ``>= 3.8``
* CMake ``>= 3.19``
* ROCm ``>= 5.7.1``
Omniperf depends on a number of Python packages documented in the top-level
``requirements.txt`` file. Install these *before* configuring Omniperf.
.. tip::
If looking to build Omniperf as a developer, consider these additional
requirements.
.. list-table::
* - ``docs/sphinx/requirements.txt``
- Python packages required to build this documentation from source.
* - ``requirements-test.txt``
- Python packages required to run Omniperf's CI suite using PyTest.
The recommended procedure for Omniperf usage is to install into a shared file
system so that multiple users can access the final installation. The
following steps illustrate how to install the necessary Python dependencies
using `pip <https://packaging.python.org/en/latest/>`_ and Omniperf into a
shared location controlled by the ``INSTALL_DIR`` environment variable.
.. _core-install-cmake-vars:
Configuration variables
-----------------------
The following installation example leverages several
`CMake <https://cmake.org/cmake/help/latest>`_ project variables defined as
follows.
.. list-table::
:header-rows: 1
* - CMake variable
- Description
* - ``CMAKE_INSTALL_PREFIX``
- Controls the install path for Omniperf files.
* - ``PYTHON_DEPS``
- Specifies an optional path to resolve Python package dependencies.
* - ``MOD_INSTALL_PATH``
- Specifies an optional path for separate Omniperf modulefile installation.
.. _core-install-steps:
Install from source
-------------------
#. A typical install begins by downloading the latest release tarball available
from `<https://github.com/ROCm/omniperf/releases>`__. From there, untar and
navigate into the top-level directory.
..
{{ config.version }} substitutes the Omniperf version in ../conf.py
.. datatemplate:nodata::
.. code-block:: shell
tar xfz omniperf-v{{ config.version }}.tar.gz
cd omniperf-v{{ config.version }}
#. Next, install Python dependencies and complete the Omniperf configuration and
install process.
.. datatemplate:nodata::
.. code-block:: shell
# define top-level install path
export INSTALL_DIR=<your-top-level-desired-install-path>
# install python deps
python3 -m pip install -t ${INSTALL_DIR}/python-libs -r requirements.txt
# configure Omniperf for shared install
mkdir build
cd build
cmake -DCMAKE_INSTALL_PREFIX=${INSTALL_DIR}/{{ config.version }} \
-DPYTHON_DEPS=${INSTALL_DIR}/python-libs \
-DMOD_INSTALL_PATH=${INSTALL_DIR}/modulefiles ..
# install
make install
.. tip::
You might need to ``sudo`` the final installation step if you don't have
write access for the chosen installation path.
#. Upon successful installation, your top-level installation directory should
look like this.
.. datatemplate:nodata::
.. code-block:: shell
$ ls $INSTALL_DIR
modulefiles {{ config.version }} python-libs
.. _core-install-modulefiles:
Execution using modulefiles
^^^^^^^^^^^^^^^^^^^^^^^^^^^
The installation process includes the creation of an environment modulefile for
use with `Lmod <https://lmod.readthedocs.io>`_. On systems that support Lmod,
you can register the Omniperf modulefile directory and setup your environment
for execution of Omniperf as follows.
.. datatemplate:nodata::
.. code-block:: shell
$ module use $INSTALL_DIR/modulefiles
$ module load omniperf
$ which omniperf
/opt/apps/omniperf/{{ config.version }}/bin/omniperf
$ omniperf --version
ROC Profiler: /opt/rocm-5.1.0/bin/rocprof
omniperf (v{{ config.version }})
.. tip::
If you're relying on an Lmod Python module locally, you may wish to customize
the resulting Omniperf modulefile post-installation to include extra
module dependencies.
Execution without modulefiles
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
To use Omniperf without the companion modulefile, update your ``PATH``
settings to enable access to the command line binary. If you installed Python
dependencies in a shared location, also update your ``PYTHONPATH``
configuration.
.. datatemplate:nodata::
.. code-block:: shell
export PATH=$INSTALL_DIR/{{ config.version }}/bin:$PATH
export PYTHONPATH=$INSTALL_DIR/python-libs
.. _core-install-package:
Install via package manager
---------------------------
Once ROCm (minimum version 6.2.0) is installed, you can install Omniperf using
your operating system's native package manager using the following commands.
See :doc:`rocm-install-on-linux:index` for guidance on installing the ROCm
software stack.
.. tab-set::
.. tab-item:: Ubuntu
.. code-block:: shell
$ sudo apt install omniperf
$ pip install -r /opt/rocm/libexec/omniperf/requirements.txt
.. tab-item:: Red Hat Enterprise Linux
.. code-block:: shell
$ sudo dnf install omniperf
$ pip install -r /opt/rocm/libexec/omniperf/requirements.txt
.. tab-item:: SUSE Linux Enterprise Server
.. code-block:: shell
$ sudo zypper install omniperf
$ pip install -r /opt/rocm/libexec/omniperf/requirements.txt
.. _core-install-rocprof-var:
ROCProfiler
-----------
Omniperf relies on :doc:`ROCProfiler <rocprofiler:index>`'s ``rocprof`` binary
during the profiling process. Normally, the path to this binary is detected
automatically, but you can override the path by the setting the optional
``ROCPROF`` environment variable.