Installing Ipopt, or other numerical optimizer, on TX2?

Hello,

I’m interested in installing a numerical optimizer on my TX2 development board. Ideally I would use Ipopt, but I’m having trouble understanding the significance of AARM64 architecture and how everything works together. I’ve gotten Ipopt to install on a linux machine (Chromebook running gallium, Intel Braswell based cpu), but no such luck on the TX2.

Alternatively, has anyone installed a different C-based optimizer on a TX2? At a high level, I’ve ported my Python 2.7 code to CUDA C code, and now need an non-linear gradient based optimizer to complete the task. Working on some active safety/autonomous driving applications, but a different approach from traditional neural networks.

Thank you!

Looks like Ipopt’s autoconf configure does not handle arm64/aarch64/ARMv8-a.

Thanks for the reply - what does it mean that the autoconf does not handle aarch64? I looked at the git repository (https://github.com/coin-or/Ipopt) but didn’t see an autoconf file.

Is it feasible to update this autoconf file to handle aarch64? In theory, Ipopt is available from source, shouldn’t it be compatible to support aarch64? That said, I haven’t been able to compile dropbox from source on the TX2.

Autoconf/automake is a system of generically configuring for different target platforms. The file “configure” is generated by autoconf. If autoconf can detect everything it has been given conditions for, then you could set everything for install in “/usr/local” (as an example) via:

./configure --prefix=/usr/local
make
sudo make install

The autodetection of what CPU architecture to build for is missing arm64/aarch64/ARMv8-a, so it does not have the compiler options or knowledge it needs to continue. You could ask the Ipopt people how hard it would be to add configuration for arm64.

I also noticed it may be looking for the BLAS package, which also may not be available on arm64/aarch64…at least through apt-get.

The solution to compile ipopt in jetson tx2 is:

Copy the file config.guess for the automake version installed. To each folder where exist config.guess in ipopt and each thirtyPart library ASL Blas, HSL etc.

cp /usr/share/automake-1.15/config.guess config.guess

The version that i use is Ipopt-3.12.4

Best Regards

I would like to refresh this as I came up to the same problem with Jetson Nano:

  1. As @gabriel.giani mentioned, someone wrote a tutorial to build Ipopt (in Chinese but Google translate is sufficient) with copying config files.
  2. Only problem is, it kept throwing
    configure: error: cannot guess build type; you must specify one error after calling
    ./configure --prefix=/usr/local command.
  3. In addition to @linuxdev’s code, someone in an other topic recommended to run the same command as
    ./configure --prefix=/usr/local --build=unknown-unknown-linux and I managed to make and install afterwards calling it this way.

I hope this help others in case they need it.

Best wishes