开源llama.cpp Releases·原文 2026年9月24日

llama.cpp b11160为AMD RDNA3/RDNA4增加int8 coopmat1矩阵乘法

该版本在Vulkan后端实现int8 cooperative matrix量化矩阵乘法,支持q8_0、q4_1、q5_0、q5_1、q3_k、q4_k、q5_k、q6_k、iq4_nl、iq4_xs、mxfp4和nvfp4等量化格式,仅针对AMD RDNA3和RDNA4架构。

AI解读:受影响的是在AMD RDNA3/RDNA4显卡上用Vulkan跑量化模型的用户。支持的量化格式包括q8_0、q4_1、q5_0、q5_1、q3_k、q4_k、q5_k、q6_k、iq4_nl、iq4_xs、mxfp4和nvfp4,覆盖了常见的k-quant和i-quant系列。

实现上用了wave32、BK_STEP调参、double buffering、预加载scales等优化,并针对RDNA4单独调优。这些是工程细节,但决定了这条路径能不能在真实硬件上跑出可用性能。

这次更新只针对AMD RDNA3和RDNA4,其他架构(比如NVIDIA、Intel或更老的AMD GPU)不在这个shader的适用范围。是否值得升级,取决于你手里的显卡是不是这两代。

llama.cpp发布b11160版本,在Vulkan后端加入int8 cooperative matrix(coopmat1)量化矩阵乘法实现,目标硬件是AMD RDNA3和RDNA4架构。

该实现由PR #27952 引入,作者包括Piotr Wilkin(ilintar);后续PR #28440 又为同一shader补充了IQ4_XS支持,并标注Assisted-by: OpenAI Codex。

支持的量化格式包括q8_0、q4_1、q5_0、q5_1、q3_k、q4_k、q5_k、q6_k、iq4_nl、iq4_xs、mxfp4和nvfp4。

实现细节与调优手段

PR #27952 的提交信息列出了大量实现步骤:应用scales inline、使用scalar sums、直接探测并访问coopmat值而不经过共享内存、加入BK_STEP且默认值为 2、使用更大的workgroup、double buffering、预加载scales、先加载coopmat再走wmma、scales使用float、为RDNA加入更快的int转float转换、按缓存邻近性调度workgroup、使用wave32、重构以利用vgpr、跳过非活跃tile的计算、仅在AMD RDNA上强制subgroup size为 32、随后将BK_STEP改为 4。

提交信息还提到:移除elem row/col快速路径(该路径对RDNA4无效)、LUT使用共享内存数组、尽可能使用 4 字节加载、修复l warptile、去重b scales、合并共享内存数组、撤销uint8_t、新增RDNA4架构分支用于硬编码coopmat元素线程访问、将BK_STEP改回 4、改进offset应用、修复iq4_nl和nvfp4性能、进行RDNA4调优、在MUL_MAT_ID上使用BK_STEP 2、适配上游变更、修复共享内存支持函数、清理注释、修复warptile逻辑。

该PR共同作者为Piotr Wilkin(ilintar)。

后续PR #28440 为coopmat1整数矩阵乘法shader加入IQ4_XS支持:新增专用的block_a_load和block_a_to_shmem,通过cm1_kvalues展开每个packed32字的两个nibble,LOAD_VEC_A设为 8,并为IQ4_XS大小的a_panel_bytes估算做L2友好的调度。该PR标注Assisted-by: OpenAI Codex,共同作者包括Claude Opus 5(1M context)。

提交信息同时注明避免编译f16 acc shader变体。

发布产物

b11160版本提供多平台预编译包,包括macOS Apple Silicon(arm64)、macOS Intel(x64)、iOS XCFramework;Linux下的Ubuntu x64/arm64/s390x(CPU)、Ubuntu x64/arm64(Vulkan)、Ubuntu x64(CUDA 12.8、CUDA 13.4)、Ubuntu arm64(CUDA 13)、Ubuntu x64(ROCm 10.0、OpenVINO 2026.4、SYCL FP32/FP16)、Linux arm64 Snapdragon(CPU、Adreno GPU、Hexagon NPU);Android arm64(CPU、Snapdragon);Windows下的x64/arm64 CPU、arm64 OpenCL Adreno、x64/arm64 CUDA 12.4/13.4、x64 Vulkan、x64 OpenVINO 2026.4、x64 SYCL、x64 ROCm 10.0。

openEuler构建在发布页标注为DISABLED,涉及openEuler x86(310p)、x86(910b, ACL Graph)、aarch64(310p)、aarch64(910b, ACL Graph)。

macOS Apple Silicon的KleidiAI enabled构建也标注为DISABLED(PR #23780)。

发布页另提供UI包。

限制条件

int8 coopmat1 matmul实现被gate在RDNA3和RDNA4架构上,提交信息明确写了“gate to RDNA3/4”,并非所有Vulkan设备都能用。

该shader的量化格式支持是通过多个提交逐步加入的,其中包括q8_0、q4_1、q5_0、q5_1、iq4_nl、mxfp4、q3_k、q4_k、q5_k、q6_k、nvfp4和iq4_xs。

提交信息未给出与未使用该shader相比的性能提升百分比,也未提供在具体显卡或模型上的benchmark数据。

信息来源

llama.cpp Releases原始来源