
gf2x tuning

gf2x should normally build out of the box with relatively sensible
defaults (if it does not, it's a bug, and we would be glad if you could
report it with accurate enough information).

For best performance, it is wise to tune the library in order to
select the best algorithm when appropriate. This can be done in three
steps.

This tuning job requires perl, and quite probably won't work if
cross-compiling. It should work out-of-source cleanly, though.


All the tuning steps below update the ../already_tuned/tuned subdirectory, and
move the corresponding links in the top-level directory.

* Step 1 -- tuning the low-level routines *

Run ``make tune-lowlevel''. You need perl for that. Depending on the
hardware, various codes may be tested.

* Step 2 -- tuning the mid-sized multiplication routines *

Run ``make tune-toom''. This may take some time. As an alternative, there
is also a way to run this procedure more manually, for quicker tuning, or
for better accuracy. See the program tunetoom.c for instructions (don't
mix tune-toom which is the target, and tunetoom, which is the program).

* Step 3 -- tuning the large multiplication *

Run ``make tune-fft''. As for tune-toom, speed or accuracy of the tuning
may be adapted by a manual procedure.


The developers may be interested by your tuning results. You may thus
post to the list gf2x-discuss@lists.gforge.inria.fr ; we need:

- the contents of the already_tuned/tuned subdirectory
- anything relevant for identifying your machine, or machine family, and
  compiler. This includes for example the output of the following
  commands, at least the ones that exist:
      sh /path/to/source/of/gf2x/config.guess
      uname -a
      arch
      cat /proc/cpuinfo
      psrinfo -v
      gcc -v
      cc -v
      cc -V
- optionally, the complete output of the ``make tune-*'' commands, but
  this is only for having a look at the timings.


