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

ComputeShader #3

Open
jimbok8 opened this issue Mar 7, 2023 · 1 comment
Open

ComputeShader #3

jimbok8 opened this issue Mar 7, 2023 · 1 comment

Comments

@jimbok8
Copy link

jimbok8 commented Mar 7, 2023

Very interesting to see what speeds you get using the GPU in the PixelBufferGPUTest.
I am interested in display point clouds (from Lidar)
I have been trying to understand the techniques use by Markus Schuetz:

"Software Rasterization of 2 Billion Points in Real-Time"
In branch compute_rasterizer_2022
paper - video

"Rendering Point Clouds with Compute Shaders and Vertex Order Optimization"
In branch compute_rasterizer_2021

His results look very impressive - if only I did not dislike/not-understand C++ so much!
The key to his results seems to be Compute Shaders - not that I really understand them yet!
I see you can use compute shaders in Java/Jogl (see https://github.com/perses-games/jogl-compute-shaders-fireworks)

Is what you are doing with Aparapi roughly equivalent to the Compute Shader approach?
If not, do you think there would be any benefit in combining the two approaches?

Thanks
Jim

@AlmasB
Copy link
Owner

AlmasB commented Mar 9, 2023

Hi Jim,

GPGPU is a bit outside of my domain. Using the Aparapi library was the quickest solution I could put together to leverage GPGPU in Java.

Generally speaking, both approaches sound similar / identical in theory and provide the ability to execute some arbitrary code via GPU cores. It is worth noting that neither are a quick way of gaining performance. A lot depends on the actual bottleneck that your use case has. If the bottleneck is an algorithm, then there needs to be a way to rephrase the algorithm in a way that aligns with parallel processing: perform a lot of simple operations in parallel. Otherwise, there are no performance gains. If the bottleneck is elsewhere (like the speed with which you can draw to the screen), then again GPGPU is not as helpful.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants