Error Missing libomp.so ( Strix Halo )

这个报错通常出现在 TextGen WebUI 加载 GGUF 模型时,llama.cpp 的 llama-server 二进制组件找不到 libomp.so 动态库。优先排查 TextGen WebUI 打包自带的 llama.cpp 二进制版本与当前系统的 libomp 依赖是否匹配。

快速结论:这个报错通常出现在 TextGen WebUI 加载 GGUF 模型时,llama.cpp 的 llama-server 二进制组件找不到 libomp.so 动态库。优先排查 TextGen WebUI 打包自带的 llama.cpp 二进制版本与当前系统的 libomp 依赖是否匹配。

适用环境:TextGen WebUI 3.18;AMD Strix Halo / GMKTec Evo-X2 128GB;系统驱动配置参考 ROCm-7-dev 方案;日志中出现的安装环境为 installer_files/env,Python 3.11;报错模型为 Magistral-Small-2509-BF16.gguf,gpu_layers=41,ctx_size=8192,cache_type=fp16。

最快修复方案:Issue 中验证通过的做法是:先运行 start_linux.sh 让 TextGen WebUI 完成自带文件安装,然后终止程序回到提示符;接着在 TextGen WebUI 目录下启用 installer_files/env 环境,从 oobabooga/llama-cpp-binaries 源码重新编译 llama.cpp,用本机 ROCm/HIP 环境替代自带的二进制组件。

注意事项:该方案依赖较新的 ROCm 驱动,Strix Halo 属于较新架构,可能需要使用 nightly 驱动;重新编译需要处理 ROCm/TheRock 相关依赖版本兼容问题,Issue 评论中也提到 Ubuntu 25.10 下 libxml 命名差异和 ROCm10 编译依赖问题;如果系统环境与 Issue 中不一致,不能保证一次成功。

问题场景

用户在 AMD Strix Halo / GMKTec Evo-X2 128GB 设备上使用 TextGen WebUI 3.18,通过 ./start_linux.sh 启动后加载之前可以正常运行的 GGUF 模型(Magistral-Small-2509-BF16.gguf)。在加载模型时,TextGen WebUI 调用的 llama.cpp 服务端进程启动失败,报错退出码为 127。

报错原文

/home/n/text-generation-webui/installer_files/env/lib/python3.11/site-packages/llama_cpp_binaries/bin/llama-server: error while loading shared libraries: libomp.so: cannot open shared object file: No such file or directory
11:25:11-175743 ERROR    Error loading the model with llama.cpp: Server process terminated unexpectedly with exit code: 127

原因分析

TextGen WebUI 在 3.18 版本中通过 llama_cpp_binaries 提供预编译的 llama.cpp 服务端二进制。该二进制在运行时需要系统或运行环境中提供 libomp.so。如果该动态库在安装环境的库搜索路径中不可用,llama-server 就会在启动阶段直接失败,表现为共享库缺失并返回退出码 127。用户提到已在根系统和 conda 环境中放置该模块,但 TextGen WebUI 仍找不到,说明二进制运行时的库搜索路径或依赖解析方式可能与用户手动安装的位置不一致。

环境排查

  • 确认 TextGen WebUI 版本是否为 3.18,以及是否通过官方 start_linux.sh 安装。
  • 确认 installer_files/env 环境中的 Python 版本,日志中为 Python 3.11。
  • 确认 llama_cpp_binaries 的实际路径,日志中为 /home/n/text-generation-webui/installer_files/env/lib/python3.11/site-packages/llama_cpp_binaries/bin/。
  • 确认系统是否已安装 libomp.so,以及在 installer_files/env 环境下 llama-server 能否找到该库。
  • 确认 AMD Strix Halo 平台使用的 ROCm 驱动版本,Issue 评论建议参考 ROCm/TheRock nightly 构建。
  • 确认当前安装的 torch、torchaudio、torchvision、rocm[libraries,devel] 是否与 Strix Halo / gfx1151 匹配。

解决步骤

  1. 先运行 ./start_linux.sh,让 TextGen WebUI 完成安装和文件准备。
  2. 安装完成后用 Ctrl+C 终止程序,回到命令行提示符。
  3. 进入 TextGen WebUI 目录,激活 installer_files/env 环境。
  4. 克隆 oobabooga 维护的 llama-cpp-binaries 源码仓库,并获取其中的 llama.cpp 源码。
  5. 根据本机 ROCm/HIP 环境,通过 CMake 参数重新编译并安装 llama.cpp。Issue 评论中给出了一条针对 Strix Halo 的示例编译参数:CMAKE_ARGS="-DLLAMA_HIPBLAS=ON -DGPU_TARGETS=gfx1151 -DGGML_HIP=ON -DGGML_HIP_ROCWMMA_FATTN=ON",用于启用 HIPBLAS、指定 gfx1151 目标并开启 ROCWMMA FATTN。
  6. 编译安装完成后退出 installer_files/env 环境,再重新启动 TextGen WebUI 并加载 GGUF 模型。
  7. 如果仍缺少 ROCm 相关运行库,可按 Issue 评论中的思路,在 installer_files/env 环境中从 ROCm/TheRock 的 gfx1151 nightly 源更新 rocm[libraries,devel] 以及 torch、torchaudio、torchvision 等包,然后退出环境并重新启动 WebUI。

验证方法

重新启动 TextGen WebUI 后加载同一个 GGUF 模型(Magistral-Small-2509-BF16.gguf,gpu_layers=41,ctx_size=8192,cache_type=fp16)。如果模型能够成功加载,且不再出现 llama-server 因 libomp.so 缺失而退出码 127 的报错,即说明问题已解决。Issue 评论反馈,在按上述方式重编 llama.cpp 并更新 ROCm/Torch 后,Strix Halo 可以正常调用。

参考来源

oobabooga/textgen #7326

GamsGo AI

AI 工具推荐

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

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

了解 GamsGo AI

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

这个方案解决了吗?

celebrityanime
celebrityanime
文章: 25306

发表回复

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