Optix 6.5 cannot recognize device

Hi, I am trying to test Optix 6.5.
I tried to use cudaGetDeviceCount(), the function returns correct GPU device count. When I tried to use rtDeviceGetDeviceCount(), the function returns 0. Anyone knows how to debug this?

I also tried to run the pre-compiled executables, but it will return “unknown error”.

The system is using cuda 11, with driver 450.51.05. Tesla V100.


Deriving from the display driver version you’re running on a Linux OS?
Are you saying that not even the OptiX SDK 6.5.0 example optixDeviceQuery is working on that system?

The OptiX 6.5 and 7 core implementation ships with the diplay driver.
Means it could be that the driver is not correctly finding the required library.
Check this thread: https://forums.developer.nvidia.com/t/optix-error-failed-to-load-optix-library/70671

Maybe try updating or reinstalling the display drivers. Do not use the ones shipping with the CUDA toolkits.

The Tesla V100 is only used for compute workloads, not for graphics.
Most of the OptiX SDK 6.5.0 examples use OpenGL interoperability by default to display the resulting image quicker via an OpenGL pixel buffer object.
If you can get OptiX 6.5.0 to work on that system, most examples would require the -nopbo command line option to work.

If you’re just starting with OptiX, I would really recommend using an OptiX 7 version which uses a much more modern API.
Follow all links in this post for more information: https://forums.developer.nvidia.com/t/general-optix-5-to-optix-7-code/157527/2

It’s unfortunate that the Tesla V100 driver releases are not at the same version as the Quadro GV100 drivers which already have 455.28 released, which would be required to use the newest OptiX SDK 7.2.0 release. I don’t know if these would install on a system with just a Tesla V100 as well.

Thank you very much for your comments and links!
Yes. I am running on CentOS.

Unfortunately updating the driver will involve IT and it takes time, so I have to stay with Optix 6.5 at this moment.

After I cleaned my environmental variables, the pre-compiled optixDeviceQuery is working now. I guess there has been some conflicts of loaded libraries. Previously, it cannot recognize the GPU card.

Your current 450.51 driver version does just not support OptiX 7.2.0, yet, but it’s new enough for OptiX 7.0.0 and 7.1.0.
See the OptiX Release Notes below each version’s download button.
The link to the older OptiX versions is at the bottom of the usual OptiX download site (needs login): OptiX Download

Thanks for the advice. I have compiled the optix 7.1 SDK. I noticed not like 6.5, there are not pre-compiled folder in the SDK. Also there is no lib64 folder or liboptix.so in the SDK. Is this correct?

Correct. OptiX 7 is a header-only API.

The OptiX 7 core implementation resides inside libraries installed with the NVIDIA display driver.

The OptiX 7 API entry point functions are loaded into a versioned OptixFunctionTable structure at runtime.
Please find example code showing how to do that inside the OptiX SDK 7 optix_stubs.h header.

NVIDIA Ray Tracing Documentation

1 Like