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

Oui, vous pouvez compiler les paquetages RPM avec les optimisations pour un processeur Pentium ou Pentium pro (ou d'autres processeurs) en utilisant quelques définitions dans votre fichier « rpmrc ». Vous pouvez modifier soit votre fichier système « /etc/rpmrc » ou le fichier « .rpmrc » dans votre dossier personnel. Vous allez y spécifier les options en ligne de commande comme suit :

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

(J'ai trouvé ces options sur http://www.keywarrior.net/duesti/rpmopt.en.html. Remerciements à Matthias Düsterhöft !).

Cela permet de compiler les paquetages RPM pour une architecture K7 en utilisant -O3 -march=athlon-xp -mcpu=athlon-xp -DNDEBUG -fomit-frame-pointer comme option de compilation. Vous pouvez ajouter ou adapter ces options selon vos besoins. Le paramétrage s'applique à l'ensemble des opérations décrites à la section précédente à chaque fois que l'on utilise la commande « rpm -ta », ou quand un paquetage RPM d'exécutable est construit à partir d'un paquetage source en utilisant la commande « 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.

Comment passer des options de compilation au compilateur

L'invocation des optimisations d'un compilateur sont simples. Normalement, il suffit d'activer correctement la variable d'environnement RPM_OPT_FLAGS avec les bons paramètres et de lancer la compilation. Cependant, pour un meilleur paramétrage, il est préférable de consulter la documentation ou le site internet de votre compilateur.

Si vous construisez Kwave à partir des sources (tel qu'une archive au format « .tar.gz » ou via le dépot GIT) l'option à activer doit l'être avant l'appel de la commande make -f Makefile.dist. Par exemple :

% 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.