mirror of
https://github.com/ROCm/ROCm.git
synced 2026-01-10 23:28:03 -05:00
Compare commits
1 Commits
update_jax
...
precision_
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
56de4cda80 |
@@ -9,16 +9,14 @@
|
|||||||
Data types and precision support
|
Data types and precision support
|
||||||
*************************************************************
|
*************************************************************
|
||||||
|
|
||||||
This topic lists the supported data types of AMD GPUs and ROCm libraries.
|
This topic lists the data types support on AMD GPUs, ROCm libraries along
|
||||||
Corresponding :doc:`HIP <hip:index>` data types are also noted.
|
with corresponding :doc:`HIP <hip:index>` data types.
|
||||||
|
|
||||||
Integral types
|
Integral types
|
||||||
==========================================
|
==============
|
||||||
|
|
||||||
The signed and unsigned integral types supported by ROCm are listed in
|
The signed and unsigned integral types supported by ROCm are listed in
|
||||||
the following table, along with their corresponding HIP type and a short
|
the following table.
|
||||||
description.
|
|
||||||
|
|
||||||
|
|
||||||
.. list-table::
|
.. list-table::
|
||||||
:header-rows: 1
|
:header-rows: 1
|
||||||
@@ -48,10 +46,9 @@ description.
|
|||||||
.. _precision_support_floating_point_types:
|
.. _precision_support_floating_point_types:
|
||||||
|
|
||||||
Floating-point types
|
Floating-point types
|
||||||
==========================================
|
====================
|
||||||
|
|
||||||
The floating-point types supported by ROCm are listed in the following
|
The floating-point types supported by ROCm are listed in the following table.
|
||||||
table, along with their corresponding HIP type and a short description.
|
|
||||||
|
|
||||||
.. image:: ../data/about/compatibility/floating-point-data-types.png
|
.. image:: ../data/about/compatibility/floating-point-data-types.png
|
||||||
:alt: Supported floating-point types
|
:alt: Supported floating-point types
|
||||||
@@ -66,18 +63,18 @@ table, along with their corresponding HIP type and a short description.
|
|||||||
- Description
|
- Description
|
||||||
*
|
*
|
||||||
- float8 (E4M3)
|
- float8 (E4M3)
|
||||||
- ``-``
|
- ``__hip_fp8_e4m3_fnuz``
|
||||||
- An 8-bit floating-point number that mostly follows IEEE-754 conventions
|
- An 8-bit floating-point number that mostly follows IEEE-754 conventions
|
||||||
and **S1E4M3** bit layout, as described in `8-bit Numerical Formats for Deep Neural Networks <https://arxiv.org/abs/2206.02915>`_ ,
|
and **S1E4M3** bit layout, as described in `8-bit Numerical Formats for Deep Neural Networks <https://arxiv.org/abs/2206.02915>`_,
|
||||||
with expanded range and no infinity or signed zero. NaN is
|
with expanded range and no infinity or signed zero. NaN is represented
|
||||||
represented as negative zero.
|
as negative zero.
|
||||||
*
|
*
|
||||||
- float8 (E5M2)
|
- float8 (E5M2)
|
||||||
- ``-``
|
- ``__hip_fp8_e5m2_fnuz``
|
||||||
- An 8-bit floating-point number mostly following IEEE-754 conventions and
|
- An 8-bit floating-point number mostly following IEEE-754 conventions and
|
||||||
**S1E5M2** bit layout, as described in `8-bit Numerical Formats for Deep Neural Networks <https://arxiv.org/abs/2206.02915>`_ ,
|
**S1E5M2** bit layout, as described in `8-bit Numerical Formats for Deep Neural Networks <https://arxiv.org/abs/2206.02915>`_,
|
||||||
with expanded range and no infinity or signed zero. NaN is
|
with expanded range and no infinity or signed zero. NaN is represented
|
||||||
represented as negative zero.
|
as negative zero.
|
||||||
*
|
*
|
||||||
- float16
|
- float16
|
||||||
- ``half``
|
- ``half``
|
||||||
@@ -90,7 +87,7 @@ table, along with their corresponding HIP type and a short description.
|
|||||||
format.
|
format.
|
||||||
*
|
*
|
||||||
- tensorfloat32
|
- tensorfloat32
|
||||||
- ``-``
|
- Not available
|
||||||
- A floating-point number that occupies 32 bits or less of storage,
|
- A floating-point number that occupies 32 bits or less of storage,
|
||||||
providing improved range compared to half (16-bit) format, at
|
providing improved range compared to half (16-bit) format, at
|
||||||
(potentially) greater throughput than single-precision (32-bit) formats.
|
(potentially) greater throughput than single-precision (32-bit) formats.
|
||||||
@@ -117,12 +114,15 @@ table, along with their corresponding HIP type and a short description.
|
|||||||
|
|
||||||
* In some AMD documents and articles, float8 (E5M2) is referred to as bfloat8.
|
* In some AMD documents and articles, float8 (E5M2) is referred to as bfloat8.
|
||||||
|
|
||||||
ROCm support icons
|
* The :doc:`low precision floating point types page <hip:reference/low_fp_types>`
|
||||||
==========================================
|
describes how to use these types in HIP with examples.
|
||||||
|
|
||||||
In the following sections, icons represent the level of support. These
|
Level of support definitions
|
||||||
icons, described in the following table, are also used in the library data type
|
============================
|
||||||
support pages.
|
|
||||||
|
In the following sections, icons represent the level of support. These icons,
|
||||||
|
described in the following table, are also used in the library data type support
|
||||||
|
pages.
|
||||||
|
|
||||||
.. list-table::
|
.. list-table::
|
||||||
:header-rows: 1
|
:header-rows: 1
|
||||||
@@ -130,6 +130,11 @@ support pages.
|
|||||||
*
|
*
|
||||||
- Icon
|
- Icon
|
||||||
- Definition
|
- Definition
|
||||||
|
|
||||||
|
*
|
||||||
|
- NA
|
||||||
|
- Not applicable
|
||||||
|
|
||||||
*
|
*
|
||||||
- ❌
|
- ❌
|
||||||
- Not supported
|
- Not supported
|
||||||
@@ -158,16 +163,15 @@ support pages.
|
|||||||
* Any type can be emulated by software, but this page does not cover such
|
* Any type can be emulated by software, but this page does not cover such
|
||||||
cases.
|
cases.
|
||||||
|
|
||||||
Hardware data type support
|
Data type support by Hardware Architecture
|
||||||
==========================================
|
==========================================
|
||||||
|
|
||||||
The following tables provide information about AMD Instinct accelerators support
|
The MI200 series GPUs, which include MI210, MI250, and MI250X, are based on the
|
||||||
for various data types. The MI200 series GPUs, which include MI210, MI250, and
|
CDNA2 architecture. The MI300 series GPUs, consisting of MI300A, MI300X, and
|
||||||
MI250X, are based on the CDNA2 architecture. The MI300 series GPUs, consisting
|
MI325X, are based on the CDNA3 architecture.
|
||||||
of MI300A, MI300X, and MI325X, are built on the CDNA3 architecture.
|
|
||||||
|
|
||||||
Compute units support
|
Compute units support
|
||||||
-------------------------------------------------------------------------------
|
---------------------
|
||||||
|
|
||||||
The following table lists data type support for compute units.
|
The following table lists data type support for compute units.
|
||||||
|
|
||||||
@@ -248,7 +252,7 @@ The following table lists data type support for compute units.
|
|||||||
- ✅
|
- ✅
|
||||||
|
|
||||||
Matrix core support
|
Matrix core support
|
||||||
-------------------------------------------------------------------------------
|
-------------------
|
||||||
|
|
||||||
The following table lists data type support for AMD GPU matrix cores.
|
The following table lists data type support for AMD GPU matrix cores.
|
||||||
|
|
||||||
@@ -329,7 +333,7 @@ The following table lists data type support for AMD GPU matrix cores.
|
|||||||
- ✅
|
- ✅
|
||||||
|
|
||||||
Atomic operations support
|
Atomic operations support
|
||||||
-------------------------------------------------------------------------------
|
-------------------------
|
||||||
|
|
||||||
The following table lists data type support for atomic operations.
|
The following table lists data type support for atomic operations.
|
||||||
|
|
||||||
@@ -416,14 +420,14 @@ The following table lists data type support for atomic operations.
|
|||||||
performance impact when they frequently access the same memory address.
|
performance impact when they frequently access the same memory address.
|
||||||
|
|
||||||
Data type support in ROCm libraries
|
Data type support in ROCm libraries
|
||||||
==========================================
|
===================================
|
||||||
|
|
||||||
ROCm library support for int8, float8 (E4M3), float8 (E5M2), int16, float16,
|
ROCm library support for int8, float8 (E4M3), float8 (E5M2), int16, float16,
|
||||||
bfloat16, int32, tensorfloat32, float32, int64, and float64 is listed in the
|
bfloat16, int32, tensorfloat32, float32, int64, and float64 is listed in the
|
||||||
following tables.
|
following tables.
|
||||||
|
|
||||||
Libraries input/output type support
|
Libraries input/output type support
|
||||||
-------------------------------------------------------------------------------
|
-----------------------------------
|
||||||
|
|
||||||
The following tables list ROCm library support for specific input and output
|
The following tables list ROCm library support for specific input and output
|
||||||
data types. Refer to the corresponding library data type support page for a
|
data types. Refer to the corresponding library data type support page for a
|
||||||
@@ -444,37 +448,37 @@ detailed description.
|
|||||||
- int32
|
- int32
|
||||||
- int64
|
- int64
|
||||||
*
|
*
|
||||||
- hipSPARSELt (:doc:`details <hipsparselt:reference/data-type-support>`)
|
- :doc:`hipSPARSELt <hipsparselt:reference/data-type-support>`
|
||||||
- ✅/✅
|
- ✅/✅
|
||||||
- ❌/❌
|
- ❌/❌
|
||||||
- ❌/❌
|
- ❌/❌
|
||||||
- ❌/❌
|
- ❌/❌
|
||||||
*
|
*
|
||||||
- rocRAND (:doc:`details <rocrand:api-reference/data-type-support>`)
|
- :doc:`rocRAND <rocrand:api-reference/data-type-support>`
|
||||||
- -/✅
|
- NA/✅
|
||||||
- -/✅
|
- NA/✅
|
||||||
- -/✅
|
- NA/✅
|
||||||
- -/✅
|
- NA/✅
|
||||||
*
|
*
|
||||||
- hipRAND (:doc:`details <hiprand:api-reference/data-type-support>`)
|
- :doc:`hipRAND <hiprand:api-reference/data-type-support>`
|
||||||
- -/✅
|
- NA/✅
|
||||||
- -/✅
|
- NA/✅
|
||||||
- -/✅
|
- NA/✅
|
||||||
- -/✅
|
- NA/✅
|
||||||
*
|
*
|
||||||
- rocPRIM (:doc:`details <rocprim:reference/data-type-support>`)
|
- :doc:`rocPRIM <rocprim:reference/data-type-support>`
|
||||||
- ✅/✅
|
- ✅/✅
|
||||||
- ✅/✅
|
- ✅/✅
|
||||||
- ✅/✅
|
- ✅/✅
|
||||||
- ✅/✅
|
- ✅/✅
|
||||||
*
|
*
|
||||||
- hipCUB (:doc:`details <hipcub:api-reference/data-type-support>`)
|
- :doc:`hipCUB <hipcub:api-reference/data-type-support>`
|
||||||
- ✅/✅
|
- ✅/✅
|
||||||
- ✅/✅
|
- ✅/✅
|
||||||
- ✅/✅
|
- ✅/✅
|
||||||
- ✅/✅
|
- ✅/✅
|
||||||
*
|
*
|
||||||
- rocThrust (:doc:`details <rocthrust:data-type-support>`)
|
- :doc:`rocThrust <rocthrust:data-type-support>`
|
||||||
- ✅/✅
|
- ✅/✅
|
||||||
- ✅/✅
|
- ✅/✅
|
||||||
- ✅/✅
|
- ✅/✅
|
||||||
@@ -496,7 +500,7 @@ detailed description.
|
|||||||
- float32
|
- float32
|
||||||
- float64
|
- float64
|
||||||
*
|
*
|
||||||
- hipSPARSELt (:doc:`details <hipsparselt:reference/data-type-support>`)
|
- :doc:`hipSPARSELt <hipsparselt:reference/data-type-support>`
|
||||||
- ❌/❌
|
- ❌/❌
|
||||||
- ❌/❌
|
- ❌/❌
|
||||||
- ✅/✅
|
- ✅/✅
|
||||||
@@ -505,25 +509,25 @@ detailed description.
|
|||||||
- ❌/❌
|
- ❌/❌
|
||||||
- ❌/❌
|
- ❌/❌
|
||||||
*
|
*
|
||||||
- rocRAND (:doc:`details <rocrand:api-reference/data-type-support>`)
|
- :doc:`rocRAND <rocrand:api-reference/data-type-support>`
|
||||||
- -/❌
|
- NA/❌
|
||||||
- -/❌
|
- NA/❌
|
||||||
- -/✅
|
- NA/✅
|
||||||
- -/❌
|
- NA/❌
|
||||||
- -/❌
|
- NA/❌
|
||||||
- -/✅
|
- NA/✅
|
||||||
- -/✅
|
- NA/✅
|
||||||
*
|
*
|
||||||
- hipRAND (:doc:`details <hiprand:api-reference/data-type-support>`)
|
- :doc:`hipRAND <hiprand:api-reference/data-type-support>`
|
||||||
- -/❌
|
- NA/❌
|
||||||
- -/❌
|
- NA/❌
|
||||||
- -/✅
|
- NA/✅
|
||||||
- -/❌
|
- NA/❌
|
||||||
- -/❌
|
- NA/❌
|
||||||
- -/✅
|
- NA/✅
|
||||||
- -/✅
|
- NA/✅
|
||||||
*
|
*
|
||||||
- rocPRIM (:doc:`details <rocprim:reference/data-type-support>`)
|
- :doc:`rocPRIM <rocprim:reference/data-type-support>`
|
||||||
- ❌/❌
|
- ❌/❌
|
||||||
- ❌/❌
|
- ❌/❌
|
||||||
- ✅/✅
|
- ✅/✅
|
||||||
@@ -532,7 +536,7 @@ detailed description.
|
|||||||
- ✅/✅
|
- ✅/✅
|
||||||
- ✅/✅
|
- ✅/✅
|
||||||
*
|
*
|
||||||
- hipCUB (:doc:`details <hipcub:api-reference/data-type-support>`)
|
- :doc:`hipCUB <hipcub:api-reference/data-type-support>`
|
||||||
- ❌/❌
|
- ❌/❌
|
||||||
- ❌/❌
|
- ❌/❌
|
||||||
- ✅/✅
|
- ✅/✅
|
||||||
@@ -541,7 +545,7 @@ detailed description.
|
|||||||
- ✅/✅
|
- ✅/✅
|
||||||
- ✅/✅
|
- ✅/✅
|
||||||
*
|
*
|
||||||
- rocThrust (:doc:`details <rocthrust:data-type-support>`)
|
- :doc:`rocThrust <rocthrust:data-type-support>`
|
||||||
- ❌/❌
|
- ❌/❌
|
||||||
- ❌/❌
|
- ❌/❌
|
||||||
- ⚠️/⚠️
|
- ⚠️/⚠️
|
||||||
@@ -550,9 +554,14 @@ detailed description.
|
|||||||
- ✅/✅
|
- ✅/✅
|
||||||
- ✅/✅
|
- ✅/✅
|
||||||
|
|
||||||
|
.. note::
|
||||||
|
|
||||||
|
As random number generation libraries, rocRAND and hipRAND only specify output
|
||||||
|
data types for the random values they generate, with no need for input data
|
||||||
|
types.
|
||||||
|
|
||||||
Libraries internal calculations type support
|
Libraries internal calculations type support
|
||||||
-------------------------------------------------------------------------------
|
--------------------------------------------
|
||||||
|
|
||||||
The following tables list ROCm library support for specific internal data types.
|
The following tables list ROCm library support for specific internal data types.
|
||||||
Refer to the corresponding library data type support page for a detailed
|
Refer to the corresponding library data type support page for a detailed
|
||||||
@@ -573,7 +582,7 @@ description.
|
|||||||
- int32
|
- int32
|
||||||
- int64
|
- int64
|
||||||
*
|
*
|
||||||
- hipSPARSELt (:doc:`details <hipsparselt:reference/data-type-support>`)
|
- :doc:`hipSPARSELt <hipsparselt:reference/data-type-support>`
|
||||||
- ❌
|
- ❌
|
||||||
- ❌
|
- ❌
|
||||||
- ✅
|
- ✅
|
||||||
@@ -596,7 +605,7 @@ description.
|
|||||||
- float32
|
- float32
|
||||||
- float64
|
- float64
|
||||||
*
|
*
|
||||||
- hipSPARSELt (:doc:`details <hipsparselt:reference/data-type-support>`)
|
- :doc:`hipSPARSELt <hipsparselt:reference/data-type-support>`
|
||||||
- ❌
|
- ❌
|
||||||
- ❌
|
- ❌
|
||||||
- ❌
|
- ❌
|
||||||
|
|||||||
Reference in New Issue
Block a user