-
-
Notifications
You must be signed in to change notification settings - Fork 36k
Addons - Bitonic Sort #31852
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
base: dev
Are you sure you want to change the base?
Addons - Bitonic Sort #31852
Conversation
The actual sort itself is done and works as expected for multiple data types and counts, but I'm leaving this in draft for now till its more thoroughly reviewed. As it's the first class of its type (encapsulated GPGPU sort/operation) I would like to ensure that the maintainers agree on the class structure and documentation before it goes in, as it could inform how contributors implement/structure future encapsulated GPGPU operations in the future. Obviously this is WebGPURenderer only, and the documentation should likely change to expose this more transparently to users ( class BitonicSort should also be renamed class BitonicSortGPU ). There are also improvements that can be made to the class that may or may not be considered blocking such as:
|
Is there anything blocking this PR. If possible, I would like to use it for performance optimizations within the compute bird sample, but would like the class structure to be reviewed for the reasons stated above. |
Description
Creates an add-on that encapsulates the bitonic sort functionality present in the webgpu_compute_sort_bitonic example. Currently only handles scalar inputs because I'm uncertain whether TSL currently emulates the boolean vector functionality of GLSL. I've also removed the timestamps from the bitonic sort example since they aren't really informative when presented at such high speed, and one can already perceive that the new encapsulated bitonic sort takes less dispatches than the previous local sort and the global sort only example.