You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Ubuntu下编译适配AMD GCN的Clang/LLVM遇头文件缺失问题求助

解决编译适配AMD GCN的LLVM/Clang时HIP程序头文件缺失问题

问题根源分析

你遇到的一系列头文件错误(hip/hip_runtime.h、<thread>、__config_site)本质是两个核心问题:

  1. 手动指定主机头路径导致依赖混乱,针对amdgcn-amd-amdhsa目标的编译需要使用适配该GPU架构的libcxx,而非主机系统的标准库。
  2. 初始LLVM编译配置未正确生成针对AMDGPU目标的libcxx头文件与库,导致编译HIP程序时无法找到对应架构的依赖。

修复步骤

1. 重新配置LLVM编译参数

确保libcxx/libcxxabi针对amdgcn-amd-amdhsa目标编译,并指定安装路径方便后续引用:

cmake -S llvm-project/llvm -B llvm-project/build \
  -DCMAKE_BUILD_TYPE=Release \
  -DLLVM_ENABLE_PROJECTS="clang;lld" \
  -DCMAKE_CXX_COMPILER=g++ \
  -DCMAKE_C_COMPILER=gcc \
  -G "Unix Makefiles" \
  -DLLVM_TARGETS_TO_BUILD="AMDGPU" \
  -DLLVM_RUNTIME_TARGETS="amdgcn-amd-amdhsa" \
  -DLLVM_ENABLE_RUNTIMES="libcxx;libcxxabi" \
  -DLIBCXX_TARGET_TRIPLE=amdgcn-amd-amdhsa \
  -DLIBCXXABI_TARGET_TRIPLE=amdgcn-amd-amdhsa \
  -DCMAKE_INSTALL_PREFIX=/path/to/your/llvm-install

替换/path/to/your/llvm-install为你想安装LLVM的自定义路径,比如~/llvm-amdgcn。

2. 编译并安装LLVM与libcxx

用多线程加速编译,完成后安装到指定路径:

cmake --build llvm-project/build --target install -j$(nproc)

3. 正确编译HIP程序

使用你编译好的clang,指定目标三元组,同时关联ROCm的HIP组件与适配AMDGPU的libcxx:

/path/to/your/llvm-install/bin/clang++ \
  --target=amdgcn-amd-amdhsa \
  --sysroot=/opt/rocm/llvm/lib/clang/$(/path/to/your/llvm-install/bin/clang --version | grep version | awk '{print $3}')/lib/linux/amdgcn-amd-amdhsa \
  -I/opt/rocm/include \
  -L/opt/rocm/lib \
  -L/path/to/your/llvm-install/lib \
  -o add add.cpp \
  -lamdhip64

如果你的ROCm安装路径不是/opt/rocm,请对应修改所有相关路径。

关键说明

  • 不要手动添加主机系统的include/c++/v1路径:针对AMDGPU目标的编译必须使用专门编译的libcxx,主机标准库无法适配GPU架构。
  • __config_site是libcxx编译时生成的架构专属配置文件,只有完成LLVM与libcxx的安装后,才能在指定的安装路径中找到它。
  • 确保你的主机gcc/g++版本不低于10.0,满足LLVM 16的编译要求。

内容的提问来源于stack exchange,提问作者The Noderinator

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.05 20:35:25