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]
153 sor
5.2 KiB
ReStructuredText
153 sor
5.2 KiB
ReStructuredText
.. meta::
|
||
:description: Omniperf terminology and definitions
|
||
:keywords: Omniperf, ROCm, glossary, definitions, terms, profiler, tool,
|
||
Instinct, accelerator, AMD
|
||
|
||
***********
|
||
Definitions
|
||
***********
|
||
|
||
The following table briefly defines some terminology used in Omniperf interfaces
|
||
and in this documentation.
|
||
|
||
.. include:: ./includes/terms.rst
|
||
|
||
.. include:: ./includes/normalization-units.rst
|
||
|
||
.. _memory-spaces:
|
||
|
||
Memory spaces
|
||
=============
|
||
|
||
AMD Instinct™ MI-series accelerators can access memory through multiple address spaces
|
||
which may map to different physical memory locations on the system. The
|
||
following table provides a view into how various types of memory used
|
||
in HIP map onto these constructs:
|
||
|
||
.. list-table::
|
||
:header-rows: 1
|
||
|
||
* - LLVM Address Space
|
||
- Hardware Memory Space
|
||
- HIP Terminology
|
||
|
||
* - Generic
|
||
- Flat
|
||
- N/A
|
||
|
||
* - Global
|
||
- Global
|
||
- Global
|
||
|
||
* - Local
|
||
- LDS
|
||
- LDS/Shared
|
||
|
||
* - Private
|
||
- Scratch
|
||
- Private
|
||
|
||
* - Constant
|
||
- Same as global
|
||
- Constant
|
||
|
||
The following is a high-level description of the address spaces in the AMDGPU
|
||
backend of LLVM:
|
||
|
||
.. list-table::
|
||
:header-rows: 1
|
||
|
||
* - Address space
|
||
- Description
|
||
|
||
* - Global
|
||
- Memory that can be seen by all threads in a process, and may be backed by
|
||
the local accelerator's HBM, a remote accelerator's HBM, or the CPU's
|
||
DRAM.
|
||
|
||
* - Local
|
||
- Memory that is only visible to a particular workgroup. On AMD's Instinct
|
||
accelerator hardware, this is stored in :doc:`LDS <local-data-share>`
|
||
memory.
|
||
|
||
* - Private
|
||
- Memory that is only visible to a particular [work-item](workitem)
|
||
(thread), stored in the scratch space on AMD's Instinct accelerators.
|
||
|
||
* - Constant
|
||
- Read-only memory that is in the global address space and stored on the
|
||
local accelerator's HBM.
|
||
|
||
* - Generic
|
||
- Used when the compiler cannot statically prove that a pointer is
|
||
addressing memory in a single (non-generic) address space. Mapped to Flat
|
||
on AMD's Instinct accelerators, the pointer could dynamically address
|
||
global, local, private or constant memory.
|
||
|
||
`LLVM's documentation for AMDGPU Backend <https://llvm.org/docs/AMDGPUUsage.html#address-spaces>`_
|
||
has the most up-to-date information. Refer to this source for a more complete
|
||
explanation.
|
||
|
||
.. _memory-type:
|
||
|
||
Memory type
|
||
===========
|
||
|
||
AMD Instinct accelerators contain a number of different memory allocation
|
||
types to enable the HIP language's
|
||
:doc:`memory coherency model <hip:how-to/programming_manual>`.
|
||
These memory types are broadly similar between AMD Instinct accelerator
|
||
generations, but may differ in exact implementation.
|
||
|
||
In addition, these memory types *might* differ between accelerators on the same
|
||
system, even when accessing the same memory allocation.
|
||
|
||
For example, an :ref:`MI2XX <mixxx-note>` accelerator accessing *fine-grained*
|
||
memory allocated local to that device may see the allocation as coherently
|
||
cacheable, while a remote accelerator might see the same allocation as
|
||
*uncached*.
|
||
|
||
These memory types include:
|
||
|
||
.. list-table::
|
||
:header-rows: 1
|
||
|
||
* - Memory type
|
||
- Description
|
||
|
||
* - Uncached Memory (UC)
|
||
- Memory that will not be cached in this accelerator. On
|
||
:ref:`MI2XX <mixxx-note>` accelerators, this corresponds “fine-grained”
|
||
(or, “coherent”) memory allocated on a remote accelerator or the host,
|
||
for example, using ``hipHostMalloc`` or ``hipMallocManaged`` with default
|
||
allocation flags.
|
||
|
||
* - Non-hardware-Coherent Memory (NC)
|
||
- Memory that will be cached by the accelerator, and is only guaranteed to
|
||
be consistent at kernel boundaries / after software-driven
|
||
synchronization events. On :ref:`MI2XX <mixxx-note>` accelerators, this
|
||
type of memory maps to, for example, “coarse-grained” ``hipHostMalloc``’d
|
||
memory -- that is, allocated with the ``hipHostMallocNonCoherent``
|
||
flag -- or ``hipMalloc``’d memory allocated on a remote accelerator.
|
||
|
||
* - Coherently Cachable (CC)
|
||
- Memory for which only reads from the accelerator where the memory was
|
||
allocated will be cached. Writes to CC memory are uncached, and trigger
|
||
invalidations of any line within this accelerator. On
|
||
:ref:`MI2XX <mixxx-note>` accelerators, this type of memory maps to
|
||
“fine-grained” memory allocated on the local accelerator using, for
|
||
example, the ``hipExtMallocWithFlags`` API using the
|
||
``hipDeviceMallocFinegrained`` flag.
|
||
|
||
* - Read/Write Coherent Memory (RW)
|
||
- Memory that will be cached by the accelerator, but may be invalidated by
|
||
writes from remote devices at kernel boundaries / after software-driven
|
||
synchronization events. On :ref:`MI2XX <mixxx-note>` accelerators, this
|
||
corresponds to “coarse-grained” memory allocated locally to the
|
||
accelerator, using for example, the default ``hipMalloc`` allocator.
|
||
|
||
Find a good discussion of coarse and fine-grained memory allocations and what
|
||
type of memory is returned by various combinations of memory allocators, flags
|
||
and arguments in the
|
||
`Crusher quick-start guide <https://docs.olcf.ornl.gov/systems/crusher_quick_start_guide.html#floating-point-fp-atomic-operations-and-coarse-fine-grained-memory-allocations>`_.
|