Nsight Compute fails to attach to a remote process on the Jetson Nano

I am running the latest Nsight Compute 2022.1.0.0 on my Windows 10 Desktop. I can successfully profile applications running locally.
However, When I try to profile an application that runs remotely on a jetson nano, both interactive and non-interactive profiling fails.

Just to make sure, I have disabled Windows firewall and run Nsight Compute as an administrator.

When trying to do non interactive profiling, I get an indication by the progress log that the process is launched, however the profiling session seems to halt due to a syntax error:

Interactive profiling seems to to launch the process too, I can even see it running using the ‘top’ command on the Jetson side. It exists immediately without halting the program.

One thing that looks particularly suspicious is that the ncu file that is copied by Nsight Compute to the jetson is the one that is suitable for x64:

>>file /tmp/var/target/linux-desktop-glibc_2_11_3-x64/ncu


/tmp/var/target/linux-desktop-glibc_2_11_3-x64/ncu: ELF 64-bit LSB executable, x86-64, version 1 (GNU/Linux), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, for GNU/Linux 3.4.1, stripped

Just to emphasize, The application is indeed using Cuda and I can profile it locally on the Jetson using the nvprof command line tool.


Update:

Seems that the at least on the interactive profiling, the ncu executable is not suited for aarch64 (jetson) but for linux x64.
The documentation claims that Nsight Compute can in fact target aarch64 but it is impossible to choose this architecture from the UI nor could I understand how to supply the right commands via the ncu command line tool.

Could someone please elaborate:

  1. Can Nsight Compute 2022.1.0.0 be used to remotely profile Cuda applications that run on the Jetson Nano?
  2. if so, please be kind enough to explain how exactly. I could not find this in the documentation.
1 Like

As you found yourself, you were deploying the Linux x86_64 target variant of ncu to the aarch64 Jetson target, which is not compatible. Mobile Jetson targets are supported by Nsight Compute versions shipped as part of the JetPack SDK. It’s included in the CUDA Toolkit component that can be installed through the SDK’s installer and then remote-profiled or deployed using the Linux x86_64 host UI.

Note though that Jetson Nano uses a GPU based on the Maxwell architecture, which by itself is not supported by Nsight Compute. Support includes Volta-architecture GPUs and above.

1 Like

Thanks for the info, I only wish it was more clear from the documentation. Would save a lot of time.

Also, I believe the first issue (syntax error) is still a bug that should be addressed.

1 Like