该 PR 修复了 ONNX Runtime WebGPU Provider 在先创建关闭权重加载加速的会话、再创建开启加速的会话时,后续会话无法正常启用 D3D12 权重加载加速的问题。实现上将 D3D12 设备选择和适配器选项配置分别提取为 SelectWeightLoadingD3D12Device 与 ConfigureWeightLoadingAdapterOptions,并调整原生 D3D12 设备的保留逻辑,使首次未启用加速时仍能为后续会话保留所需资源。测试新增了从关闭到开启加速的跨会话场景,验证不同会话配置下的加速可用性。这些改动主要改善 D3D12 加速路径的资源生命周期管理和会话配置兼容性;现有信息未提供性能基准,无法量化权重加载耗时的改善,也不能据此判断推理计算速度是否提升。
此次改动将 WebGPU 的 Upload、MemCpy 和 Download 从 BufferManager 迁移到现有 DataTransferImpl,并统一调整原生执行提供程序、插件及测试的调用路径,使 BufferManager 专注于缓冲区分配、缓存和释放。DataTransferImpl 继续使用调用方选定的 BufferManager 及其上下文和 recording,上传与下载仍调用 context.Flush(buffer_manager, recording),保持提交顺序、暂存缓冲区行为、校验及拷贝大小对齐不变。此次重构不涉及 Flush 实现或签名、recording 与缓冲池的关联、Run/replay 生命周期及初始化器缓冲池退役逻辑,因此主要影响是职责划分,而非改变 GPU 拷贝或调度机制。PR 报告在 Windows Release、WebGPU/D3D12 环境下原生配置与构建通过,现有测试已迁移以覆盖新的拷贝实现;但未提供明确的测试运行结果、性能基准或其他平台验证信息,不能据此认定有性能提升或更广泛的兼容性改善。
该 PR 改进 ONNX Runtime CUDA 插件执行提供程序(EP)的 NuGet 打包流程,完善许可证分发和包元数据,并与 #28525 中的 WebGPU 包更新保持一致。打包脚本在生成包前将仓库中的 LICENSE 和 ThirdPartyNotices.txt 暂存到项目旁,C# 项目配置则改为引用随包分发的许可证文件,并设置项目 URL。生成的包已确认包含许可证相关文件和预期的 NuGet 元数据,且使用临时 linux-x64 测试夹具成功完成打包。此次调整属于打包层面的完善,不涉及 WebGPU 或 CUDA 推理实现;现有信息未提供性能测试或跨平台兼容性验证,不能据此认定有性能提升或更广泛的兼容性变化。
该 PR 为 ONNX Runtime 的 WebGPU 插件新增 Dawn 升级工具,将精确版本解析、源码归档 SHA1 校验值计算、已审核依赖清单更新、SwiftShader 版本同步,以及按 CMake 顺序验证和刷新本地补丁整合为统一流程。工具默认仅试运行并生成 Markdown/JSON 报告和建议差异,支持显式应用与检查模式;遇到新增或归属不明确的依赖、需审核的补丁时,会阻止应用变更,同时保留运行时与开发依赖分类及独立打包的 DXC 版本,不处理 DXIL 迁移。Windows、Linux 和 macOS 插件打包流水线还会根据实际拉取的 Dawn 依赖生成独立组件清单,核验检出版本并进行组件治理扫描,相关脚本配有测试和使用文档。这些改动主要提升升级一致性、依赖可追溯性和跨平台发布的可靠性;现有信息未提供具体 Dawn 升级版本、运行时行为变化或性能测试,因此不能认定其直接改善 GPU 推理性能或扩展兼容范围。
该改动针对 ONNX Runtime WebGPU 后端中 NVIDIA 的稠密共享内存 FlashAttention 预填充路径,将头维度不超过 128 时的 Q·K 和 P·V 内层归约生成为直线式 WGSL,以减少循环开销。实现保留当前主线基于 FP32 qk_precision 的累加,以及归一化分数转换为 q_element_t 后参与 P·V 计算的行为,并沿用现有厂商与头维度缓存提示区分适用路径;外层循环、更大头维度、其他厂商、分页注意力及独立解码程序均不受影响。新增 FP16 高幅值回归测试以 65 个查询 token 和 64、128、256 三种头维度,覆盖不完整分块、归约展开、循环回退及分数溢出防护。PR 报告在启用 D3D12 Agility SDK 1.721.3-preview、使用 SM 6.10 时,完整模型预填充性能提升 10.87%–46.73%,但所给性能描述不完整,缺少具体模型、硬件及测量口径,不能据此推断其他配置下的收益。
该 PR 为 INT3 QMoE 建立可移植的打包格式、数值参考及版本化算子契约,重点是 P0 参考工具和 P1 主机侧校验,而非 GPU 执行内核。核心实现包括逐行、低位优先的 UINT8 打包与解包、尺寸运算溢出检查、规范填充校验,以及 INT3 offset-4 解码和考虑存储尺度舍入的确定性 RTN 量化;通用工具支持 1~8 位,但不代表 QMoE 开放 INT5/INT6。算子定义与 MoE 辅助逻辑的调整配合形状推断、格式验证和固定数值测试,并提供独立标量参考及标准 ONNX opset-18 解包/解码图,避免依赖草案中的 Pack/Unpack 算子。该改动为后续后端实现提供一致性基准,但未包含 P2 CUDA 内核,也未显示 WebGPU 实现变更;现有信息缺少版本迁移细则和性能基准,无法据此确认旧模型兼容范围或推理加速收益。
该 PR 修复 ONNX Runtime 图优化器中 MatMul 与 BatchNormalization 融合的正确性问题,避免中间 Reshape 或 Transpose 改变列与通道的对应关系后,仍按 BatchNormalization 通道参数缩放 MatMul 权重列,导致 Basic、Extended 和 All 优化级别产生错误结果。实现通过各节点推断出的输出形状逐步跟踪 MatMul 的列轴,仅在其保持对应 BatchNormalization 通道轴时允许融合,形状未知则保守跳过。测试新增了移动通道与保留通道的 Reshape 场景,并与未融合图比较;另将两个通道维度与 scale 长度不匹配的既有用例改为预期不融合,避免融合掩盖模型本身的无效输入。这是通用图优化逻辑调整,并非 WebGPU 内核改动;跳过融合可能减少部分图的性能优化机会,但提供的验证信息仅注明 Linux aarch64 CPU Release 环境,未给出完整测试结果、WebGPU 验证或性能数据。
该 PR 为 ONNX Runtime 新增 CUDA contrib 算子 com.microsoft.HyperConnectionLowRankMix,将低秩超连接模块中的可选前块后混合、分支 RMS 归一化、降维投影、ScaledSiLU、升维投影、sigmoid、前混合及后混合注入门融合为单个节点,目标是减少逐块执行时的算子调度和内核启动开销。实现包含 CUDA 算子与内核注册、算子定义、文档及 C++/Python 测试,直接使用标准行主序 [K, N] 权重,不依赖软件网格屏障、线程块集群或进程级状态。描述中 batch=1、H200、bf16、S=1 下每 token 减少约 2.1 ms 的收益来自 PR 之外的研究实现,不能直接视为本次实现的性能结果,当前信息也不足以确定其实际内核数量及各形状下的加速效果。本次未涉及 WebGPU 实现,新增节点不能据此直接在 WebGPU 后端运行;现有模型还需显式使用该 contrib 算子,所列改动未体现自动融合图优化。
该 PR 为 PackedSparseAttentionIndexer 增加可选的逐请求状态输出 state_status,使调用方能够识别状态更新是否成功,以及是否因游标不一致或 state_capacity 溢出而被拒绝,解决此前拒绝操作仅保持状态不变并返回空选择、却无法被直接观测的问题。实现上在算子 schema 中新增索引为 8、类型为 int32、形状为 (batch_size) 的输出,将输出数量范围调整为 6–9,并同步修改 CUDA 调用链、类型与形状推断、文档及测试。该设备端状态张量允许 CUDA Graph 解码或验证循环在回放结束后由主机读取结果,无需在算子内部同步;但现有信息未提供性能测量,不能据此断言吞吐或延迟改善。新增输出为可选项,接口设计上保留了旧调用方式;WebGPU 侧也有适配改动,但缺少具体实现内容,无法确认其是否支持生成该状态输出,还是仅对新增接口进行限制或校验。
该 PR 主要修复 ONNX Runtime 内存 arena 的边界条件与 CUDA 配置生命周期问题,并优化现有 CUDA GEMV 和因果卷积内核,不引入模型专用算子或 schema 变更。分配器在 max_dead_bytes_per_chunk 为零时避免拆分大小恰好匹配的空闲块;CUDA 指针选项 API 支持设置和查询 default_memory_arena_cfg,将配置复制到提供程序自有存储,并对不支持的选项名返回无效参数错误。性能改动包括提高小 N GEMV 的 split-K 上限和向量化占用率目标,以及为满足条件的单请求 VarlenCausalConvWithState prefill 引入时间维分块,以提升并行度。测试补充覆盖 arena 边界、配置接口、GEMV 工作区大小、FP16/BF16 输出、重复 CUDA Graph 回放及因果卷积;这些改动未直接涉及 WebGPU,且未提供性能基准,无法量化加速收益,而此前被静默忽略的不支持选项现在会报错,调用方需注意这一行为变化。