AMDGPU 支持

Clang 在 AMD GPU 目标上支持 OpenCL、HIP 和 OpenMP。

预定义宏

描述

__AMDGPU__

指示代码正在为 AMD GPU 编译。

__AMDGCN__

如果 GPU 目标是 AMDGCN,则定义。

__R600__

如果 GPU 目标是 R600,则定义。

__<ArchName>__

使用架构名称定义(例如,__gfx906__ 用于 gfx906 架构)。

__<GFXN>__

定义 GFX 系列(例如,对于 gfx906,此宏将是 __GFX9__)。

__amdgcn_processor__

使用处理器名称作为字符串定义(例如,"gfx906")。

__amdgcn_target_id__

使用目标 ID 作为字符串定义。

__amdgcn_feature_<feature-name>__

为每个受支持的目标功能定义。如果启用该功能,则值为 1;如果禁用该功能,则值为 0。允许的功能名称为 sramecc 和 xnack。

__AMDGCN_CUMODE__

如果启用 CU 模式,则定义为 1;如果启用 WGP 模式,则定义为 0。

__AMDGCN_UNSAFE_FP_ATOMICS__

如果允许不安全的浮点原子操作,则定义。

__AMDGCN_WAVEFRONT_SIZE__

定义波前大小。允许的值为 32 和 64。

__AMDGCN_WAVEFRONT_SIZE

__AMDGCN_WAVEFRONT_SIZE__ 的别名。即将弃用。

__HAS_FMAF__

如果 FMAF 指令可用,则定义(已弃用)。

__HAS_LDEXPF__

如果 LDEXPF 指令可用,则定义(已弃用)。

__HAS_FP64__

如果 FP64 指令可用,则定义(已弃用)。

请注意,具体架构和功能名称将根据 GPU 而有所不同。此外,某些宏已弃用,可能会在将来的版本中删除。