llama.cpp b11292:CPU 后端支持 mul_mat 的 BF16 src1
原标题:b11292
AI 摘要
llama.cpp 发布 b11292 版本,主要修复 CPU 后端在 mul_mat 中接受 BF16 作为 src1 的问题:此前 ggml_conv_1d_dw 在 BF16 卷积核下会构造 F32 im2col 并调用 ggml_mul_mat,导致 F32×BF16 组合被 CPU 后端拒绝并误报为所有后端不支持。该提交将 BF16 拓宽到 F32 工作缓冲区,与 Metal mat vec 内核的算法保持一致,并新增 conv_1d_dw 及 mul_mat 测试;同时 Vulkan 后端收紧校验,除非 src0 为 BF16,否则拒绝 BF16 src1。
正文节选
<details open> cpu: accept BF16 in src1 of mul_mat (#28937) * cpu: accept BF16 in src1 of mul_mat ggml_conv_1d_dw builds its im2col in F32 when the kernel is BF16, then calls ggml_mul_mat(im2col, kernel), which puts F32 in src0 and BF16 in src1. The CPU backend refused that combination, so it was reported as unsupported on every backend and never compared against anything. Widen BF16 into the F32 work buffer, next to the existing packing of F32 into vec_dot_type. This is the arithmetic the M