Clang supports OpenCL, HIP and OpenMP on AMD GPU targets.
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_CDNA_VERSION__ |
Defined with the CDNA version as an integer if the processor belongs to the CDNA generation. |
__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. |
__AMDGCN_WAVEFRONT_SIZE |
Alias to __AMDGCN_WAVEFRONT_SIZE__ . To be 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.