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?

  • $\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$ Mar 5, 2018 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, 2018 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, 2018 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$ Mar 10, 2018 at 11:37


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Browse other questions tagged or ask your own question.