Installation of JetPack on Tegra TX1


I have followed the instructions to install jetpack using the link : .

When I try to access cuda samples I find built executables at the following path : /home/ubuntu/NVIDIA_CUDA-_Samples/bin/aarch64/linux/release . I tried to run the executables and they seem to run fine. I am unable to understand why it is “aarch64” and how is it working even though the board supports “armv8l” architecture ? Is there something wrong with the installation ?


Btw, JetPack 3 is the most recent release…I don’t know if docs changed or not from R2.1 to R3, but possibly there is a difference.

The ARM Cortex-A57 is ARMv8, and on the Jetson is little endian. ARMv8 normal operating mode (el1) is 64-bit. In compatibility mode it supports the older instruction set of ARMv7 (including NEON). When in 64-bit mode this is referred to as aarch64 or arm64; in 32-bit mode it is referred to as armhf or arm32 or just arm. One has to specify a specific architecture for matching things…ARMv8 would be ambiguous and you could get one vendor supplying 64-bit code which wouldn’t work with another vendor’s 32-bit armhf. By specifying aarch64 you specify not only ARMv8, you also specify 64-bit mode.

The normal installation of Linux on ARMv8 is to supply linkers and libraries for the full performance 64-bit mode (the native architecture). You could install linker support and libraries to also run armhf/arm (a foreign architecture), but very few people are interested in adding the complexity to support a degraded performance. However, if you did add armhf as foreign architecture, then you could freely run ARMv7 with NEON in addition to ARMv8 64-bit.