Intent to Extend Experiment: WebGPU Subgroups experimentation

224 views
Skip to first unread message

Alan Baker

unread,
Oct 9, 2024, 11:14:16 AMOct 9
to blin...@chromium.org

Contact emails

alan...@google.com

Explainer

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

Specification

None

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

Pending

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



Goals for experimentation



Reason this experiment is being extended

The first portion of the origin trial focused on collecting performance feedback data, but was an incomplete implementation of the proposal. In particular, the implementation intentionally lacked the diagnostic controls (and default errors) that serve as portability guard rails. We wish to implement those controls (default values result in error in code that is not provably portable) and collect feedback about how onerous the portability restrictions are in order to provide feedback to the W3C WG. The controls would allow non-portable code, but shader authors would have to add code that opts into this behaviour.


We wish to extend through M135.



Ongoing technical constraints

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 chrome://flags

None

Finch feature name

None

Non-finch justification

None

Requires code in //chrome?

False

Estimated milestones

Origin trial desktop first128
Origin trial desktop last131
Origin trial extension 1 end milestone135
Origin trial Android first128
Origin trial Android last131
Origin trial WebView first128
Origin trial WebView last131


Link to entry on the Chrome Platform Status

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

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


This intent message was generated by Chrome Platform Status.

Alex Russell

unread,
Oct 11, 2024, 2:19:58 PMOct 11
to blink-dev, Alan Baker
Hey Alan,

Was there useful developer feedback from the first OT besides the lack of these features? Or are most potential testers waiting on the sidelines until these arrive?

Also, will this be a compatible extension? That is, will code that worked in the previous version continue to work without changes? I'm not worried about a 7 month OT for something like this, but it's going to be tricky to go longer.

The reason I ask is that If we have good signal from the already experimented subset and developers willing to try these extensions behind a flag and validate them, it might make good sense to just I2S now.

Best,

Alex

Alan Baker

unread,
Oct 15, 2024, 12:51:37 PMOct 15
to Alex Russell, blink-dev
Hi Alex,

We received feedback based on the performance improvements the feature is capable of delivering; however, those improvements might run afoul of portability guard rails. I don't think testers would be specifically waiting for these guard rails, but we think it would be good to get feedback on them as it could affect the WG's decision surrounding what should default to an error.

The extension is mostly compatible, but it is possible that these new guard rails cause existing shaders to fail to compile. We intentionally left this out of the initial experiment to ensure we got a good signal on the performance side of things. The new functionality does have controls to revert to essentially the same behaviour as the current functionality with some minor code changes.

We felt it was a little premature to ship this feature since it is still being designed at the WG. We're hoping that this extended functionality can provide feedback for the WG to make the best decisions on the portability aspects (mostly default error levels). We hope that by the time the this extension runs out the WG will have progressed enough that we can send an I2S for the full feature.

Does that make sense? Admittedly, I'm not very familiar with this whole process and appreciate any feedback you might have.

Thanks,
Alan

Yoav Weiss (@Shopify)

unread,
Oct 16, 2024, 9:51:34 AMOct 16
to blink-dev, Alan Baker, blink-dev, Alex Russell
LGTM to experiment unti M133 (inclusive), which would take this OT to 6 milestones in total.

If you'd want to extend the experiment beyond that, I'd love to see improvements to the explainer, and/or meaning progress towards shipping (e.g. an early spec draft, test suite, WG discussions, etc). 

Panos Astithas

unread,
Oct 16, 2024, 5:03:49 PMOct 16
to Alan Baker, Yoav Weiss (@Shopify), blink-dev, Alex Russell
The trial was mistakenly extended until M135, but this is now changed to M133. 

Since the Origin Trials infrastructure is now fully automated, feature owners need to pay attention to the API owners' comments and restrictions that come with an approval. Chromestatus allows the owner to update the end milestone from their initial request for precisely this case. It would help if API owners emphasized and perhaps double-checked this.

Thanks,
Panos

--
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 on the web visit https://groups.google.com/a/chromium.org/d/msgid/blink-dev/a904792d-f652-46f6-b8bf-2f2d0ed4ca9fn%40chromium.org.

Alan Baker

unread,
Oct 16, 2024, 5:47:18 PMOct 16
to Panos Astithas, Yoav Weiss (@Shopify), blink-dev, Alex Russell
Apologies for the milestone mixup.

Separately, I've started working on adding the improvements to the explainer that Yoav mentioned.

Alan

Yoav Weiss (@Shopify)

unread,
Oct 17, 2024, 1:52:02 AMOct 17
to Panos Astithas, Alan Baker, blink-dev, Alex Russell
Thanks Panos!! That's good to know!
Reply all
Reply to author
Forward
0 new messages