scipr-lab / libff

C++ library for Finite Fields and Elliptic Curves
Other
149 stars 82 forks source link

Libff compiled on Github actions crashes with SIGILL on AWS T2 instances #81

Open kladkogex opened 3 years ago

kladkogex commented 3 years ago

At SKALE we use libff for BLS signatures

https://github.com/skalenetwork/libBLS

we recently upgraded libff to the version that implements BLS384. After that, binaries compiled on Github Actions started to fail on AWS T2.

We reverted to an older version of libff,

https://github.com/scipr-lab/libff/commit/03b719a7c81757071f99fc60be1f7f7694e51390

Then SIGILL disappeared.

Github Actions uses Xeon Platinum CPU, that in particular implements these instructions: avx512f avx512dq avx512cd avx512bw avx512vl.

I think some of them are not implemented on T2 instances, which causes SIGILL.

What is not clear to me is why it happens, since libff uses XBYAK JIT assembler that to my understanding should generate correct instructions depending on the CPU.