5d22d5ac8e
* 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]
184 строки
6.2 KiB
ReStructuredText
184 строки
6.2 KiB
ReStructuredText
.. meta::
|
|
:description: Omniperf performance model: Local data share (LDS)
|
|
:keywords: Omniperf, ROCm, profiler, tool, Instinct, accelerator, local, data, share, LDS
|
|
|
|
**********************
|
|
Local data share (LDS)
|
|
**********************
|
|
|
|
.. _lds-sol:
|
|
|
|
LDS Speed-of-Light
|
|
==================
|
|
|
|
.. warning::
|
|
|
|
The theoretical maximum throughput for some metrics in this section are
|
|
currently computed with the maximum achievable clock frequency, as reported
|
|
by ``rocminfo``, for an accelerator. This may not be realistic for all
|
|
workloads.
|
|
|
|
The :ref:`LDS <desc-lds>` speed-of-light chart shows a number of key metrics for
|
|
the LDS as a comparison with the peak achievable values of those metrics.
|
|
|
|
.. list-table::
|
|
:header-rows: 1
|
|
|
|
* - Metric
|
|
|
|
- Description
|
|
|
|
- Unit
|
|
|
|
* - Utilization
|
|
|
|
- Indicates what percent of the kernel's duration the :ref:`LDS <desc-lds>`
|
|
was actively executing instructions (including, but not limited to, load,
|
|
store, atomic and HIP's ``__shfl`` operations). Calculated as the ratio
|
|
of the total number of cycles LDS was active over the
|
|
:ref:`total CU cycles <total-cu-cycles>`.
|
|
|
|
- Percent
|
|
|
|
* - Access Rate
|
|
|
|
- Indicates the percentage of SIMDs in the :ref:`VALU <desc-valu>` [#lds-workload]_
|
|
actively issuing LDS instructions, averaged over the lifetime of the
|
|
kernel. Calculated as the ratio of the total number of cycles spent by
|
|
the :ref:`scheduler <desc-scheduler>` issuing :ref:`LDS <desc-lds>`
|
|
instructions over the
|
|
:ref:`total CU cycles <total-cu-cycles>`.
|
|
|
|
- Percent
|
|
|
|
* - Theoretical Bandwidth (% of Peak)
|
|
|
|
- Indicates the maximum amount of bytes that *could* have been loaded from,
|
|
stored to, or atomically updated in the LDS in this kernel, as a percent
|
|
of the peak LDS bandwidth achievable. See the
|
|
:ref:`LDS bandwidth example <lds-bandwidth>` for more detail.
|
|
|
|
- Percent
|
|
|
|
* - Bank Conflict Rate
|
|
|
|
- Indicates the percentage of active LDS cycles that were spent servicing
|
|
bank conflicts. Calculated as the ratio of LDS cycles spent servicing
|
|
bank conflicts over the number of LDS cycles that would have been
|
|
required to move the same amount of data in an uncontended access. [#lds-bank-conflict]_
|
|
|
|
- Percent
|
|
|
|
.. rubric:: Footnotes
|
|
|
|
.. [#lds-workload] Here we assume the typical case where the workload evenly distributes
|
|
LDS operations over all SIMDs in a CU (that is, waves on different SIMDs are
|
|
executing similar code). For highly unbalanced workloads, where e.g., one
|
|
SIMD pair in the CU does not issue LDS instructions at all, this metric is
|
|
better interpreted as the percentage of SIMDs issuing LDS instructions on
|
|
:ref:`SIMD pairs <desc-lds>` that are actively using the LDS, averaged over
|
|
the lifetime of the kernel.
|
|
|
|
.. [#lds-bank-conflict] The maximum value of the bank conflict rate is less than 100%
|
|
(specifically: 96.875%), as the first cycle in the
|
|
:ref:`LDS scheduler <desc-lds>` is never considered contended.
|
|
|
|
.. _lds-stats:
|
|
|
|
Statistics
|
|
==========
|
|
|
|
The LDS statistics panel gives a more detailed view of the hardware:
|
|
|
|
.. list-table::
|
|
:header-rows: 1
|
|
|
|
* - Metric
|
|
|
|
- Description
|
|
|
|
- Unit
|
|
|
|
* - LDS Instructions
|
|
|
|
- The total number of LDS instructions (including, but not limited to,
|
|
read/write/atomics and HIP's ``__shfl`` instructions) executed per
|
|
:ref:`normalization unit <normalization-units>`.
|
|
|
|
- Instructions per :ref:`normalization unit <normalization-units>`
|
|
|
|
* - Theoretical Bandwidth
|
|
|
|
- Indicates the maximum amount of bytes that could have been loaded from,
|
|
stored to, or atomically updated in the LDS per
|
|
:ref:`normalization unit <normalization-units>`. Does *not* take into
|
|
account the execution mask of the wavefront when the instruction was
|
|
executed. See the
|
|
:ref:`LDS bandwidth example <lds-bandwidth>` for more detail.
|
|
|
|
- Bytes per :ref:`normalization unit <normalization-units>`
|
|
|
|
* - LDS Latency
|
|
|
|
- The average number of round-trip cycles (i.e., from issue to data-return
|
|
/ acknowledgment) required for an LDS instruction to complete.
|
|
|
|
- Cycles
|
|
|
|
* - Bank Conflicts/Access
|
|
|
|
- The ratio of the number of cycles spent in the
|
|
:ref:`LDS scheduler <desc-lds>` due to bank conflicts (as determined by
|
|
the conflict resolution hardware) to the base number of cycles that would
|
|
be spent in the LDS scheduler in a completely uncontended case. This is
|
|
the unnormalized form of the Bank Conflict Rate.
|
|
|
|
- Conflicts/Access
|
|
|
|
* - Index Accesses
|
|
|
|
- The total number of cycles spent in the :ref:`LDS scheduler <desc-lds>`
|
|
over all operations per :ref:`normalization unit <normalization-units>`.
|
|
|
|
- Cycles per :ref:`normalization unit <normalization-units>`
|
|
|
|
* - Atomic Return Cycles
|
|
|
|
- The total number of cycles spent on LDS atomics with return per
|
|
:ref:`normalization unit <normalization-units>`.
|
|
|
|
- Cycles per :ref:`normalization unit <normalization-units>`
|
|
|
|
* - Bank Conflicts
|
|
|
|
- The total number of cycles spent in the :ref:`LDS scheduler <desc-lds>`
|
|
due to bank conflicts (as determined by the conflict resolution hardware)
|
|
per :ref:`normalization unit <normalization-units>`.
|
|
|
|
- Cycles per :ref:`normalization unit <normalization-units>`
|
|
|
|
* - Address Conflicts
|
|
|
|
- The total number of cycles spent in the :ref:`LDS scheduler <desc-lds>`
|
|
due to address conflicts (as determined by the conflict resolution
|
|
hardware) per :ref:`normalization unit <normalization-units>`.
|
|
|
|
- Cycles per :ref:`normalization unit <normalization-units>`
|
|
|
|
* - Unaligned Stall
|
|
|
|
- The total number of cycles spent in the :ref:`LDS scheduler <desc-lds>`
|
|
due to stalls from non-dword aligned addresses per
|
|
:ref:`normalization unit <normalization-units>`.
|
|
|
|
- Cycles per :ref:`normalization unit <normalization-units>`
|
|
|
|
* - Memory Violations
|
|
|
|
- The total number of out-of-bounds accesses made to the LDS, per
|
|
:ref:`normalization unit <normalization-units>`. This is unused and
|
|
expected to be zero in most configurations for modern CDNA™ accelerators.
|
|
|
|
- Accesses per :ref:`normalization unit <normalization-units>`
|
|
|