llama.cpp b10877发布:改进RDNA3显卡上路由MoE模型的CUDA性能
新版本调整了CUDA中routed MoE模型在AMD RDNA3显卡上的MMQ内核tile尺寸选择,并发布了各平台预编译二进制。
AI解读:llama.cpp的这次更新主要面向AMD RDNA3显卡用户,尤其是跑路由MoE大模型的人。路由MoE每层只会激活少量专家,专家宽度经常和常规模型不一样,旧代码按通用规则分配计算块(tile),在RDNA3上容易浪费算力。这次改动让尺寸按典型的专家宽度来选,配合在主机端按ncols_opt决定MMQ tile大小,理论上能让计算更贴合实际负载。
对普通用户来说,如果你用的是AMD RDNA3显卡(比如RX 7000系列)跑llama.cpp的CUDA后端,建议更新到这版实测一下速度;NVIDIA用户或纯CPU用户基本不受影响。需要提醒的是,发版说明没有给出任何性能对比数字,所以别指望一定带来大幅提升,具体收益还得自己跑分看。
llama.cpp发布b10877版本,主要改动集中在CUDA后端:为AMD RDNA3显卡上的路由MoE(routed MoE)模型调整了MMQ(矩阵乘法量化)内核的N-tile尺寸,使其与典型的专家宽度匹配。
对AMD RDNA3的针对性调整
本次更新包含两项CUDA相关改动。第一项是“CUDA: size routed MoE MMQ N-tiles from typical expert width on RDNA3”(在RDNA3上按典型专家宽度调整路由MoE的MMQ N-tiles尺寸),由Carl Philipp Klemm等贡献者提交,是PR #24546 的重制。另一项是“CUDA: pick MMQ tile size against ncols_opt set on the host side”(在主机端根据ncols_opt选择MMQ tile尺寸)。两项改动都旨在优化AMD RDNA3架构上的计算调度。
改动由“Claude Fable 5.1”协助完成,并附有Claude会话链接;发布说明未提供任何具体性能数据或基准测试结果。
多平台发布与禁用的构建
b10877提供了丰富的预编译二进制:macOS(Apple Silicon arm64、Intel x64)、iOS XCFramework;Linux(Ubuntu x64/arm64/s390x CPU、Vulkan、ROCm 10.0、OpenVINO、SYCL FP32/FP16);Android arm64 CPU;Windows(x64/arm64 CPU、arm64 OpenCL Adreno、CUDA 12.4与 13.3、arm64 CUDA 13.4预览、Vulkan、OpenVINO、SYCL、ROCm 10.0)。
两个构建被标记为DISABLED:macOS Apple Silicon的KleidiAI版本(对应PR #23780)和openEuler版本(对应PR #23705)。openEuler构建原本支持x86(310p)和aarch64(310p、910b ACL Graph)。