View previous topic :: View next topic |
Author |
Message |
the incredible hurd Guru
Joined: 01 Jan 2007 Posts: 381
|
Posted: Wed Apr 08, 2009 2:48 pm Post subject: [USE] mmx y sse(X) (cerrado) |
|
|
Hace poco, curioseando acerca de sse3 y ssse3, me topé con esto:
Quote: | Intel was generally disappointed with their first IA-32 SIMD effort, MMX. MMX had two main problems: it re-used existing floating point registers making the CPU unable to work on both floating point and SIMD data at the same time, and it only worked on integers. |
Por lo que estoy pensando en quitar MMX en todos los programas que lo permitan en amd64, y en las máquinas i686 no sé hasta qué punto sería razonable quitar MMX, dado que SSE sin números adicionales sólo soporta single precision arithmetics, por lo que sigue haciendo uso del 387 y acaso parece más adecuado quitar SSE, con mfpmath=387
¿Alguien podría recomendarme algún método para hacer pruebas de rendimiento más o menos fiables a tan bajo nivel?
No tengo ni idea de benchmarking, por lo que cualquier sugerencia será bienvenida... Creo que povray incluía algo muy similar a lo que busco. A ver si indago esta semana de puente... _________________ Nunca preguntes el camino a alguien que ya lo conoce. Podrías no perderte. (Nahman de Braslaw)
Last edited by the incredible hurd on Thu Jun 25, 2009 9:12 am; edited 1 time in total |
|
Back to top |
|
|
gringo Advocate
Joined: 27 Apr 2003 Posts: 3793
|
Posted: Wed Apr 08, 2009 3:10 pm Post subject: |
|
|
Quote: | dado que SSE sin números adicionales sólo soporta single precision arithmetics, por lo que sigue haciendo uso del 387 y acaso parece más adecuado quitar SSE, con mfpmath=387 |
yo pregunté lo mismo una vez y básicamente un dev de gentoo me dijo que no lo hiciera por no sé que rollo del ensamblador, pero no recuerdo si era sólo para amd64 o si era válido tb. para x86. Creo recordar que en amd64 era redundante pero tampoco encuentro el hilo ahora mismo ...
Por lo de las pruebas de rendimiento, nunca me he parao a mirarlo, pero yo entiendo que una forma rápida de ver la diferencia de rendimiento es compilar un paquete como lame o libquicktime con y sin esa USE. En teoría entiendo que el que se haya compilado con esa USE debería aportar un plus de rendimiento, es decir, debería ser mas rápido a la hora de crear un mp3 p.ej.
Pero bueno, seguro que hay formas mas científicas de probar esto.
saluetes _________________ Error: Failing not supported by current locale |
|
Back to top |
|
|
pelelademadera Veteran
Joined: 14 Jul 2008 Posts: 1255 Location: La Plata, Argentina
|
Posted: Mon Apr 13, 2009 4:16 am Post subject: |
|
|
si, proba con mplayer y ripeate algun dvd...
compara los tiempos con un time y contanos que paso... _________________ el pelado de la gente
------
Los habitantes de las islas Malvinas lo llaman gentoo, nombre en el que se basa la distribución GNU/Linux Gentoo, cuyo objetivo es la optimización para conseguir más rendimiento y velocidad en la ejecución.
------ |
|
Back to top |
|
|
i92guboj Bodhisattva
Joined: 30 Nov 2004 Posts: 10315 Location: Córdoba (Spain)
|
Posted: Mon Apr 13, 2009 7:10 am Post subject: |
|
|
No conozco el caso concreto de las cpu's the intel. Pero coincido con los demás que lo más sencillo sería diseñar una batería de pruebas usando tres o cuatro programas distintos. lame, mencoder y povray probablemente sean los candidatos más cercanos. Eso te permitirá ver los resultados en el mundo real. |
|
Back to top |
|
|
the incredible hurd Guru
Joined: 01 Jan 2007 Posts: 381
|
Posted: Thu Jun 25, 2009 9:09 am Post subject: |
|
|
emerge -vp lame wrote: | These are the packages that would be merged, in order:
Calculating dependencies... done!
[ebuild R ] media-sound/lame-3.98.2-r1 USE="-debug mmx -mp3rtp sndfile" 1,297 kB
Total: 1 package (1 reinstall), Size of downloads: 1,297 kB |
Code: | $ time lame -h -V 0 cancion.wav cancion.mp3
LAME 3.98.2 32bits (http://www.mp3dev.org/)
CPU features: MMX (ASM used), 3DNow! (ASM used), SSE (ASM used)
Using polyphase lowpass filter, transition band: 19383 Hz - 19916 Hz
Encoding cancion.wav to cancion.mp3
Encoding as 44.1 kHz j-stereo MPEG-1 Layer III VBR(q=0)
Frame | CPU time/estim | REAL time/estim | play/CPU | ETA
991/991 (100%)| 0:02/ 0:02| 0:02/ 0:02| 11.207x| 0:00
32 [ 0]
40 [ 0]
48 [ 0]
56 [ 0]
64 [ 0]
80 [ 0]
96 [ 0]
112 [ 0]
128 [ 0]
160 [ 2] %
192 [150] %%%%%%%%%%%%%%%%%%%%%%
224 [789] %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
256 [ 49] %%%%%%%%
320 [ 1] %
----------------------------------------------------------------------------------------------------------------------------
kbps LR MS % long switch short %
220.7 99.9 0.1 99.6 0.2 0.2
Writing LAME Tag...done
ReplayGain: -11.9dB
real 0m2.593s
user 0m2.276s
sys 0m0.052s
|
# USE="-mmx" emerge lame
reinicio y...
Code: | $ time lame -h -V 0 cancion.wav cancion.mp3
LAME 3.98.2 32bits (http://www.mp3dev.org/)
CPU features: MMX (ASM used), 3DNow! (ASM used), SSE (ASM used)
Using polyphase lowpass filter, transition band: 19383 Hz - 19916 Hz
Encoding cancion.wav to cancion.mp3
Encoding as 44.1 kHz j-stereo MPEG-1 Layer III VBR(q=0)
Frame | CPU time/estim | REAL time/estim | play/CPU | ETA
991/991 (100%)| 0:02/ 0:02| 0:02/ 0:02| 11.354x| 0:00
32 [ 0]
40 [ 0]
48 [ 0]
56 [ 0]
64 [ 0]
80 [ 0]
96 [ 0]
112 [ 0]
128 [ 0]
160 [ 2] %
192 [150] %%%%%%%%%%%%%%%%%%%%%%
224 [789] %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
256 [ 49] %%%%%%%%
320 [ 1] %
----------------------------------------------------------------------------------------------------------------------------
kbps LR MS % long switch short %
220.7 99.9 0.1 99.6 0.2 0.2
Writing LAME Tag...done
ReplayGain: -11.9dB
real 0m2.960s
user 0m2.250s
sys 0m0.059s
|
NOTA> con USE -mmx sigue indicando CPU features: MMX (ASM used)
Por lo que lo compilo con el parametro -mno-mmx y USE -mmx, reinicio y
Code: | $ time lame -h -V 0 cancion.wav cancion.mp3
LAME 3.98.2 32bits (http://www.mp3dev.org/)
CPU features: MMX (ASM used), 3DNow! (ASM used), SSE
Using polyphase lowpass filter, transition band: 19383 Hz - 19916 Hz
Encoding cancion.wav to cancion.mp3
Encoding as 44.1 kHz j-stereo MPEG-1 Layer III VBR(q=0)
Frame | CPU time/estim | REAL time/estim | play/CPU | ETA
991/991 (100%)| 0:02/ 0:02| 0:02/ 0:02| 10.923x| 0:00
32 [ 0]
40 [ 0]
48 [ 0]
56 [ 0]
64 [ 0]
80 [ 0]
96 [ 0]
112 [ 0]
128 [ 0]
160 [ 2] %
192 [150] %%%%%%%%%%%%%%%%%%%%%%
224 [789] %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
256 [ 49] %%%%%%%%
320 [ 1] %
----------------------------------------------------------------------------------------------------------------------------
kbps LR MS % long switch short %
220.7 99.9 0.1 99.6 0.2 0.2
Writing LAME Tag...done
ReplayGain: -11.9dB
real 0m2.796s
user 0m2.323s
sys 0m0.065s
|
Ummmmm, USE -mmx y CFLAG -mmmx, reinicio y
Code: | $ time lame -h -V 0 cancion.wav cancion.mp3
LAME 3.98.2 32bits (http://www.mp3dev.org/)
CPU features: MMX (ASM used), 3DNow! (ASM used), SSE (ASM used)
Using polyphase lowpass filter, transition band: 19383 Hz - 19916 Hz
Encoding cancion.wav to cancion.mp3
Encoding as 44.1 kHz j-stereo MPEG-1 Layer III VBR(q=0)
Frame | CPU time/estim | REAL time/estim | play/CPU | ETA
991/991 (100%)| 0:02/ 0:02| 0:02/ 0:02| 11.158x| 0:00
32 [ 0]
40 [ 0]
48 [ 0]
56 [ 0]
64 [ 0]
80 [ 0]
96 [ 0]
112 [ 0]
128 [ 0]
160 [ 2] %
192 [150] %%%%%%%%%%%%%%%%%%%%%%
224 [789] %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
256 [ 49] %%%%%%%%
320 [ 1] %
----------------------------------------------------------------------------------------------------------------------------
kbps LR MS % long switch short %
220.7 99.9 0.1 99.6 0.2 0.2
Writing LAME Tag...done
ReplayGain: -11.9dB
real 0m2.733s
user 0m2.252s
sys 0m0.072s
|
USE -mmmx deberia comprobar las CFLAGS y filtrarlas, es un gran BUG, en mi opinion.
El 3dnowext de AMD es genial, dado que incorporaba un cambio rapido de 387 a SIMD y se nota, lo que hace que usar mmx y mmxext en procesadores de AMD sea muy recomendable, dudo que lo sea tanto en los de intel, a menos que lo hayan copiado y no hayan dicho nada.
Ah! A todo esto, mis CFLAGS son en esta i686>
CFLAGS="-march=athlon-xp -O2 -pipe -fomit-frame-pointer"
Si alguien me cuenta como hacer pruebas con mencoder y povray las hare, no dispongo de mucho tiempo para aprender a hacerlas.
Acentos omitidos inintencionadamente, con xorg-server y hal tengo el teclado en ingles estadounidense irremediablemente en esta i686....... que ascazo!!!! _________________ Nunca preguntes el camino a alguien que ya lo conoce. Podrías no perderte. (Nahman de Braslaw) |
|
Back to top |
|
|
|
|
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum
|
|