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

ONNX Runtime 1.32.0发布:重新整合ONNX 1.23.2与opset 28,新增CPU/GPU混合MoE卸载

发布说明称,100k节点、常量密集的图在会话初始化时从数分钟降至数秒;CUDA Plugin EP v0.4.0与WebGPU Plugin EP v0.6.0需与 1.32.0 配套使用。

AI解读:ONNX Runtime 1.32.0重新整合ONNX 1.23.2,支持opset 28,包含SpaceToDepth、Mod、带符号BitShift和BFloat16扩展;同时把DLPack升级到v1.3。发布说明称DLPack现支持全部已实现的ORT数值与布尔类型(float6除外),布尔张量改用原生kDLBool元数据。

新增会话级的CPU/GPU混合MoE卸载规划器与执行后端,面向量化QMoE(NVFP4、INT4、INT3、INT2)和block-packed MoEPacked模型,并配套共享布局的AVX-512/AVX2 CPU QMoE kernel与memory-mapped expert存储。发布说明未给出性能数据。

发布说明称,在 100k节点、常量较多的图上,会话初始化从数分钟降到数秒,变化来自分配规划、常量共享、图I/O映射与拓扑排序中非线性瓶颈的消除。这一结果来自项目自身说法,说明中未提供可复现的评测细节。

兼容性方面有两点需要处理:ACL EP在 1.31.0 弃用后被彻底移除,Python get_all_providers() 不再列出ACLExecutionProvider;树内provider-bridge的NvTensorRTRTXExecutionProvider源码被移除,改用独立TensorRT RTX插件EP,旧的AppendExecutionProvider调用现在会报弃用错误。

权重量化编译API发生迁移:ModelCompilationOptions_SetWeightlessEnabled以及ep.enable_weightless / ep.enable_weightless_ep_context_nodes会话选项弃用,改用ModelCompilationOptions_SetWeightlessMode与ep.enable_weightless_mode("0"=NONE、"1"=EXTERNAL_ONLY、"2"=ALL)。

另据发布说明,训练相关的构建与测试CI任务已从GitHub Actions工作流中撤下,推理构建覆盖保留。

微软ONNX Runtime发布 1.32.0,这是自 1.31.1 之后的版本更新。发布说明列出的重点包括:重新整合ONNX 1.23.2并支持opset 28、新增CPU/GPU混合MoE卸载、扩展设备内存与权重量化编译API、加速大图会话初始化。

ONNX 1.23.2、opset 28与DLPack v1.3

1.32.0 把ONNX升级到 1.23.2,支持opset上限提高到 28。新增算子支持包括:CPU与CUDA上的原生SpaceToDepth(DCR与CRD两种模式,并在DML、JS、WebGPU、QNN上按版本分别注册)、opset 28的浮点floor-modulus Mod(CPU、CUDA、DML)、带符号BitShift,以及BFloat16的若干扩展(Compress、OneHot、ReverseSequence、Unique、Celu、Einsum等,CPU与部分CUDA)。

DLPack升级到v1.3,采用原生kDLBool元数据,并双向支持全部已实现的ORT数值与布尔类型,包括五种float8、packed float4、int4/uint4、int2/uint2;float6在DLPack中仍不支持。发布说明称底层is_bool_tensor覆盖被移除,uint8的DLPack元数据现在一律按uint8导入。这一布尔约定变化会影响依赖旧行为的集成代码。

CPU/GPU混合MoE卸载与QMoE kernel

该版本加入会话级CPU/GPU混合MoE卸载规划器与执行后端,针对量化QMoE(NVFP4、INT4、INT3、INT2)以及block-packed的MoEPacked模型,配套共享布局的AVX-512/AVX2 CPU QMoE kernel和memory-mapped expert存储。发布说明同时列出INT3 QMoE v1的packed-code约定、MoE/QMoE schema的SiLU后裁剪(swiglu_limit_after_activation)与tanh-GEGLU选项。

CUDA EP一侧增加离线K-packed NVFP4以及Tensor-Core INT4/INT3/INT2 QMoE kernel,并支持原生GGUF/block-packed的GatherPacked、MatMulPacked、MoEPacked执行。新增的session.moe.offload.* 与session.kernel_dispatch_policy(auto、latency、memory、safe)属于会话级配置,具体限制需看对应的CUDA Plugin EP v0.4.0说明。

会话初始化与API扩展

发布说明称,通过消除分配规划、常量共享、图I/O映射和拓扑排序中的超线性瓶颈,100k节点、常量密集的图会话初始化从数分钟降到数秒;这一说法来自项目方,说明中未附可复现评测。此外新增外部GPU权重加载的流水线式pinned-memory分段搬运,以及AddExternalInitializers对大于 127 字节、自然对齐的CPU缓冲区进行零拷贝借用。

  • 新增OrtApi::EpDevice_GetMemoryCapacity和OrtEpFactory::GetDeviceMemoryCapacity,可查询设备总内存与当前可用内存估计值,内置与插件CUDA EP均已支持。
  • 权重量化编译改为显式多模式:EP通过weightless_supported_modes声明能力,应用用ModelCompilationOptions_SetWeightlessMode或ep.enable_weightless_mode指定模式;编译后的EPContext模型会记录weightless_mode与external_dependencies。
  • Python侧新增Model Package API绑定,并加固便携模型包EP重建、UTF-8路径处理以及shared_assets的路径约束与符号链接校验。

兼容性变更与移除项

发布说明要求核心与插件使用相同的贡献算子schema,并建议两者从同一个ONNX Runtime修订版构建;schema不匹配可能导致错误执行或崩溃,且未必能在插件注册时被发现。

  • ACL EP在 1.31.0 弃用后彻底移除,包括构建选项与独立C注册API;Python的get_all_providers() 不再列出ACLExecutionProvider,应用应从显式provider列表中删掉。
  • 树内provider-bridge的NvTensorRTRTXExecutionProvider源码被移除,改用通过OrtApi::RegisterExecutionProviderLibrary注册的独立NVIDIA TensorRT RTX插件EP;NvTensorRtRtxProviderOptions保留为弃用声明,旧的AppendExecutionProvider调用现在返回弃用错误。
  • CUDA Plugin EP v0.4.0与WebGPU Plugin EP v0.6.0与 1.32.0 配套;CUDA与WebGPU的详细provider说明在各自插件EP发布说明中。
  • 训练相关的构建与测试CI任务从GitHub Actions工作流撤下,推理构建覆盖保留。

信息来源

更多

新闻专题
外观