WebGPU 是浏览器里的图形与计算接口标准,让网页直接调用本机显卡(GPU,Graphics Processing Unit)做并行计算——模型不用装任何环境,打开网页就能跑。
打个比方:GPU 像一栋楼里几百个只会做简单加减乘除的工人,CPU 像能解复杂题的博士。模型推理本质上是海量小乘加,正好撒给几百个工人干。早年的网页只能用 WebGL 这个为画图设计的接口间接使唤显卡,所有计算都得伪装成「画三角形、贴纹理」,像拿画笔画账本,能凑合但别扭。WebGPU 借鉴 Vulkan、Metal、DirectX 这类现代图形接口,把渲染和通用计算分开,提供计算管线、存储缓冲区、工作组,还支持先把一大串命令录制好再一次性提交,减少 JavaScript 和显卡来回「打电话」的开销。
它到底被什么卡住?主要是四件事:
- 显存:权重得搬进显卡能访问的内存,几亿参数的模型就是几百 MB 到数 GB,推理还要放中间结果和 KV 缓存。浏览器标签页能拿到的内存有限,超了就得量化压小或分块加载。
- 带宽:显卡算得快,但从系统内存喂数据、每个 token 反复读写缓存,常常比计算本身更慢。瓶颈往往不在算力,而在「喂饭速度」。
- 算子覆盖:浏览器里普遍用半精度或低比特量化省内存,可总有些算子后端实现不全,一遇到就退回 CPU 慢路径,速度立刻掉。
- 生态与兼容:GPU 侧没有 CUDA 那样成熟的库,要靠 ONNX Runtime Web、WebLLM、Transformers.js 这类运行时把模型翻译成 WebGPU 指令;各浏览器、系统、驱动的支持程度不一致,具体以官方页面为准。
还有:首次打开仍要把权重从网上下载下来,缓存之后才快。
| 概念 | 是什么 | 和 WebGPU 的关系 |
|---|---|---|
| WebGL | 上一代网页图形接口 | 为绘图而生,做通用计算要绕路 |
| CUDA | 显卡厂商专有的并行计算平台 | 性能强,但要装环境、绑硬件 |
| WebAssembly | 浏览器里接近原生速度的字节码 | 管 CPU 计算,常与 WebGPU 配合 |
| ONNX Runtime Web / WebLLM | 浏览器内的推理运行时 | 应用层,底层可选 WebGPU 后端 |
对从业者,这是多一条分发路径:链接发给用户,点开就用,不用配 Python、不用装客户端,数据也不出浏览器,适合演示和隐私敏感的轻量场景。对普通人,以后有些 AI 功能可能在网页里本地跑完,不用排队等服务器;但受内存、带宽、功耗和散热限制,浏览器还替代不了数据中心,笔记本跑久了会烫、会掉电。
