Hi,
On 21/08/17 22:23, Ricardo Wurmus wrote:
Hi Guix,
I was wondering how we should go about optionally building software for
more advanced CPU features. Currently, we build software for the lowest
common feature set among x86_64 CPUs. That’s good for portability, but
not so good for performance.
In many cases we can set the --with-arch flag when configuring GCC, so
that packages built with that GCC are optimised for that architecture by
default.
We have discussed this in the past,
(https://lists.gnu.org/archive/html/guix-devel/2016-10/msg00005.html)
but as you say individual packages sometimes need individual attention.
Anyway, to move forward I created a repo so that package recipes can be
modified to use a GCC that has been optimised for a particular
architecture. I put it out there so that it is more than just a patch on
this ML, but I'd be happy to incorporate it into Guix proper if that is
desired.
https://github.com/wwood/cpu-specific-guix
For instance, to build DIAMOND optimised for sandybridge:
GUILE_LOAD_PATH=/path/to/cpu-specific-guix:$GUILE_LOAD_PATH\ |guix build -e '(begin (use-modules (cpu-specific-guix) (gnu packages
bioinformatics))\ (cpu-specific-package diamond "sandybridge"))'|
HTH, ben