该改动针对 ONNX Runtime WebGPU 执行提供程序中 Apple GPU 的 MatMulNBits 单 token 解码场景(M=1、FP16、INT4 block-32),通过调整计算布局改善工作组利用率。通用、融合 MLP 和融合 QKV 路径均将输出分块从 8 列扩大至 32 列,并将工作组线程数从 128 增至 256,同时把分块大小纳入着色器缓存键,其他厂商及工作负载保持原有配置。此外,GatedDeltaNet 着色器将 FP16 decay/beta 读取值转换为 FP32 以改善兼容性,并新增 N=130 用例覆盖输出尾部不足一个分块的情况。报告中的解码速度由 8.5448 提升至 8.8959 tok/s,增幅为 4.11%,且通过了 13 项融合 MLP/QKV 结果一致性测试及 1,077-token 提示词、256-token 生成验证;由于未提供具体 Apple GPU 型号和模型信息,该收益尚不能直接推广到其他设备或模型。
该改动面向运行时由宿主提供 Dawn 的原生 WebGPU 场景,使 ONNX Runtime 无需配置完整 Dawn 源码,即可使用自身工具链编译与宿主版本匹配的 API 分发层。新增的 onnxruntime_DAWN_PREBUILT_DIR 接收公共及生成头文件和独立 proc 源码,并校验输入与选项组合;包模式跳过原生 Dawn 配置和捆绑 DXC 打包,同时保留现有源码构建路径,并记录包布局及宿主版本匹配约定。测试侧在禁用 CPU 回退的条件下验证 Abs 推理,共享库构建改为测试实际 ORT DLL,新增 Windows CI 则复用匹配的 API 包与原生宿主,重新构建 ORT DLL,并覆盖推理、缺失 proc 表和无效包场景。其主要收益是解除外部 Dawn 集成对捆绑构建及打包目标的依赖,改善原生宿主的集成兼容性;现有信息未提供性能基准或完整本地验证结果,无法据此判断 GPU 推理速度是否变化。
此改动修复 CUDA GroupQueryAttention 在启用旋转位置编码并传入显式位置时,融合 FlashDecoding 路径仍按缓存偏移推导旋转表索引、未使用显式位置的问题。实现上在快速解码的临时缓冲区大小计算和序列长度准备之前排除这类输入,改走已有的支持显式位置的 PrepareQKV 加 FlashAttention 路径,同时保留隐式位置和未启用旋转编码输入的原有快速路径资格,不新增位置比较所需的设备到主机传输。新增确定性算子回归测试,通过独立标量参考、共享缓存别名检查和 K/V 缓存逐位精确断言,覆盖位置偏移、不同批大小、部分及完整旋转维度、两种旋转配对布局和多 token 对照场景。实际修改仅涉及 CUDA 实现及算子测试,不直接改变 WebGPU 后端;受影响输入不再使用融合快速解码路径,但缺少性能基准,无法量化其性能影响。
该 PR 将 Attention 的 Q/K/V、权重形状、投影尺寸及缓存长度校验统一到预打包与执行路径,减少初始化阶段与动态执行阶段的校验差异,并在算子文档中明确投影维度要求。实现上为打包和 GEMM 尺寸计算增加边界检查,保留剪枝及 V 投影维度不等于 Q/K 的布局支持,同时使 CPU 投影路径支持省略 bias。改动主要集中在 CPU Attention、共享校验逻辑和 MLAS,CUDA 与 WebGPU 仅有少量配套调整;现有信息不足以确认 WebGPU 的具体行为变化,也没有性能基准支持吞吐或延迟改善的结论。测试覆盖初始化校验、动态未打包执行、共享预打包和维度边界,并在 Windows CPU Release 及禁用异常的最小构建中通过相关验证,增强了非法维度处理与不同构建配置下的可靠性。
该改动修复 ONNX Runtime WebGPU 后端在复用 GPU 缓冲区时的执行顺序问题:CPU EP 输出通过 queue.writeBuffer 上传时,可能先于尚未提交的 GPU 指令生效,覆盖这些指令仍需读取的输入。实现上在 WebGpuBackend.upload() 写入前调用 flush(),与 download() 的处理保持一致,确保已记录的指令先提交;该操作不以 pendingDispatchNumber 为条件,因为 memcpy() 也会向编码器记录命令,却不计入 dispatch 数量。没有打开的命令编码器时 flush() 会直接返回,因此会话创建阶段的上传不受影响,推理期间每次 CPU EP 输出上传最多增加一次 queue.submit,但具体性能影响尚无基准数据支持。配套新增了 CPU 输出上传场景的浏览器端到端测试脚本和 ONNX 模型,并接入测试配置,用于回归验证这一 CPU/WebGPU 混合执行场景。
该改动为 ONNX Runtime WebGPU 的 FP16 MatMul 增加 16×16×16 subgroup matrix 配置,使支持该配置的 NVIDIA 和 AMD GPU 能使用矩阵硬件,而不再回退到较慢的通用内核,同时保留 Intel 的 8×16×16 路径。实现上复用现有 subgroup matrix 内核并调整 WGSL 模板,对新配置将 B 矩阵列数补齐至 8 的倍数,以满足 Vulkan 协作矩阵加载所需的 16 字节行对齐,并同步更新 MatMul 测试和模板生成结果。在 Linux Vulkan 环境下,Qwen3-0.6B FP16 模型处理 512-token 提示词的 prefill 测试中,RTX 5080 的延迟从 121.7 ms 降至 103.3 ms,RX 7900 XT 从 305.0 ms 降至 283.3 ms,对应加速比分别约为 1.179 倍和 1.077 倍。收益依赖设备支持相应的 subgroup matrix 配置,现有数据不足以推断其他模型、输入规模或图形后端上的表现。
该改动修复 ONNX Runtime 会话层的并发漏洞:当执行提供程序(EP)不支持并发运行时,捕获图重放仍可能绕过会话锁,与同一会话的其他重放、普通推理或捕获图释放操作重叠。实现上将现有锁的获取移至 InferenceSession::Run() 外层,统一保护图状态检查、重放、正常执行及内部捕获重试,RunImpl() 重试则沿用已持有的锁,避免递归加锁。新增 CPU 回归测试使用不带内部锁、支持图捕获的测试 EP,验证操作串行化、释放期间的状态查询、捕获重试与重新捕获、重放失败清理,以及支持并发的 EP 仍可并发运行。这是后续移除 WebGPU 命令录制互斥锁的核心前置修复,本次并未直接修改 WebGPU 实现;不支持并发的 EP 将正确串行执行重放路径,但实际性能影响尚无基准数据支持。
该 PR 将 WebGPU 着色器中的标量、向量存储读写统一接入 ShaderVariableHelper,覆盖注意力、带状态因果卷积、归一化及量化矩阵乘法等路径,避免直接访问绕过缓冲区视图的归属、偏移和分段处理,也包括对可写输出缓冲区的读取。实现上,C++ 生成器向 WGSL 模板显式传递已注册的 helper,必需绑定使用引用、条件绑定使用可空指针,并在需要时保留打包存储表示。物理存储绑定统一改为 storage_<logical_name> 内部名称,使通过逻辑张量名直接访问的代码在着色器编译时失败,同时通过源码策略测试约束新增的内部名称直访。原子操作和子组矩阵操作仅调整命名并保留例外,其指针 helper 与缓冲区视图支持留待后续实现;本次主要改善存储访问的正确性和一致性,现有信息未提供性能基准或设备兼容性测试结果,无法判断具体性能变化及兼容范围。
该 PR 为 onnxruntime-web 的标准非代理推理路径补齐 LoRA 适配器的 JavaScript 接口,允许从 URL 或 Uint8Array 加载 .onnx_adapter 文件,并通过单次 session.run 的 activeLoraAdapters 参数启用,不影响后续未指定适配器的推理。实现主要贯通公共 API、后端适配器管理、运行参数传递和 WASM C/C++ 绑定,复用已编译进 WASM 的原生 LoRA 能力,同时提供独立于会话的适配器生命周期及显式释放接口,并新增单元测试。支持范围明确限定于非代理路径,不能据此认为代理模式也已获得支持。所列改动未显示新增 WebGPU 算子或 GPU 内核优化,且缺少 WebGPU 执行提供程序的适配器兼容性测试与性能数据,因此无法确认具体模型在 WebGPU 上的可用性或推理性能影响。
该 PR 仅修复文档与贡献指南中的失效链接,改善开发者查阅发布说明、扩展算子和示例资源时的可达性,不涉及推理代码变更。主要调整包括补全 GitHub 目录链接中的 tree/main、将扩展算子文档指向合并后的 custom_ops.md,并将发布流程及 WebGPU 分页注意力设计文档中的技能路径从 .agents/skills 更正为 .github/skills。Python 文档改为引用实际发布的 v1.24.1 和 v1.13.1,两个 Notebook 的 ONNX Model Zoo 链接迁移至 validated/ 路径,不存在的高层推理设计文档引用则保留为纯文本。根据 PR 描述,新链接目标均已通过 GitHub API 确认存在;这些修改不改变 WebGPU 实现、GPU 推理性能或运行时兼容性,也不代表新增分页注意力功能。