SWDEV-461621 - Merge PR#3473 from Github HIP to Gerrit staging

Change-Id: Ibd2bb6c7beef4e7c3f99644904394bbca8a361b9


[ROCm/hip commit: 1e6088c35f]
Этот коммит содержится в:
Julia Jiang
2024-05-10 15:58:16 -04:00
коммит произвёл Julia Jiang
родитель 669d05de84
Коммит e80329108a
21 изменённых файлов: 19 добавлений и 19 удалений
Двоичный файл не отображается.

До

Ширина:  |  Высота:  |  Размер: 141 KiB

Просмотреть файл

До

Ширина:  |  Высота:  |  Размер: 90 KiB

После

Ширина:  |  Высота:  |  Размер: 90 KiB

До

Ширина:  |  Высота:  |  Размер: 14 KiB

После

Ширина:  |  Высота:  |  Размер: 14 KiB

До

Ширина:  |  Высота:  |  Размер: 50 KiB

После

Ширина:  |  Высота:  |  Размер: 50 KiB

До

Ширина:  |  Высота:  |  Размер: 450 KiB

После

Ширина:  |  Высота:  |  Размер: 450 KiB

До

Ширина:  |  Высота:  |  Размер: 90 KiB

После

Ширина:  |  Высота:  |  Размер: 90 KiB

До

Ширина:  |  Высота:  |  Размер: 14 KiB

После

Ширина:  |  Высота:  |  Размер: 14 KiB

До

Ширина:  |  Высота:  |  Размер: 450 KiB

После

Ширина:  |  Высота:  |  Размер: 450 KiB

До

Ширина:  |  Высота:  |  Размер: 16 KiB

После

Ширина:  |  Высота:  |  Размер: 16 KiB

До

Ширина:  |  Высота:  |  Размер: 36 KiB

После

Ширина:  |  Высота:  |  Размер: 36 KiB

До

Ширина:  |  Высота:  |  Размер: 477 KiB

После

Ширина:  |  Высота:  |  Размер: 477 KiB

До

Ширина:  |  Высота:  |  Размер: 308 KiB

После

Ширина:  |  Высота:  |  Размер: 308 KiB

+5 -5
Просмотреть файл
@@ -46,7 +46,7 @@ The amount of warps that can reside concurrently on a CU, known
as occupancy, is determined by the warp's resource usage of registers and
shared memory.
.. figure:: ../data/hardware_implementation/compute_unit.svg
.. figure:: ../data/understand/hardware_implementation/compute_unit.svg
:alt: Diagram depicting the general structure of a compute unit of an AMD
GPU.
@@ -110,9 +110,9 @@ The general structure of CUs stays mostly as it is in GCN
architectures. The most prominent change is the addition of matrix ALUs, which
can greatly improve the performance of algorithms involving matrix
multiply-accumulate operations for
:doc:`int8, float16, bfloat16 or float32<rocm:about/compatibility/precision-support>`.
:doc:`int8, float16, bfloat16 or float32<rocm:compatibility/precision-support>`.
.. figure:: ../data/hardware_implementation/cdna3_cu.png
.. figure:: ../data/understand/hardware_implementation/cdna3_cu.png
:alt: Block diagram showing the structure of a CDNA3 compute unit. It includes
Shader Cores, the Matrix Core Unit, a Local Data Share used for sharing
memory between threads in a block, an L1 Cache and a Scheduler. The
@@ -136,7 +136,7 @@ It also adds an extra layer of cache to the WGP, shared by the CUs
within it. This cache is referred to as L1 cache, promoting the per-CU cache to
an L0 cache.
.. figure:: ../data/hardware_implementation/rdna3_cu.png
.. figure:: ../data/understand/hardware_implementation/rdna3_cu.png
:alt: Block diagram showing the structure of an RDNA3 Compute Unit. It
consists of four SIMD units, each including a vector and scalar register
file, with the corresponding scalar and vector ALUs. All four SIMDs
@@ -152,7 +152,7 @@ For hardware implementation's sake, multiple CUs are grouped
together into a Shader Engine or Compute Engine, typically sharing some fixed
function units or memory subsystem resources.
.. figure:: ../data/hardware_implementation/cdna2_gcd.png
.. figure:: ../data/understand/hardware_implementation/cdna2_gcd.png
:alt: Block diagram showing four Compute Engines each with 28 Compute Units
inside. These four Compute Engines share one block of L2 Cache. Around
them are four Memory Controllers. To the top and bottom of all these are
+6 -6
Просмотреть файл
@@ -20,8 +20,8 @@ RDNA & CDNA Architecture Summary
Most GPU architectures, like RDNA and CDNA, have a hierarchical structure.
The innermost piece is a SIMD-enabled vector Arithmetic Logical Unit (ALU).
In addition to the vector ALUs, most recent GPUs also house matrix ALUs for
accelerating algorithms involving matrix multiply-accumulate operations.
AMD GPUs also contain scalar ALUs, that can be used to reduce the load on the
accelerating algorithms involving matrix multiply-accumulate operations.
AMD GPUs also contain scalar ALUs, that can be used to reduce the load on the
vector ALU by performing operations which are uniform for all threads of a warp.
A set of ALUs, together with register files, caches and shared memory, comprise
@@ -30,7 +30,7 @@ AMD block diagrams, or as streaming multiprocessor (SM).
.. _rdna3_cu:
.. figure:: ../data/programming_model/understand/rdna3_cu.png
.. figure:: ../data/understand/programming_model/rdna3_cu.png
:alt: Block diagram showing the structure of an RDNA3 Compute Unit. It
consists of four SIMD units, each including a vector and scalar register
file, with the corresponding scalar and vector ALUs. All four SIMDs
@@ -41,7 +41,7 @@ AMD block diagrams, or as streaming multiprocessor (SM).
.. _cdna3_cu:
.. figure:: ../data/programming_model/understand/cdna3_cu.png
.. figure:: ../data/understand/programming_model/cdna3_cu.png
:alt: Block diagram showing the structure of a CDNA3 compute unit. It includes
Shader Cores, the Matrix Core Unit, a Local Data Share used for sharing
memory between threads in a block, an L1 Cache and a Scheduler. The
@@ -56,7 +56,7 @@ memory subsystem resources.
.. _cdna2_gcd:
.. figure:: ../data/programming_model/understand/cdna2_gcd.png
.. figure:: ../data/understand/programming_model/cdna2_gcd.png
:alt: Block diagram showing four Compute Engines each with 28 Compute Units
inside. These four Compute Engines share one block of L2 Cache. Around
them are four Memory Controllers. To the top and bottom of all these are
@@ -103,7 +103,7 @@ typically look the following:
.. _simt:
.. figure:: ../data/programming_model/understand/simt.svg
.. figure:: ../data/understand/programming_model/simt.svg
:alt: Image representing the instruction flow of a SIMT program. Two identical
arrows pointing downward with blocks representing the instructions
inside and ellipsis between the arrows. The instructions represented in
+8 -8
Просмотреть файл
@@ -34,7 +34,7 @@ The thread hierarchy inherent to how AMD GPUs operate is depicted in
.. _inherent_thread_hierarchy:
.. figure:: ../data/programming_model/reference/thread_hierarchy.svg
.. figure:: ../data/understand/programming_model_reference/thread_hierarchy.svg
:alt: Diagram depicting nested rectangles of varying color. The outermost one
titled "Grid", inside sets of uniform rectangles layered on one another
titled "Block". Each "Block" containing sets of uniform rectangles
@@ -83,9 +83,9 @@ of. It relaxes some restrictions of the :ref:`inherent_thread_model`
imposed by the strict 1:1 mapping of architectural details to the programming
model.
The rich set of APIs introduced by Cooperative Groups allow the programmer to
define their own set of thread groups which may fit their user-cases better than
those defined by the hardware. The set of implicit groups by kernel launch
The rich set of APIs introduced by Cooperative Groups allow the programmer to
define their own set of thread groups which may fit their user-cases better than
those defined by the hardware. The set of implicit groups by kernel launch
parameters are still available.
The thread hierarchy abstraction of Cooperative Groups manifest as depicted in
@@ -93,7 +93,7 @@ The thread hierarchy abstraction of Cooperative Groups manifest as depicted in
.. _coop_thread_hierarchy:
.. figure:: ../data/programming_model/reference/thread_hierarchy_coop.svg
.. figure:: ../data/understand/programming_model_reference/thread_hierarchy_coop.svg
:alt: Diagram depicting nested rectangles of varying color. The outermost one
titled "Grid", inside sets of different sized rectangles layered on
one another titled "Block". Each "Block" containing sets of uniform
@@ -102,7 +102,7 @@ The thread hierarchy abstraction of Cooperative Groups manifest as depicted in
Cooperative group thread hierarchy.
Multi Grid
Multi Grid
An abstraction of potentially multiple simultaneous launches of
the same kernel over multiple devices. Grids inside a multi device kernel
launch need not be of uniform size, thus allowing taking into account
@@ -110,7 +110,7 @@ Multi Grid
.. deprecated:: 5.0
Grid
Grid
Same as the :ref:`inherent_thread_model` Grid entity. The ability to
synchronize over a grid requires the kernel to be launched using the
Cooperative Groups API.
@@ -134,7 +134,7 @@ how they relate to the various levels of the threading model.
.. _memory_hierarchy:
.. figure:: ../data/programming_model/reference/memory_hierarchy.svg
.. figure:: ../data/understand/programming_model_reference/memory_hierarchy.svg
:alt: Diagram depicting nested rectangles of varying color. The outermost one
titled "Grid", inside on the upper half a rectangle titled "Cluster".
Inside it are two identical rectangles titled "Block", inside them are