Optional processor flags in jll packages

I’m building a jll package of a c library. The library has some processor specific configuration flags, namely setting AVX512 for processors that support it.

Is it possible to generate several versions (e.g. with/without avx512) during the BinaryBuilder.run_wizard() and later have the package system download the best compatible version when the user ] adds the package based on the processor options?

It’s interesting that you’re asking this question now. The latest stable version of BinaryBuilder can only build generic libraries, so the short answer to your question is “no”. The development version of BinaryBuilder has the ability to build libraries for four different x86-64 targets: the generic x86-64, sandybridge, haswell, and skylake-avx512. However the JLL wrappers still can’t handle these new microarchitectures, then also in this case the short answer is “no”. This is way this new capability is not documented nor advertised anywhere.

That said, we’re working on this, so hopefully the answer will become “yes” in a not too far future.

2 Likes