Timeline for OpenGL compute for sizes that aren't a multiple of "local_size"
Current License: CC BY-SA 4.0
8 events
when toggle format | what | by | license | comment | |
---|---|---|---|---|---|
May 5, 2023 at 9:54 | vote | accept | Chifti Saidi | ||
May 5, 2023 at 9:54 | answer | added | Chifti Saidi | timeline score: -1 | |
May 4, 2023 at 10:18 | history | edited | Chifti Saidi | CC BY-SA 4.0 |
added 19 characters in body
|
May 3, 2023 at 7:30 | comment | added | gallickgunner |
The general rule used to be to set local_size anywhere from 32 (NVIDIA) to 64 (AMD) or it's multiple. Preferably 32/64 due to the way architecture was designed. See what works for your gpu now or read the specification on what the wavefront/SM size is. Then use the glDispatchCompute parameters such that they either match your number of pixels/ data items or exceed them.
|
|
May 3, 2023 at 7:19 | comment | added | gallickgunner |
glDispatchCompute tells how many workgroups you want to launch in each dimension. local_size sets the size of those workgroups in each dimension. If you launch only 1 workgroup in X,Y with the size 16x16 Than whatever you do will happen for only that part of the image. The 17th row/column will be left blank. If you launch more than 1 workgroup than it'll cover that area as well though it's not going to be optimized as you'd be assigning a new 16x16 workgroup just for that last row/column
|
|
May 2, 2023 at 21:05 | answer | added | Thomas | timeline score: 1 | |
May 2, 2023 at 18:21 | history | edited | Chifti Saidi | CC BY-SA 4.0 |
edited title
|
May 2, 2023 at 17:58 | history | asked | Chifti Saidi | CC BY-SA 4.0 |