Groups keyboard shortcuts have been updated
Dismiss
See shortcuts

Intent to Ship: WebGPU Subgroups experimentation

161 views
Skip to first unread message

Alan Baker

unread,
Jan 6, 2025, 1:48:36 PMJan 6
to blink-dev

Contact emails

alan...@google.com

Explainer

https://github.com/gpuweb/gpuweb/blob/main/proposals/subgroups.md

Specification

https://github.com/gpuweb/gpuweb/pull/4963

Approved by Apple rep, editorial comment by Mozilla rep.

Summary

Adds subgroup functionality to WebGPU. Subgroup operations perform SIMT operations to provide efficient communication and data sharing among groups of invocations. These operations can be used to accelerate applications by reducing memory overheads incurred by inter-invocation communication.



Blink component

Blink>WebGPU

TAG review

None

TAG review status

Not applicable

Origin Trial Name

WebGPU Subgroups Features

Chromium Trial Name

WebGPUSubgroupsFeatures

Origin Trial documentation link

https://github.com/gpuweb/gpuweb/blob/main/proposals/subgroups.md

WebFeature UseCounter name

kWebGPUSubgroupsFeatures

Risks



Interoperability and Compatibility

None



Gecko: No signal

WebKit: No signal

Web developers: No signals

Other signals:

Security

None. This feature exposes functionality for operations only within a single draw/dispatch. Data is contained within a single users run.



WebView application risks

Does this intent deprecate or change behavior of existing APIs, such that it has potentially high risk for Android WebView-based applications?

None



Debuggability

No special debugging is available for this feature as it resides solely on the GPU.



Will this feature be supported on all six Blink platforms (Windows, Mac, Linux, ChromeOS, Android, and Android WebView)?

No

Is this feature fully tested by web-platform-tests?

No

Flag name on about://flags

None

Finch feature name

None

Non-finch justification

None

Requires code in //chrome?

False

Availability expectation

Both Apple and Mozilla have indicated they plan to support this feature in the future. Those implementations are catching up to Chrome in terms of core functionality currently. WebGPU is part of Safari technical previews and Mozilla nightly builds.

Adoption expectation

This feature should have wide adoption for specific use cases. It is not expected that all WebGPU shaders would utilize subgroups, but many applications (e.g. ML) could.

Non-OSS dependencies

Does the feature depend on any code or APIs outside the Chromium open source repository and its open-source dependencies to function?

No

Estimated milestones

Shipping on desktop134
Origin trial desktop first128
Origin trial desktop last131
Origin trial extension 1 end milestone133
Shipping on Android134
Origin trial Android first128
Origin trial Android last131
Shipping on WebView134
Origin trial WebView first128
Origin trial WebView last131


Anticipated spec changes

Open questions about a feature may be a source of future web compat or interop issues. Please list open issues (e.g. links to known github issues in the project for the feature specification) whose resolution may introduce web compat/interop risk (e.g., changing to naming or structure of the API in a non-backward-compatible way).

Editorial changes only. Future features are likely to build on top of this extension.

Link to entry on the Chrome Platform Status

https://chromestatus.com/feature/5126409856221184?gate=5073549680443392

Links to previous Intent discussions

Intent to Experiment: https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CABg%2BrB67gB5gUeDVPaMZ7fZwmeARTUsizs1BTXFXKGpJ%3DpF1TQ%40mail.gmail.com
Intent to Extend Experiment 1: https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CABg%2BrB5jfO13yZGBxMAHRgZX_P0qbixCKSK10SujYkBxftujnQ%40mail.gmail.com


This intent message was generated by Chrome Platform Status.

Alex Russell

unread,
Jan 8, 2025, 11:30:47 AMJan 8
to blink-dev, Alan Baker
Hey Alan,

Just for the avoidance of future friction, we try to use the explicit signals systems from Apple and Mozilla because they've asked us not to use their rep's statements in WGs as assent. Is it possible for you to file those?

Best,

Alex

Chris Harrelson

unread,
Jan 8, 2025, 11:31:43 AMJan 8
to Alex Russell, blink-dev, Alan Baker
Also:


* The spec PR needs to land
* What do you mean by "experimentation" in the title of this Intent?

--
You received this message because you are subscribed to the Google Groups "blink-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to blink-dev+...@chromium.org.
To view this discussion visit https://groups.google.com/a/chromium.org/d/msgid/blink-dev/1969ee25-f88c-482d-adb1-88846d1d4e64n%40chromium.org.

Alan Baker

unread,
Jan 8, 2025, 2:31:50 PMJan 8
to Chris Harrelson, Alex Russell, blink-dev
I've filed the standard's position issues (and added to the feature). Here they are for reference:
The name was a bad choice. I wasn't familiar with this process initially and only thought of the name with the Origin trial in mind. We don't consider this an experiment anymore.

Chris Harrelson

unread,
Jan 8, 2025, 4:16:18 PMJan 8
to Alan Baker, Alex Russell, blink-dev
Ok thanks for clarifying that this is shipping and not further experimentation.

Could you share the findings from the origin trials?

Alan Baker

unread,
Jan 8, 2025, 10:13:43 PMJan 8
to Chris Harrelson, Alex Russell, blink-dev
The origin trial resulted in the following findings:
  1. This functionality can achieve the performance improvements we expected. Meet integrated the functionality into some of its ML shaders. Benchmarking subgroups vs integer dot products (previous best) for matrix-vector multiply shaders resulted in speed ups of 2.3 - 2.9x depending on the device.
  2. Limits were not the right design choice for subgroup size reporting in the API. They have since been moved into GPUAdapterInfo as they are really more static properties of a device.
  3. The initial design contained an extra diagnostic that defaulted to an error to increase portability, but was found to hamper the user experience more than the value it added. It prevented very common code patterns unrelated to the subgroup functionality from compiling cleanly. It was decided to remove it from the design.

Chris Harrelson

unread,
Jan 15, 2025, 11:13:34 AMJan 15
to Alan Baker, Alex Russell, blink-dev
Great thanks, sounds like a very useful OT.

Now we're just waiting for the spec PR to land, since it seems to be approved.

Alan Baker

unread,
Jan 16, 2025, 11:02:21 AMJan 16
to blink-dev, Chris Harrelson, Alex Russell, blink-dev, Alan Baker
We've just merged the spec after it got its final approval.

Chris Harrelson

unread,
Jan 16, 2025, 11:29:00 AMJan 16
to Alan Baker, blink-dev, Alex Russell

Yoav Weiss (@Shopify)

unread,
Jan 16, 2025, 12:31:46 PMJan 16
to Chris Harrelson, Alan Baker, blink-dev, Alex Russell

Mike Taylor

unread,
Jan 16, 2025, 12:36:13 PMJan 16
to Yoav Weiss (@Shopify), Chris Harrelson, Alan Baker, blink-dev, Alex Russell

Mike Taylor

unread,
Jan 16, 2025, 12:37:04 PMJan 16
to Yoav Weiss (@Shopify), Chris Harrelson, Alan Baker, blink-dev, Alex Russell

Also, can we please update the chromestatus entry title so "WebGPU Subgroups experimentation" is less confusing on https://chromestatus.com/roadmap?

Alan Baker

unread,
Jan 16, 2025, 1:20:31 PMJan 16
to Mike Taylor, Yoav Weiss (@Shopify), Chris Harrelson, blink-dev, Alex Russell
I've dropped the experimentation from the feature name.
Reply all
Reply to author
Forward
0 new messages