llama.cpp 项目发布了版本 b10839,解决了因张量行检索操作中的未对齐偏移而在 Vulkan 后端引发的严重崩溃问题。此前,在使用带有非零视图偏移的 `ggml_view` 时,Qwen3-TTS 和 Qwen3-VL 等模型会失败,因为着色器会对相对于 `minStorageBufferOffsetAlignment` 的对齐违规进行断言。此次更新在量化和非量化路径中实现了对齐偏移的原生支持,从而消除了对 CPU 回退的需求。
关键技术变更包括:
- 将缓冲区偏移绑定到靠近视图偏移的对齐位置,并通过推送常量传递调整后的未对齐值,以防止截断错误。
- 向 `ggml_vk_tensor_subbuffer` 添加 `use_view_offs` 参数,以正确处理 UMA 和独立 GPU 上的物理偏移。
- 引入 `ggml_vk_get_adjusted_misalign` 以找到满足存储缓冲区对齐要求的最小有效未对齐值。
- 移除 `supports_op()` 中之前的防御性 CPU 回退,因为 Vulkan 后端现在可以原生处理这些情况。
- 增加针对多种数据类型中非零视图偏移的全面后端测试覆盖,在 NVIDIA RTX 5060 Ti 上所有 223 个 GET_ROWS 测试均通过。
此修复确保了依赖复杂张量视图和 KV 缓存切片的模型在 Vulkan 硬件上稳定执行,无需进行 CPU 卸载。