Creando paquetes optimizados para ciertos procesadores

Si es el propietario de un procesador Pentium, un AMD K6, Athlon o Athlon-XP podría querer usar ciertas optimizaciones para compilar su versión de Kwave y así obtener un aumento en la velocidad. La ganancia puede ser de hasta un 30% en algunos sistemas, las funciones tratando con manipulación de señal y todas las funciones que realizan operaciones complejas de tiempo y frecuencias (como FFT y Sonogram) serán las mayores beneficiadas.

No es necesario conocer mucho sobre programación para usar un compilador optimizado para compilar Kwavepero quiza necesite algún tiempo para conseguir hacer funcionar e instalar el compilador.

Optimizaciones RPM

Puede compilar fácilmente el paquete optimizado RPM para Athlon, Athlon-XP, Pentium y Pentium Pro (y otras CPUs) usando ciertas definiciones en su archivo rpmrc. Puede modificar el archivo rpmrc de su sistema en /usr/lib/rpm o el archivo .rpmrc en su directorio personal. Ahí puede especificar lineas de opciones como las siguientes:

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

(Encontré estos trucos en http://www.keywarrior.net/duesti/rpmopt.en.html. Gracias Matthias Düsterhöft!).

Esto quiere decir que en una arquitectura k7 el paquete rpm será compilado usando -O3 -march=athlon-xp -DNDEBUG -fomit-frame-pointer como opción de compilación y demás, podría extender o adaptar estas a sus propias necesidades. Los ajustes se aplican a todas las secciones anterioresen todos los lugares donde rpmbuild -ta es usado o donde un RPM binario es creado a partir de las fuentes desde un rpm usando rpmbuild --rebuild.

Note

Si rpm rechaza instalar su paquete debido a que parece no corresponder a la arquitectura de su ordenador, puede normalmente instalar un paquete optimizado especificando el parámetro adicional --ignorearch sin preocuparse.

Cómo pasar opciones de optimización manualmente al compilador

La llamada al compilador es bastante simple. Normalmente es suficiente con establecer las variables de entorno CFLAGS y CXXFLAGS de la manera adecuada y compilar de la forma habitual. Para obtener los mejores ajustes consulte la documentación o la página web del compilador.

Si compila Kwave desde un árbol de recursos (tar.bz2 desempaquetado o desde GIT) las banderas requieren ser especificadas antes de la llamada. Por ejemplo:

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

Si recompila Kwave desde un paquete fuente rpm, por favor, siga las instrucciones de la sección anterior.