Compilar pacotes optimizados para o CPU

Se tiver um CPU Pentium, um AMD K6, Athlon ou Athlon-XP, poderá querer usar as optimizações do compilador para criar a sua versão do Kwave com a possibilidade de correr mais rápido em alguns pontos percentuais. O ganho em velocidade será na ordem dos 30% em alguns sistemas, enquanto as funções que lidam com a manipulação de sinais e todas as funções que façam operações complexas de tempo-frequência (como a FFT e o Audiograma) irão tirar bastante partido disto.

Não precisa de perceber muito sobre programação para usar um compilador optimizado na compilação do Kwave, mas talvez precise de algum tempo para pôr o compilador a funcionar e instalado.

Optimizações do RPM

Poderá compilar facilmente o pacote RPM para o Athlon, Athlon-XP, Pentium e Pentium Pro (entre outros CPU's), usando algumas definições no seu ficheiro rpmrc. Tanto poderá modificar o ficheiro rpmrc do seu sistema em /usr/lib/rpm como o ficheiro .rpmrc na sua pasta pessoal. Aqui poderá indicar algumas linhas de opções como as seguintes:

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

(Descobri estes truques interessantes em http://www.keywarrior.net/duesti/rpmopt.en.html. Obrigado a Matthias Düsterhöft!).

Isto significa que, numa arquitectura k7, o pacote RPM será compilado com -O3 -march=athlon-xp -DNDEBUG -fomit-frame-pointer como opções de compilação, e assim por diante; poderá estender ou adaptar essas opções de acordo com as suas próprias necessidades. As definições aplicam-se a todas as secções descritas acima onde é usado o rpmbuild -ta, ou onde for para criar um RPM binário a partir de um RPM de código com a opção rpmbuild --rebuild.

Note

Se o rpm se recusar a instlaar o seu pacote, por não parecer ser o adequado à arquitectura do seu computador, poderá instalar normalmente um pacote optimizado, indicando o parâmetro adicional --ignorearch e não se preocupar.

Como passar manualmente as opções do optimizador ao compilador

A invocação do compilador é bastante simples. Normalmente é suficiente definir as variáveis de ambiente CFLAGS e CXXFLAGS da forma correcta e depois compilar como de costume. Para saber as melhores configurações, consulte por favor a documentação na página Web sobre o compilador correspondente.

Se tiver compilado o Kwave a partir de uma estrutura de código (pacote .tar.bz2 descomprimido ou Git), tem de indicar as opções antes da chamada. Por exemplo:

% CFLAGS="-O4 -march=athlon-xp -mcpu=athlon-xp -pipe" \
  CXXFLAGS="-O4 -march=athlon-xp -mcpu=athlon-xp -pipe" \
  cmake [pasta de código]

Se tiver recompilado o Kwave a partir de um pacote RPM de código, siga por favor as instruções na secção anterior.