1
$\begingroup$

I currently perform several operations on polyhedra with cgal. These operations include

  • Union of two or more polyhedra
  • Difference of two or more polyhedra
  • Intersection of two or more polyhedra
  • Cutting Plane
  • Ray intersection with polyhedra

and some more.

The polyhedra are not necessarily convex, but are otherwise simple (i.e. non-selfintersecting)

I am now trying to find a way to hardware-accelerate these operations for speed efficiency reasons and thought, that GPUs might be capable to handle this task. However, most interfaces (i.e. OpenGL) I have seen focus on rendering.

Is there a good interface for performing these calculations with GPU support and retrieving the result subsequently?

$\endgroup$
  • $\begingroup$ I haven't seen any library which provides this sort of functionality and is GPU-accelerated as it'd be quite cumbersome. The only things I've seen close are CUDA's libraries for math, linear algebra etc. You can either code your data structure and routines manually which again would be pita OR instead of going for the GPU why not go towards multi-threading on the cpu. Check out OpenMP and for ray-intersection with polyhedra you could construct a spatial data structure if there are many of them. $\endgroup$ – gallickgunner Mar 5 '18 at 16:48
  • $\begingroup$ FWIW GPUs excel at computing results in image space. Do you need the actual geometric data of, say, union/intersection/difference or just images of the results of these operations? $\endgroup$ – Simon F Mar 7 '18 at 11:53
  • 1
    $\begingroup$ @SimonF Indeed I would need the results of the operation. Image data (i.e. the 2D-Projection) is usually not needed. $\endgroup$ – Ctx Mar 8 '18 at 12:02
  • $\begingroup$ I think you can accelerate your algorithms more easily using heterogeneous computing, meaning using a mix of CPUs and GPUs. For that you have several technologies available: C++ AMP, AMD HCC, C++ SYCL, OpenCL $\endgroup$ – Mauricio Cele Lopez Belon Mar 10 '18 at 11:37

Your Answer

By clicking "Post Your Answer", you acknowledge that you have read our updated terms of service, privacy policy and cookie policy, and that your continued use of the website is subject to these policies.

Browse other questions tagged or ask your own question.