Files
rocm-systems/projects/rocprofiler-compute/src/docs/installation.md
T

171 строка
5.2 KiB
Markdown
Исходник Обычный вид История

2022-11-04 14:49:36 -05:00
# Omniperf Deployment
```eval_rst
.. toctree::
:glob:
:maxdepth: 4
```
Omniperf is broken into two installation components:
1. **Omniperf Client-side (_Required_)**
- Provides core application profiling capability
- Allows collection of performance counters, filtering by IP block, dispatch, kernel, etc
- CLI based analysis mode
- Stand alone web interface for importing analysis metrics
2. **Omniperf Server-side (_Optional_)**
- Mongo DB backend + Grafana instance
---
## Client-side Installation
Omniperf requires the following basic software dependencies prior to usage:
* Python (>=3.7)
* CMake (>= 3.19)
* ROCm (>= 5.1)
In addition, Omniperf leverages a number of Python packages that are
documented in the top-level `requirements.txt` file. These must be
installed prior to Omniperf configuration.
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.
```{admonition} Configuration variables
The following installation example leverages several
[CMake](https://cmake.org/cmake/help/latest/) project variables
defined as follows:
| Variable | Description |
| -------------------- | -------------------------------------------------------------------- |
| CMAKE_INSTALL_PREFIX | controls install path for Omniperf files |
| PYTHON_DEPS | provides optional path to resolve Python package dependencies |
| MOD_INSTALL_PATH | provides optional path for separate Omniperf modulefile installation |
```
A typical install will begin by downloading the latest release tarball
available from the
[Releases](https://github.com/AMDResearch/omniperf/releases) section
of the Omniperf development site. From there, untar and descend into
the top-level directory as follows:
```shell
$ tar xfz omniperf-v{__VERSION__}.tar.gz
$ cd omniperf-v{__VERSION__}
2022-11-04 14:49:36 -05:00
```
Next, install Python dependencies and complete the Omniperf configuration/install process as follows:
2022-11-04 14:49:36 -05:00
```shell
# define top-level install path
$ export INSTALL_DIR=<your-top-level-desired-install-path>
2022-11-04 14:49:36 -05:00
# 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}/{__VERSION__} \
-DPYTHON_DEPS=${INSTALL_DIR}/python-libs \
-DMOD_INSTALL_PATH=${INSTALL_DIR}/modulefiles ..
# install
$ make install
```
```{tip}
You may require `sudo` during the final install step if you
do not have write access to the chose install path.
```
2022-11-04 14:49:36 -05:00
After completing these steps, a successful top-level installation directory looks as follows:
```shell
$ ls $INSTALL_DIR
modulefiles {__VERSION__} python-libs
```
### Execution using modulefiles
2022-11-04 14:49:36 -05:00
The installation process includes creation of an environment
modulefile for use with [Lmod](https://lmod.readthedocs.io). On
systems that support Lmod, a user can register the Omniperf modulefile
directory and setup their environment for execution of Omniperf as
follows:
```shell
$ module use $INSTALL_DIR/modulefiles
$ module load omniperf
$ which omniperf
/opt/apps/omniperf/{__VERSION__}/bin/omniperf
$ omniperf --version
ROC Profiler: /opt/rocm-5.1.0/bin/rocprof
omniperf (v{__VERSION__})
```
```{tip} Sites relying on an Lmod Python module locally may wish to
customize the resulting Omniperf modulefile post-installation to
include additional 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, update your `PYTHONPATH` config as well:
```shell
export PATH=$INSTALL_DIR/{__VERSION__}/bin:$PATH
export PYTHONPATH=$INSTALL_DIR/python-libs
```
### rocProf
Omniperf uses the rocprof binary during the profiling
process. Normally the path to this binary will be detected
automatically, but it can also be overridden via the use of an
optional `ROCPROF` environment variable.
2022-11-04 14:49:36 -05:00
%%% ### Generate Packaging
%%% ```console
%%% cd build
%%% cpack -G STGZ
%%% cpack -G DEB -D CPACK_PACKAGING_INSTALL_PREFIX=/opt/omniperf
%%% cpack -G RPM -D CPACK_PACKAGING_INSTALL_PREFIX=/opt/omniperf
%%% ```
---
## Omniperf Server Setup
Note: Server-side setup is not required to profile or analyze
performance data from the CLI. It is provided as an additional mechanism to import performance
data for examination within a detailed [Grafana GUI](https://github.com/grafana/grafana).
The recommended process for enabling the server-side of Omniperf is to
use the provided Docker file to build the Grafana and MongoDB
instance.
### Persist Storage
```bash
$ sudo mkdir -p /usr/local/persist && cd /usr/local/persist/
$ sudo mkdir -p grafana-storage mongodb
$ sudo mkdir -p grafana-storage mongodb
```
### Build and Launch
```bash
$ sudo docker-compose build
$ sudo docker-compose up
```