mirror of
https://github.com/ROCm/composable_kernel.git
synced 2026-04-19 22:39:03 +00:00
Docs: Add precision support reference page (#1973)
* Docs: Add precision support reference page * edit of the precision type content * added more description on scalars --------- Co-authored-by: spolifroni-amd <sandra.polifroni@amd.com> Co-authored-by: Aviral Goel <aviral.goel@amd.com>
This commit is contained in:
2
.gitignore
vendored
2
.gitignore
vendored
@@ -55,6 +55,8 @@ _static/
|
||||
_templates/
|
||||
_toc.yml
|
||||
_doxygen/
|
||||
docs/doxygen/html
|
||||
docs/doxygen/xml
|
||||
|
||||
# JetBrains IDE
|
||||
.idea/
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
Composable Kernel User Guide
|
||||
********************************************************************
|
||||
|
||||
The Composable Kernel library provides a programming model for writing performance critical kernels for machine learning workloads across multiple architectures including GPUs and CPUs, through general purpose kernel languages such as `HIP C++ <https://rocm.docs.amd.com/projects/HIP/en/latest/index.html>`_.
|
||||
The Composable Kernel library provides a programming model for writing performance critical kernels for machine learning workloads across multiple architectures including GPUs and CPUs, through general purpose kernel languages such as `HIP C++ <https://rocm.docs.amd.com/projects/HIP/en/latest/index.html>`_.
|
||||
|
||||
The Composable Kernel repository is located at `https://github.com/ROCm/composable-kernel <https://github.com/ROCm/composable-kernel>`_.
|
||||
|
||||
@@ -32,10 +32,12 @@ The Composable Kernel repository is located at `https://github.com/ROCm/composab
|
||||
|
||||
.. grid-item-card:: Reference
|
||||
|
||||
* :doc:`Composable Kernel supported scalar types <./reference/Composable_Kernel_supported_scalar_types>`
|
||||
* :doc:`Composable Kernel custom types <./reference/Composable_Kernel_custom_types>`
|
||||
* :doc:`Composable Kernel vector utilities <./reference/Composable_Kernel_vector_utilities>`
|
||||
* :ref:`api-reference`
|
||||
* :ref:`wrapper`
|
||||
|
||||
|
||||
To contribute to the documentation refer to `Contributing to ROCm <https://rocm.docs.amd.com/en/latest/contribute/contributing.html>`_.
|
||||
|
||||
You can find licensing information on the `Licensing <https://rocm.docs.amd.com/en/latest/about/license.html>`_ page.
|
||||
|
||||
39
docs/reference/Composable_Kernel_custom_types.rst
Normal file
39
docs/reference/Composable_Kernel_custom_types.rst
Normal file
@@ -0,0 +1,39 @@
|
||||
.. meta::
|
||||
:description: Composable Kernel supported custom types
|
||||
:keywords: composable kernel, custom, data types, support, CK, ROCm
|
||||
|
||||
******************************************************
|
||||
Composable Kernel custom data types
|
||||
******************************************************
|
||||
|
||||
Composable Kernel supports the use of custom types that provide a way to implement specialized numerical formats.
|
||||
|
||||
To use custom types, a C++ type that implements the necessary operations for tensor computations needs to be created. These should include:
|
||||
|
||||
* Constructors and initialization methods
|
||||
* Arithmetic operators if the type will be used in computational operations
|
||||
* Any conversion functions needed to interface with other parts of an application
|
||||
|
||||
For example, to create a complex half-precision type:
|
||||
|
||||
.. code:: cpp
|
||||
|
||||
struct complex_half_t
|
||||
{
|
||||
half_t real;
|
||||
half_t img;
|
||||
};
|
||||
|
||||
struct complex_half_t
|
||||
{
|
||||
using type = half_t;
|
||||
type real;
|
||||
type img;
|
||||
|
||||
complex_half_t() : real{type{}}, img{type{}} {}
|
||||
complex_half_t(type real_init, type img_init) : real{real_init}, img{img_init} {}
|
||||
};
|
||||
|
||||
Custom types can be particularly useful for specialized applications such as complex number arithmetic,
|
||||
custom quantization schemes, or domain-specific number representations.
|
||||
|
||||
69
docs/reference/Composable_Kernel_supported_scalar_types.rst
Normal file
69
docs/reference/Composable_Kernel_supported_scalar_types.rst
Normal file
@@ -0,0 +1,69 @@
|
||||
.. meta::
|
||||
:description: Composable Kernel supported scalar types
|
||||
:keywords: composable kernel, scalar, data types, support, CK, ROCm
|
||||
|
||||
***************************************************
|
||||
Composable Kernel supported scalar data types
|
||||
***************************************************
|
||||
|
||||
The Composable Kernel library provides support for the following scalar data types:
|
||||
|
||||
.. list-table::
|
||||
:header-rows: 1
|
||||
:widths: 25 15 60
|
||||
|
||||
* - Type
|
||||
- Bit Width
|
||||
- Description
|
||||
|
||||
* - ``double``
|
||||
- 64-bit
|
||||
- Standard IEEE 754 double precision floating point
|
||||
|
||||
* - ``float``
|
||||
- 32-bit
|
||||
- Standard IEEE 754 single precision floating point
|
||||
|
||||
* - ``int32_t``
|
||||
- 32-bit
|
||||
- Standard signed 32-bit integer
|
||||
|
||||
* - ``int8_t``
|
||||
- 8-bit
|
||||
- Standard signed 8-bit integer
|
||||
|
||||
* - ``uint8_t``
|
||||
- 8-bit
|
||||
- Standard unsigned 8-bit integer
|
||||
|
||||
* - ``bool``
|
||||
- 1-bit
|
||||
- Boolean type
|
||||
|
||||
* - ``ck::half_t``
|
||||
- 16-bit
|
||||
- IEEE 754 half precision floating point with 5 exponent bits, 10 mantissa bits, and 1 sign bit
|
||||
|
||||
* - ``ck::bhalf_t``
|
||||
- 16-bit
|
||||
- Brain floating point with 8 exponent bits, 7 mantissa bits, and 1 sign bit
|
||||
|
||||
* - ``ck::f8_t``
|
||||
- 8-bit
|
||||
- 8-bit floating point (E4M3 format) with 4 exponent bits, 3 mantissa bits, and 1 sign bit
|
||||
|
||||
* - ``ck::bf8_t``
|
||||
- 8-bit
|
||||
- 8-bit brain floating point (E5M2 format) with 5 exponent bits, 2 mantissa bits, and 1 sign bit
|
||||
|
||||
* - ``ck::f4_t``
|
||||
- 4-bit
|
||||
- 4-bit floating point format (E2M1 format) with 2 exponent bits, 1 mantissa bit, and 1 sign bit
|
||||
|
||||
* - ``ck::f6_t``
|
||||
- 6-bit
|
||||
- 6-bit floating point format (E2M3 format) with 2 exponent bits, 3 mantissa bits, and 1 sign bit
|
||||
|
||||
* - ``ck::bf6_t``
|
||||
- 6-bit
|
||||
- 6-bit brain floating point format (E3M2 format) with 3 exponent bits, 2 mantissa bits, and 1 sign bit
|
||||
16
docs/reference/Composable_Kernel_vector_utilities.rst
Normal file
16
docs/reference/Composable_Kernel_vector_utilities.rst
Normal file
@@ -0,0 +1,16 @@
|
||||
.. meta::
|
||||
:description: Composable Kernel supported precision types and custom type support
|
||||
:keywords: composable kernel, precision, data types, ROCm
|
||||
|
||||
******************************************************
|
||||
Composable Kernel vector template utilities
|
||||
******************************************************
|
||||
|
||||
Composable Kernel includes template utilities for creating vector types with customizable widths. These template utilities also flatten nested vector types into a single, wider vector, preventing the creation of vectors of vectors.
|
||||
|
||||
Vectors composed of supported scalar and custom types can be created with the ``ck::vector_type`` template.
|
||||
|
||||
For example, ``ck::vector_type<float, 4>`` creates a vector composed of four floats and ``ck::vector_type<ck::half_t, 8>`` creates a vector composed of eight half-precision scalars.
|
||||
|
||||
For vector operations to be valid, the underlying types must be either a :doc:`supported scalar type <Composable_Kernel_supported_scalar_types>` or :doc:`a custom type <Composable_Kernel_custom_types>` that implements the required operations.
|
||||
|
||||
@@ -11,7 +11,7 @@ subtrees:
|
||||
title: Build and install Composable Kernel
|
||||
- file: install/Composable-Kernel-Docker.rst
|
||||
title: Composable Kernel Docker images
|
||||
|
||||
|
||||
- caption: Conceptual
|
||||
entries:
|
||||
- file: conceptual/Composable-Kernel-structure.rst
|
||||
@@ -26,6 +26,12 @@ subtrees:
|
||||
|
||||
- caption: Reference
|
||||
entries:
|
||||
- file: reference/Composable_Kernel_supported_scalar_types.rst
|
||||
title: Composable Kernel scalar types
|
||||
- file: reference/Composable_Kernel_custom_types.rst
|
||||
title: Composable Kernel custom types
|
||||
- file: reference/Composable_Kernel_vector_utilities.rst
|
||||
title: Composable Kernel vector utilities
|
||||
- file: reference/Composable-Kernel-API-reference.rst
|
||||
title: Composable Kernel API reference
|
||||
- file: reference/Composable-Kernel-wrapper.rst
|
||||
@@ -37,4 +43,3 @@ subtrees:
|
||||
title: Contributing to Composable Kernel
|
||||
- file: license.rst
|
||||
title: License
|
||||
|
||||
Reference in New Issue
Block a user