So I am admittedly still new to all this, having just completed the Getting Started CUDA C/C++ course;
But I’ve kind of had a bit of an idea I wanted to work on, but am not sure yet if it makes sense.
On RTX class devices, from CUDA, do we have access to the ray tracing hardware (and if so, how ?). This, of course is with my presumption that the ray tracing model is based on actual new hardware, not software floating above the standard SMs.
For my use case, I don’t need any graphics, I’d just like to use the engine.
And if any of my presumptions here are incorrect, I am okay to learn/hear that too :grin:.
Unless I have missed some recent developments, there is no access to RT cores from CUDA. NVIDIA’s designated software framework / API for working with RT cores is called OptiX. It offers a limited amount of interoperability with CUDA, basically buffer sharing. The developer support forum for OptiX is here:
People seem to be finding interesting applications for OptiX, such as the ones described in these publications:
Marc Jachym, Sylvain Lavernhe, Charly Euzenat, Christophe Tournier, “Effective NC machining simulation with OptiX ray tracing engine.” The Visual Computer, Vol. 35, No. 2, Feb. 2019, pp. 281-288. (HAL pre-print)
Masatomo Inui, Kohei Kaba, Nobuyuki Umezu, “Fast Cutter Accessibility Analysis Using Ray Tracing Cores of GPU.” International Journal of Automation Technology, Vol. 15, No. 6, Nov. 2021, pp. 842-851 (online)
@njuffa that is unfortunate. Though it would need to refined a little in how it is described/outlined, I was hoping to give a challenge to the ‘Traveling Salesman’ problem.
My personal philosophy is that the kind of “compartementalization” (plus interop) that NVIDIA seems to practice here is actually a Good Thing ™.
Using an “everything plus the kitchen sink” approach to CUDA could easily turn it into an overwhelming complex mess. Maintaining CUDA as a fairly tight subset standard C++ for ease of transition from CPU-based to GPU-based general purpose computing is much preferred in my thinking.
I have not used OptiX myself, but the publications I have seen suggest a higher level of abstraction than CUDA, allowing programmers to ramp up quickly and become productive in a relatively short amount of time. Based on that I would encourage you to give OptiX a try if you are interested in experimenting with RT cores.