Misc. bug: HIP CI is currently broken, likely by 23862

在 llama.cpp 项目的 HIP CI 流程中,使用 ROCm 工具链编译 ggml-hip 目标时触发问题。用户可能在使用 AMD GPU 进行推理时,通过 Docker 或直接编译的方式运行构建。

Misc. bug: HIP CI is currently broken, likely by 23862

Misc. bug: HIP CI is currently broken, likely by 23862

快速结论:此报错发生在 llama.cpp 的 HIP CI 构建过程中,主要由 PR #23862 引入的编译错误导致。优先排查是否启用了 -ffast-math 并缺少 -fno-finite-math-only 选项。

问题场景

在 llama.cpp 项目的 HIP CI 流程中,使用 ROCm 工具链编译 ggml-hip 目标时触发问题。用户可能在使用 AMD GPU 进行推理时,通过 Docker 或直接编译的方式运行构建。

报错原文

error: use of undeclared identifier 'INFINITY'

原因分析

可能原因是 PR #23862 的提交 d06ddd35896e2748fc95ccdb46fb260c5af2c029 在 CMake 编译选项中启用了 -ffast-math,该选项会抑制 INFINITY 宏的定义。当 HIP 编译器使用 -ffast-math 时,会导致 INFINITY 未声明,从而引发编译失败。

环境排查

  • 确认 ROCm 版本(建议使用 7.2.1 或 7.2.4)。
  • 确认 llama.cpp 的 Git 提交版本是否为 d06ddd35896e2748fc95ccdb46fb260c5af2c029
  • 确认编译器命令行中是否包含 -ffast-math 选项。
  • 确认是否在 Docker 环境下使用 rocm/dev-ubuntu-22.04:7.2.1 镜像。

解决步骤

  1. 定位到文件 ggml/src/ggml-hip/CMakeLists.txt
  2. 在已有的 -ffast-math 编译选项后添加 -fno-finite-math-only,确保 INFINITY 宏被正确声明。
  3. 重新运行 CMake 配置和构建命令。
  4. 或者,直接参考 PR #25373 中的修复内容,该 PR 已将此修复合并到主分支。

验证方法

成功完成构建,无 INFINITY 相关的编译错误。可通过运行 cmake --build build --target ggml-hip -j"$(nproc)" 来确认。

参考来源

ggml-org/llama.cpp #25361

GamsGo AI

AI 工具推荐

想把多个 AI 模型放在一个入口?

GamsGo AI 集成 ChatGPT、DeepSeek、Gemini、Claude、Midjourney、Veo 等常用模型,适合写作、绘图、视频和日常 AI 工作流。

了解 GamsGo AI

推广链接:通过此链接购买,我可能获得佣金,不影响你的价格。

celebrityanime
celebrityanime
文章: 15099

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注