-
Notifications
You must be signed in to change notification settings - Fork 49
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Signed-off-by: Peter Jun Park <peter.park@amd.com> formatting Signed-off-by: Peter Jun Park <peter.park@amd.com>
- Loading branch information
1 parent
184f18a
commit dee9b62
Showing
45 changed files
with
4,044 additions
and
2,483 deletions.
There are no files selected for viewing
Validating CODEOWNERS rules …
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,7 +1,7 @@ | ||
* @koomie @coleramos425 | ||
|
||
# Documentation files | ||
docs/* @ROCm/rocm-documentation | ||
docs/ @ROCm/rocm-documentation | ||
*.md @ROCm/rocm-documentation | ||
*.rst @ROCm/rocm-documentation | ||
.readthedocs.yaml @ROCm/rocm-documentation |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,109 @@ | ||
.. 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 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 :ref:`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*. | ||
|
Oops, something went wrong.