llama.cpp b9933 版本解决了导致 Q6_K 量化权重在维度 ne01 不是 128 的倍数时出现乱码输出的关键 OpenCL 问题。此错误影响了 granite-3.1-3b-a800m-instruct 等模型,其中奇数字典大小会在 Adreno GPU 上触发错误的内存处理。

修复方案在 ne01 % 128 != 0 时将密集矩阵乘法从 noshuffle 路径路由出去,对解码使用扁平 GEMV,并对其他形状回退到 CPU。此外,该版本为 OpenCL 缓冲区实现了 get_alloc_size 以保留对齐间隙,防止子缓冲区重叠无声地损坏相邻张量。

此更新确保在具有特定对齐约束的设备上获得正确的推理结果,并防止量化权重处理中的内存损坏。