端侧 AI 推理框架周报(2026-05-17 ~ 2026-05-23)
本周(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 激活函数与量化
風的彷徨 贡献了 erf、elu、gelu、selu 在 ARM 上的 SIMD 实现(#6605),补齐了 ARM NEON 后端在激活函数方面的性能短板。Justin Fung 提交了两项 RISC-V Vector 1.0 的量化/反量化实现(#6695, #6658),Requantize 和 Dequantize 层是定点推理中吞吐敏感的 kernel。
x86 FP16 与 INT8 优化
Edwardssss 优化了 x86 FP16 innerproduct GEMM(#6682),通过消除 loop-carried 数据依赖 stall 来提升流水线利用率;同时增强了 x86 SSE4.1 INT8 的 innerproduct 和 convolutiondepthwise 性能(#6687)。
算子扩展与 PNNX 工具链
Lune 的 UnaryOp 扩展(#6675)新增了 sign、sinh、cosh、expm1、log1p 等多个一元算子,这些在语音/音频模型中被广泛使用。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。bbce619a 为 impl 库添加了 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_tokens、n_prompt_tokens_processed、n_prompt_tokens_cache,让客户端可以监控 prompt 处理进度。
其他优化
- ZenDNN 后端支持 Q8_0 量化(#23414)
- Flash Attention 修复了 f32 硬编码,改用
kv_type和q_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
ae88f9b 和 43989a7 对上周引入的 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 shape158bdef0修复 MatMulIntegerToFloat 和 DynamicQuantizeMatMul 的 OOB bias 读取4236d6e在 MatMulNBits 中拒绝block_size > 256的配置(此前静默输出全零)
microsoft/onnxruntime-genai — 30 commits
新模型支持
本周 onnxruntime-genai 在新模型支持方面相当激进:
- Qwen3.5:
06d3fae启用 TRT-RTX EP 路径 + CUDA Graph 支持;d6c139e添加 text-only 模式(无需 vision pipeline);88af38b用LpNormalization算子替换 linear-attention L2-norm 的 5 节点子图(Qwen3.5 0.8B int4 减少约 250 个节点) - VideoChat-Flash(
5439ab9):OpenGVLab 的视频-语言模型,语言基座为 Qwen2.5-7B - HunYuan Dense V1(
5563ba2):腾讯 HY-MT 系列的 1.8B 和 7B 变体,注意 QK norm 应用在 RoPE 之后 - Nemotron ASR(
acfdc8b):NVIDIA 多语言流式 ASR 模型,支持 CPU 和 CUDA EP - Parakeet TDT(
dfeed39):NVIDIA 端到端语音识别模型 - Gemma4:
2078bfb添加了完整的单元测试套件
外部权重加载修复
78eb7d99 解决了使用内存 ONNX 模型时,外部权重文件路径解析的问题。放弃了此前 chdir 的临时方案(不安全且非线程安全),改用 session.model_external_initializers_file_folder_path session option。
Depth Computing 与 Quantization
2f91715在DefaultKeyValueCache中增加了对静态 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
设备支持框架
c27cc5d、12f62f2、c5e0a03、7d8063f 构成了 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 模型受影响)554aecf将pow(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 与测试
50efdcb 和 ab8fcba 为 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
13ce30b和740eebe修复了 LLVM 后端多个数学函数 LLVM legalize 规则的问题:sinh/cosh的(exp(x) ± exp(-x)) / 2中间结果在 x > 89 时会溢出为inf,以及asinTaylor 级数系数错误导致的 1000+ ULP 精度损失。改用 libm 外部调用从根本上解决。48f346bb为 CUDA CodeGen 添加了enable_fast_mathtarget attribute,默认关闭,确保tir.exp等不会默认降级为__expf等 fast-math 版本。
TFLite StableHLO
fff3b4b 增加了 10 个 StableHLO 算子支持,包括 CBRT、REMAINDER、DYNAMIC_UPDATE_SLICE、DOT_GENERAL、CONVOLUTION 以及 REDUCE、REDUCE_WINDOW、SORT、SCATTER、COMPOSITE 等 region-based 算子。
总结
本周的更新呈现出几个趋势:
RISC-V 加速普及:ncnn(RVV quantize/dequantize)、onnxruntime(RVV LLM kernel,51-191x GEMM 加速)、executorch(多 RVV QEMU CI)三方同时推进 RISC-V 端侧推理能力。
推测解码(Speculative Decoding)全面铺开:MNN 的 dflash、llama.cpp 的 MTP 支持(NVFP4、内存泄露修复)以及 onnxruntime-genai 对 Qwen3.5 的 MTP 支持。
端侧量化向更低位宽演进:MNN Vulkan W8A8 coopMat 动态量化、onnxruntime CPU GQA INT4/INT8 KV Cache、llama.cpp 的 NVFP4 支持。
语音模型加速落地端侧:onnxruntime-genai 一周内适配了 Nemotron ASR、Parakeet TDT、VideoChat-Flash 三个语音/多模态模型。