Which of the following currently (2023) support programming API access direct to the RT Cores (on compatible NVIDIA HW devices):
For each of above which DO support direct programmatic RT core access, where can I find the best/current API details?
For instance,
I found an old link to Turing extensions for Vulkan & OpenGL which provide GLSL extensions for RT core access - are these still supported?
I can’t find anything in the CUDA 12x documentation.
I do know Vulkan is supported, just wondering about OpenGL and/or CUDA primarily, as we have not migrated to Vulkan yet.
Thanks,
Professor Reinhardt
University of Washington
Electrical and Computer Engineering Dept
Hello @colinrei,
Unless Vulkan or OpenGL extensions have been marked deprecated, they will still be supported.
As to how to program the RT cores directly I suppose that depends a bit on what your requirements are.
To better be able to find the right people to give some suggestions it would be helpful if you could share a little bit more detail of what you want to achieve.
Thanks!
Markus - I just want to do a HW ray tracer using the OpenGL 4.6x API, using the NVIDA RT Cores on a compatible device (e.g. compute capability = 8.6).
Per the article I referenced in Post 1 it appears there is OpenGL extension support. Is there any more documentation or code examples available showing how to implement this?
Will referencing the Vulcan ray tracing spec sections contain relevant info (for the OpenGL ray tracing pipeline support)?
Thanks
Thank you for the clarification!
My understanding is that the main focus by Khronos with respect to path- or ray-tracing lies on Vulkan, so to be future proof that would be the API to use in favor of OpenGL. And to make getting started easier, we do have an extensive tutorial in place as well.
Just for completeness, CUDA of course allows full programming access to all GPU cores, but here there are no render specific primitives available. You would basically need to create your own rasterizer and path-tracer from scratch. Or look for Open Source projects that went down that road.
And when looking at off-line ray-tracing there is NVIDIA OptiX, which might be an alternative if you don’t need real-time rendering.
I hope that helps!
Can you please share more about how RT cores can be programmed using CUDA? Code samples or documentation links would be great.
You cannot program the RT cores in CUDA.
The nearest you get when working with CUDA is the OptiX SDK which will automatically use the RT cores for acceleration structure (BVH) traversal and ray-triangle intersection. Almost all resource management (multi-GPU, buffers, textures) happens with native CUDA host APIs.
All device code you provide to OptiX is running on the streaming multiprocessors.
Similarly inside Vulkan ray tracing extensions and DXR.
OptiX provides more features and higher limits and works on more GPUs than Vulkan RT or DXR.
Please find a lot more information about that inside the OptiX Programming Guide and on the OptiX developer forum.
1 Like