No GPU? (Solved)

Hello I used JetPack to flash my new Xavier dev. kit. This appears to have worked, though the later package installations hung in the JetPack interface, and I managed to install them on the device manually.

Everything appears to be working fine, except that there is no GPU present. Does the Linux installation provided by JetPack use an NVIDIA module or is it compiled into the kernel? I have no module installed. Furthermore, there’s no nvidia-smi command or other tools.

Did I miss one of the post-flash packages? How can I install the GPU driver and utilities by hand?

Thanks!

Hi craig-tanis, the Jetson’s integrated GPU does not use a PCIe driver module or nvidia-smi, it has userspace and kernel components in L4T BSP installed by JetPack.

Are you able to run CUDA deviceQuery sample? If not, you may need to re-install the CUDA toolkit through JetPack.

Is this BSP installed as part of the flash, or one of the followup modules? The JetPack process did not work for me after the flash, so I installed later .deb modules by hand after seeing what JetPack was trying to do.

JetPack has the video/GPU driver from basic flash. Extras which need to be installed separately (JetPack is what does this…you can uncheck flash and run for extra package install at any time via the wired ethernet and entering the IP address) include CUDA, VisionWorks, so on. Even when you flash and install packages in the same operation it is really a flash followed by reboot and install after flash completes.

FYI, flash occurs over USB while in recovery mode. Ethernet is not required for flash. Packages are installed over ethernet without recovery mode (and USB is not required).

If you ever want to check if basic NVIDIA hardware acceleration drivers are in place just run this and all should show “ok”:

sha1sum -c /etc/nv_tegra_release

Now I’m confused. The sha1sum command indicates all OK’s

I compiled my own test program using nvcc on the Xavier. When I run this it says there are no GPUs present. Maybe I shouldn’t be able to build on the Xavier directly? Is JetPack used for something other than installing packages on the Xavier?

Jetpack bundles a few things:

  1. download/update packages from the internet
  2. install packages on the host
  3. run the flash process to install fresh kernel/drivers/file system on the Xavier
  4. install packages on the Xavier

Assuming you’ve plugged in a display, and can log into the desktop, then you obviously have a GPU, and the kernel obviously recognizes it, because you can see things on the screen. The ARM-based Jetson does not have a “BIOS fallback” like an Intel PC would, and can’t display pictures if you don’t have a driver for it.

Which instruction set are you compiling for? I believe Xavier wants --gpu-architecture sm_72

This example works fine for me:
https://devblogs.nvidia.com/even-easier-introduction-cuda/
This is using the built-in nvcc that JetPack installed – I didn’t pull any additional packages for this IIRC.

nvidia@xavier:/tmp$ nvcc add.cu -o add_cuda --gpu-architecture compute_72
nvidia@xavier:/tmp$ ./add_cuda 
Max error: 0
nvidia@xavier:/tmp$

However, not everything works:

nvidia@xavier:/tmp$ nvprof ./add_cuda 
==9879== NVPROF is profiling process 9879, command: ./add_cuda
======== Error: incompatible CUDA driver version.

Thank you for your help. I ended up reinstalling the cuda-l4t deb from JetPack and it appears to work.

Is there no command-line way to monitor GPU activity for this setup, similar to nvidia-smi?

Thanks!

You may get info about GPU (and other resources) usage with tegrastats.

sudo /home/nvidia/tegrastats

Dear all,

I am using Nvidia SDK Manager installer on ubuntu 18.04, but I can not run nvidia-smi and tegrastats.

I found /usr/local/cuda/bin

add at my ~/.bashrc

export CUDA_HOME=/usr/local/cuda
export PATH=${CUDA_HOME}/bin:${PATH}
export LD_LIBRARY_PATH=${CUDA_HOME}/lib64:$LD_LIBRARY_PATH

When I try to run /usr/local/cuda/bin/nvsight, I got error:

OpenJDK 64-Bit Server VM warning: Ignoring option MaxPermSize; support was removed in 8.0
CompileCommand: exclude java/lang/reflect/Array.newInstance
WARNING: An illegal reflective access operation has occurred
WARNING: Illegal reflective access by org.eclipse.osgi.storage.FrameworkExtensionInstaller (file:/usr/local/cuda-10.0/libnsight/plugins/org.eclipse.osgi_3.10.1.v20140909-1633.jar) to method java.net.URLClassLoader.addURL(java.net.URL)
WARNING: Please consider reporting this to the maintainers of org.eclipse.osgi.storage.FrameworkExtensionInstaller
WARNING: Use --illegal-access=warn to enable warnings of further illegal reflective access operations
WARNING: All illegal access operations will be denied in a future release

How to solve this problem?

Thank you very much in advance.

Warmest Regards,
Suryadi

See (nvidia-smi):
https://devtalk.nvidia.com/default/topic/1052554/jetson-agx-xavier/jetpack-4-2-sdk-manager-needs-root-by-default-how-to-tell-it-to-use-a-different-directory/post/5343250/#5343250

@linuxdev When I enter “sha1sum -c /etc/nv_tegra_release”, I get “sha1sum: /etc/nv_tegra_release: no properly formatted SHA1 checksum lines found”.

The ability to use a checksum was for much older releases. In the past the NVIDIA files were just copied into the Ubuntu root filesystem. Now that .deb packages are installed those checksums are no longer available (nor needed). You can still get your L4T release version via:
head -n 1 /etc/nv_tegra_release
(but the rest of the file will now be empty)