ONNX Runtime发布WebGPU Plugin EP v0.4.0,新增GPT-OSS支持并优化PagedAttention
该版本在Subgroup Matrix MatMul、Conv融合激活、KV缓存量化、Linux AArch64打包等方面均有更新,同时修复了子组矩阵越界加载等正确性问题。
AI解读:ONNX Runtime发布WebGPU Plugin EP v0.4.0,这是一次面向WebGPU执行提供器的常规版本更新。它不改变模型格式或API,主要影响的是在浏览器或WASM等WebGPU环境中跑ONNX模型的开发者。
这次更新对两类人最有用。一是运行量化大模型推理的人:MatMulNBits宽瓦片执行被优化,新增了int8 KV缓存块量化。二是尝试新模型的人:加入了Qwen-3.5算子和DeepSeek Engram贡献算子,还增加了PagedAttention元数据与GPT-OSS支持。
构建和打包方面,Linux AArch64的WebGPU插件包已启用。但注意,发布说明中所有性能项只写了“优化”“加速”等动作,没有给出具体速度提升数字,因此不要把它当成可量化的性能承诺。
ONNX Runtime发布了WebGPU Plugin EP v0.4.0。根据发布说明,本次更新涵盖内核性能优化、算子支持扩展和可靠性修复,涉及提交仅影响WebGPU Plugin EP代码与打包。
性能优化
- 使用子组洗牌(subgroup shuffle)优化了MatMulNBits的宽瓦片执行。
- 将融合激活参数作为统一变量(uniforms)传入Conv/MatMul,并把另外 8 个激活函数融合进Conv;同时为im2col Conv路径增加融合激活支持。
- 当每个输出段都是vec4对齐时,对Split进行向量化。
- 共享子组矩阵MatMul与逐点Conv,并将子组矩阵MatMul/Gemm的子组大小固定为 32。
- 池化路径改为按占用率而非输出大小选择。
- 为im2col-matmul路径预打包Conv权重。
- Dawn流水线编译worker数量随CPU核数扩展。
- 增加PagedAttention元数据和GPT-OSS支持,并继续对PagedAttention进行第二轮优化。
- 新增int8 KV缓存块量化。
新算子与模型支持
- 实现了WebGPU子组大小控制基础设施,并在WASM构建中启用了子组矩阵路径。
- 为Qwen-3.5算子添加了更多内核。
- 为DeepSeek Engram贡献算子添加了更多内核,包括EngramGate和NGramHashMapping。
可靠性与正确性修复
- 修复了 1D分派着色器快速路径。
- 修复了子组矩阵在尾部部分瓦片上的越界加载。
- 让MatMulNaiveProgram的流水线缓存键覆盖其烘焙进WGSL的所有内容。
- 对copy_tensors误用改为报告错误而非终止进程。
- 在内置数据传输中拒绝外部GPU句柄。
构建、打包与工具
- 启用了Linux AArch64 WebGPU插件EP包。
- 将onnxruntime_providers编译与其归档分离。
- 在CI中运行wgsl_template Python测试。
其他说明
发布说明列出了本次版本贡献者名单,并注明这份摘要由AI根据提交历史和PR元数据起草,发布前经过审核。