0

I have a Cuda application that was built with Cuda Toolkit 9.0 and running fine on Jetson TX2 board.

I now have a Jetson Xavier board, flashed with Jetpack 4 that installs Cuda Toolkit 10.0 (only 10.0 is available).

What do I need to do if I want to run the same application on Xavier? Nvidia documentation suggests that as long as I specify the correct target hardware when running nvcc, I should be able to run on future hardwares thanks to JIT compilation. But does this hold for different versions of Cuda toolkit (9 vs 10)?

user48935
  • 1
  • 1

1 Answers1

1

In theory (and note I don't have access to a Xavier board to test anything), you should be able to run a cross compiled CUDA 9 application (and that might mean both ARM and GPU architecture settings) on a CUDA 10 host.

What you will need to make sure is that you either statically link or copy all the CUDA runtime API library components you require with your application on the Xavier board. Note that there is still an outside chance that those libraries might lack the necessary GPU and ARM features to run correctly on a Xavier system, or more subtle issues like libC incompatibility. That you will have to test for yourself.

talonmies
  • 70,661
  • 34
  • 192
  • 269
  • Thanks for the answer. Just to make sure, by 'statically link(ing)', you mean using `--cudart` flag with `static` as documented [here](https://docs.nvidia.com/cuda/cuda-compiler-driver-nvcc/index.html#file-and-path-specifications)? Also, regarding your two points: (i) Doesn't the [driver compatibility specs](https://stackoverflow.com/questions/30820513/what-is-the-correct-version-of-cuda-for-my-nvidia-driver/30820690#30820690) guarantee correctness? And (ii) for more subtle issues, isn't the risk the same for any other compiled program running on another machine? – user48935 Feb 04 '19 at 23:05
  • that is what I mean. Driver version guarantees correctness on the same architecture/platform. The problem is that L4T on a TX2 and a Xavier board are neither the same architecture nor the same platform, and yes this potentially applies to anything, except that it might be insoluble if compatibility issues exist between platforms because of the fact that the CUDA runtime is supplied binary only – talonmies Feb 06 '19 at 14:15