OptiX 7.3 on Jetson AGX Xavier

Hello,

I attempting to run the OptiX 7.3 samples on a Jetson AGX Xavier that is flashed with Jetpack 4.4. I downloaded and installed the OptiX 7.3 ARM installer without issue. However, when I attempt to run any of the samples, I get the following error:

“Caught exception: OPTIX_ERROR_LIBRARY_NOT_FOUND: Optix call optixInit() failed: /opt/nvidia/NVIDIA-OptiX-SDK-7.3.0-linux64-aarch64/SDK/optixTriangle/optixTriangle.cpp:143)”

Upon closer inspection of the OptiX installation, there are only doc, include, and SDK folders, and no lib folder that contains .so files as I would expect. Is Optix 7.3 ARM supported on the Jetson?

Hi, which display driver version do you have installed? The .so files you are looking for are part of the Nvidia display driver. In order to use OptiX 7.3, you’ll need a display driver numbered 465 or higher. I’m not sure what’s included in Jetpack 4.4, but I think it predates the 465 driver, so I’m guessing you’ll need to install the driver separately.


David.

Hi David, do you happen to know how to query the display driver version on a Jetson? I have had trouble finding any documentation that describes how to do so, so I do not know which display driver is installed. I updated my L4T and JetPack to 32.5.1 and 4.5.1, respectively, but still receive the same error when running the samples.

JetPack 4.5.1 was released in February 2021, and OptiX 7.3 was released in April 2021, so it looks like the latest JetPack predates the 465 driver. Can you advise on how I would be able to install the driver separately on the Jetson? Or do I need to wait for a JetPack/L4T release that has support for OptiX 7.3?

From what I’ve gathered, it sounds like you just need to install a new driver via the regular Nvidia driver download page: Download Drivers | NVIDIA You can currently find the 465 drivers for ARM (aarch64) in the “New Feature Branch” rather than the “Production branch”, or under “Beta and older drivers”.


David.

Hi @dhart and @alyssarobertson0816 ,

I have run into the exact same issue regarding running OptiX 7.3.0 applications on a Jetson AGX Xavier, flashed with the latest Jetpack 4.6 (rev 2). As far as I’m aware, the L4T installed by Jetpack, which contains the kernel, nvidia driver, bootloader, etc, is the only officially supported way of installing a nvidia driver on a Jetson device. Please correct me if I’m wrong. The drivers download page you linked does not list any Jetson products so David I’m wondering if you have any more information that might help me?

Did you have any success with this issue Alyssa?

Cheers, Will.

Hey Will,

So I’ve reached out to the Jetson team and discovered two things I didn’t fully understand before:

  • OptiX is not included in the LT4 driver.
  • I believe you are correct, Jetpack is the only “officially” supported avenue for Jetson drivers.

I apologize to you and @alyssarobertson0816 that I made it sound easy to do without fully understanding the situation.

There are two things we should do:

1 - Ask the Jetson Team to include OptiX officially in the future. This is a call to everyone who’s interested in running OptiX on Jetson.

It will help to cross-post OptiX questions to the Jetson AGX Xavier forum (Jetson AGX Xavier - NVIDIA Developer Forums). I will also help to let the Jetson team know a little something about your use-cases for ray tracing on Jetson. They would like to understand how much professional demand there is for OptiX on Jetson before they agree to put OptiX into the Jetpack driver.

2 - Let’s start trying to see if there’s a workaround today to get OptiX running. I have confirmation that someone on the OptiX team has successfully run OptiX on Jetson AGX Xavier. I have asked for more detailed instructions, and I will report as I hear confirmation. There are a couple of things you might be able to start trying. Please understand that I’m not familiar with Jetson, and this is not official Jetson support in any way, shape, or form. I have no idea if things I suggest could cause trouble or potentially brick the board, and the OptiX team will likely be unable to help if something goes sideways.

So, if you’re willing to play with unsupported avenues, the first thing to perhaps try is installing a non-Jetson aarch64 driver onto your board. I’ve heard unofficial reports that this works. Maybe this one, for example? NVIDIA DRIVERS Linux-aarch64 (ARM64) Display Driver

If that doesn’t work, then the next course of action might be to crack open the aarch64 driver, pull out the OptiX specific parts, and copy them to your Jetson install. I’m going to wait to attempt describing that until either I get confirmation from someone here at Nvidia about how to do it and that it worked, and/or that you’ve attempted to install an aarch64 driver and it doesn’t work.


David.

Okay good news, one of the OptiX team members, Kyle, has successfully run OptiX on Jetson AGX Xavier using the following recipe (but the disclaimer stands - this is experimental and we probably don’t know how to recover if anything goes wrong - caveat emptor):

sudo apt update
sudo apt dist-upgrade
sudo apt install build-essential
sudo apt install xorg-dev

wget https://us.download.nvidia.com/XFree86/aarch64/470.74/NVIDIA-Linux-aarch64-470.74.run
sudo init 3
sudo sh NVIDIA-Linux-aarch64-470.74.run

wget https://developer.download.nvidia.com/compute/cuda/11.5.0/local_installers/cuda_11.5.0_495.29.05_linux_sbsa.run
sudo sh cuda_11.5.0_495.29.05_linux_sbsa.run (don't install the Driver component)

# download NVIDIA-OptiX-SDK-7.3.0-linux64-aarch64.sh
sudo sh NVIDIA-OptiX-SDK-7.3.0-linux64-aarch64.sh

# build and run OptiX samples

Here’s Kyle’s system info in case it helps:

System:    Kernel: 5.10.65-tegra aarch64 bits: 64 compiler: N/A Console: tty 0 Distro: Ubuntu 20.04.3 LTS (Focal Fossa) 
Machine:   Type: ARM Device System: Clara-AGX details: N/A serial: <filter> 
CPU:       Topology: 8-Core (4-Die) model: ARMv8 v8l bits: 64 type: MCP MCM arch: v8l 
           features: Use -f option to see features bogomips: 500 
           Speed: 2266 MHz min/max: 115/2266 MHz Core speeds (MHz): 1: 2266 2: 2266 3: 2266 4: 2266 5: 2266 6: 2266 7: 2266 
           8: 2266 
Graphics:  Device-1: NVIDIA TU102GL [Quadro RTX 6000/8000] driver: nvidia v: 470.74 bus ID: 0000:08:00.0 
           Device-2: tegra194-dc driver: N/A bus ID: N/A 
           Device-3: tegra194-dc driver: N/A bus ID: N/A 
           Device-4: tegra194-dc driver: N/A bus ID: N/A 
           Device-5: tegra194-dc driver: N/A bus ID: N/A 
           Device-6: tegra194-dc driver: N/A bus ID: N/A 
           Display: server: X.org 1.20.11 driver: N/A tty: 203x62 
           Message: Advanced graphics data unavailable in console. Try -G --display

Kyle also mentioned that he did not get the X server display to work, so when he ran the OptiX samples, he used the command line flags to save the result to an image file, rather than running it in interactive display mode.


David.

Thanks so much for tracking down all of this information David! Definitely hopeful that Kyle’s recipe here can provide a workaround for me until OptiX is fully supported by or included in L4T. I will also be sure to let the Jetson Team know that there is interest to include OptiX in the future.

Will, I had never resolved the issue and after installing the latest Jetpack back when I posted this question, I realized that I probably just had to wait for an L4T or Jetpack that included OptiX and the required drivers. I will let you know in the coming weeks if I have success with Kyle’s recipe that David has provided. I’d definitely be interested to know if you have any success as well.

Thanks David and Alyssa for your responses.

I will give Kyle’s recipe a go and report back hopefully by the end of the week.