It seems my target was flashed with an older CUDA compared to the host.
On the TX2, cudaRuntimeGetVersion reported 8000 (rc=0)
On the host, where I inastalled Jetpack 3.2.1:
nvcc --version: release 9.0, V9.0.252
Instead of re-flashing the target, I prefer to install on the host an older Jetpack that will match the one on the target.
Is it possible ?
How can I know what Jetpack I should choose ?
I suspect the version mismatch is the reason cudaGetDevice returned 35.
On the host I installed Jetpack 3.1 which contains cuda 8.0
But it seems this version does not contain gcc (and g++) for aarch64.
Am I right ?
How can I install the right gcc that runs on the host and compiles code for the target ?
1. Please remove the host CUDA toolkit with JetPack3.2.1 first.
CUDA toolkit may automatically choose the newer package version(ex.9.0).
2. Please install cross compiler with this command:
$ sudo apt-get install g++-4.8-aarch64-linux-gnu