开源onnxruntime Releases·原文 2026年9月11日

ONNX Runtime 1.30.0发布:新增Go绑定,CUDA与WebGPU推理能力扩展

微软ONNX Runtime发布 1.30.0 版本,这些说明覆盖自 1.29.1 以来的变更。亮点包括:CUDA推理支持扩展,为连续批处理引入变长因果卷积、paged XQA中的投机解码,以及带per-channel scales的INT4 paged KV cache;WebGPU方面改进PagedAttention、新增GPT-OSS支持与INT8 KV-cache块量化;CPU端新增AVX-512、Arm64 NEON和SVE的融合LinearAttention内核;并新增ONNX Runtime C API的Go绑定与DeepSeek Engram contrib算子。

AI解读:这次更新最直接的变化发生在推理的“显存怎么花”上。CUDA端新增了INT4 paged KV cache并支持per-channel scales,同时引入变长因果卷积以配合连续批处理、在paged XQA中支持投机解码。对跑大模型在线服务的人来说,这些是压显存和吞吐的常规手段,但具体收益官方没有给出数字,需要按自己的模型和硬件实测。

另一条容易被忽略但影响面更广的是默认值变了。CUDA构建中FP4 QMoE内核现在默认启用,源码构建可用 -Donnxruntime_USE_FP4_QMOE=OFF关掉;CUDA fpA-intB构建默认只保留精简内核集(FP16激活、INT4/INT8权重、scale-only量化、block_size=32),需要BF16、zero-point、bias、更大block size或Hopper原生变体的话得在源码构建时加 -Donnxruntime_USE_FPA_INTB_GEMM_FULL=ON才能拿回完整集合。

用Go写服务的团队这次拿到了官方C API的Go绑定,不用再自己写cgo封装;WebGPU插件EP打包也开始支持Linux AArch64。

此外FP16在CPU上的Gemm和MatMul现在必须依赖硬件加速,没有匹配内核的FP16节点会退回FP32执行,这意味着部分模型在纯CPU环境下的精度路径会变。

版本还集中修了一批安全与可靠性问题:限制嵌套模型图深度、规范化外部数据路径,加强Split、Scan、GatherND、ScatterND、Conv、pooling等算子的形状与参数校验,修补多处CUDA索引与缓冲区大小算术,并将Protobuf升级到 33.6。以上内容均依据该版本的发布说明整理。

微软ONNX Runtime发布 1.30.0 版本。据发布说明,这些变更从 1.29.1 版本起算,涵盖生成式AI推理、CPU与GPU性能、Go绑定和运行时可靠性。

发布说明列出的亮点包括:CUDA推理支持扩展,为连续批处理引入变长因果卷积(#32168)、paged XQA中的投机解码(#32340),以及带per-channel scales的INT4 paged KV cache(#32515);WebGPU改进PagedAttention、新增GPT-OSS支持与INT8 KV-cache块量化,并扩展卷积优化(#31727、#32277、#32284、#32420);CPU端新增面向AVX-512、Arm64 NEON和SVE的融合LinearAttention内核,以及AVX2 LayerNorm/RMSNorm加速(#31674、#31973、#32178、#32356);新增ONNX Runtime C API的Go绑定与DeepSeek Engram contrib算子(#29615、#32268)。

默认构建行为的变化

FP4 QMoE内核现在在CUDA构建中默认启用,本版本新增了Windows构建支持;源码构建可用 -Donnxruntime_USE_FP4_QMOE=OFF选择关闭(#32096、#32163)。

CUDA fpA-intB构建现在默认使用精简内核集,面向FP16激活、INT4/INT8权重、scale-only量化和block_size=32;从源码构建时设置 -Donnxruntime_USE_FPA_INTB_GEMM_FULL=ON可保留完整内核集,包括BF16、zero-point、bias、更大block size和Hopper原生变体(#32324)。

CPU FP16的Gemm和MatMul执行以硬件加速为前提;被分配到CPU且没有匹配内核的FP16节点现在回退到FP32(#32301、#32197)。

WebGPU插件EP打包新增Linux AArch64支持。插件版本升级至WebGPU 0.4.0和CUDA 0.2(#32287、#31960、#31970)。

安全与可靠性修复

发布说明将安全与可靠性更新分为几类。模型加载方面,限制了嵌套模型图深度并规范化外部数据位置(#32344、#32135);为BFC arena分配加入受检取整,并修复预打包权重的引用生命周期(#32010、#32040)。

输入校验方面,加强了Split、Scan、GatherND、ScatterND、SpaceToDepth/DepthToSpace、Crop、Conv、Normalizer和pooling的形状、rank与参数校验(#29461、#31668、#32034、#32039、#32076、#32157、#32160、#32161、#32345、#32349);同时强化了生成与注意力输入处理,包括注意力属性收窄、BifurcationDetector输入、生成子图形状和QEmbed segment输入,BeamSearch缓冲区扩展改用动态形状存储(#31648、#31701、#32009、#32078、#32144)。

其他校验修复包括:验证TreeEnsemble节点引用并限制子树比较,拒绝CPU RoiAlign的非有限坐标,要求ImageScaler的bias与通道数匹配(#32031、#32043、#32011、#32002);为LoRA适配器参数数据类型加入安全白名单,校验MatMulFpQ4形状输入,检查MLAS分块量化/反量化的索引范围(#31682、#32032、#32007)。

GPU侧修复包括:加固MatMulNBits、RemovePadding、RotaryEmbedding、SparseAttention、Whisper beam search、NMS、QDQ和GatherElements中的CUDA索引与缓冲区大小算术(#31643、#31994、#31995、#31996、#31998、#32014、#32029、#32030);修复CUDA reduction scan与Softmax偏移算术的溢出,处理CUDA随机数生成器内核的零尺寸输出(#32137、#32330、#31997);修复CUDA MultiHeadAttention共享缓存scratch生命周期,并在CUDA graph replay期间保持CudaAsyncBuffer暂存存储存活(#31968、#32121);修复WebGPU部分tile的子组矩阵越界加载、可写设备分配器缓冲区零初始化,以及内置数据传输中拒绝外部GPU句柄(#32364、#32063、#32317)。

依赖与工具链方面,Protobuf升级至 33.6,并更新Python文档依赖,其中包含一项ONNX安全相关更新(#29906、#32190、#32424);JavaScript依赖更新包括js-yaml、joi、fast-uri以及Next.js端到端fixture(#32397、#32486、#32488、#32505、#32508);GitHub Actions被固定到完整长度的commit SHA,打包基础设施加强了认证包源和NPM网络隔离(#32176、#32005、#32440)。

新增功能与执行提供程序更新

核心API与运行时方面,新增ONNX Runtime C API的Go绑定(#29615);内存导入扩展支持host pointer,并可通过KernelContext::GetPreallocatedOutput访问预分配输出(#29726、#32089);新增packed-attention workspace配方与估算,workspace输入形状处理现在能识别可选输入(#32283、#32321、#32312);新增DeepSeek Engram contrib算子EngramGate和NGramHashMapping,并扩展Qwen-3.5算子的内核覆盖(#32268、#32106)。

插件EP方面,新增基于插件EP分配器的LoRA适配器支持,在EP注册期间保留自定义分配器,并在释放前重置插件流分块(#32221、#32272、#31983);修复WSL上的CUDA插件设备发现,改进Windows ARM64打包(#32517、#32355)。

CUDA EP的注意力与解码部分:PagedAttention新增带per-channel scales的INT4 paged KV cache和is_causal属性(#32515、#32225);paged XQA扩展支持投机解码、query-to-KV head group size 6、包括FP16 cache的head size 256,以及 128 token页面的原生block table(#32340、#32108、#32229、#32263、#32127);paged FlashAttention解码启用split-KV,并改进PagedAttention分派诊断(#32102、#32099);新增用于连续批处理的VarlenCausalConvWithState和紧凑的变长因果卷积状态更新(#32168、#32290);新增紧凑的GatedDeltaNet算子及CUDA GatedDeltaNet的BFloat16支持(#32282、#32307)。

MoE与量化矩阵乘法部分:为Hopper GPU上受支持的固定形状QMoE工作负载新增可选的FP8 DeepGEMM MoE解码路径(ORT_QMOE_FP4_DEEPGEMM=1,默认关闭),该路径在Windows上不可用(#32122、#32485);通过输出列分块限制QMoE workspace并控制FP8权重量化scratch内存(#32097、#32129);为prefill向量化NVFP4权重量化,为Qwen多token预测调优NVFP4 GEMV tiling,并将投机解码GEMV扩展到 64 行(#32128、#32140、#32289);针对 48-SM SM121 GPU调优FP4与FP8 GEMV调度,包括FP8 KSplit32调度,并改进网格略超每SM两个block时的FP8 GEMV驻留(#32408、#32409、#32433);为小N的FP16 MatMul形状新增可选的split-K GEMV路径,并改进fpA-intB GEMV支持检查(#31478、#32338)。

CUDA算子部分:改进宽末轴下TopK、ArgMax、ArgMin的性能,加速低lane的INT64 CumSum(#32404、#32092、#32238);为连续子区域新增单次memcpy的Slice快速路径,并从Split与Concat快速路径中移除pinned buffer使用(#28902、#32410);注册BF16 ReduceMean内核,按元素类型修复ScatterElements reduction分派,并修复Abs中对带符号零的处理(#32326、#29879、#31477)。

WebGPU EP部分:改进PagedAttention,新增PagedAttention metadata和GPT-OSS支持,加入INT8 KV-cache块量化(#31727、#32277、#32284);新增INT64 Gather支持,并用subgroup shuffle优化MatMulNBits宽tile(#31714、#31703);卷积融合新增八种激活,im2col路径支持融合激活处理,Conv/MatMul使用基于uniform的激活参数(#32117、#32185、#32116);对pointwise卷积复用subgroup-matrix MatMul,并为im2col-matmul路径新增卷积权重预打包(#32304、#32420);启用GELU与BiasGELU融合,为Elu和contrib GELU变体加入transpose optimizer处理,并启用LayerNorm融合以修复FP16推理正确性(#32053、#32118、#32294);新增subgroup size控制,为subgroup-matrix MatMul/Gemm选择subgroup size 32,并在WASM构建中启用subgroup-matrix路径(#32056、#32306、#32269);Dawn pipeline编译worker数随CPU核数缩放,当所有输出段按vec4对齐时向量化Split,并基于占用率选择pooling路径(#29820、#32251、#32313);在Python中暴露安全的graph-capture I/O,新增鲁棒性provider选项,并支持将onnxruntime_perf_test -i选项转发给WebGPU(#32074、#31971、#32316);修复用户提供GPUDevice实例的同步问题,修正MatMul pipeline缓存键和 1D分派shader快速路径,并将copy_tensors误用从终止进程改为报错(#32259、#32048、#32343、#32315)。

WebNN EP新增SkipLayerNormalization支持,并修正输出rank校验与回退数据类型支持检查(#32377、#31708、#32067、#32293)。TensorRT修复shape value处理(#32415);DirectML在内核设置期间校验kernel_shape与output_padding长度(#31999)。

CPU与核心优化

MLAS与CPU内核方面,新增面向AVX-512、Arm64 NEON和SVE的融合LinearAttention内核(#31674、#32178、#32356);新增AVX2 LayerNorm/RMSNorm内核,并在CPU EP上注册BFloat16 LayerNorm/RMSNorm内核(#31973;来源文本在此处截断)。

信息来源