文件
rocm-systems/projects/rocprofiler-compute/docs/how-to/use.rst
T
Peter Park 5d22d5ac8e 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>

[ROCm/rocprofiler-compute commit: a0dc485ceb]
2024-08-09 09:46:42 -04:00

252 行
7.2 KiB
ReStructuredText

.. meta::
:description: Omniperf basic usage
:keywords: Omniperf, ROCm, profiler, tool, Instinct, accelerator, AMD,
basics, usage, operations
***********
Basic usage
***********
The following section outlines basic Omniperf workflows, modes, options, and
operations.
Command line profiler
=====================
Launch and profile the target application using the command line profiler.
The command line profiler launches the target application, calls the
ROCProfiler API via the ``rocprof`` binary, and collects profile results for
the specified kernels, dispatches, and hardware components. If not
specified, Omniperf defaults to collecting all available counters for all
kernels and dispatches launched by the your executable.
To collect the default set of data for all kernels in the target
application, launch, for example:
.. code-block:: shell
$ omniperf profile -n vcopy_data -- ./vcopy -n 1048576 -b 256
This runs the app, launches each kernel, and generates profiling results. By
default, results are written to a subdirectory with your accelerator's name;
for example, ``./workloads/vcopy_data/MI200/``, where name is configurable
via the ``-n`` argument.
.. note::
To collect all requested profile information, Omniperf might replay kernels
multiple times.
.. _basic-filter-data-collection:
Customize data collection
-------------------------
Options are available to specify for which kernels and metrics data should be
collected. Note that you can apply filtering in either the profiling or
analysis stage. Filtering at profiling collection often speeds up your
aggregate profiling run time.
Common filters to customize data collection include:
``-k``, ``--kernel``
Enables filtering kernels by name.
``-d``, ``--dispatch``
Enables filtering based on dispatch ID.
``-b``, ``--block``
Enables collection metrics for only the specified (one or more) hardware
component blocks.
See :ref:`Filtering <filtering>` for an in-depth walkthrough.
To view available metrics by hardware block, use the ``--list-metrics``
argument:
.. code-block:: shell
$ omniperf analyze --list-metrics <sys_arch>
.. _basic-analyze-cli:
Analyze in the command line
---------------------------
After generating a local output folder (for example,
``./workloads/vcopy_data/MI200``), use the command line tool to quickly
interface with profiling results. View different metrics derived from your
profiled results and get immediate access all metrics organized by hardware
blocks.
If you don't apply kernel, dispatch, or hardware block filters at this stage,
analysis is reflective of the entirety of the profiling data.
To interact with profiling results from a different session, provide the
workload path.
``-p``, ``--path``
Enables you to analyze existing profiling data in the Omniperf CLI.
See :doc:`analyze/cli` for more detailed information.
.. _basic-analyze-grafana:
Analyze in the Grafana GUI
--------------------------
To conduct a more in-depth analysis of profiling results, it's suggested to use
a Grafana GUI with Omniperf. To interact with profiling results, import your
data to the MongoDB instance included in the Omniperf Dockerfile. See
:doc:`/install/grafana-setup`.
To interact with Grafana data, stored in the Omniperf database, enter
``database`` :ref:`mode <modes-database>`; for example:
.. code-block:: shell
$ omniperf database --import [CONNECTION OPTIONS]
See :doc:`/how-to/analyze/grafana-gui` for more detailed information.
.. _modes:
Modes
=====
Modes change the fundamental behavior of the Omniperf command line tool.
Depending on which mode you choose, different command line options become
available.
.. _modes-profile:
Profile mode
------------
``profile``
Launches the target application on the local system using
:doc:`ROCProfiler <rocprofiler:index>`. Depending on the profiling options
chosen, selected kernels, dispatches, and or hardware components used by the
application are profiled. It stores results locally in an output folder:
``./workloads/\<name>``.
.. code-block:: shell
$ omniperf profile --help
See :doc:`profile/mode` to learn about this mode in depth and to get started
profiling with Omniperf.
.. _modes-analyze:
Analyze mode
------------
``analyze``
Loads profiling data from the ``--path`` (``-p``) directory into the Omniperf
CLI analyzer where you have immediate access to profiling results and
generated metrics. It generates metrics from the entirety of your profiled
application or a subset identified through the Omniperf CLI analysis filters.
To generate a lightweight GUI interface, you can add the ``--gui`` flag to your
analysis command.
This mode is a middle ground to the highly detailed Omniperf Grafana GUI and
is great if you want immediate access to a hardware component you’re already
familiar with.
.. code-block:: shell
$ omniperf analyze --help
See :doc:`analyze/mode` to learn about this mode in depth and to get started
with analysis using Omniperf.
.. _modes-database:
Database mode
-------------
``database``
The Grafana analyzer GUI is built on a MongoDB database. ``--import``
profiling results to the DB to interact with the workload in Grafana or
``--remove`` the workload from the DB.
Connection options need to be specified. See :doc:`/how-to/analyze/grafana-gui` for
more details.
.. code-block:: shell
$ omniperf database --help
See :doc:`/install/grafana-setup` to learn about setting up a Grafana server and
database instance to make your profiling data more digestible and shareable.
.. _global-options:
Global options
==============
The Omniperf command line tool has a set of *global* utility options that are
available across all modes.
``-v``, ``--version``
Prints the Omniperf version and exits.
``-V``, ``--verbose``
Increases output verbosity. Use multiple times for higher levels of
verbosity.
``-q``, ``--quiet``
Reduces output verbosity and runs quietly.
``-s``, ``--specs``
Prints system specs and exits.
.. note::
Omniperf also recognizes the project variable, ``OMNIPERF_COLOR`` should you
choose to disable colorful output. To disable default colorful behavior, set
this variable to ``0``.
.. _basic-operations:
Basic operations
================
The following table lists Omniperf's basic operations, their
:ref:`modes <modes>`, and required arguments.
.. list-table::
:header-rows: 1
* - Operation description
- Mode
- Required arguments
* - :doc:`Profile a workload </how-to/profile/mode>`
- ``profile``
- ``--name``, ``-- <profile_cmd>``
* - :ref:`Standalone roofline analysis <standalone-roofline>`
- ``profile``
- ``--name``, ``--roof-only``, ``-- <profile_cmd>``
* - :ref:`Import a workload to database <grafana-gui-import>`
- ``database``
- ``--import``, ``--host``, ``--username``, ``--workload``, ``--team``
* - :ref:`Remove a workload from database <grafana-gui-remove>`
- ``database``
- ``--remove``, ``--host``, ``--username``, ``--workload``, ``--team``
* - :doc:`Launch standalone GUI from CLI </how-to/analyze/standalone-gui>`
- ``analyze``
- ``--path``, ``--gui``
* - :doc:`Interact with profiling results from CLI </how-to/analyze/cli>`
- ``analyze``
- ``--path``