Author: Yaxun (Sam) Liu Date: 2023-07-07T10:35:34-04:00 New Revision: 051cb7c1f57dd769ad05a5dc1d734d2ecd46530c
URL: https://github.com/llvm/llvm-project/commit/051cb7c1f57dd769ad05a5dc1d734d2ecd46530c DIFF: https://github.com/llvm/llvm-project/commit/051cb7c1f57dd769ad05a5dc1d734d2ecd46530c.diff LOG: [amdgpu] start documenting amdgpu support by clang Reviewed by: Matt Arsenault, Johannes Doerfert, Jacob Lambert Differential Revision: https://reviews.llvm.org/D154133 Added: clang/docs/AMDGPUSupport.rst Modified: Removed: ################################################################################ diff --git a/clang/docs/AMDGPUSupport.rst b/clang/docs/AMDGPUSupport.rst new file mode 100644 index 00000000000000..e63c0e1ba7d67b --- /dev/null +++ b/clang/docs/AMDGPUSupport.rst @@ -0,0 +1,63 @@ +.. 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. + * - ``__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. _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits