Error Missing libomp.so ( Strix Halo )

该报错发生在 Text Generation WebUI 加载 GGUF 模型失败时,核心原因是随 WebUI 分发的 llama.cpp 预编译二进制(llama-cpp-binaries)在运行时找不到系统共享库 libomp.so,导致进程以 exit code 127 退出。优先排查方向:确

快速结论:该报错发生在 Text Generation WebUI 加载 GGUF 模型失败时,核心原因是随 WebUI 分发的 llama.cpp 预编译二进制(llama-cpp-binaries)在运行时找不到系统共享库 libomp.so,导致进程以 exit code 127 退出。优先排查方向:确认系统中是否安装 libomp,并核对官方预编译二进制与当前操作系统环境的兼容性。

适用环境:Text Generation WebUI 版本 3.18;操作系统为 Linux(openSUSE 发行版,用户已在本机与 conda 环境中放置模块但未被程序识别);硬件为 AMD Strix Halo 架构(GMKtec Evo-X2,Ryzen AI Max 395,128GB);显卡驱动需使用 ROCm 及对应 nightly 版本支持 gfx1151 目标。

最快修复方案:暂无确认的一步修复方案。Issue 中没有提供已验证可用的补丁或脚本;最完整的可行路径是:进入 WebUI 的 conda 环境,手动拉取 oobabooga 维护的 llama.cpp 源码,并按自己的 ROCm/HIP 环境重新编译安装 llama-cpp-python(包含 HIP BLAS、gfx1151 目标与 ROCm WMMA 相关选项)。该操作在 Issue 中属于用户自述有效的方案,但并非一键式官方修复。

注意事项:该重编译方案在评论中只是单方用户记录,未得到官方维护者验证;截至 Issue 关闭(2025-11-27),官方仍建议依赖系统安装 libomp 或等待 WebUI 更新预编译产物。Strix Halo 属较新架构,需要 ROCm nightly 驱动与特定编译参数,直接使用通用预编译二进制无法覆盖该场景。

问题场景

用户在 Text Generation WebUI(新版本 3.18)中运行 ./start_linux.sh,尝试加载此前可正常工作的 GGUF 模型(如 Magistral-Small-2509-BF16.gguf)。报错触发于模型加载阶段:WebUI 调用 llama.cpp 预编译二进制 llama-server 时发生动态库缺失,进程随即终止,无法完成加载。

报错原文

/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
ERROR    Error loading the model with llama.cpp: Server process terminated unexpectedly with exit code: 127

原因分析

可能原因:Text Generation WebUI 通过 llama-cpp-binaries 仓库分发预编译的 llama.cpp 可执行文件(llama-server),该二进制在运行时会动态链接系统级共享库。在 openSUSE (Tumbleweed) 环境下,系统自带的 LLVM/Clang 库因命名变更或版本调整,未提供 libomp.so(仅提供带版本号后缀的文件),导致程序无法完成动态链接。

用户曾尝试将缺失模块复制到系统根目录及 conda 环境中,但 WebUI 的 Python 虚拟环境(installer_files/env)并不会自动继承系统级库路径,因此该尝试未奏效。Strix Halo 的 ROCm 驱动仍依赖 nightly 版本也进一步增加了兼容性负担。

环境排查

  • 操作系统是否为 openSUSE Tumbleweed(或其他使用新版本 LLVM 打包策略的发行版)
  • 确认系统已安装 libomp 但文件名为 libomp.so.1,缺少无版本号的 libomp.so 链接文件
  • 确认 Text Generation WebUI 使用官方脚本创建的内置 conda 环境,路径为 installer_files/env,Python 版本为 3.11
  • 如果涉及 AMD Strix Halo,需要确认使用的 ROCm 及 PyTorch 为 gfx1151 架构的 nightly 构建版本(非稳定版)
  • 确认是否已安装 ROCm 开发核心包与 HIP 相关组件,用于本地源码编译

解决步骤

  1. 运行 ./start_linux.sh,等待首次依赖安装完成后按 Ctrl+C 退出,返回终端提示符。
  2. 在 Text Generation WebUI 所在目录下,先尝试简单的系统层修补:确认 libomp.so 是否存在软链接(如 /usr/lib64/libomp.so),若缺失可考虑补建链接;但此操作需管理员权限且有系统风险,需谨慎评估。
  3. 如果系统修补不可行或不生效,进入 WebUI 内置环境:conda activate installer_files/env(需先确保 conda 可用)。
  4. 获取随 WebUI 配发的 llama.cpp 变体源码(oobabooga 维护的 llama-cpp-binaries 仓库),并补齐子模块;如果拉取过程中出现 SSH 地址错误,可用对应 HTTPS 地址单独拉取上游 llama.cpp 源码后放入正确位置。
  5. 使用针对 AMD / HIP 的编译参数(如 LLAMA_HIPBLAS、GPU_TARGETS=gfx1151、GGML_HIP 及可选的 ROCm WMMA 相关开关)执行 pip install -v . 进行本地重编译,替换原有的 llama-cpp-python 预编译包。
  6. 如果 Strix Halo GPU 仍无法被识别,需要同步更新 ROCm 与 PyTorch 到 nightly 版本:使用 ROCm 官方 nightly 仓库地址(gfx1151 架构)在虚拟环境中安装 rocm[libraries,devel] 以及 torchtorchaudiotorchvision 等核心包,覆盖原环境内的旧版本。
  7. 完成后退出 conda 环境,重新运行 ./start_linux.sh,再次尝试加载原 GGUF 模型。

验证方法

重新启动 Text Generation WebUI 并加载此前失败的 GGUF 模型,观察启动日志是否仍出现 “error while loading shared libraries”、“exit code: 127” 或 “Error loading the model with llama.cpp” 等字样。若模型成功加载且日志中出现 GPU 层数(gpu_layers)等相关信息,则说明问题已解决。另可观察 WebUI 界面是否正常进入模型对话/生成状态,以此确认模型推理链路完整可用。

参考来源

oobabooga/textgen #7326

GamsGo AI

AI 工具推荐

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

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

了解 GamsGo AI

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

这个方案解决了吗?

celebrityanime
celebrityanime
文章: 22017

发表回复

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