该 PR 为 WebGPU PagedAttention 增加 q_norm_weight、k_norm_weight 和 qk_norm_epsilon 支持,解决 Qwen3.8 / DFlash2 路径因不支持这些输入而报错的问题,并覆盖独立及打包 QKV、有无 RoPE 的预处理场景。实现复用共享归一化着色器,逐头对 Q 和新追加的 K 执行 RMSNorm,归约与增益乘法采用 FP32,结果转为 FP16 后再进入旋转位置编码,以匹配 CUDA/参考实现的算术顺序;已有 K 缓存及所有 V 值保持不变。共享归一化的 FP32 算术模式为显式启用,不改变现有调用方的默认行为,同时在启用 Q/K 归一化时要求 epsilon 为有限正数。文件路径表明改动还涉及 GatedDeltaNet、FlashAttention 着色器、算子定义及相关测试和文档,但现有信息不足以确认这些关联修改的具体语义,也没有性能基准可用于量化新增归一化的开销或收益。
该改动将会话选项 enable_profiling 传递到 WebGPU 初始化流程,使 WebGPU EP 仅在会话启用性能分析时才请求 timestamp-query,避免普通推理无条件申请 GPU 时间戳查询能力。从修改路径看,配置传递覆盖了 provider 注册、Python 绑定及插件式 EP 工厂,并涉及 EP C API 与插件接口的配套调整。测试改动涉及 WebGPU 上下文和插件 EP,旨在验证相关初始化及配置传递行为,但现有信息未提供具体断言。此举可减少未启用 profiling 时对可选 WebGPU 特性的依赖,有助于改善兼容性;不过,缺少设备支持情况、失败回退逻辑和性能测量,无法确认具体兼容性收益或推理速度变化。
该改动针对 ONNX Runtime WebGPU 的量化 MatMulNBits,在报告支持相应能力的 AMD D3D12 适配器上优先选择子组大小为 64 的 16×16×16 FP16 subgroup-matrix 配置,同时保留 wave32 回退和其他适配器的既有配置偏好。实现上同步调整主机端配置与 WGSL 内核:小 M 使用宽 tile,较大 M 使用两个或四个 wave 共享反量化权重,并在必要时缩小 K 分块以整除 K,将 tile 尺寸纳入程序缓存键以区分不同内核配置。这些策略旨在通过权重共享和更大的 K 分块减少重复工作与同步开销;PR 描述称多数已测 prefill 形状获得性能提升,但未提供具体测试形状、硬件型号或加速幅度。新增独立的 WebGPU 4 位和 8 位正确性测试,覆盖三种 tile 策略及带或不带偏置、零点的情况,并显式选择 WebGPU、禁用 CPU 回退,避免回退执行掩盖 GPU 路径问题。
该 PR 将 D3D12 Agility SDK 运行时 DLL 随 Python wheel 一同分发,覆盖内置 WebGPU 执行提供程序(EP)的标准 ONNX Runtime 包和独立 WebGPU Plugin EP 包,减少 Windows 部署时手动准备运行时依赖的需求。改动涉及 CMake、标准包与插件包的 wheel 打包逻辑,并同步调整构建参数、Windows 插件 CI、测试及文档,使构建与分发流程配合运行时 DLL 的打包。其主要影响是改善 Windows 上 WebGPU 使用 D3D12 后端时的依赖分发与部署体验,而非直接优化 GPU 推理计算。现有信息未提供具体 DLL 版本、加载策略、系统与驱动要求或性能测试结果,因此不能据此确认兼容性范围扩大或推理性能提升。
该 PR 为 WebGPU 的 QMoE 增加块缩放 FP8 W8A16 推理支持,可直接使用 Qwen 3.8 Flash Next MTP 格式的专家权重,无需重新量化或展开为稠密权重。实现扩展了算子定义和 WebGPU 调度:当 quant_type="fp8" 且 block_size=128 时,读取形状为 [E, ceil(N/128), ceil(K/128)] 的 FP32 缩放张量,并通过新增 WGSL 着色器解码 E4M3 原始字节,在 FP16/FP32 累加过程中应用对应块的缩放。预填充采用直接专家派发,单 token 解码采用间接 top-k 专家派发,避免额外权重转换与稠密化开销,但未提供性能或显存实测数据,无法量化收益。不指定 block_size 时保留原有 CUDA 全局缩放 FP8 契约,整数、FP4、NVFP4 和 WFP4AFP8 行为不变,并新增具有不同专家缩放乘积的双专家精确性测试。验证信息确认 Windows Release 下 WebGPU provider 及 provider test 构建成功,但测试执行记录被截断,无法确认具体测试的运行结果。
该 PR 为 ONNX Runtime 的 WebGPU PagedAttention 补齐 is_causal=0 且 local_window_size>0 的支持,移除阻碍 Qwen3.8 / DFlash2 路径的参数校验限制。实现上修正 dense prefill 和 dense split-reduce 两条注意力路径,按各序列实际长度独立计算相对当前查询的左右边界:非因果模式仅解除右侧因果限制,左边界仍为 max(0, P+q+1-W),右边界为 P+Q,而非改成序列末尾窗口或对称窗口。相关着色器同步调整分块排除、分数掩码和 softmax 归约中的边界处理,并防止左边界减法发生无符号下溢,同时更新 Python 测试与设计文档。这些改动旨在使 WebGPU 行为对齐 CUDA/参考实现并扩展模型兼容性;现有信息未提供测试运行结果或性能基准,无法确认具体性能变化。
该改动调整 WebGPU 执行提供程序的运行时兼容策略:将连续支持版本的下限设为 ONNX Runtime 1.30.1,同时精确允许 1.28.3,不扩大为对整个 1.28.x 系列的支持,也不改变 API 版本协商机制。版本策略通过统一定义供运行时兼容性匹配、CMake 配置以及 Python wheel、NuGet 的 README 生成使用,减少构建、运行时判断与发布文档之间的不一致。新增版本匹配和打包回归测试,并让运行时冒烟 CI 继续使用最低连续支持版本 1.30.1,避免依赖例外版本二进制包已公开可用的假设。此改动主要改善兼容性管理和发布一致性,现有信息未体现 WebGPU 算子、GPU 执行路径或推理性能方面的变化。
该改动改善了 ONNX Runtime 核心库与 WebGPU EP 插件版本不一致时的错误诊断:核心库可能将旧版 EP 不支持的激活函数融合进 Conv,导致会话创建失败。实现上改为抛出 GetFusedActivationAttr 返回的错误状态,替代仅报告条件失败的 ORT_ENFORCE,并在错误信息中标明不支持的激活函数、属性来源,以及使用 ORT_ENABLE_BASIC 保留独立激活节点的规避方式。同时移除了 FusedConv 中重复的属性解析,因为其 Conv<_, is_fused = true> 基类已完成该操作,并新增针对未知融合激活函数的错误诊断测试。这主要提升了版本兼容问题的可诊断性,并未扩展 WebGPU Conv 支持的融合激活范围;降低优化级别可能影响推理性能,但所给信息没有提供性能测量结果。
该 PR 修复了 WebGPU 执行提供程序对一维 blocked DequantizeLinear 的分类错误,避免指定 block_size 的输入被误按逐轴反量化处理,导致无报错但输出错误。核心改动位于 WebGPU 量化算子的分类逻辑,并在公共算子测试文件中新增带 zero-point 的一维 int8 分块反量化回归用例。相关 DequantizeLinearOp21BlockedTest 测试共 37 项全部通过,包括新增用例,且构建和 lint 检查通过。此次修复改善了 WebGPU 对该反量化模式的语义兼容性与数值正确性;现有信息未提供性能基准,无法判断其对推理速度的影响。
该 PR 修复了 ONNX Runtime Web 的 JSEP WebGPU GatherND 实现中,对 vec4 打包 uniform 的索引访问错误,避免在输入秩不小于 5 时生成非法的 `i32(vec4<u32>)` 转换,导致 Tint 拒绝着色器模块。关键改动位于 `computeSliceOffsets` 的打包数据访问逻辑,使输入维度和切片步长的索引读取符合标量计算要求,并新增覆盖 rank-5 输入维度及打包切片步长的回归测试。直接调用测试运行器后,Chrome WebGPU 上全部 7 个 GatherND 用例通过,TypeScript 检查及相关格式、静态检查也通过;最初的 npm 测试失败涉及参数传递和缺少 JSEP WASM 产物,已由后续运行替代验证。该修复主要恢复受影响 GatherND 场景的 WebGPU 可用性与着色器编译兼容性,现有信息未提供性能基准或跨浏览器验证结果,不能据此推断性能提升或其他浏览器的兼容性。