抠图侠
← 回首页

浏览器里抠图,WebGPU 比 WASM 快多少?489 条真实设备耗时

抠图侠的免费抠图把 AI 模型下载到你的浏览器里运行,图片不上传本站服务器。本页的耗时都来自这条真实代码路径,原始汇总可在基准页下载。

网上关于 WebGPU 和 WASM 的去背景对比,多数是在一台高端电脑上测出来的一个数。抠图侠的模型跑在访客自己的浏览器里,耗时遥测按执行后端和设备档分桶上报,所以能给出一张跨设备的表。先说结论:同一台机器、同一张图,WebGPU 的纯推理确实快好几倍;但在真实访客设备上,首次抠图还要算上运行时加载和预热,差距没有那么大。更要紧的是,ONNX Runtime Web 1.27 的 WebGPU 后端在我们的 int8 权重上算错了结果,所以 2026 年 9 月 13 日起线上只用 WASM。

同一台机器、同一张图:WebGPU 推理快约 6 倍,但结果是错的

2026 年 9 月 13 日,我们在开发机(Apple M4、16 GB)的浏览器里,用同一份 1024 输入的 int8 模型、同一张图、同一个页面对比了两个后端:WASM 推理 16.8 秒,WebGPU 2.8 秒;把同一模型换成 fp32 权重走 WebGPU 是 3.7 秒。

问题不在速度,而在正确性。int8 加 WebGPU 输出的 logit 下界只有 −5.34(WASM 是 −20.70),背景一侧的置信度整个塌掉,alpha ≤ 0.05 的像素从 76.0% 掉到 2.2%。fp32 走 WebGPU 的结果与 WASM 一致,所以出错的是 int8 权重的 DequantizeLinear 在 ORT-web 1.27 WebGPU 后端上的实现,不是 WebGPU 本身。

落到成品上:7 张不透明物(AIM-500 数据集,生产构建、真浏览器)与真值比,WebGPU 1024 的 SAD 中位数是 6.15,WASM 1024 是 1.10,7 张全部是 WASM 更好。当天我们就停用了 WebGPU。

停用之后,WASM 怎么把速度追回来

WASM 慢,一部分原因同样是 int8:反量化让 WASM 多做一层运算。把权重换成 fp16 之后,同一张图 1024 输入的推理从 16.8 秒降到 6.95 秒,端到端约 8.0 秒,与此前用户在 WebGPU 上拿到的 6 到 8 秒持平,质量回到 SAD 中位数 1.10。

所以这页的答案不是「WebGPU 快,就选 WebGPU」。在浏览器里跑量化模型,先确认 WebGPU 的输出与 WASM 逐数值一致,再谈速度。我们恢复 WebGPU 的条件是 fp16 权重在真浏览器里与 WASM 对拍通过;按 9 月 13 日的记录,fp16 转换卡在一个混合类型的 Conv 上,线上至今没有重新开启 WebGPU。

真实访客设备上的分布

下面的表是遥测里「首次抠图」一项,从点下按钮到拿到结果,含解码、前处理、推理与合成,按后端、设备类型和 CPU 核数分桶。WebGPU 的几行全部是 9 月 8 日到 12 日停用前的记录,用 768 输入;WASM 行大多是 512 输入。两者的模型输入尺寸不同,不是严格的同条件对比。

能读出来的几点:桌面 8 到 11 核的 WASM 首次抠图 p50 是 2.1 秒(72 条),但 p95 到了 10.2 秒,同一档机器之间差得很大。WebGPU 在 4 到 7 核桌面上首次抠图 p50 反而是 14.3 秒(3 条),其中单是建 session 就要 8.5 秒。WebGPU 真正快的是热跑:桌面 8 到 11 核的后续抠图 p50 是 1.6 秒(3 条)。

手机上,WebGPU 首次抠图 p50 是 12.2 秒(2 条);单线程 WASM 是 44.1 秒(2 条,768 输入);能开多线程的 WASM 是 4.1 秒(5 条,512 输入)。在手机上,WASM 能不能开多线程,比选哪个后端影响更大。

这份数据测不到什么

遥测在浏览器里先把设备分成粗桶(桌面或移动、CPU 核数档)再上报,不收 User-Agent 原文,也不去重。所以我们说得出样本数,说不出有多少台设备、是哪款手机;同一个人抠十张会贡献十条样本。

9 月 13 日之后的默认档是 WASM 1024 fp16,这一档目前没有进入遥测汇总,表里看不到现行默认配置在真实设备上的分布;固定样本集的基线测量也还没补。这两项补上后会更新本页。

首次抠图耗时(真实设备遥测,2026-09-08 至 10-11)

后端 · 设备 · CPU 核数模型输入样本数p50p95
WebGPU · 桌面 · 12 核以上76824.7 秒7.4 秒
WebGPU · 桌面 · 8–11 核76814.8 秒仅 1 条
WebGPU · 桌面 · 4–7 核768314.3 秒17.2 秒
WebGPU · 手机 · 8–11 核768212.2 秒12.3 秒
WASM · 桌面 · 12 核以上512333.6 秒9.7 秒
WASM · 桌面 · 12 核以上76816.1 秒仅 1 条
WASM · 桌面 · 8–11 核512722.1 秒10.2 秒
WASM · 桌面 · 4–7 核512311.3 秒14.6 秒
WASM · 桌面 · 1–3 核51265.2 秒6.4 秒
WASM · 手机 · 8–11 核51254.1 秒5.4 秒
单线程 WASM · 手机 · 8–11 核768244.1 秒44.9 秒

数据来自基准页数据接口,2026 年 10 月 14 日导出;p50 / p95 对窗口内原始样本计算,不是对日分位数求平均。样本少于 30 条的行只能看量级。WebGPU 行全部是 9 月 13 日停用前的记录。

在自己的设备上复现

第一步 · 打开基准页看全部阶段

基准页列出模型下载、缓存命中、运行时加载、首次抠图和后续抠图五个阶段,可下载 JSON / CSV 原始汇总,授权 CC BY 4.0。

第二步 · 在前台窗口抠一张图

后台标签页会被浏览器降级调度,测出来会慢很多。保持窗口在前台、机器空闲,并打开 DevTools 的 Network 面板。

第三步 · 读遥测请求里的数字

本次会话被抽中时(抽样率 20%),页面会向 /api/benchmarks/collect 发送耗时,payload 里就是首次抠图与纯推理耗时,和本页表格同一口径。

这份数据适合谁

常见问题

WebGPU 抠图一定比 WASM 快吗?

纯推理上,同一台机器同一张图,我们测到 WebGPU 2.8 秒、WASM 16.8 秒(int8 权重)。但首次抠图还包括运行时加载与预热,真实访客的桌面设备上 WebGPU 首次抠图 p50 在 4.7 到 14.3 秒之间(共 6 条样本),并不总是更快。热跑时优势最明显。

为什么抠图侠现在不用 WebGPU?

ONNX Runtime Web 1.27 的 WebGPU 后端在 int8 权重上算错:背景置信度塌掉,成品 SAD 中位数 6.15,而 WASM 是 1.10。2026 年 9 月 13 日起线上只走 WASM,换成 fp16 权重后,1024 输入端到端约 8 秒。

表里为什么没有具体机型?

遥测只上报粗分桶的设备档,不收 User-Agent 原文,所以分不出机型,也数不出设备台数。这是隐私设计的代价,我们宁可少一个维度。

抠图时图片会上传吗?

免费本地路径不会。模型下载到浏览器里运行,遥测只发耗时数字和设备档,不发图片、文件名或图片的任何派生特征,也可以在基准页底部关掉。

来源

在你的设备上跑一次

免费,不注册,图片留在浏览器里。

立即免费抠图