Eval bug: GGML_ASSERT(addr) failed when using MTP + Vulkan + –no-mmap on qwen 3.6 27b q8

用户在 Windows 系统上使用 llama-cli 或 llama-server(版本 9484,基于 Clang 19.1.5 构建),通过 Vulkan 后端,以 Ryzen HX 370 集成 GPU 运行 Qwen 3.6 27b Q8 模型时触发。复现命令中包含 --no-mmap 和

Eval bug: GGML_ASSERT(addr) failed when using MTP + Vulkan + --no-mmap on qwen 3.6 27b q8

Eval bug: GGML_ASSERT(addr) failed when using MTP + Vulkan + –no-mmap on qwen 3.6 27b q8

快速结论:该报错通常发生在同时启用 MTP(Multi-Token Prediction)和 –no-mmap 参数时。优先排查方法是尝试移除 –no-mmap 或添加 –fit off 参数。

问题场景

用户在 Windows 系统上使用 llama-cli 或 llama-server(版本 9484,基于 Clang 19.1.5 构建),通过 Vulkan 后端,以 Ryzen HX 370 集成 GPU 运行 Qwen 3.6 27b Q8 模型时触发。复现命令中包含 –no-mmap 和 MTP 相关参数(–spec-type draft-mtp,–spec-draft-n-max 2)。另一用户在 Ubuntu 22.04 上使用 Nvidia GB10 显卡(CUDA 13.0,驱动 580.159.03),通过 Docker 容器运行 StepFun 3.7 Flash 模型时也复现了相同问题。

报错原文

GGML_ASSERT(addr) failed

(完整报错日志见 Issue 附件,核心错误为 GGML_ASSERT 断言失败。用户复现时,问题仅在同时使用 MTP 和 –no-mmap 时出现。)

原因分析

可能原因:当同时使用 MTP 和 –no-mmap 时,内存映射机制出现冲突。–no-mmap 禁用内存映射文件,而 MTP 在 draft 模型加载或推理过程中可能依赖于 mmap 特性(如统一内存管理)。当两者结合时,导致 ggml 内部地址断言失败。移除 –no-mmap 或添加 –fit off 可绕过此问题。

环境排查

  • llama.cpp 版本:9484(63e66fdd2),编译器 Clang 19.1.5(Windows)/ GCC 14(Linux Docker)
  • 后端:Vulkan(Windows)/ CUDA 13.0(Linux)
  • 显卡:Ryzen HX 370 集成 GPU / Nvidia GB10(ThinkStation PGX 变体)
  • 操作系统:Windows / Ubuntu 22.04
  • 模型:Qwen 3.6 27b Q8 / StepFun 3.7 Flash IQ4_XS + Q8 MTP draft
  • Docker 配置(Linux 场景):基础镜像 nvidia/cuda:13.3.0(但实际 CUDA 版本为 13.0)

解决步骤

  1. 优先尝试:移除 –no-mmap 参数,直接使用默认 mmap 行为。
  2. 或:保留 –no-mmap 但添加 –fit off 参数,禁用自动内存适配。
  3. 确认问题仅在 MTP 和 –no-mmap 同时启用时出现。如果问题消失,则确认该冲突是根本原因。
  4. 在 Linux Docker 环境下,注意环境变量 LLAMA_ARG_MMAP=disabled 会对应启用 –no-mmap,建议将其注释掉或设为 enabled。

验证方法

使用报错的原始命令,但移除 –no-mmap 或添加 –fit off,确认模型能正常加载并推理,不再出现 GGML_ASSERT 断言失败。

参考来源

ggml-org/llama.cpp #24280

GamsGo AI

AI 工具推荐

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

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

了解 GamsGo AI

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

celebrityanime
celebrityanime
文章: 13985

发表回复

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