La construction de paquetages optimisés pour certains CPU

Si vous êtes propriétaire d'un processeur Pentium, ou d'un AMD K6 / Athlon / Athlon-XP, vous désirez peut être utiliser les optimisations de compilation pour gagner de la vitesse pendant l'exécution de Kwave. Le gain obtenu est d'environ 30% avec ces processeurs, quand les fonctions de manipulation de signaux et les fonctions de calculs complexes sur les tableaux de fréquences (comme les Transformées de Fourrier ou le Sonogramme) sont activées.

Vous ne devez pas connaître les fondements de la programmation pour utiliser et optimiser la compilation de Kwave, mais peut-être quelques principes vous serons utiles pour installer le compilateur et l'utiliser.

Les optimisations pour la construction d'un paquetage RPM

You can easily compile the RPM package optimized for Athlon, Athlon-XP, Pentium and Pentium Pro (and some other CPUs) by using some defines in your rpmrc file. You can either modify your system's rpmrc file in /usr/lib/rpm or the .rpmrc file in your home directory. There you can specify option lines like these:

optflags: i586 -O2 -march=pentium -DNDEBUG -fomit-frame-pointer
optflags: i686 -O2 -march=pentiumpro -DNDEBUG -fomit-frame-pointer
optflags: athlon -O2 -march=athlon -DNDEBUG -fomit-frame-pointer
optflags: k6 -O3 -march=k6 -DNDEBUG -fomit-frame-pointer
optflags: k7 -O3 -march=athlon-xp -DNDEBUG -fomit-frame-pointer

(I found those nice tricks at http://www.keywarrior.net/duesti/rpmopt.en.html. Thanks to Matthias Düsterhöft!).

This means that on an k7 architecture the rpm package will be compiled using -O3 -march=athlon-xp -DNDEBUG -fomit-frame-pointer as compiler option and so on, you might extend or adapt these to your own needs. The settings apply to all of the sections before in all places where rpmbuild -ta is used or where a binary RPM is to be created out of a source rpm using rpmbuild --rebuild.

Note

N'oubliez pas que la commande rpm peut refuser d'installer votre paquetage parce qu'elle est incapable de reconnaître votre architecture matérielle. Normalement, vous pouvez juste installer et optimiser le paquetage en spécifiant l'option --ignorearch.

How to pass optimizer options to the compiler manually

The invocation of the compiler is quite simple. It normally is sufficient to set the environment variables CFLAGS and CXXFLAGS in the correct way and then compile as usual. For the best settings please consult the documentation or homepage of the corresponding compiler.

If you build Kwave from a source tree (unpacked tar.bz2 or from GIT) the flags need to be specified before the call. For example:

% CFLAGS="-O4 -march=athlon-xp -mcpu=athlon-xp -pipe" \
CXXFLAGS="-O4 -march=athlon-xp -mcpu=athlon-xp -pipe" \
cmake [source directory]

Si vous recompilez Kwave à partir d'un paquetage RPM contenant les fichiers sources, veuillez suivre les instructions dans la section précédente.