本周(2026-05-17 ~ 2026-05-23)9 个仓库共产生 196 次提交,涵盖端侧推理、量化、后端优化、新模型支持等多个方向。


tencent/ncnn — 18 commits

本周 ncnn 在 ARM/NEON 优化、RISC-V 后端和工具链方面持续发力。

ARM SDPA(Scaled Dot-Product Attention)Layer

新增 ARM 后端 SDPA 层实现(#6698),这是 ncnn 在 LLM 推理方向的重要进展。SDPA 将 QKV 投影后的 attention 计算融合为单一算子,避免了多次 kernel launch 和中间 tensor 的读写开销,对端侧 LLM 的 decode 阶段延迟改善明显。

ARM SIMD 激活函数与量化

風的彷徨 贡献了 erfelugeluselu 在 ARM 上的 SIMD 实现(#6605),补齐了 ARM NEON 后端在激活函数方面的性能短板。Justin Fung 提交了两项 RISC-V Vector 1.0 的量化/反量化实现(#6695, #6658),RequantizeDequantize 层是定点推理中吞吐敏感的 kernel。

x86 FP16 与 INT8 优化

Edwardssss 优化了 x86 FP16 innerproduct GEMM(#6682),通过消除 loop-carried 数据依赖 stall 来提升流水线利用率;同时增强了 x86 SSE4.1 INT8 的 innerproduct 和 convolutiondepthwise 性能(#6687)。

算子扩展与 PNNX 工具链

Lune 的 UnaryOp 扩展(#6675)新增了 signsinhcoshexpm1log1p 等多个一元算子,这些在语音/音频模型中被广泛使用。Yeuvoir 修复了 PNNX 中 ZeroPad2d + depthwise Conv2d 的 padding 参数归一化问题(#6694),保证了 ONNX 模型转换的正确性。

4D Mat 支持与量化工具

nihui 为多个算子增加了 4D Mat 支持(#6737),这在处理 batch 维度更大的多模态模型时是必要的。Layla 将 Embed、MHA、RNN、LSTM、GRU 的 weight scale 生成迁移到 ncnn2table(#6688),统一了量化校准流程。

其他值得一提的变动:RISC-V packed convolution 优化(#6731)、LoongArch/MIPS 大规模优化(#6662)、LLM benchmark seqlen 调整至 256(#6738)、Vulkan 端 llvmpipe atan2 零值 workaround(#6729)。


alibaba/MNN — 16 commits

dflash 推测解码

MNN 本周推出了 dflash(draft-flash)推测解码支持(54104b6),这是端侧 LLM 推理吞吐优化的关键特性。推测解码通过一个小 draft model 快速生成候选 token,再用目标模型并行验证,理论吞吐提升可达 2-3x。dflash 针对端侧场景做了精度保障和内存优化。

Vulkan W8A8 Cooperate Matrix 动态量化

bb56f95 是本周 MNN 最重要的性能提交:Vulkan-Buffer 后端支持了 Conv1x1CoopA8 动态量化(W8A8 coopMat),在 8Gen5 平台上对比 WFP16 获得了 30-40% 的算子性能提升。端到端效果:Qwen3-4B Prefill 模式下,INT4 从 364.8 tok/s 提升到 435 tok/s(+19%),INT8 从 339.99 提升到 452.6 tok/s(+33%)。这利用了高通 Adreno GPU 的 cooperative matrix 硬件加速能力。

FP16 Scale/Zero-Point 存储

23d05cc 实现了 weight quantization scale/zero-point 的 FP16 存储。在此之前,量化参数(通常是 FP32)在每层反量化时占用大量读取带宽。改为 FP16 后,对 memory-bound 的 decoder 阶段有直接的带宽收益。

LinearAttention GQA Bugfix

8ad45915 修复了 OpenCL 后端 LinearAttention 在 GQA(Grouped Query Attention)模式下的 bug。hebangwen 贡献了 LinearAttention state reset 修复(7fc6bcc),和 Vision Encoder 内存泄漏及延迟增长修复(5a4c70b4)——后者修复了视觉编码器中 KV Cache metadata 未被重置导致 past-kv 无限累积的根因。

RVV 优化

76fc930 优化了 MNN 在 RISC-V Vector 指令集上的常用函数,进一步打通了 RISC-V 端侧部署的链路。


sophgo/LLM-TPU — 2 commits

Gemma4 模型支持

Sophgo LLM-TPU 增加对 Google Gemma4-E2B(2B)和 E4B(4B)模型的支持。Gemma4 是 Google 最新发布的架构,采用 logits soft-capping 和 QK-Norm 等特性。TPU 端的适配意味着 BM168x 系列芯片的用户可以本地部署 Gemma4 系列模型。


ggml-org/llama.cpp — 30 commits

CMake 构建系统重构

bb28c1f 移除了 -impl 库的显式 STATIC 声明,允许 BUILD_SHARED_LIBS 控制动态/静态链接,这对使用 llama.cpp 作为第三方库的依赖方更友好。b22ff4b 进一步重构了 CMake UI。bbce619aimpl 库添加了 install() 规则,解决了 cmake --install 时共享库缺失的运行时报错。

SYCL 后端突飞猛进

本周 SYCL 后端有 3 项重要贡献:

  • cc9e331 改进了 MoE Prefill 吞吐,将 expert routing 的复杂度从 O(n_as * n_routed_rows) 降为 O(n_as + n_routed_rows)
  • 8cc67ef 为 BF16 模型新增了 DMMV(dequantize mul-mat-vec)kernel path,在 Intel Arc GPU 上将 token generation 速度提升了约 4 倍——此前 BF16 模型没有专用 DMMV kernel,退化为全 GEMM 通路,带宽利用率仅 14%。
  • bcfd198 将 Level Zero 设备检测集中到 ggml_sycl_init

Vulkan 融合 Snake Activation

47c0eda 为音频解码器常用 snake activation(y = x + sin(a*x)² * inv_b)做了 GPU 融合。此前 BigVGAN、Vocos 等模型会将这个函数展开为 5 个独立算子(mul, sin, sqr, mul, add),融合后所有后端直接降低至一次 volcano dispatch。

NVFP4 MTP Scale Tensor

b0df4c0 新增 NVFP4(NVIDIA FP4 格式)的 MTP(Multi-Token Prediction)scale tensor 支持。MTP 是 DeepSeek 和 Qwen3.5 引入的技术,用多个预测头同时预测未来多个 token。

生物基因组模型支持

7ea23ddf 新增 Carbon-3B(HybridDNATokenizer)支持,这是一个生物基因组 LLM。afcda09 修复了 HybridDNA 的 k-mer 与 BPE token 碰撞问题。这些表明 llama.cpp 正在快速覆盖非文本领域的模型。

服务器层改进

52fb93a 修复了 MTP 模型的 VRAM 泄露——server_context_impl::destroy() 之前没有释放 draft decoder 资源,每次 sleep/resume 都会重新分配 KV cache。b65bb4b/slots endpoint 暴露了 n_prompt_tokensn_prompt_tokens_processedn_prompt_tokens_cache,让客户端可以监控 prompt 处理进度。

其他优化

  • ZenDNN 后端支持 Q8_0 量化(#23414)
  • Flash Attention 修复了 f32 硬编码,改用 kv_typeq_type(#23372)
  • Metal 后端 concat kernel 优化(#23411)
  • GQA KV-cache quantized GEMM 的 MLAS kernel(#28578 的跟进)

microsoft/onnxruntime — 30 commits

RISC-V RVV LLM 算子

b2f6e15 是本周最亮眼的贡献之一:为 onnxruntime 的 MLAS(Machine Learning Acceleration Stack)新增 RVV(RISC-V Vector)优化的 LLM 推理算子,在 Spacemit K3 CPU(VLEN=256)上测试,FP16 GEMM 相比标量实现获得了 51-191 倍的加速。FP16↔FP32 Cast 也有 4-12 倍加速。RISC-V 在端侧 AI 的版图中正在快速完善。

CPU GroupQueryAttention 量化 KV Cache

566406c 为 CPU 的 GroupQueryAttention 贡献算子增加了 INT8/INT4 对称量化 KV Cache 支持,并在 AVX2、AVX512-VNNI、NEON 上实现了 SIMD 加速的 MLAS kernel。d2836a8 进一步优化了这些 kernel,包括使用 AVX-512 内嵌 rounding 代替 roundscale + cvtps 组合。

QMoE CUDA

ae88f9b43989a7 对上周引入的 QMoE(Quantized Mixture-of-Experts)CUDA 算子进行了后处理优化:将 PrePack 中 373 行的嵌套 lambda 重构为命名 helper、将 CPU 数据预处理移到 GPU kernel 执行、修复了 CUTLASS multi-arch 构建的 packaging 问题。

WebGPU EP

1053327 优化了 WebGPU 后端的 LinearAttention Kernel,当 subgroup 可用时将 tile_v 扩大 4 倍,提高数据复用。Intel Panther Lake (Xe-3LPG) 上 prefill 延迟从 2.14ms 降到 0.80ms(-63%)。

CoreML EP

cf8e4f5 支持了 Gather 算子的标量 indices 输入,内部通过 reshape 适配 CoreML 的 rank-1 要求。d0203e1 新增 Identity/Ceil/Tile 三个 op builder,并添加了 partition quality 启发式——丢弃仅包含 trivial shape/elementwise 操作的 CoreML partition。

安全修复

本周 onnxruntime 有数个安全相关的输入验证修复:

  • 1e80c29 在 GroupQueryAttention 中验证 seqlens_k 不超出 cos_cache 范围(CVE)
  • ee444bd 验证 WordConvEmbedding 的 conv bias shape
  • 158bdef0 修复 MatMulIntegerToFloat 和 DynamicQuantizeMatMul 的 OOB bias 读取
  • 4236d6e 在 MatMulNBits 中拒绝 block_size > 256 的配置(此前静默输出全零)

microsoft/onnxruntime-genai — 30 commits

新模型支持

本周 onnxruntime-genai 在新模型支持方面相当激进:

  • Qwen3.506d3fae 启用 TRT-RTX EP 路径 + CUDA Graph 支持;d6c139e 添加 text-only 模式(无需 vision pipeline);88af38bLpNormalization 算子替换 linear-attention L2-norm 的 5 节点子图(Qwen3.5 0.8B int4 减少约 250 个节点)
  • VideoChat-Flash5439ab9):OpenGVLab 的视频-语言模型,语言基座为 Qwen2.5-7B
  • HunYuan Dense V15563ba2):腾讯 HY-MT 系列的 1.8B 和 7B 变体,注意 QK norm 应用在 RoPE 之后
  • Nemotron ASRacfdc8b):NVIDIA 多语言流式 ASR 模型,支持 CPU 和 CUDA EP
  • Parakeet TDTdfeed39):NVIDIA 端到端语音识别模型
  • Gemma42078bfb 添加了完整的单元测试套件

外部权重加载修复

78eb7d99 解决了使用内存 ONNX 模型时,外部权重文件路径解析的问题。放弃了此前 chdir 的临时方案(不安全且非线程安全),改用 session.model_external_initializers_file_folder_path session option。

Depth Computing 与 Quantization

  • 2f91715DefaultKeyValueCache 中增加了对静态 KV-cache shape 的自动检测,这对 AMD RyzenAI 等有固定序列长度要求的后端很重要。
  • 1de0e2b 修复了 Qwen3-VL-4B 的 Quark/AWQ 量化权重加载问题,此前 QuantizedModel 的 weight loader 不支持 VLM checkpoint 中的 vision tower。
  • f32444d 支持了 QK-Norm 模型的 packed QKV MatMul,插入 Split 后的等效性经过严格验证。

pytorch/executorch — 30 commits

设备支持框架

c27cc5d12f62f2c5e0a037d8063f 构成了 ET Device Support 的系列 PR,为 CUDA 引入了 device memory allocator、planned buffer 设备内存分配、per-buffer device metadata 以及 AOT device copy ops registry。这是 executorch 走向多硬件后端支持的重要架构变化。

ARM Cortex-M 扩展

cabe2e5 扩展了 Cortex-M 测试管线,针对任意 Cortex-M variant 构建可运行二进制(使用 -mcpu=cortex-m<variant> 编译)。ec76470 增加了 YOLO11、Wav2Letter、Silero VAD 等模型在 Cortex-M 后端的测试。

Arm 后端多个 Bugfix

  • 90a7cdb 修复了 Q/DQ de-tagging 引入的的模型图依赖环问题(MobileViT 等复杂 attention block 模型受影响)
  • 554aecfpow(x, 2.0) 等浮点标量指数分解为整数 pow 以避免 TOSA 的负数底数限制。
  • 161376d 在不支持 symbolic shape extension 的 TOSA spec 上拒绝 PAD 图的动态 shape 支持,防止 Vela 生成无效校验。
  • dbcf6ac 统一了 Arm 后端的 CI 测试脚本(test_arm_backend.sh),简化 GH job 命名。

LLM Extension 与测试

50efdcbab8fcba 为 LLM Extension 添加了 comprehensive 测试:LlmGenerationConfig 的构建器 API、错误路径(无效模型、空 prompt、use-after-close)、测试 callback contract(有序性、频率、JSON schema)和线程安全性。

RISC-V QEMU 多配置测试

80f39be 用多个 RVV(RISC-V Vector)配置在 QEMU 上运行 CI 测试,是 Phase 3 的 RISC-V 支持工作的延续。

MLX 后端 Gemma4 优化

9dac74d 为 MLX 后端将 Gemma4 的手写 RMSNorm 分解替换为 torch.nn.RMSNorm 子类,消除了 per-norm 的 3 次 dtype cast,421 个 RMSNorm 减少约 1200 次全张量 cast。


apache/tvm — 10 commits

TIRx 基础设施

859498dc 引入了 TIRx 的初步支持——面向 Blackwell 级 GPU 的低级编程能力,通过 TVMScript 直接编程高级硬件特性,无需依赖 scheduling 作为主要接口。这是 TVM 向新一代 GPU 架构演进的关键一步。

设备运行时模块化

4052880e 将设备运行时模块化为 per-backend DSO(动态共享对象),这样不同后端(CUDA、ROCm、Vulkan)的运行时可以被独立加载,减小整体二进制体积。

ONNX 前端增强

  • a1e4cd8 为 ONNX opset 23 的 RMSNormalization 提供了 Relax 前端支持。RMSNorm 是 LLaMA、Gemma 等现代 LLM 的核心算子,此前仅在 TIR 层面支持。
  • 1720d305 修复了 TopK 的 scalar K 提取 bug——ONNX 的 K 是 1-D 单元素 tensor,之前用 int(k.data.numpy()) 会因 TypeError 失败。
  • bc1a904 防止了 Div 算子除零崩溃,区分了 constant zero divisor 和 dynamic divisor。

LLVM/CodeGen bugfix

  • 13ce30b740eebe 修复了 LLVM 后端多个数学函数 LLVM legalize 规则的问题:sinh/cosh(exp(x) ± exp(-x)) / 2 中间结果在 x > 89 时会溢出为 inf,以及 asin Taylor 级数系数错误导致的 1000+ ULP 精度损失。改用 libm 外部调用从根本上解决。
  • 48f346bb 为 CUDA CodeGen 添加了 enable_fast_math target attribute,默认关闭,确保 tir.exp 等不会默认降级为 __expf 等 fast-math 版本。

TFLite StableHLO

fff3b4b 增加了 10 个 StableHLO 算子支持,包括 CBRTREMAINDERDYNAMIC_UPDATE_SLICEDOT_GENERALCONVOLUTION 以及 REDUCEREDUCE_WINDOWSORTSCATTERCOMPOSITE 等 region-based 算子。


总结

本周的更新呈现出几个趋势:

  1. RISC-V 加速普及:ncnn(RVV quantize/dequantize)、onnxruntime(RVV LLM kernel,51-191x GEMM 加速)、executorch(多 RVV QEMU CI)三方同时推进 RISC-V 端侧推理能力。

  2. 推测解码(Speculative Decoding)全面铺开:MNN 的 dflash、llama.cpp 的 MTP 支持(NVFP4、内存泄露修复)以及 onnxruntime-genai 对 Qwen3.5 的 MTP 支持。

  3. 端侧量化向更低位宽演进:MNN Vulkan W8A8 coopMat 动态量化、onnxruntime CPU GQA INT4/INT8 KV Cache、llama.cpp 的 NVFP4 支持。

  4. 语音模型加速落地端侧:onnxruntime-genai 一周内适配了 Nemotron ASR、Parakeet TDT、VideoChat-Flash 三个语音/多模态模型。