On Fri, 2016-04-01 at 14:32 -0600, Jerry James wrote:
I am one of the maintainers of the ntl package, which is used by
numeric applications (e.g., Macaulay2 and sagemath). Upstream
supports use of the PCLMUL instruction, the AVX instructions, and the
FMA instructions to speed up various computations. We can't use any
of those in Fedora, since we have to support a baseline x86_64.
Well, that's kind of a downer. I could advertise that people with
newer CPUs ought to rebuild the ntl package for their own CPUs, but
what's a distribution for if people have to rebuild packages? I've
been looking for a way to automatically support more recent CPUs.
Has anybody already thought this through? What's the best
take? For this package, the speedups are substantial, so this is
worth doing, if it can be done well.
In crypto libraries and gmp these optimizations are enabled using
the cpuid information on runtime. That is, check the cpu capabilities
on application/library load and override functions for specific
functionality (e.g., with function pointers) on runtime. Is that
something that can be used by ntl upstream?