Skip to content
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

Implement Subgroup Ops #1212

Closed
cwfitzgerald opened this issue Feb 12, 2021 · 6 comments
Closed

Implement Subgroup Ops #1212

cwfitzgerald opened this issue Feb 12, 2021 · 6 comments
Labels
area: api Issues related to API surface area: performance How fast things go type: enhancement New feature or request

Comments

@cwfitzgerald
Copy link
Member

cwfitzgerald commented Feb 12, 2021

Is your feature request related to a problem? Please describe.

gpuweb/gpuweb#1459 is the upstream WIP specification, and this is needed to write high-performance shaders.

Describe the solution you'd like

Subgroup ops implemented either exactly as the upstream spec, or a very similar API that can be converted later.

Describe alternatives you've considered

Not having subgroup ops. This makes GPUs sad.

Additional context

Subgroup ops are critical in some of the algorithms for aggressive triangle culling as you're literally trying to beat the rasterizer at culling triangles. It is also useful whenever you're trying to do any kind of culling.

@cwfitzgerald cwfitzgerald added type: enhancement New feature or request area: api Issues related to API surface area: performance How fast things go labels Feb 12, 2021
@mehmetoguzderin
Copy link
Contributor

Please see gpuweb/gpuweb#1459 for updated previews (I had to close the previous PR). Thanks.

@cwfitzgerald
Copy link
Member Author

Thanks! Updated OP

@ishitatsuyuki
Copy link

Assuming that I have compatible hardware, can I use subgroup ops in wgpu-native with SPIR-V right now? Would it cause the validation layer or anything else to complain?

@kvark
Copy link
Member

kvark commented Mar 16, 2021

We wouldn't complain right now, but we will at a point where the validation grows enough.
We are also steering towards using Naga everywhere, and it doesn't implement subgroup ops yet.

@cwfitzgerald
Copy link
Member Author

Subgroup ops will only work on Vulkan right now anyway, as our shader pipeline can't handle them for DX12, though they might work on mtl if spirv-cross supports them. Validation would definitely complain though. Now that we have the ability to run at higher vulkan levels, we should be able to support them, someone just needs to put the work in.

@exrook exrook mentioned this issue Sep 30, 2023
3 tasks
@cwfitzgerald
Copy link
Member Author

Closing in favor of #4428

@cwfitzgerald cwfitzgerald closed this as not planned Won't fix, can't repro, duplicate, stale Oct 25, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area: api Issues related to API surface area: performance How fast things go type: enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

4 participants