-
Notifications
You must be signed in to change notification settings - Fork 195
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Subgroup Operations #2523
Subgroup Operations #2523
Conversation
b5d9974
to
4f2a204
Compare
d86df59
to
d6841e7
Compare
Regarding the built-ins, there should not only be Also, as broadcast is included, the shuffles should be added as well. They are the more generalized subgroup gather operations, where as broadcast is a special case of a shuffle where all threads gather from the same source. |
08dec85
to
ef0bd1c
Compare
…sl-out TODO: metal out, figure out what needs to be done in validation
SPIR-V OpControlBarrier with execution scope Subgroup has implementation defined behavior when executed nonuniformly. OpenCL SPIR-V execution spec say nonuniform execution is UB. Vulkan SPIR-V execution spec says nothing :).
…eUp, GatherMode::ShuffleXor.
f0839f0
to
c257748
Compare
supported operations and stages subgroup operations are supported on can be passed to the validator after creating it operations are grouped to follow vulkan: - basic: elect, barrier - vote: any, all - arithmetic: reductions, scan - ballot: ballot, broadcasts, - shuffle: shuffles, - shuffle relative: shuffle up, down
c257748
to
63e2da9
Compare
Okay, so, a bunch of thoughts on this:
Would it make sense to land this work as a long-lived branch, maintained by interested parties, taking regular merges from |
A way to make this easier to review would be to gather as much relevant information as possible into an investigation with a subsequent proposal in the spec repo, as right now gpuweb/gpuweb#4306 and other issues seem to have scattered and missing info on the topic. gfx-rs/wgpu#4190 (comment) & gfx-rs/wgpu#4190 (comment) are a good start! |
Thanks @teoxoy, @jimblandy for for taking a look at this!
👍 With gfx-rs/wgpu#4231 upcoming, it should also be relatively straightforward for interested users to point at a single Additionally if there's any way I can break up these changes to make them easier to review I'm happy to consider doing that.
I'll see what I can do about that! |
Moved into gfx-rs/wgpu#4190 |
Moved to gfx-rs/wgpu#4190
Adds new capability
SUBGROUP
, required for a shader to use subgroup builtin functions or parameters.Adds new validator settings
subgroup_operations
andsubgroup_stages
determining which sets of the below subgroup operations are valid, and which stages they are valid in.BASIC
operations:VOTE
operations:ARITHMETIC
operations:BALLOT
operations:SHUFFLE
operations:SHUFFLE_RELATIVE
operationsNew builtins:
related: gfx-rs/wgpu#4428