Jetson TK1: nvcc: cannot execute binary file: Exec format error

I recently finished installing the CUDA toolkit on my TK1. I used the ARM-64 .run file. (cuda_6.5.14_linux_aarch64_native.run) Attempting to run nvcc presents the error shown in the title, though the install seems to have been successful.

File info shows everything should be working, and is more or less consistent with my verson of Linux.

ubuntu@tegra-ubuntu:~$ file /usr/local/cuda-6.5/bin/nvcc
/usr/local/cuda-6.5/bin/nvcc: ELF 64-bit LSB executable, ARM aarch64, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 3.7.0, stripped

ubuntu@tegra-ubuntu:~$ uname -r
3.10.24-g6a2d13a

I rebooted the device after install, but forgot to copy the install logs from /tmp, so they’re gone. My guess is as good as anyone else’s why it’s not working.

Suggestions?

EDIT: D’oh! I don’t know why I thought the TK1 was 64-bit. I must be losing my mind. I’m going to uninstall everything I just put on and see if the 32-bit version works.

TK1 is not 64 bit…it is 32 bit. Some parts of the install may have not cared about 64/32, e.g., bash. I don’t know if 32 bit is available yet on ARM.

The TK1 on the jetson is 32 bit.

32 bit Cuda 6.5 for ARMv7 for cross compile.

But not yet for L4T. You are still stuck with 6.0 for a bit.

What about compiling CUDA for the Tango tablet? It’s 64 bits, correct?

When I try passing the -m64 arg to nvcc along with the aarch64 ndk toolchain path for gcc, it tells me that g++ 4.9 is not supported yet. Since that’s the only aarch64 toolchain included, I’m not sure I understand how to build arm64 kernels?

Tango is 32bit.