[solved] Build issues with Jeston Devices Illegal instruction (core dumped)

I’ve got a few NVidia Jetson devices, and have been having some trouble running TVM with them. I fixed the issue after using gdb, leaving this thread for future users.

I can build okay, with CUDA enabled and disabled. However, when I try to import tvm as normal, I crash with Illegal instruction (core dumped).

I find this occurs on v0.7, and recent main commits.

I have a single Jetson Nano I can build TVM with okay, however I have two other Jetson Nanos that the issue occurs with. Additionally, I’ve experienced the same issue with a Xavier NX, and two Xavier AGXs.

All of them, except the 1st Jetson Nano, have been flashed with recent versions of Jetpack, and have had no modifications.

One of the Nanos, and the NX, are operated by a colleague, and I just got remote access to test the issue - so I know it’s not operator error on my part for flashing the systems.

I’ve been able to build and run TVM following the official guide on dozens of different devices, but the Jetson devices are causing me issues.

Other issues with the Illegal Instruction error seem unrelated (wrong target, debugger runtime).

Running with gdb I get the following:

(gdb) r wee_test.py
Starting program: /usr/bin/python3 wee_test.py
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/aarch64-linux-gnu/libthread_db.so.1".

Program received signal SIGILL, Illegal instruction.
0x0000007fb6050f54 in gotoblas_dynamic_init () from /home/wheest/.local/lib/python3.6/site-packages/numpy/core/../../numpy.libs/libopenblasp-r0-32ff4d91.3.13.so

The issue seems to be consistent across devices.

It ended up being NumPy being the issue, since running import numpy causes the issue too. The issue is fixed by uninstalling numpy.