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: Official 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? Linux-aarch64 (ARM64) Display Driver | 470.74 | Linux aarch64 | NVIDIA

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.

Hi,
Has there been any development on this at all?
Will Optix be available in the next release of JetPack?

Hi @aspen.eyers,

To my knowledge, nothing has changed. @william.talbot started a thread on the Jetson Forum here last year, and the team responded by saying there are no plans to support OptiX: OptiX with Jetpack for Jetson Devices

My recommendation is to post again in the Jetson Forum, and let the team know you would like to see official support. They have mentioned they are waiting for a certain level of customer critical mass before agreeing to support OptiX.


David.

1 Like

Hi,
I thought I’d reopen this can of worms after some time and would like to reproduce Kyle’s setup as closely as possible, but I might need some help.
At the time, Kyle was using a 5.X kernel with ubuntu 20, which was well before jetpack 5 was released, so I’d like to know if there is the exact kernel version that Kyle used anywhere.
Additionally, Kyle appears to be using a dedicated GPU Quadro RTX 6000/8000 plugged into the Xavier. I haven’t found anyone else successfully using an external GPU on the Xaiver. ( Except for this notable exception Add external graphics card on Jetson AGX Xavier Developer Kit - #3 by pea1)
Sadly I don’t have an RTX 6000/8000 handy. Are there similar GPU’s that might work? Something like a 2070 would be ideal, but I’d like to know the considerations before forking out for one (acknowledging that this still might not work…)

I’d love to get Optix running with the Xaviers iGPU, but I suspect there are some fundamental issues with drivers/Cuda that I don’t yet understand.

My current plan:

Just as an additional note. I’ve tried following Kyles steps with no Graphics card plugged in.
I have the Kernel version 5.10.65 on a Jetson Xavier with no external GPU.

And when I get to the step of running the .run file I’m greeted with warnings:

  WARNING: You do not appear to have an NVIDIA GPU supported by the 470.74 NVIDIA Linux graphics driver installed in this system.  For     
           further details, please see the appendix SUPPORTED NVIDIA GRAPHICS CHIPS in the README available on the Linux driver download   
           page at www.nvidia.com.

                                                                     OK  

Continuing along I’m told there are other drivers available, but I’ll Ignore those in favour of Kyles version.

  An alternate method of installing the NVIDIA driver was detected. (This is usually a package provided by your distributor.) A driver     
  installed via that method may integrate better with your system than a driver installed by nvidia-installer.

  Please review the message provided by the maintainer of this alternate installation method and decide how to proceed:

                                     Continue installation                          Abort installation    

 The NVIDIA driver provided by Ubuntu can be installed by launching the "Software & Updates" application, and by selecting the NVIDIA
 driver from the "Additional Drivers" tab.

This then runs into a wall where I need a different CC version. I’ll continue with the version mismatch for now.

  The CC version check failed:

  The kernel was built with aarch64-buildroot-linux-gnu-gcc.br_real (Buildroot 2020.08) 9.3.0, GNU ld (GNU Binutils) 2.33.1, but the       
  current compiler version is cc (Ubuntu 9.4.0-1ubuntu1~20.04.1) 9.4.0.

  This may lead to subtle problems; if you are not certain whether the mismatched compiler will be compatible with your kernel, you may    
  wish to abort installation, set the CC environment variable to the name of the compiler used to compile your kernel, and restart         
  installation.

                                    Ignore CC version check                         Abort installation     

Selecting Ignore results in a warning

 
  WARNING: Ignoring CC version mismatch:

           The kernel was built with aarch64-buildroot-linux-gnu-gcc.br_real (Buildroot 2020.08) 9.3.0, GNU ld (GNU Binutils) 2.33.1, but  
           the current compiler version is cc (Ubuntu 9.4.0-1ubuntu1~20.04.1) 9.4.0.

                                                                     OK  

And then an all out failure:

 
  ERROR: Unable to load the kernel module 'nvidia.ko'.  This happens most frequently when this kernel module was built against the wrong
         or improperly configured kernel sources, with a version of gcc that differs from the one used to build the target kernel, or if
         another driver, such as nouveau, is present and prevents the NVIDIA kernel module from obtaining ownership of the NVIDIA GPU(s),  
         or no NVIDIA GPU installed in this system is supported by this NVIDIA Linux graphics driver release.
                                                                                                                                           
         Please see the log entries 'Kernel module load error' and 'Kernel messages' at the end of the file
         '/var/log/nvidia-installer.log' for more information.

                                                                     OK  

I guess I’ll need to change my CC version and give an update on my progress.

Hey @aspen.eyers,

I’d like to know if there is the exact kernel version that Kyle used anywhere.

I’m out of my depth, I don’t know where to get old Kernels for Jetson… people on the Jetson forum might know? I also don’t understand the blocking driver/CUDA/hardware issues here, and I suspect that I’ve inadvertently provided a false hope and sent you down a rabbit hole that might have no exit, and if so I’m really sorry about that. It’s possible Kyle might have used internal resources or hacks that you don’t have access to.

At this point I feel like the right way to get OptiX running is to get the Jetson team to support it officially and package the OptiX part of the driver into Jetpack, since even if a hack or shim works today, it could be brittle and prone to breaking with any system or driver updates. I’m worried that there really is something fundamental preventing the currently available kernel & driver from running OptiX on Jetson’s iGPU since that’s the current official design intent of the system and we have no indication that Kyle’s recipe would work for the iGPU either. I think you’re right to be hesitant to acquire a 2070, I would recommend waiting until someone can make an official statement or just verify it works. I’ve asked Kyle to see if he has time to review and try again, but we can’t promise anything, and I think it’s worth pinging the Jetson forum for help too if you still want to pursue this.


David.