本周(2026-04-26 ~ 2026-05-03)共跟踪 15 个仓库,其中 9 个仓库有更新,合计 165 次提交。以下是对各仓库关键变化的详细解读。

本周无更新的仓库: tencent/ncnn、airockchip/rknn-toolkit2、airockchip/rknn-llm、futz12/ncnn_llm、mlc-ai/mlc-llm、ml-explore/mlx-lm


ggml-org/llama.cpp(30 commits)

本周 llama.cpp 依然保持了最高的活动量,涵盖后端优化、新硬件支持和用户界面重构。

CUDA / GPU 后端

  • 多 GPU PCI Bus ID 去重修复(#22533):修复了当多个 GPU 共享 PCI Bus ID 时,CUDA 设备检测 OOM 导致仅发现 1 张卡而忽略其他 3 张的严重 bug。同时同步更新了 HIP 和 MUSA 宏的支持。
  • Flash Attention Pascal 架构修复(#22541):Tile-based flash attention kernel 在 Pascal GPU 上的兼容性问题已修正,这对仍在使用 GTX 10 系列显卡的用户是重要的修复。
  • MoE 快速矩阵乘法 i-quants 支持(#22504):新增 MoE 场景下的 int4/8 量化快速 matmul 路径,提升 MoE 模型推理效率。

Vulkan 后端

  • Flash Attention 非对称量化支持(#21753):在 coopmat2 路径中加入了非对称 FA 支持,允许混合量化类型(如 Q1_0)用于 Flash Attention,为实验性低比特 attention 提供了通道。
  • Tensor 2D get/set 函数(#22514):新增在 Vulkan 后端中获取和设置 2D tensor 片段的 API,方便算子开发者调试。

WebGPU 后端

  • MUL_MAT_ID 性能提升(#22464):为 MoE 的专家路由矩阵乘法提供独立的 mat-vec 和 mat-mat fast path,极大改善 WebGPU 后端上 MoE 模型的推理速度。
  • Upscale Shader(#22419):新增 nearest/bilinear/bicubic 三种上采样 shader,填补了 WebGPU 后端的图像缩放能力。
  • mul-mat vectorized 修复(#22578):修复了 mul-mat 和 mul-mat-id pipeline 的 vectorized 条件判断,确保向量路径在合适时启用。

Hexagon(高通 DSP)后端

  • HMX Flash Attention(#22347):为 Hexagon 后端实现了 HMX 加速的 Flash Attention,用于 prefill 阶段。同时将内联汇编包装为 Q6_ 内联函数,提高代码可维护性。这是骁龙平台上 LLM prefill 性能的关键优化。
  • 非连续行 Tensor 支持(#22574):为 unary ops 增加了非连续布局支持,使 Hexagon 后端能处理更灵活的输入格式。

OpenCL(Adreno GPU)后端

  • MoE MxFP4 优化(#22301):为 Adreno GPU 实现了专门的 MoE MxFP4 kernel,包括 GPU 上的 router reorder 操作,显著提升移动端 MoE 模型效率。

推理与服务

  • Server Checkpoint 零拷贝(#22558):避免了 checkpoint 数据的 host 侧拷贝,直接将 GPU memory 中的数据写入文件,减少显存占用和延迟。
  • Speculative Decoding 修复(#22521, #22426, #22552):修复了 draft model checkpoint 管理和 vocab 兼容性检查的问题,以及改进 ngram-mod 警告逻辑。
  • Reasoning Budget Sampler 优化(#22488):不再将 prompt tokens 传递给 reasoning budget sampler,避免对输入序列采样预算的错误消耗。

WebUI 重构

  • Spring Cleaning Refactor(#22505):对 WebUI 进行了大规模重构,引入 /tools 端点、MCP 工具集成、JSON Schema 工具支持,并完成了 snake_case 命名规范化。这是 llama.cpp WebUI 功能性的重要演进。

杂项

  • cpp-httplib 更新至 0.43.2(#22548),GGML 版本升至 0.10.2,以及 mmap 大文件支持(修复 WASM 下 >2GB 模型加载)。

microsoft/onnxruntime(30 commits)

核心推理引擎

  • 内存映射 ORT 模型加载(#28164):新增 use_memory_mapped_ort_model SessionOption,允许直接通过内存映射 I/O 加载 ORT 格式模型,消除了调用方手动维护映射有效性的负担,对共享内存场景非常友好。
  • CPU 执行提供者 RVV 支持(#28261):为 RISC-V Vector (RVV) 指令集添加了 MLAS 优化的 CPU kernel 支持。ORT 此前已支持 SSE/AVX/NEON/SVE/VSX/LSX/zvector 等多种 SIMD 指令集,RVV 的加入补齐了 RISC-V 生态的关键一环。Close #17466 和 #24596。
  • GridSample 数值稳定性修复(#28302):硬化了 CPU GridSample 算子中 float→int64 的类型转换,防止 NaN/Inf/越界坐标导致的未定义行为。

注意力机制

  • GQA seqlens_k 向后兼容(#28259):放宽了 GroupQueryAttention 的 seqlens_k shape 校验,接受的 shape 允许带单位维度(如 [1,1] 而非 [1]),以兼容 Qwen3-0.6B/1.7B 等旧版本模型。
  • DFT 算子 irfft 支持(#27028):添加了 DFT 算子 onesided=True & inverse=True 即 irfft 模式的实现,对应 numpy/pytorch 中的 torch.fft.irfft

CUDA / GPU

  • Cutlass 升级至 4.4.2(#28276):为后续 CUDA 性能优化做准备,新特性包括改进的 GEMM 调度和 Hopper 架构支持。
  • CUDA 13 编译修复(#28309):修复 gqa_unfused_attention.cu 在 CUDA 13.x 下的 Windows MSVC 编译失败,根本原因是 CCCL 头文件中 __out 参数名与 MSVC 的 SAL 宏冲突。
  • CUDA EP Plugin Profiling API(#28216):为 CUDA Plugin EP 添加了基于 CUPTI 的 GPU profiling 支持,在 onnxruntime_ENABLE_CUDA_PROFILING 编译标志下可用。

WebGPU

  • GridSample 算子(#28264):为 WebGPU EP 实现了 GridSample(opset 16-19),填补了此前所有主流 EP 都已支持而 WebGPU 缺失的算子。
  • WebGPU Plugin EP Python 打包(#28226):为 WebGPU Plugin EP 添加了 Python wheel 构建流水线和测试。

OpenVINO EP

  • OV 2026.1.0 升级(#28170, #28297):OpenVINO EP 整体升级至 2026.1.0,新增 FLOAT8E4M3FN/FLOAT8E5M2 初始化的 CPU/GPU/NPU 注册,QDQ 剥离(由 OV 内部处理),以及 DynamicQuant 的 FP16/INT8 支持。

WebNN

  • pool2d 的 roundingType 重命名(#28172):为遵循 WebNN 最新规范,roundingType 改名为 outputShapeRounding,同时保留旧名称以维持一段时间的向后兼容。

React Native

  • 自动链接修复(#28266):onnxruntime-react-native 添加了 react-native.config.js 和 Expo plugin 补丁,彻底解决了 TypeError: Cannot read property 'install' of null 这一长期问题。

杂项

  • NVTX Profiling Begin() 调用恢复(#28273):修复了 sequential_executor 重构后丢失的 node_compute_range_.Begin() 调用。
  • Session Logger Use-After-Free(#28274):重新排列 InferenceSession 的成员声明顺序,确保 logger 在 EP 析构时仍然存活。
  • C#/Python 硬件设备 API 绑定(#28128):为 GetHardwareDevices / GetHardwareDeviceEpIncompatibilityDetails 等 API 提供了 C++、C# 和 Python 语言绑定。

microsoft/onnxruntime-genai(4 commits)

新模型支持

  • Mistral3 / Pixtral VLM(#2077):添加了对 Mistral3/Pixtral 视觉语言模型的支持,实现了多图像推理。包括 C++ 图像处理器、PixtralVisionState(按图管理视觉状态)、[IMG]/[IMG_BREAK]/[IMG_END] 标记扩展规则以及 Python 导出支持。这是 onnxruntime-genai 在 VLM 领域的重要一步。

混合精度量化

  • k_quant_linear 混合精度量化(#2100):新增 k_quant_linear INT4 量化的 config 选项,将线性注意力投影及其 MLP 提升至 INT8 精度。这针对 Qwen3.5 等混合注意力模型尤为重要——线性注意力由于缺乏 softmax 的逐步归一化,沿序列累积量化误差严重,提升为 INT8 能显著改善精度。

工程清理

  • 移除 HF_TOKEN 引用(#2108)和 移除 QNN 打包(#2109)——清理 pipeline 以简化维护。

pytorch/executorch(30 commits)

Qwen3.5 MoE 专项优化(核心亮点)

这是 ExecuTorch 本周的最重磅更新,围绕着 Qwen3.5 MoE 模型的端侧高效部署 展开了一系列系统级优化:

  1. Triton INT4 Dense Kernels 与 Dequant Prefill 路径(#19227 / #19188):为 Qwen3.5 MoE 实现了基于 Triton 的 INT4 权重 × INT8 激活(W4A8)稠密矩阵乘法,并配合 dequant prefill 路径,将量化计算的 dequant 与 prefill 合并,减少访存开销。
  2. Triton kernels BUCK 修复(#19239):补全了 int4_matmul.py 的 BUCK 构建配置。
  3. 结构化 Stats Reporting 与 GPU 内存追踪(#19228 / #19190):为 Qwen3.5 MoE runner 添加了结构化的性能统计输出和 CUDA GPU 内存信息追踪。后续在 macOS Metal 环境下修复了 cudaMemGetInfo 的编译门控(#19265)。
  4. CUDA 版本门控修复(#19265):将新增的 cudaMemGetInfo 调用保护在 EXECUTORCH_BUILD_CUDA 宏之后,避免 macOS/Metal 编译失败。

Arm / Cortex-M 后端

  • Cortex-M MVE/Helium INT16 量化反量化(#19218):为 Cortex-M55/M85 等支持 MVE(Helium)的 MCU 实现了 INT16 的 quantize/dequantize kernel,扩展了 TinyML 场景下的数值精度选择。
  • TOSA AVG_POOL2D_ADAPTIVE 算子(#19150):新增 TOSA 1.1 标准的自适应平均池化算子,同时修复了 tosa.avg_pool2d 的 fake tracing bug。
  • Cadence HiFi quantized_conv1d 溢出修复(#19193):修复了 HiFi DSP 上量化卷积的溢出问题以及 stride>1 时的 fallback 路径。
  • Cortex-M 模型验证文档(#19078):列出了 CI 验证的 6 个 TinyML 模型(mv2、ds_cnn、mv3、mobilenet_v1_025、resnet8、deep_autoencoder)及各模型的 dialect/implementation。
  • E2E 测试脚本优化(#19073)和 Ethos Driver 向后兼容(#19116)。

量化与编译器优化

  • DecomposeMeanDimPass 重构(#19242):将 AVG_POOL2D 替换为 REDUCE_SUM 以简化量化流程。
  • RemovePermutesAroundElementwiseOps 扩展(19243):新增对 sum.dim_IntList 的支持。
  • 量化 max_pool2d 输出观测器修复(#19259):修复了 tuple 返回的算子的量化输出观测。
  • Arm 后端 Control Flow Quant Folding(#19109):重新标注 while_loop 的量化参数,支持附加输入(如 threshold)时区分量化参数。
  • OpenVINO NNCF 版本固定(#18684):将 NNCF 锁定到 PyPi 版本,修复了 NNCF 接口变化导致的量化器兼容性。

优化 CPU Kernel

  • grid_sampler_2d.out NEON + sum.IntList_out 向量化(#19119):两个新优化 kernel 替换 portable 参考实现。特别地,grid_sampler_2d 在 bilinear 模式下使用 fp32 累加,解决了 fp16 精度问题。
  • XNNPACK 输出 tensor resize 提前(#17661):将 resize 移至子图执行前,使越界写入能被提前捕获而非直到 crash。

工程与平台

  • NXP 后端 BUCK 路径修复 + 新 Neutron 转换 Flow(#19212, #19184)。
  • Qualcomm QNN atan2 算子支持(#19051)。
  • Runtime/Backend Header 打入 pip 包(#19196)。
  • rlformers 导出支持(#19096)和 flatc 缓存加速(#19104)。
  • 可选依赖基础设施(#19149):支持 pip install executorch[ethos_u] 等模式。

apache/tvm(30 commits)

版本里程碑:0.24.0 发布

TVM 本周发布了 0.24.0 版本,随后主分支版本更新至 0.25.dev0(#19493, #19476)。从提交量(30 个,全周持续活跃)来看,0.24.0 开发周期内积累了大量重构。

FFI / ABI 重构(核心主题——Tianqi Chen 主导的大规模内部清理)

TVM 团队本周几乎专注于一场系统性的代码架构重构:

  1. tvm-ffi 0.1.11rc2 升级(#19484):更新第三方依赖,同时修复了 TupleTypeNode/FuncTypeNode/TensorMapTypeNode 中重复注册 span 字段的问题。
  2. TVM FFI 间接别名清理(#19483):移除过渡期留下的 using String = ffi::String 等别名 shim,并将 logging.h 中非 ICHECK 场景切换至 ffi/error.h
  3. src/support/libinfo.cc 删除(#19477):将 TVM_INFO_* 编译时信息查询替换为运行时 FFI 注册的环境查询,认为”编译时 USE_CUDA=ON 不代表运行时能加载 CUDA 设备”,减少构建时数据带来的误导。
  4. include/tvm/runtime/object.h 退役(#19476):将 TVM_DEFINE_OBJECT_REF_COW_METHOD 移到 include/tvm/ir/cow.h,彻底淘汰了这个 tvm-ffi 过渡期的兼容头文件。
  5. IntTuple 别名退役(#19471)、**builtin_fp16.h 退役(#19472)、threading_backend.h 搬迁**(#19469)。
  6. **tvm/support/with.htvm/ir/with_context.h**(#19474):重命名并定位到 IR 层。
  7. **tvm/support/random_engine.htvm/s_tir/random_engine.h**(#19475):s_tir 专用的 RNG 归属到正确的命名空间。

TVMScript 方言化重构

  • Dialect 注册机制(#19479):将 TVMScript 重构为 dialect-aware 架构。各个扩展 dialect(TIRX, Relax)拥有各自独立的 script 子树,而核心 script 层保持 dialect-agnostic。这为未来添加新的 IR dialect 提供了清晰的扩展插槽。

后端与 Target 重构

  • Backend-specific Target/Runtime 重构(#19465):每个后端变成一个自包含的 src/target/<X>/ 集群,引入了 per-backend fallback 模块(替代旧的 target/opt/ stub),干净地处理交叉编译回退逻辑,不再需要 DeviceSourceModuleNode 或泄漏 synthetic kind()

Relax Frontend(TFLite 算子持续扩张)

本周 TVM 的 TFLite frontend 经历了一轮空前的算子扩张:

  • BROADCAST_TOEMBEDDING_LOOKUPSELECT_V2(#19489)
  • SCATTER_ND(#19490)—— 处理 indicesupdates 的静态/动态 shape
  • RANDOM_UNIFORMRANDOM_STANDARD_NORMALMULTINOMIAL(#19473)—— 随机数生成算子,降级为 tvm.contrib.random
  • BROADCAST_ARGS(#19487)—— 计算 broadcast shape
  • DILATE(#19481)—— 插入 padding 值扩展 tensor
  • ATAN2(#19485)—— 新增 relax.op.atan2 二元元素级原语
  • BITCAST(#19466)—— relax.op.memory.view 实现
  • DENSIFY 修复 + 测试(#19421)—— 稀疏到稠密转换,提高 prefetched_nodes 机制
  • NON_MAX_SUPPRESSION_V4(#19464)—— 复用已有的 relax.op.vision.non_max_suppression
  • STRIDED_SLICE 负步长修复 + SPLIT_V 动态(#19468, #19433)
  • CumSum ONNX 修复(#19467)—— 运行时 axis tensor 支持
  • ConstantOfShape 缺省值 bug(#19480)—— 修复 value 属性缺失时的 AttributeError

Relax Frontend 新容器

  • nn.ParameterList / nn.ParameterDict(#19495):新增了类似 PyTorch 的 Parameter 容器,使 Relax frontend 的模型定义更接近原生 PyTorch 体验。

Bug Fixes

  • isnan / isinf / isfinite legalize 缺失(#19492):修复了这些 Relax op 缺少 FLegalize 注册导致 relax.build() 崩溃的问题。
  • Dlight shared_memory_per_block 缺省值处理(#19453):当 CUDA 自动检测缺少 max_shared_memory_per_block 属性时的分层 fallback 策略。
  • Metal 日志头文件缺失(#19493):Metal 文件中使用了 LOG 宏但未包含 logging 头文件。

alibaba/MNN(1 commit)

Vulkan Linear Attention Subgroup Fallback

  • 非 subgroup 回退分支:为 VulkanLinearAttention 添加了一个无 subgroup 支持的 fallback 路径。这意味着在不支持 Vulkan subgroup 操作的设备(一些较老的移动 GPU 或部分模拟器环境)上,线性注意力仍然可以正常工作。MNN 的 Vulkan 后端因而获得了更广的设备兼容性。Merge-Request 27018734 来自阿里内部代码审查。

sophgo/tpu-mlir(6 commits)

Bug Fixes

  • 2D RMSNorm Weight EU_ALIGN Bug 修复yifan.chen 修复了 LayerGroup 中 RMSNorm 的 eu_align=false 设置问题。在 TPU 的 LayerGroup 编译场景下,weight tensor 的对齐方式未被正确设置,会导致片上内存分配错误。这是一个算子层面的低层 bug,影响推理数值正确性。
  • Affine 优化修复:移除了 store 操作中不必要的代码,并支持 offset < 0 的 slice 场景。affine 优化是 TPU-MLIR 的关键编译 pass,直接影响生成指令的质量。

工程

  • PP BModel 命名规范化(#403630b):将 LLM pipeline 编译生成的 bmodel 文件统一采用 embed_vit/block_{i}/lmead 命名模式。
  • Docker 文档修复:修复了缺少 group info 导致的 Docker 环境问题。
  • README 和配置文件更新文档错误清理

sophgo/LLM-TPU(4 commits)

Qwen3VL / Qwen3.5 支持

  • Programmatic Mode(#595d1f):为 Qwen3VL 和 Qwen3.5 添加了 programmatic 调用模式(区别于脚本模式),允许通过 API 而非 CLI 来控制模型推理流程,对于集成到服务架构非常关键。
  • PP BModel 示例(#24809, #5727e8):上传了 Qwen3.5 的 pipeline bmodel 示例文件,使用 embed_vit/block_{i}/lmead 命名规范,并给出了 pp example,帮助用户快速上手。
  • 文档更新(#91afea):对整个使用文档进行了同步更新。

qualcomm/ai-hub-models(30 commits)

本周高通 AI Hub 仓库同样活跃,主要集中在 新模型引入、CI 基础设施改进和代码质量提升

新模型

  • PiperTTS 量化版本(#2976):新增了口音纯正的英语、德语、意大利语量化版 PiperTTS 模型,并修复了 nightly 中的兼容性。
  • SuperPoint 特征点模型(#3091):新增计算机视觉经典的特征点检测/描述模型 SuperPoint,并配备了 HPatches 数据集评估流水线。
  • SixDRepNet(#2947):新增 6DoF 头部姿态估计模型,demo 展示了实时头部姿态追踪能力。
  • MeloTTS 英文模型更新(#3207):替换了 MeloTTS-English-v3,新版本声音更自然。

CI / 基础设施

  • Scorecard 数据自动更新(#3198)。
  • Nightly 失败通知修复(#3210, #3218, #3202, #3205):修复了 GH_TOKEN 缺失、URL 验证失败、Slack 通知因 YAML 多行字符串中断等问题。
  • 自动重试逻辑增加(#3191):减少 Qualcomm 内部网络对 GitHub 请求的限流导致的 CI 不稳定性。
  • Release Assets 依赖管理(#3201):确保 website import 依赖于资产发布步骤完成。

代码质量与安全

  • 严格依赖版本锁定(#3209):全量审计了 101 个依赖文件,将模糊版本 ~= 改为精确 == 锁定,作为供应链安全措施。
  • Claude 自动发现 15 个关键 Bug 修复(#3062):涵盖 YOLOR 缺失 assert、foot_track_net 字符串比较 bug、DDColor 等模型的潜在错误。
  • 外部仓库克隆基础设施重构(#3188):统一使用 pathlib.Path,简化外部代码库的集成。

模型部署优化

  • Llama 3.2 1B GPU Nightly Perf(#3113):新增 device_attributes 字段和 write_supplementary_files 方法,为 GPU nightly 性能收集提供完整的配置文件生成。
  • SAM2 迁移至 PT2(#3158)、CVT AOT 回退(#3211/3216)、SSD LM Head 拆分(#3175)。
  • 输出规范元数据扩展(#3132):为 YOLO、图像分类器、DeepLab、深度估计、超分辨率等共享基类添加 get_output_spec()

总结

本周是农历”谷雨”末周,各框架呈现出显著的差异化发展轨迹:

  • llama.cpp 延续了全面覆盖的策略——从数据中心级的 CUDA Fused Attention 到嵌入式 Hexagon DSP 的 HMX 加速,再到浏览器端 WebGPU 的 MUL_MAT_ID 优化,体现了单一推理库横跨从云到端的能力。
  • ONNX Runtime 展现了企业级推理引擎的工程成熟度——RVV 支持补齐了 RISC-V 生态关键一环,而 Memory-Mapped ORT 加载、Use-After-Free 修复、CUDA 13 兼容等体现了对生产环境稳定性的极致追求。
  • ExecuTorch 本周围绕着 Qwen3.5 MoE 的端侧部署,给出了一个教科书式的优化案例:从 Triton W4A8 量化 kernelGPU 内存追踪BUCK 构建集成,展示了 PyTorch 端侧系的系统性优化能力。同时 Cortex-M INT16 MVE 的加入巩固了 ExecuTorch 在 TinyML 领域的地位。
  • TVM 正经历着 Tianqi Chen 主导的深层架构重构——FFI 间接层清理TVMScript 方言化后端目录重组libinfo 退役,都在为下一阶段的 TVM 生态做准备。同时 TFLite frontend 一周接入 10+ 个新算子,展现了 Relax/TFLite 导入管线的快速成熟。
  • sophgo/tpu-mlir 和 LLM-TPU 持续推进 Qwen3.5 pipeline 部署工具链的完善,BModel 命名规范化和 programmatic 模式是易用性提升的重要信号。
  • MNN 虽只有 1 个提交,但 Vulkan Linear Attention 的 subgroup fallback 体现了对移动端兼容性的持续关注。

下周值得关注:llama.cpp WebUI 重构后生态的反馈、TVM 0.24.0 发布后的社区采用情况、以及 ExecuTorch Qwen3.5 MoE Triton kernel 的性能数据公开。