OptiX Error: 'Failed to load OptiX library

I run those two executes from directory SDK-precompiled-samples and I export LD_LIBRARY_PATH as SDK-precompiled-samples otherwise it can not find libsutil_sdk.so. I am trying to use strace.

I build the SDK on local machine and run $ strace ./optixRaycasting. It tells that libnvoptix-sdk.so.1 is missing. And the ending part of strace output is :

open(“tls/libnvoptix-sdk.so.1”, O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
open(“x86_64/libnvoptix-sdk.so.1”, O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
open(“libnvoptix-sdk.so.1”, O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
open("/etc/ld.so.cache", O_RDONLY|O_CLOEXEC) = 3
fstat(3, {st_mode=S_IFREG|0644, st_size=214066, …}) = 0
mmap(NULL, 214066, PROT_READ, MAP_PRIVATE, 3, 0) = 0x2af878baa000
close(3) = 0
access("/etc/ld.so.nohwcap", F_OK) = -1 ENOENT (No such file or directory)
open("/lib/x86_64-linux-gnu/libnvoptix-sdk.so.1", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
open("/usr/lib/x86_64-linux-gnu/libnvoptix-sdk.so.1", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
open("/lib/libnvoptix-sdk.so.1", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
open("/usr/lib/libnvoptix-sdk.so.1", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
munmap(0x2af878baa000, 214066) = 0
futex(0x2af87a26d1a0, FUTEX_WAKE_PRIVATE, 2147483647) = 0
write(2, “Failed to load OptiX library”, 28) = 28
write(2, “\n”, 1) = 1
exit_group(1) = ?
+++ exited with 1 +++

I test it with another GPU RTX2070 and strace says libnvoptix-sdk.so.1 is missing but it just continued without exit.

The missing libnvoptix-sdk.so is fine. This is not a required lib. The issue is finding libnvoptix.so.1 and libnvidia-rtcore.so.VERSION. In your case, it is libnvoptix.so.1 that is missing.
So look for ‘open’ system calls that are targeted at this library. Compare the strace outputs of your working optixHello run and your failing optixRaycasting lib and see where optixHello is finding this library, and see what paths optixRaycasting is searching.

optixHello did not try to load libnvoptix.so.1 but optixRaycasting did indeed. In this machine(Ubuntu 16.04) with V100 SXM2, libnvoptix.so.1 can not be found. This machine uses driver 440.33.01.

But in another machine (Ubuntu 18.04LTS) with RTX2070, driver 440.64, libnvoptix.so.1 locates in /usr/lib/x86_64-linux-gnu/

My question is: If every nvidia driver 440 should contain libnvoptix.so.1?
If so, I should re-install driver for V100 SXM2 until a proper driver installation gives me this lib

I am a bit confused by why optixHello is not loading the nvoptix lib – I will look into that later.

However, the issue is a bit clearer now - I did not note the fact that you are using a Tesla system. There is a known issue with finding the raytracing libs on tesla systems. The lib is installed, but the optix wrapper lib does not look for it in the correct place.

If you can find the libnvoptix.so.1 lib, you can add its location to your LD_LIBRARY_PATH and should be fine. I will inquire on my end and find more info on where this lib is typically installed in the tesla driver.

Is this issue dead. I am having same problem with K80 card, with Nvidia 418 driver, I am trying to use this on Ubuntu 18.04 instance on google cloud. Which debian package proivdes this libnvoptix.so.1

Much appreciate your help on this

  • First, an NVIDIA Tesla K80 is a Kepler based GPU. That GPU architecture is not supported by OptiX since version 6.0.0. Means your system setup is limited to OptiX 5.1 and older versions.
  • Versions 6.0.0 and before would not have this issue with driver components because the OptiX core implementation is not residing inside the display drivers. See posts above.
  • If you had a Maxwell or newer GPU, OptiX 6.5.0 or newer is not supported by 418 drivers. Please always refer to the OptiX release notes directly under the resp. OptiX download button on developer.nvidia.com.
  • (A similar issue under Windows 10 based OSes with all GPUs in the TCC driver mode where not all required driver components could be found with OptiX 6.5.0 and higher has been fixed inside the 450 driver releases. See versions in the OptiX 7.1.0 Release Notes.)

Hello! I have the Optix SDK 7.1.0 for Windows. Trying to use it with Nvidia 452.39 on 3ds Max 2021 with Arnold renderer. Getting the error “Nvidia 452.39 is too old or missing the Optix library”. I’ve reinstalled the SDK twice, still not working. What am I doing wrong?

I’m trying to run it on a Nvidia Quadro P2000 (notebook), which should be meeting the requirements right?

First of all, there is no need to install an OptiX SDK for running any commercial application which is using OptiX.
The OptiX SDK is only required during application development.

The application itself needs to ship the required libraries and the target system needs to have a display driver version installed which the application requires. That’s all.

There is a knowledge base article about exactly that already:
https://knowledge.autodesk.com/support/3ds-max/troubleshooting/caas/sfdcarticles/sfdcarticles/GPU-rendering-with-Arnold-does-not-work-in-3ds-Max.html

If that doesn’t help, you could try refreshing/changing the display drivers and install them cleanly.
Means, download the newest available NVIDIA display drivers for your board.
Then first uninstall your current NVIDIA display drivers with Windows’ “Add or Remove Programs” and reboot.
Then start the NVIDIA display driver installer and select “Custom” and check the “Clean Installation” box.
When that is done, verify if the NVIDIA Display Control Panel works.

Other than that, we’ve seen one issue where an NVIDIA nvml.dll resided inside a 3ds Max installation, but I don’t know how it got there. That DLL doesn’t belong there. It must use the one shipping with the display driver.

You should definitely visit the Autodesk 3ds Max support forum instead. Just searching for “Arnold OptiX” there turned up all things I said above.
https://forums.autodesk.com/t5/3ds-max/ct-p/area-c1