SWDEV-502480 - Update documentation from GitHub 2024-12-05
Change-Id: I179814351b77935aff55e8ae47dd322a3e15a868
This commit is contained in:
@@ -97,7 +97,7 @@ When using ``hipLaunchKernelGGL``, your first five parameters must be:
|
||||
* ``size_t dynamicShared``: The amount of additional shared memory that you want to allocate
|
||||
when launching the kernel (see :ref:`shared-variable-type`).
|
||||
* ``hipStream_t``: The stream where you want to run the kernel. A value of ``0`` corresponds to the
|
||||
NULL stream (see :ref:`synchronization functions`).
|
||||
NULL stream (see :ref:`synchronization_functions`).
|
||||
|
||||
You can include your kernel arguments after these parameters.
|
||||
|
||||
@@ -293,6 +293,7 @@ dimensions to 1.
|
||||
dim3(uint32_t _x=1, uint32_t _y=1, uint32_t _z=1) : x(_x), y(_y), z(_z) {};
|
||||
};
|
||||
|
||||
.. _memory_fence_instructions:
|
||||
|
||||
Memory fence instructions
|
||||
====================================================
|
||||
@@ -306,7 +307,7 @@ HIP supports ``__threadfence()`` and ``__threadfence_block()``. If you're using
|
||||
``hipHostMalloc()``.
|
||||
* Remove ``memcpy`` for all allocated fine-grained system memory regions.
|
||||
|
||||
.. _synchronization functions:
|
||||
.. _synchronization_functions:
|
||||
|
||||
Synchronization functions
|
||||
====================================================
|
||||
@@ -321,7 +322,7 @@ The Cooperative Groups API offer options to do synchronization on a developer de
|
||||
Math functions
|
||||
====================================================
|
||||
|
||||
HIP-Clang supports a set of math operations that are callable from the device.
|
||||
HIP-Clang supports a set of math operations that are callable from the device.
|
||||
HIP supports most of the device functions supported by CUDA. These are described
|
||||
on :ref:`Math API page <math_api_reference>`.
|
||||
|
||||
@@ -376,6 +377,8 @@ To read a high-resolution timer from the device, HIP provides the following buil
|
||||
|
||||
Note that ``clock()`` and ``clock64()`` do not work properly on AMD RDNA3 (GFX11) graphic processors.
|
||||
|
||||
.. _atomic functions:
|
||||
|
||||
Atomic functions
|
||||
===============================================
|
||||
|
||||
@@ -734,6 +737,8 @@ will be enabled unconditionally in the next ROCm release. Wherever possible, the
|
||||
implementation includes a static assert to check that the program source uses
|
||||
the correct type for the mask.
|
||||
|
||||
.. _warp_vote_functions:
|
||||
|
||||
Warp vote and ballot functions
|
||||
-------------------------------------------------------------------------------------------------------------
|
||||
|
||||
|
||||
@@ -6,87 +6,171 @@
|
||||
HIP deprecated runtime API functions
|
||||
**********************************************************************************************
|
||||
|
||||
Several of our API functions have been flagged for deprecation. Using the following functions results in
|
||||
errors and unexpected results, so we encourage you to update your code accordingly.
|
||||
Several of our API functions have been flagged for deprecation. Using the
|
||||
following functions results in errors and unexpected results, so we encourage
|
||||
you to update your code accordingly.
|
||||
|
||||
Context management
|
||||
Deprecated since ROCm 6.1.0
|
||||
============================================================
|
||||
|
||||
CUDA supports cuCtx API, which is the driver API that defines "Context" and "Devices" as separate
|
||||
entities. Context contains a single device, and a device can theoretically have multiple contexts. HIP
|
||||
initially added limited support for these APIs in order to facilitate porting from existing driver codes.
|
||||
These APIs are now marked as deprecated because there are better alternate interfaces (such as
|
||||
``hipSetDevice`` or the stream API) to achieve these functions.
|
||||
Deprecated texture management functions.
|
||||
|
||||
* ``hipCtxCreate``
|
||||
* ``hipCtxDestroy``
|
||||
* ``hipCtxPopCurrent``
|
||||
* ``hipCtxPushCurrent``
|
||||
* ``hipCtxSetCurrent``
|
||||
* ``hipCtxGetCurrent``
|
||||
* ``hipCtxGetDevice``
|
||||
* ``hipCtxGetApiVersion``
|
||||
* ``hipCtxGetCacheConfig``
|
||||
* ``hipCtxSetCacheConfig``
|
||||
* ``hipCtxSetSharedMemConfig``
|
||||
* ``hipCtxGetSharedMemConfig``
|
||||
* ``hipCtxSynchronize``
|
||||
* ``hipCtxGetFlags``
|
||||
* ``hipCtxEnablePeerAccess``
|
||||
* ``hipCtxDisablePeerAccess``
|
||||
* ``hipDevicePrimaryCtxGetState``
|
||||
* ``hipDevicePrimaryCtxRelease``
|
||||
* ``hipDevicePrimaryCtxRetain``
|
||||
* ``hipDevicePrimaryCtxReset``
|
||||
* ``hipDevicePrimaryCtxSetFlags``
|
||||
.. list-table::
|
||||
:widths: 40
|
||||
:header-rows: 1
|
||||
:align: left
|
||||
|
||||
Memory management
|
||||
* - function
|
||||
* - :cpp:func:`hipTexRefGetBorderColor`
|
||||
* - :cpp:func:`hipTexRefGetArray`
|
||||
|
||||
Deprecated since ROCm 5.7.0
|
||||
============================================================
|
||||
|
||||
* ``hipMallocHost`` (replaced with ``hipHostMalloc``)
|
||||
* ``hipMemAllocHost`` (replaced with ``hipHostMalloc``)
|
||||
* ``hipMemcpyToArray``
|
||||
* ``hipMemcpyFromArray``
|
||||
Deprecated texture management functions.
|
||||
|
||||
Profiler control
|
||||
.. list-table::
|
||||
:widths: 40
|
||||
:header-rows: 1
|
||||
:align: left
|
||||
|
||||
* - function
|
||||
* - :cpp:func:`hipBindTextureToMipmappedArray`
|
||||
|
||||
Deprecated since ROCm 5.3.0
|
||||
============================================================
|
||||
|
||||
* ``hipProfilerStart`` (use roctracer/rocTX)
|
||||
* ``hipProfilerStop`` (use roctracer/rocTX)
|
||||
Deprecated texture management functions.
|
||||
|
||||
.. list-table::
|
||||
:widths: 40
|
||||
:header-rows: 1
|
||||
:align: left
|
||||
|
||||
Texture management
|
||||
* - function
|
||||
* - :cpp:func:`hipGetTextureReference`
|
||||
* - :cpp:func:`hipTexRefSetAddressMode`
|
||||
* - :cpp:func:`hipTexRefSetArray`
|
||||
* - :cpp:func:`hipTexRefSetFlags`
|
||||
* - :cpp:func:`hipTexRefSetFilterMode`
|
||||
* - :cpp:func:`hipTexRefSetFormat`
|
||||
* - :cpp:func:`hipTexRefSetMipmapFilterMode`
|
||||
* - :cpp:func:`hipTexRefSetMipmapLevelBias`
|
||||
* - :cpp:func:`hipTexRefSetMipmapLevelClamp`
|
||||
* - :cpp:func:`hipTexRefSetMipmappedArray`
|
||||
|
||||
Deprecated since ROCm 4.3.0
|
||||
============================================================
|
||||
|
||||
* ``hipGetTextureReference``
|
||||
* ``hipTexRefSetAddressMode``
|
||||
* ``hipTexRefSetArray``
|
||||
* ``hipTexRefSetFilterMode``
|
||||
* ``hipTexRefSetFlags``
|
||||
* ``hipTexRefSetFormat``
|
||||
* ``hipTexRefGetAddress``
|
||||
* ``hipTexRefGetAddressMode``
|
||||
* ``hipTexRefGetFilterMode``
|
||||
* ``hipTexRefGetFlags``
|
||||
* ``hipTexRefGetFormat``
|
||||
* ``hipTexRefGetMaxAnisotropy``
|
||||
* ``hipTexRefGetMipmapFilterMode``
|
||||
* ``hipTexRefGetMipmapLevelBias``
|
||||
* ``hipTexRefGetMipmapLevelClamp``
|
||||
* ``hipTexRefGetMipMappedArray``
|
||||
* ``hipTexRefSetAddress``
|
||||
* ``hipTexRefSetAddress2D``
|
||||
* ``hipTexRefSetMaxAnisotropy``
|
||||
* ``hipTexRefSetBorderColor``
|
||||
* ``hipTexRefSetMipmapFilterMode``
|
||||
* ``hipTexRefSetMipmapLevelBias``
|
||||
* ``hipTexRefSetMipmapLevelClamp``
|
||||
* ``hipTexRefSetMipmappedArray``
|
||||
* ``hipTexRefGetBorderColor``
|
||||
* ``hipTexRefGetArray``
|
||||
* ``hipBindTexture``
|
||||
* ``hipBindTexture2D``
|
||||
* ``hipBindTextureToArray``
|
||||
* ``hipGetTextureAlignmentOffset``
|
||||
* ``hipUnbindTexture``
|
||||
* ``hipBindTextureToMipmappedArray``
|
||||
Deprecated texture management functions.
|
||||
|
||||
.. list-table::
|
||||
:widths: 40
|
||||
:header-rows: 1
|
||||
:align: left
|
||||
|
||||
* - function
|
||||
* - :cpp:func:`hipTexRefGetAddress`
|
||||
* - :cpp:func:`hipTexRefGetAddressMode`
|
||||
* - :cpp:func:`hipTexRefGetFilterMode`
|
||||
* - :cpp:func:`hipTexRefGetFlags`
|
||||
* - :cpp:func:`hipTexRefGetFormat`
|
||||
* - :cpp:func:`hipTexRefGetMaxAnisotropy`
|
||||
* - :cpp:func:`hipTexRefGetMipmapFilterMode`
|
||||
* - :cpp:func:`hipTexRefGetMipmapLevelBias`
|
||||
* - :cpp:func:`hipTexRefGetMipmapLevelClamp`
|
||||
* - :cpp:func:`hipTexRefGetMipMappedArray`
|
||||
* - :cpp:func:`hipTexRefSetAddress`
|
||||
* - :cpp:func:`hipTexRefSetAddress2D`
|
||||
* - :cpp:func:`hipTexRefSetBorderColor`
|
||||
* - :cpp:func:`hipTexRefSetMaxAnisotropy`
|
||||
|
||||
Deprecated since ROCm 3.8.0
|
||||
============================================================
|
||||
|
||||
Deprecated memory management and texture management functions.
|
||||
|
||||
.. list-table::
|
||||
:widths: 40
|
||||
:header-rows: 1
|
||||
:align: left
|
||||
|
||||
* - function
|
||||
* - :cpp:func:`hipBindTexture`
|
||||
* - :cpp:func:`hipBindTexture2D`
|
||||
* - :cpp:func:`hipBindTextureToArray`
|
||||
* - :cpp:func:`hipGetTextureAlignmentOffset`
|
||||
* - :cpp:func:`hipUnbindTexture`
|
||||
* - :cpp:func:`hipMemcpyToArray`
|
||||
* - :cpp:func:`hipMemcpyFromArray`
|
||||
|
||||
Deprecated since ROCm 3.1.0
|
||||
============================================================
|
||||
|
||||
Deprecated memory management functions.
|
||||
|
||||
.. list-table::
|
||||
:widths: 40, 60
|
||||
:header-rows: 1
|
||||
:align: left
|
||||
|
||||
* - function
|
||||
-
|
||||
* - :cpp:func:`hipMallocHost`
|
||||
- replaced with :cpp:func:`hipHostAlloc`
|
||||
* - :cpp:func:`hipMemAllocHost`
|
||||
- replaced with :cpp:func:`hipHostAlloc`
|
||||
|
||||
Deprecated since ROCm 3.0.0
|
||||
============================================================
|
||||
|
||||
The ``hipProfilerStart`` and ``hipProfilerStop`` functions are deprecated.
|
||||
Instead, you can use ``roctracer`` or ``rocTX`` for profiling which provide more
|
||||
flexibility and detailed profiling capabilities.
|
||||
|
||||
.. list-table::
|
||||
:widths: 40
|
||||
:header-rows: 1
|
||||
:align: left
|
||||
|
||||
* - function
|
||||
* - :cpp:func:`hipProfilerStart`
|
||||
* - :cpp:func:`hipProfilerStop`
|
||||
|
||||
Deprecated since ROCm 1.9.0
|
||||
============================================================
|
||||
|
||||
CUDA supports cuCtx API, which is the driver API that defines "Context" and
|
||||
"Devices" as separate entities. Context contains a single device, and a device
|
||||
can theoretically have multiple contexts. HIP initially added limited support
|
||||
for context APIs in order to facilitate porting from existing driver codes. These
|
||||
APIs are now marked as deprecated because there are better alternate interfaces
|
||||
(such as ``hipSetDevice`` or the stream API) to achieve these functions.
|
||||
|
||||
.. list-table::
|
||||
:widths: 40
|
||||
:header-rows: 1
|
||||
:align: left
|
||||
|
||||
* - function
|
||||
* - :cpp:func:`hipCtxCreate`
|
||||
* - :cpp:func:`hipCtxDestroy`
|
||||
* - :cpp:func:`hipCtxPopCurrent`
|
||||
* - :cpp:func:`hipCtxPushCurrent`
|
||||
* - :cpp:func:`hipCtxSetCurrent`
|
||||
* - :cpp:func:`hipCtxGetCurrent`
|
||||
* - :cpp:func:`hipCtxGetDevice`
|
||||
* - :cpp:func:`hipCtxGetApiVersion`
|
||||
* - :cpp:func:`hipCtxGetCacheConfig`
|
||||
* - :cpp:func:`hipCtxSetCacheConfig`
|
||||
* - :cpp:func:`hipCtxSetSharedMemConfig`
|
||||
* - :cpp:func:`hipCtxGetSharedMemConfig`
|
||||
* - :cpp:func:`hipCtxSynchronize`
|
||||
* - :cpp:func:`hipCtxGetFlags`
|
||||
* - :cpp:func:`hipCtxEnablePeerAccess`
|
||||
* - :cpp:func:`hipCtxDisablePeerAccess`
|
||||
* - :cpp:func:`hipDevicePrimaryCtxGetState`
|
||||
* - :cpp:func:`hipDevicePrimaryCtxRelease`
|
||||
* - :cpp:func:`hipDevicePrimaryCtxRetain`
|
||||
* - :cpp:func:`hipDevicePrimaryCtxReset`
|
||||
* - :cpp:func:`hipDevicePrimaryCtxSetFlags`
|
||||
|
||||
@@ -0,0 +1,189 @@
|
||||
.. meta::
|
||||
:description: HIP environment variables reference
|
||||
:keywords: AMD, HIP, environment variables, environment, reference
|
||||
|
||||
********************************************************************************
|
||||
HIP environment variables
|
||||
********************************************************************************
|
||||
|
||||
In this section, the reader can find all the important HIP environment variables
|
||||
on AMD platform, which are grouped by functionality.
|
||||
|
||||
GPU isolation variables
|
||||
================================================================================
|
||||
|
||||
The GPU isolation environment variables in HIP are collected in the next table.
|
||||
For more information, check :doc:`GPU isolation page <rocm:conceptual/gpu-isolation>`.
|
||||
|
||||
.. list-table::
|
||||
:header-rows: 1
|
||||
:widths: 70,30
|
||||
|
||||
* - **Environment variable**
|
||||
- **Value**
|
||||
|
||||
* - | ``ROCR_VISIBLE_DEVICES``
|
||||
| A list of device indices or UUIDs that will be exposed to applications.
|
||||
- Example: ``0,GPU-DEADBEEFDEADBEEF``
|
||||
|
||||
* - | ``GPU_DEVICE_ORDINAL``
|
||||
| Devices indices exposed to OpenCL and HIP applications.
|
||||
- Example: ``0,2``
|
||||
|
||||
* - | ``HIP_VISIBLE_DEVICES`` or ``CUDA_VISIBLE_DEVICES``
|
||||
| Device indices exposed to HIP applications.
|
||||
- Example: ``0,2``
|
||||
|
||||
Profiling variables
|
||||
================================================================================
|
||||
|
||||
The profiling environment variables in HIP are collected in the next table. For
|
||||
more information, check :doc:`setting the number of CUs page <rocm:how-to/setting-cus>`.
|
||||
|
||||
.. list-table::
|
||||
:header-rows: 1
|
||||
:widths: 70,30
|
||||
|
||||
* - **Environment variable**
|
||||
- **Value**
|
||||
|
||||
* - | ``HSA_CU_MASK``
|
||||
| Sets the mask on a lower level of queue creation in the driver,
|
||||
| this mask will also be set for queues being profiled.
|
||||
- Example: ``1:0-8``
|
||||
|
||||
* - | ``ROC_GLOBAL_CU_MASK``
|
||||
| Sets the mask on queues created by the HIP or the OpenCL runtimes,
|
||||
| this mask will also be set for queues being profiled.
|
||||
- Example: ``0xf``, enables only 4 CUs
|
||||
|
||||
* - | ``HIP_FORCE_QUEUE_PROFILING``
|
||||
| Used to run the app as if it were run in rocprof. Forces command queue
|
||||
| profiling on by default.
|
||||
- | 0: Disable
|
||||
| 1: Enable
|
||||
|
||||
Debug variables
|
||||
================================================================================
|
||||
|
||||
The debugging environment variables in HIP are collected in the next table. For
|
||||
more information, check :ref:`debugging_with_hip`.
|
||||
|
||||
.. include:: ../how-to/debugging_env.rst
|
||||
|
||||
Memory management related variables
|
||||
================================================================================
|
||||
|
||||
The memory management related environment variables in HIP are collected in the
|
||||
next table.
|
||||
|
||||
.. list-table::
|
||||
:header-rows: 1
|
||||
:widths: 35,14,51
|
||||
|
||||
* - **Environment variable**
|
||||
- **Default value**
|
||||
- **Value**
|
||||
|
||||
* - | ``HIP_HIDDEN_FREE_MEM``
|
||||
| Amount of memory to hide from the free memory reported by hipMemGetInfo.
|
||||
- ``0``
|
||||
- | 0: Disable
|
||||
| Unit: megabyte (MB)
|
||||
|
||||
* - | ``HIP_HOST_COHERENT``
|
||||
| Specifies if the memory is coherent between the host and GPU in ``hipHostMalloc``.
|
||||
- ``0``
|
||||
- | 0: Memory is not coherent.
|
||||
| 1: Memory is coherent.
|
||||
| Environment variable has effect, if the following conditions are statisfied:
|
||||
| - One of the ``hipHostMallocDefault``, ``hipHostMallocPortable``, ``hipHostMallocWriteCombined`` or ``hipHostMallocNumaUser`` flag set to 1.
|
||||
| - ``hipHostMallocCoherent``, ``hipHostMallocNonCoherent`` and ``hipHostMallocMapped`` flags set to 0.
|
||||
|
||||
* - | ``HIP_INITIAL_DM_SIZE``
|
||||
| Set initial heap size for device malloc.
|
||||
- ``8388608``
|
||||
- | Unit: Byte
|
||||
| The default value corresponds to 8 MB.
|
||||
|
||||
* - | ``HIP_MEM_POOL_SUPPORT``
|
||||
| Enables memory pool support in HIP.
|
||||
- ``0``
|
||||
- | 0: Disable
|
||||
| 1: Enable
|
||||
|
||||
* - | ``HIP_MEM_POOL_USE_VM``
|
||||
| Enables memory pool support in HIP.
|
||||
- | ``0``: other OS
|
||||
| ``1``: Windows
|
||||
- | 0: Disable
|
||||
| 1: Enable
|
||||
|
||||
* - | ``HIP_VMEM_MANAGE_SUPPORT``
|
||||
| Virtual Memory Management Support.
|
||||
- ``1``
|
||||
- | 0: Disable
|
||||
| 1: Enable
|
||||
|
||||
* - | ``GPU_MAX_HEAP_SIZE``
|
||||
| Set maximum size of the GPU heap to % of board memory.
|
||||
- ``100``
|
||||
- | Unit: Percentage
|
||||
|
||||
* - | ``GPU_MAX_REMOTE_MEM_SIZE``
|
||||
| Maximum size that allows device memory substitution with system.
|
||||
- ``2``
|
||||
- | Unit: kilobyte (KB)
|
||||
|
||||
* - | ``GPU_NUM_MEM_DEPENDENCY``
|
||||
| Number of memory objects for dependency tracking.
|
||||
- ``256``
|
||||
-
|
||||
|
||||
* - | ``GPU_STREAMOPS_CP_WAIT``
|
||||
| Force the stream memory operation to wait on CP.
|
||||
- ``0``
|
||||
- | 0: Disable
|
||||
| 1: Enable
|
||||
|
||||
* - | ``HSA_LOCAL_MEMORY_ENABLE``
|
||||
| Enable HSA device local memory usage.
|
||||
- ``1``
|
||||
- | 0: Disable
|
||||
| 1: Enable
|
||||
|
||||
* - | ``PAL_ALWAYS_RESIDENT``
|
||||
| Force memory resources to become resident at allocation time.
|
||||
- ``0``
|
||||
- | 0: Disable
|
||||
| 1: Enable
|
||||
|
||||
* - | ``PAL_PREPINNED_MEMORY_SIZE``
|
||||
| Size of prepinned memory.
|
||||
- ``64``
|
||||
- | Unit: kilobyte (KB)
|
||||
|
||||
* - | ``REMOTE_ALLOC``
|
||||
| Use remote memory for the global heap allocation.
|
||||
- ``0``
|
||||
- | 0: Disable
|
||||
| 1: Enable
|
||||
|
||||
Other useful variables
|
||||
================================================================================
|
||||
|
||||
The following table lists environment variables that are useful but relate to
|
||||
different features.
|
||||
|
||||
.. list-table::
|
||||
:header-rows: 1
|
||||
:widths: 35,14,51
|
||||
|
||||
* - **Environment variable**
|
||||
- **Default value**
|
||||
- **Value**
|
||||
|
||||
* - | ``HIPRTC_COMPILE_OPTIONS_APPEND``
|
||||
| Sets compile options needed for ``hiprtc`` compilation.
|
||||
- None
|
||||
- ``--gpu-architecture=gfx906:sramecc+:xnack``, ``-fgpu-rdc``
|
||||
@@ -0,0 +1,249 @@
|
||||
.. meta::
|
||||
:description: This chapter describes the hardware features of the different hardware architectures.
|
||||
:keywords: AMD, ROCm, HIP, hardware, hardware features, hardware architectures
|
||||
|
||||
*******************************************************************************
|
||||
Hardware features
|
||||
*******************************************************************************
|
||||
|
||||
This page gives an overview of the different hardware architectures and the
|
||||
features they implement. Hardware features do not imply performance, that
|
||||
depends on the specifications found in the :doc:`rocm:reference/gpu-arch-specs`
|
||||
page.
|
||||
|
||||
.. list-table::
|
||||
:header-rows: 1
|
||||
:name: hardware-features-table
|
||||
|
||||
*
|
||||
- Hardware feature support
|
||||
- RDNA1
|
||||
- CDNA1
|
||||
- RDNA2
|
||||
- CDNA2
|
||||
- RDNA3
|
||||
- CDNA3
|
||||
*
|
||||
- :ref:`atomic functions` on 32-bit integer values in global and shared memory
|
||||
- ✅
|
||||
- ✅
|
||||
- ✅
|
||||
- ✅
|
||||
- ✅
|
||||
- ✅
|
||||
*
|
||||
- Atomic functions on 64-bit integer values in global and shared memory
|
||||
- ✅
|
||||
- ✅
|
||||
- ✅
|
||||
- ✅
|
||||
- ✅
|
||||
- ✅
|
||||
*
|
||||
- Atomic addition on 32-bit floating point values in global and shared memory
|
||||
- ❌
|
||||
- ❌
|
||||
- ✅
|
||||
- ✅
|
||||
- ✅
|
||||
- ✅
|
||||
*
|
||||
- Atomic addition on 64-bit floating point values in global memory and shared memory
|
||||
- ❌
|
||||
- ❌
|
||||
- ✅
|
||||
- ✅
|
||||
- ✅
|
||||
- ✅
|
||||
*
|
||||
- :ref:`Warp vote functions <warp_vote_functions>`
|
||||
- ✅
|
||||
- ✅
|
||||
- ✅
|
||||
- ✅
|
||||
- ✅
|
||||
- ✅
|
||||
*
|
||||
- :ref:`Memory fence instructions <memory_fence_instructions>`
|
||||
- ✅
|
||||
- ✅
|
||||
- ✅
|
||||
- ✅
|
||||
- ✅
|
||||
- ✅
|
||||
*
|
||||
- :ref:`Synchronization functions <synchronization_functions>`
|
||||
- ✅
|
||||
- ✅
|
||||
- ✅
|
||||
- ✅
|
||||
- ✅
|
||||
- ✅
|
||||
*
|
||||
- :ref:`Surface functions <surface_object_reference>`
|
||||
- ✅
|
||||
- ✅
|
||||
- ✅
|
||||
- ✅
|
||||
- ✅
|
||||
- ✅
|
||||
*
|
||||
- :ref:`float16 half precision IEEE-conformant floating-point operations<rocm:precision_support_floating_point_types>`
|
||||
- ✅
|
||||
- ✅
|
||||
- ✅
|
||||
- ✅
|
||||
- ✅
|
||||
- ✅
|
||||
*
|
||||
- :ref:`bfloat16 16-bit floating-point operations<rocm:precision_support_floating_point_types>`
|
||||
- ❌
|
||||
- ✅
|
||||
- ❌
|
||||
- ✅
|
||||
- ✅
|
||||
- ✅
|
||||
*
|
||||
- Support for :ref:`8-bit floating-point types <rocm:precision_support_floating_point_types>`
|
||||
- ❌
|
||||
- ❌
|
||||
- ❌
|
||||
- ❌
|
||||
- ❌
|
||||
- ✅
|
||||
*
|
||||
- Support for :ref:`tensor float32 <rocm:precision_support_floating_point_types>`
|
||||
- ❌
|
||||
- ❌
|
||||
- ❌
|
||||
- ❌
|
||||
- ❌
|
||||
- ✅
|
||||
*
|
||||
- Packed math with 16-bit floating point values
|
||||
- ✅
|
||||
- ✅
|
||||
- ✅
|
||||
- ✅
|
||||
- ✅
|
||||
- ✅
|
||||
*
|
||||
- Packed math with 32-bit floating point values
|
||||
- ❌
|
||||
- ❌
|
||||
- ❌
|
||||
- ✅
|
||||
- ❌
|
||||
- ✅
|
||||
*
|
||||
- Matrix Cores
|
||||
- ❌
|
||||
- ✅
|
||||
- ❌
|
||||
- ✅
|
||||
- ❌
|
||||
- ✅
|
||||
*
|
||||
- On-Chip Error Correcting Code (ECC)
|
||||
- ✅
|
||||
- ✅
|
||||
- ✅
|
||||
- ✅
|
||||
- ✅
|
||||
- ✅
|
||||
*
|
||||
- Maximum dimensionality of grid
|
||||
- 3
|
||||
- 3
|
||||
- 3
|
||||
- 3
|
||||
- 3
|
||||
- 3
|
||||
*
|
||||
- Maximum x-, y- or z-dimension of a grid
|
||||
- :math:`2^{32} - 1`
|
||||
- :math:`2^{32} - 1`
|
||||
- :math:`2^{32} - 1`
|
||||
- :math:`2^{32} - 1`
|
||||
- :math:`2^{32} - 1`
|
||||
- :math:`2^{32} - 1`
|
||||
*
|
||||
- Maximum number of threads per grid
|
||||
- :math:`2^{32} - 1`
|
||||
- :math:`2^{32} - 1`
|
||||
- :math:`2^{32} - 1`
|
||||
- :math:`2^{32} - 1`
|
||||
- :math:`2^{32} - 1`
|
||||
- :math:`2^{32} - 1`
|
||||
*
|
||||
- Maximum x-, y- or z-dimension of a block
|
||||
- :math:`1024`
|
||||
- :math:`1024`
|
||||
- :math:`1024`
|
||||
- :math:`1024`
|
||||
- :math:`1024`
|
||||
- :math:`1024`
|
||||
*
|
||||
- Maximum number of threads per block
|
||||
- :math:`1024`
|
||||
- :math:`1024`
|
||||
- :math:`1024`
|
||||
- :math:`1024`
|
||||
- :math:`1024`
|
||||
- :math:`1024`
|
||||
*
|
||||
- Wavefront size
|
||||
- 32 [1]_
|
||||
- 64
|
||||
- 32 [1]_
|
||||
- 64
|
||||
- 32 [1]_
|
||||
- 64
|
||||
*
|
||||
- Maximum number of resident blocks per compute unit
|
||||
- 40 [1]_
|
||||
- 32
|
||||
- 32 [1]_
|
||||
- 32
|
||||
- 32 [1]_
|
||||
- 32
|
||||
*
|
||||
- Maximum number of resident wavefronts per compute unit
|
||||
- 40 [1]_
|
||||
- 32
|
||||
- 32 [1]_
|
||||
- 32
|
||||
- 32 [1]_
|
||||
- 32
|
||||
*
|
||||
- Maximum number of resident threads per compute unit
|
||||
- 1280 [2]_
|
||||
- 2048
|
||||
- 1024 [2]_
|
||||
- 2048
|
||||
- 1024 [2]_
|
||||
- 2048
|
||||
*
|
||||
- Maximum number of 32-bit vector registers per thread
|
||||
- 256
|
||||
- 256 (vector) + 256 (matrix)
|
||||
- 256
|
||||
- 256 (vector) + 256 (matrix)
|
||||
- 256
|
||||
- 256 (vector) + 256 (matrix)
|
||||
*
|
||||
- Maximum number of 32-bit scalar accumulation registers per thread
|
||||
- 106
|
||||
- 104
|
||||
- 106
|
||||
- 104
|
||||
- 106
|
||||
- 104
|
||||
|
||||
.. [1] RDNA architectures have a configurable wavefront size. The native
|
||||
wavefront size is 32, but they can run in "CU mode", which has an effective
|
||||
wavefront size of 64. This affects the number of resident wavefronts and
|
||||
blocks per compute Unit.
|
||||
.. [2] RDNA architectures expand the concept of the traditional compute unit
|
||||
with the so-called work group processor, which effectively includes two
|
||||
compute units, within which all threads can cooperate.
|
||||
@@ -11,5 +11,5 @@ The structs, define macros, enums and files in the HIP runtime API.
|
||||
|
||||
* :ref:`global_enum_defines_reference`
|
||||
* :ref:`driver_types_reference`
|
||||
* :doc:`hip:doxygen/html/annotated`
|
||||
* :doc:`hip:doxygen/html/files`
|
||||
* :doc:`../../doxygen/html/annotated`
|
||||
* :doc:`../../doxygen/html/files`
|
||||
|
||||
@@ -9,4 +9,4 @@ OpenGL interoperability
|
||||
*******************************************************************************
|
||||
|
||||
.. doxygengroup:: GL
|
||||
:content-only:
|
||||
:content-only:
|
||||
@@ -1,5 +1,5 @@
|
||||
.. meta::
|
||||
:description: This chapter describes the built-in math functions that are accessible in HIP.
|
||||
:description: This chapter describes the built-in math functions that are accessible in HIP.
|
||||
:keywords: AMD, ROCm, HIP, CUDA, math functions, HIP math functions
|
||||
|
||||
.. _math_api_reference:
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
.. meta::
|
||||
:description: This chapter lists user-mode API interfaces and libraries
|
||||
necessary for host applications to launch compute kernels to
|
||||
:description: This chapter lists user-mode API interfaces and libraries
|
||||
necessary for host applications to launch compute kernels to
|
||||
available HSA ROCm kernel agents.
|
||||
:keywords: AMD, ROCm, HIP, HSA, ROCR runtime, virtual memory management
|
||||
|
||||
|
||||
مرجع در شماره جدید
Block a user