Fail to load Optix library for optix advanced examples

Hello, I meet some problems when trying optix advanced example. My configuration is:
RTX 2080
Ubuntu 16.04 (on headless server)
Driver Version: 460.91.03
CUDA version: 11.2
Optix: 6.5.0 (I found that Optix 7+ don’t have the liboptixu.so, thus I can not use Optix 7.4.0 to make with optix_advanced_example)

After executing executable file, I get error information:

terminate called after throwing an instance of ‘optix::Exception’
what(): Failed to load OptiX library
Aborted (core dumped)

How can I solve this problem?

Thank you!

I’m not a Linux expert, but if your headless server is not supporting X11 and OpenGL you won’t be able to run any OptiX example which makes use of GLUT or GLFW to show a window and OpenGL to display the ray traced image inside it.
That includes most OptiX SDK examples and all advanced samples.

I found that Optix 7+ don’t have the liboptixu.so, thus I can not use Optix 7.4.0 to make with optix_advanced_example

OptiX 7.4.0 requires R495 drivers. Your 460.91 drivers would support versions up to OptiX 7.2.0.

OptiX 7 uses a completely different host API. These OptiX 5-based advanced examples can only be compiled with OptiX versions up to OptiX 6.5.0 and then do not make good use of the RTX hardware.
That’s why there are ports of some of these examples to OptiX 7 and all of them would work with OptiX 7.2.0:
https://forums.developer.nvidia.com/t/optix-advanced-samples-on-github/48410/4

OptiX 7 is a header only API. It’s not shipping with any link library like the OptiX versions 1 to 6. The implementation’s entry point function table is loaded inside the applications at runtime from a dynamic link library shipped with the display driver.

Similar in OptiX 6 versions where this happens inside the small link library your application links to to get the OptiX functions which themselves are implemented inside the display driver library.

The error you’re experiencing is that this display driver library is not found on your system and that usually means the NVIDIA display driver is not installed correctly.

Please follow the links in the other thread where you posted this same issue. It contains a link to a blog post from Ingo Wald where he explains how to install display drivers, CUDA, and OptiX correctly under Ubuntu 18. Maybe that applies to Ubuntu 16 as well.

Thank you for your patient and detailed explanations!
I try to support x11 and opengl with mobaxterm and write image with opencv, maybe this can help to display the ray traced image? (or I will try that on local ubuntu environment with a dual system computer later)

OptiX by itself doesn’t know anything about windows systems or other graphics APIs. All it cares about is CUDA and its own drivers. All connections to other interfaces are the responsibility of the application. Means you can display ray traced images as you like.

You could even ray trace an image and write it to disk for example, which is effectively what a headless image generator system would do. It’s just that you cannot have CUDA-OpenGL interoperability on the GPU device when there is no OpenGL implementation from NVIDIA running.

There are some OptiX SDK examples which do not need any windowing system or OpenGL. Also search the OptiX SDK examples’ source code for the nopbo option. Some of my OptiX 7 example also have an option to disable OpenGL interoperability.

But you’d need to get the display driver to work with OptiX first before any of that becomes relevant.
I can’t really help with that more than what has been explained inside the other thread already.