mirror of
https://github.com/llvm/llvm-project.git
synced 2025-04-25 02:36:06 +00:00

So far, these macros can be used in contexts where no meaningful wavefront size is available. We therefore deprecate these macros, to replace them with a more resilient interface to access wavefront size information where it is available. Reapplies #112849 with a fix for the non-hermetic clang test that failed on Mac after the revert in #115499. For SWDEV-491529.
64 lines
2.1 KiB
ReStructuredText
64 lines
2.1 KiB
ReStructuredText
.. raw:: html
|
|
|
|
<style type="text/css">
|
|
.none { background-color: #FFCCCC }
|
|
.part { background-color: #FFFF99 }
|
|
.good { background-color: #CCFF99 }
|
|
</style>
|
|
|
|
.. role:: none
|
|
.. role:: part
|
|
.. role:: good
|
|
|
|
.. contents::
|
|
:local:
|
|
|
|
==============
|
|
AMDGPU Support
|
|
==============
|
|
|
|
Clang supports OpenCL, HIP and OpenMP on AMD GPU targets.
|
|
|
|
|
|
Predefined Macros
|
|
=================
|
|
|
|
|
|
.. list-table::
|
|
:header-rows: 1
|
|
|
|
* - Macro
|
|
- Description
|
|
* - ``__AMDGPU__``
|
|
- Indicates that the code is being compiled for an AMD GPU.
|
|
* - ``__AMDGCN__``
|
|
- Defined if the GPU target is AMDGCN.
|
|
* - ``__R600__``
|
|
- Defined if the GPU target is R600.
|
|
* - ``__<ArchName>__``
|
|
- Defined with the name of the architecture (e.g., ``__gfx906__`` for the gfx906 architecture).
|
|
* - ``__<GFXN>__``
|
|
- Defines the GFX family (e.g., for gfx906, this macro would be ``__GFX9__``).
|
|
* - ``__amdgcn_processor__``
|
|
- Defined with the processor name as a string (e.g., ``"gfx906"``).
|
|
* - ``__amdgcn_target_id__``
|
|
- Defined with the target ID as a string.
|
|
* - ``__amdgcn_feature_<feature-name>__``
|
|
- Defined for each supported target feature. The value is 1 if the feature is enabled and 0 if it is disabled. Allowed feature names are sramecc and xnack.
|
|
* - ``__AMDGCN_CUMODE__``
|
|
- Defined as 1 if the CU mode is enabled and 0 if the WGP mode is enabled.
|
|
* - ``__AMDGCN_UNSAFE_FP_ATOMICS__``
|
|
- Defined if unsafe floating-point atomics are allowed.
|
|
* - ``__AMDGCN_WAVEFRONT_SIZE__``
|
|
- Defines the wavefront size. Allowed values are 32 and 64 (deprecated).
|
|
* - ``__AMDGCN_WAVEFRONT_SIZE``
|
|
- Alias to ``__AMDGCN_WAVEFRONT_SIZE__`` (deprecated).
|
|
* - ``__HAS_FMAF__``
|
|
- Defined if FMAF instruction is available (deprecated).
|
|
* - ``__HAS_LDEXPF__``
|
|
- Defined if LDEXPF instruction is available (deprecated).
|
|
* - ``__HAS_FP64__``
|
|
- Defined if FP64 instruction is available (deprecated).
|
|
|
|
Please note that the specific architecture and feature names will vary depending on the GPU. Also, some macros are deprecated and may be removed in future releases.
|