Erstellen von CPU-optimierten Paketen

Wenn Sie eine Pentium, eine AMD K6, Athlon oder Athlon-XP CPU besitzen, wollen Sie vielleicht einen optimierten Compiler für die Übersetzung Ihrer eigenen Version von Kwave verwenden, die einige Prozente schneller läuft. Der Geschwindigkeitsgewinn beträgt bei einigen Systemen bis zu 30%, wobei die Signalbearbeitungs-Funktionen sowie alle Funktionen die komplexe Zeit-Frequenz-Operationen (wie FFT und Sonagramm) behandeln, am meisten davon profitieren.

Sie brauchen nicht viel über Programmierung zu wissen um einen optimierten Compiler für die Übersetzung von Kwave zu benutzen. Aber vielleicht werden Sie einige Zeit brauchen um den Compiler selbst zu installieren und zum laufen zu bringen.

RPM-Optimierungen

Sie können relativ einfach ein für Athlon, Athlon-XP, Pentium und Pentium Pro (oder einige andere CPUs) optimiertes Paket kompilieren, indem Sie einige Definitionen in Ihrer rpmrc Datei setzen. Sie können auch Ihre systemweite rpmrc Datei oder die .rpmrc Datei in ihrem Home-Verzeichnis verändern. Dort können Sie zum Beispiel folgende Options-Zeilen angeben:

% 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

(Ich fand diese schönen Tricks auf http://www.keywarrior.net/duesti/rpmopt.de.html. Dank an Matthias Düsterhöft!).

Das bedeutet, dass auf einer K7-Architektur das rpm Paket unter Benutzung von -O3 -march=athlon-xp -mcpu=athlon-xp -DNDEBUG -fomit-frame-pointer als Compiler Option kompiliert wird. Sie sollten dies für Ihre eigenen Bedürfnisse erweitern oder anpassen. Die Einstellungen sind für alle vorhergehenden Sektionen anwendbar, wo ein rpmbuild -ta benutzt wurde oder ein binary RPM mittels eines Quell-RPM unter Benutzung von rpmbuild --rebuild erstellt wurde.

Note

Falls es rpm ablehnt Ihr Paket aufgrund von scheinbarer Unstimmigkeit mit ihrer Computer- Architektur zu installieren, können Sie ein optimiertes Paket trotzdem problemlos mit der zusätzlichen Angabe des Parameters --ignorearch installieren.

Wie werden Optimierungs-Parameter manuell an den Compiler übergeben

Der Aufruf eines optimierten Compilers ist recht einfach. Es reicht normalerweise aus, die Umgebungsvariablen CFLAGS undCXXFLAGS in der korrekten Weise zu setzen und dann wie gewohnt zu übersetzen. Für die besten Einstellungen lesen Sie bitte in der Dokumentation oder Homepage des entsprechenden Compilers nach.

Wenn Sie Kwave von einem Quellverzeichnis aus (entpacktes tar.bz2 oder via GIT) erstellen, sollten die Flags vor dem Aufruf angegeben werden. Zum Beispiel:

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

Wenn Sie Kwave aus einem Quell-RPM-Paket erstellen, folgen Sie bitte den Anweisungen im vorherigen Abschnitt.