llama.cpp b11216:SYCL 新增宽块 FWHT 内核
原标题:b11216
AI 摘要
llama.cpp 发布 b11216 版本,为 SYCL 后端新增了针对块宽度大于 512 的 FWHT(快速沃尔什-哈达玛变换)内核。新内核 fwht_kernel_wide 采用每个工作组处理一行、蝶形运算分层走 shuffle/本地内存/寄存器的策略,将原本退化为 O(n^2) 稠密 GEMM 的 1024/2048/4096/8192 宽度改为 O(n log n) 实现。作者在无 GPU 环境下用独立测试框架在 SYCL CPU 设备上验证了四种宽度的单行与多行随机输入,误差均在可接受范围内。
正文节选
<details open> sycl: FWHT kernels for block widths above 512 (#29243) The SYCL FWHT covers 64 to 512 via the standard butterfly network, plus 384/640/768/1280 via the Kronecker/Paley construction added separately in Hadamard hint can produce (1024, 2048, 4096, 8192); those still fall through to the default case and run as a dense GEMM against the materialized rotation tensor, correct but O(n^2) instead of O(n log n). fwht_kernel_wide runs one row per work-group instead of per sub-group, so ea