快速结论:该报错通常发生在 Vulkan 后端下运行 Qwen 3.8 Flash Next(qwen4exp)模型,且预填充批大小(ubatch)与 KV 缓存深度乘积过大导致线程组调度超出 GPU 驱动上限时。优先排查并降低 ubatch 或上下文长度,使 n_ubatch × n_ctx 保持在约 33M 以下。
适用环境:llama.cpp(约 b10760-10775 构建版本)、Vulkan 后端、Windows 11;已确认受影响的显卡为 Intel Arc A770 16GB(原始报告)及 Arc Pro B65 32GB / B70(评论确认)。驱动版本 32.0.101.8974。模型为 Qwen 3.8 Flash Next(qwen4exp 架构)。
最快修复方案:暂无确认的一步修复方案。评论中经验证的可行方法是限制 n_ubatch × n_ctx 小于约 3300 万,例如使用 -ub 1024 -c 30720 可以稳定运行。
注意事项:该问题仍标记为 unconfirmed,官方维护者在 b10775 构建上无法复现(因其测试参数恰好位于临界值以下)。降低 ubatch 会显著降低 prefill 吞吐(评论显示 ub 4096 时可达到约 280 pp/token,而 ub 1024 性能更低),仅建议作为规避手段,非最终修复。
问题场景
用户在 Windows 上使用 llama.cpp 的 Vulkan 后端,以 Intel Arc A770 16GB(搭配 i5-13600K)运行 Qwen 3.8 Flash Next(qwen4exp)模型的 llama-cli / llama-server 推理。当上下文长度在 25% 以上且 batch 超过 512/512 时进程崩溃;或在较高 batch size 下即使较短上下文也会触发。后续评论在 Arc Pro B65/B70 上以 llama-bench 完整复现。
报错原文
C:\llama.cpp\ggml\src\ggml-vulkan\ggml-vulkan.cpp:8290: GGML_ASSERT(wg0 device->properties.limits.maxComputeWorkGroupCount[0] && wg1 device->properties.limits.maxComputeWorkGroupCount[1] && wg2 device->properties.limits.maxComputeWorkGroupCount[2]) failed
原因分析
这不是模型计算路径的正确性问题,而是 Vulkan 后端调度尺寸限制。触发崩溃的 dispatch 其线程组数量大致随 n_ubatch × kv_len / 512 增长;当该值超过 GPU 驱动报告的 maxComputeWorkGroupCount[*](此驱动为 65535)即约 ub × kv ≈ 33M 时,ggml-vulkan.cpp 中的断言失败。该 dispatch 是 qwen4exp 架构特有的,评论确认 dense Qwen3.8 或 qwen3next 在相同 ub/ctx 下不会触发。
环境排查
- Vulkan 后端是否启用:输出中应包含
ggml_vulkan: Found N Vulkan devices - Intel 显卡及驱动版本:受影响设备为 Arc A770、Arc Pro B65/B70,驱动 32.0.101.8974 上确认触发
- llama.cpp 版本:b10760(0f3a71be1)、b10775(67a17c17c)均受影响
- 模型架构:确认加载的是 qwen4exp/Qwen3.8 Flash Next 而非 dense 版本
- 关键运行参数:
-ub(ubatch)、-c(context)、-d(llama-bench 的 KV 深度)乘积关系
解决步骤
- 确认当前运行的 ubatch 和 context 设置,计算
n_ubatch × n_ctx是否接近或超过 33,000,000。 - 可优先尝试:将 ubatch 降至 1024 并保持 context 不超过 30720(即
-ub 1024 -c 30720),评论验证在该配置下直至 28K 深度均可稳定运行。 - 如果性能优先,可尝试
-ub 2048并将 context 限制在约 14K tokens 以内,或-ub 4096配约 8K context。 - 若在 llama-bench 中复现,请使用类似
-d 16384(使 ub × depth > 33M),低于该临界值的测试不会触发;具体命令参考:llama-bench.exe -m Qwen3.8-Flash-Next-UD-Q3_K_XL-00001-of-00003.gguf -ngl 99 -ncmoe 25 -fa 1 -b 4096 -ub 4096 -d 16384 -p 512 -n 0 -r 1 --no-warmup - 等待上游 fix:评论建议参考 #26595 的分块 dispatch 方式(通过 row_base 风格 push constant 拆分调度),使单次 launch 不超过每维线程组上限。
验证方法
将 ubatch/context 参数调整至 ub × kv < 33M 后重新运行原推理命令或 llama-bench,应不再出现 GGML_ASSERT(wg0 <= ...) 崩溃。对比临界值附近的参数可确认边界:例如 ub 1024 配 d 30720+ 应触发,而 ub 1024 配 d 约 30720 以内应稳定通过。修改前建议记录原 ub 与最大可运行 context 的对应关系以便确认。
参考来源
AI 工具推荐
想把多个 AI 模型放在一个入口?
GamsGo AI 集成 ChatGPT、DeepSeek、Gemini、Claude、Midjourney、Veo 等常用模型,适合写作、绘图、视频和日常 AI 工作流。
推广链接:通过此链接购买,我可能获得佣金,不影响你的价格。
这个方案解决了吗?
可以继续搜索完整报错,或查看同一工具的其他排查指南。


![[v0.20.0] cp38-abi3 wheels contains cp312 bindings](https://www.chat-gpts.plus/wp-content/uploads/2026/09/41487-1b3c2932-768x403.jpg)