Aioga
AI资讯 / 行业动态
返回 AI资讯

Hugging Face 发布 @huggingface/kernels,提供 207 个 WebGPU 内核用于浏览器本地 AI 推理

Hugging Face:Blog(RSS)Aioga 编辑团队2026-09-01T00:00:00.000Z热度 72

Hugging Face WebAI 团队发布 @huggingface/kernels 库及 207 个以独立仓库形式托管在 Hub 上的 WebGPU 内核(Apache-...

行业动态Hugging Face:Blog(RSS)

今日 AI 情报摘要

Hugging Face WebAI 团队发布 @huggingface/kernels 库及 207 个以独立仓库形式托管在 Hub 上的 WebGPU 内核(Apache-2.0),每个内核带

manifest、正确性测试、基准用例和 WGSL 着色器模板。

中文正文 · AI 翻译

TL;DR:#tldr 为什么从内核开始?:#why-start-with-kernels 内核仓库,而不仅仅是着色器:#a-kernel-repository-not-just-a-shader 从 Hub 加载内核:#loading-a-kernel-from-the-hub 内核有多快?:#how-fast-are-the-kernels 从单个设备到设备群:#from-one-device-to-a-fleet 为 WebAI 打造共享基础:#building-a-shared-foundation-for-webai Hugging Face 的 WebAI 团队的一个最大目标是让浏览器推理尽可能快且用户友好。实现这一目标需要多层努力:模型需要浏览器友好的表示方式,运行时需要构建高效的执行计划,而堆栈底层的各个 GPU 操作需要充分利用不同设备和浏览器实现的性能。

Hugging Face 发布 @huggingface/kernels,提供 207 个 WebGPU 内核用于浏览器本地 AI 推理

今天,我们发布了这项工作第一层:@huggingface/kernels:https://www.npmjs.com/package/@huggingface/kernels,这是一个用于从 Hugging Face Hub 加载和运行优化 WebGPU 内核的最小化库,同时提供了 huggingface.co/webgpu-kernels 上的初始 207 个内核合集:https://huggingface.co/webgpu-kernels。

该合集涵盖了用于各种机器学习架构和工作负载的操作。更重要的是,每个内核都作为完整的、版本化的包发布:其接口、着色器模板、正确性测试、基准测试以及使用说明都集中存放在 Hub 上。

我们还推出了 Fleet:https://webgpu-kernels-fleet.hf.space/,这是一个在浏览器中运行的 GPU 基准测试和测试套件,可在你的硬件上运行和评分内核。除了获取你自己机器的结果外,Fleet 还为社区提供了一种途径,可以贡献来自我们在传统测试实验室无法覆盖的设备的性能和正确性证据。在你的同意下,每次运行都会增加私密证据,帮助我们发现失败(结果错误、病态缓慢情况等)、改进内核变体,并在实际硬件上做出更好的优化决策。

在浏览器中运行的模型最终会变成一系列 GPU 操作:矩阵乘法、归一化、卷积、注意力原语、量化操作、数据布局变换,以及更多操作。WebGPU 通过一个便携的 API 在现代浏览器中提供这些操作,而 WGSL 提供了一个用于执行这些操作的着色器的通用语言。

然而,可移植性并不自动意味着高性能。两个着色器可以实现同样的操作并产生相同的输出,但在不同加速器上表现完全不同。工作组大小、内存访问模式、向量化、数据类型和融合策略都可能影响性能。最佳选择也会随输入形状、设备、浏览器以及可用的 WebGPU 功能而变化。

这就是为什么内核构成了快速浏览器推理的基础层。高层运行时的效率只能与其调度的操作效率相匹配。通过使这些操作可单独发现、可测试、可基准测试和版本化,我们可以独立改进基础,同时为上层保持稳定契约。

集合中的每个内核都有自己的仓库和内核卡。内核卡记录了操作的语义、输入、输出、属性、支持的数据类型、源文件,以及一个可运行的 @huggingface/kernels 示例。

例如,ai.onnx.Add:https://huggingface.co/webgpu-kernels/ai.onnx.Add 实现了带有多向广播的元素级加法。它是神经网络中最简单的操作之一,从残差连接到加偏置都广泛使用。其内核卡记录了两个输入、广播后的输出形状、支持的数据类型,以及针对不同形状和设备的可用变体。

Files in the ai.onnx.Add WebGPU kernel repository

在内核卡背后,仓库包含了理解和评估实现所需的制品:

这个结构将着色器转化为可重用的软件成果。接口可以在不阅读 WGSL 的情况下进行检查,正确性和性能测试会随实现一起传播,已发布的版本可以显式加载,而不是依赖未版本化的文件 URL。我们的内核也可以作为开发者构建自定义 WebGPU 内核或将这些操作集成到其自身运行时的参考实现。

运行这些内核需要支持 WebGPU 的浏览器:https://developer.mozilla.org/en-US/docs/Web/API/WebGPU_API。WebGPU 的可用性取决于浏览器、操作系统、GPU 和驱动程序。你可以在 JavaScript 中通过 "gpu" in navigator 来检查。

@huggingface/kernels 提供了内核存储库与应用程序之间的桥梁。使用 Hub 存储库 ID 和合约版本调用 getKernel,然后用类型化的输入数据和张量形状调用返回的函数。下面是一个小型偏置加法示例:

第二个输入被沿第一个维度广播,生成形状为 [2, 3] 的输出。加载器从清单合约和输入中推导输出形状和逻辑数据类型,然后自动分配 c。

对六个浮点数的加法故意是最小的演示。在这个规模下,GPU 往返的开销远大于计算本身。重点是调用模式:对于优化内核真正有优势的重量级操作(如矩阵乘法 ai.onnx.MatMul),调用模式完全相同。只有存储库 ID 和输入会改变。

即使是这个基础操作也说明了为什么内核需要变体。相同形状的加法可以使用直接向量化路径,而广播输入则需要不同的索引逻辑。已发布的 Add 内核包括针对相同形状、向量化广播、标量处理和通用广播的变体。运行时可以选择适合当前调用和设备的实现,而无需更改面向应用的 API。

version: 1 选项选择已发布内核合约的版本 1。它独立于 ONNX opset、操作符的 since_version 或模型修订。将这些概念分开使应用程序可以依赖稳定的面向 JavaScript 的合约,同时内核实现可以在其后演进。

那么,优化后的内核到底能带来多大差异呢?我们将自己的内核集合与 Apple M4 GPU 上的 ORT WebGPU 进行了正面比较,使用的是 ONNX Runtime Web 1.30.0-dev.20260826-b1f76d586a。我们从涵盖 207 个操作的 1,756 个测试用例开始,并保留了 809 个在两边都产生匹配输出且时间可靠的用例。

在这些比较中,我们的内核在几何平均上快 2.57 倍,按中位数计算快 1.90 倍,共有 629 胜、176 负和 4 平。以下是对四个熟悉操作的详细观察:

一些单独的胜利差距更大。一个特别困难的双线性 Einsum 用例(i, ij, j,大小为 4096)使用我们的内核运行时间为 0.136 毫秒,而 ORT WebGPU 则为 1,396 毫秒:快了超过 10,000 倍。对 [256, 4096] 的按行 CumSum 操作快了 301 倍,为 0.016 毫秒,而 ORT WebGPU 为 4.784 毫秒。这些都是不寻常的情况,而不是你在所有地方都应该预期的加速,但它们显示了当通用实现遇到慢路径时,专用内核能提供多少帮助。

我们计时的是 GPU 本身完成的工作,不包括加载内核、创建会话、上传输入、编译着色器和读回输出等设置步骤。非常短的工作负载自然更难测量,小用例可能受益于 GPU 缓存,所以这些数字最好作为有用的比较,而不是对每个应用程序的承诺。

这些结果也是针对单个操作的,而不是完整模型的。不同 GPU 和浏览器上的确切性能会有所不同,这也是 Fleet 对建立更广泛性能图谱的重要性所在。

我们还在与 ONNX Runtime 团队合作,将这些改进向上游贡献,以便更广泛的 ONNX Runtime Web 生态系统都能受益。

WebGPU 性能因 GPU、浏览器和驱动而异,因此单台机器的结果只能说明部分情况。Fleet:https://webgpu-kernels-fleet.hf.space/ 允许任何人在浏览器中运行正确性和性能检查,并查看这些内核在其硬件上的表现。

经同意,每次运行都会私下贡献证据,帮助我们发现设备特定的失效情况、比较不同版本,并改进选择规则。目标很简单:利用广泛的真实世界覆盖,让内核对所有人更加快速和可靠。

最初的 207 个内核只是一个起点,而不是最终状态。在 Hub 上独立发布内核为我们提供了一个共同的空间来检查合约、比较实现、复现正确性检查,并提升性能,而无需将每个着色器直接嵌入到每个运行时中。

该集合也是 Hub 更广泛内核生态系统的一部分:在 Kernels 页面:https://huggingface.co/kernels?platform=webgpu&sort=trending 上,WebGPU 内核与 CUDA、ROCm、Metal 及其他平台的内核并列展示,并且可以像对 Hub 上的其他工件一样进行筛选、排序和探索。

The Hub Kernels page filtered to the WebGPU platform, listing the 207 published kernels

这是我们浏览器推理堆栈下一步的低级基础。我们很高兴将这些内核与更高级的模型工具连接起来,继续扩展操作覆盖范围,并让快速本地推理在 WebAI 生态系统中更易于使用。

探索 WebGPU 内核集合:https://huggingface.co/webgpu-kernels,尝试 @huggingface/kernels:https://www.npmjs.com/package/@huggingface/kernels,并加入 Fleet:https://webgpu-kernels-fleet.hf.space/ 从您的设备贡献证据,帮助我们让内核更好地服务于每个人。

情报判断

Aioga 编辑摘要

Hugging Face WebAI 团队发布 @huggingface/kernels 库,并在 Hugging Face Hub 上以独立仓库形式提供 207 个 WebGPU 内核,采用 Apache-2.0 许可。

背景分析

每个内核包含 manifest、正确性测试、基准用例和 WGSL 着色器模板;内核卡还记录操作语义、输入输出、属性、支持的数据类型、源文件及运行示例。官方同时推出浏览器内 GPU 测试与基准套件 Fleet。

Aioga 观点

Aioga 判断:该发布把浏览器推理所需的部分 GPU 操作整理为可发现、可测试、可基准评估和可版本管理的独立组件,显示出建设共享 WebAI 内核基础的产品方向。

影响与后续

可能影响:WebGPU 推理应用在底层算子选择、正确性验证和性能评估方面可能获得更完整的组件材料;但内核表现仍可能受输入形状、设备、浏览器及 WebGPU 特性影响,不代表跨设备性能一致。 后续观察:需要关注这些内核在不同硬件上的正确性与性能表现,以及 Fleet 经用户同意后收集的私有证据如何用于发现错误或异常慢速情况、改进内核变体和优化决策。

来源与版权说明

本页正文由公开来源页面提取并按原有信息整理,同时保留来源、发布时间和原文入口。版权归原作者及来源网站所有,请通过原文链接核验和阅读来源版本。

抓取通道: RSS · 原始域名: huggingface.co

来源: Hugging Face:Blog(RSS)

原文链接: 打开原始来源

Aioga 归档: 查看情报页

Content record: source-page · Updated: 2026-09-01T00:00:00.000Z

API 中转站
API RELAY · DEVELOPER INFRASTRUCTURE

API 中转站

统一接入主流 AI 模型 API,为开发、测试与生产环境提供稳定调用入口。

立即访问 api.w173.com
AIOGA SHARE POSTER

分享这篇 AI 情报

Hugging Face WebAI 团队发布 @huggingface/kernels 库及 207 个以独立仓库形式托管在 Hub 上的 WebGPU 内核(Apache-...

Hugging Face:Blog(RSS)2026-09-01T00:00:00.000Z
扫码打开文章详情扫码直达文章详情

Aioga 自动聚合全球 AI 动态,并保留来源信息用于核验与引用。