Enable RTX mode in Optix 7.0

Hello everyone! I’m fairly new to Optix and for my master’s thesis I would like to test how big the difference in time is between using or not using the RT cores of a RTX 2080 Ti to run a given algorithm. I have read that in Optix 6.5 it is possible to use RT_GLOBAL_ATTRIBUTE_ENABLE_RTX to enable RTX mode.
Now I was wondering if there is a similar way to do this in Optix 7.0?
Thanks in advance!

https://forums.developer.nvidia.com/t/leveraging-rtx-hardware-capabilities-with-optix-7-0/107733/6 from January.

Thanks! I had not seen this topic yet.

Note that comparing the OptiX 6 execution strategies is definitely not the same as comparing RT cores off and on. That is running two different OptiX core implementations which will have visible performance differences already, normally with the newer code being faster, but there had been exceptions.

The RT cores cannot be disabled which means it’s not possible to compare that on a single GPU.
That would require at least two GPUs with the same streaming multiprocessor (SM) architecture with and without RT cores, so something like a GeForce RTX 2060 and a GeForce GTX 1660 Ti for example.

There are many other factors in play which affect ray tracing performance, most notably the GPU clocks, the number of streaming multiprocessors, and the memory bandwidth.
Using RT cores will shift multiple possible bottlenecks around which also depend on the application’s implementation.

With OptiX 7 you would have at least the host API under explicit control. OptiX 6 does a lot more under the hood and it’s easy to fall into performance pitfalls with that.

Also read this thread:

1 Like

Thanks for the explanation! So I can conclude that there is no simple way to just disable the RT cores via a flag. So these RT cores are used by default on RTX hardware when I use the “OPTIX_BUILD_INPUT_TYPE_TRIANGLES” (GeometryTriangles).

Correct, on an RTX board the RT cores will always be used for at least the BVH traversal, and yes, additionally the ray - triangle intersection runs in hardware on RTX boards as well if you’re using the built-in triangle primitives in either OptiX 6 or 7 versions.

If you’re following the given link above and read all referenced links in there and watch the SIGGRAPH 2019 presentation, that explains what part of the ray tracing pipeline runs where and when in detail, because that is relevant to know for optimal application performance.

1 Like