O SSE raz jeszcze

Michal Moskal malekith w pld-linux.org
Czw, 27 Mar 2003, 22:20:31 CET


On Thu, Mar 27, 2003 at 09:35:33PM +0100, Bartosz Taudul wrote:
> Zadanie: skompresować wave'a o rozmiarze 85372648 bajtów do ogg vorbisa.
> Użyte pakiety: libogg-1.0-3, libvorbis-1.0-5, vorbis-tools-1.0-3.
> Sposób wywołania enkodera: oggenc -q5 plik.wav
> 
> Wariant 1:
> Źródło pakietów: libogg, libvorbis - ra i686, vorbis-tools - nest athlon.
> Czas wykonania zadania:
> 	0:46,1
> 	0:46,0
> 	0:45,9

Złe porównanie. libogg/libvorbis też powinny być z nesta (gcc3, może
naprawdę robić różnice).

> Wariant 2:
> Pakiety zbudowane samodzielnie z cvs, optymalizacja:
> "-O2 -march=athlon-xp -fomit-frame-pointer -mfpmath=sse"
                                                      ^^^
> Czas wykonania zadania:
> 	0:38,2
> 	0:37,9
> 	0:37,9

To prawdpodobnie jest kluczowe. Pewnie można jeszcze więcej uzyskać z
sse2, ale to tylko pentium 4 (i x86_64). 

Co wszystko razem nie zmienia faktu, że sse jest dopiero od athlonów
xp/mp (i pentium 3), więc nie wiem jak z dystrybucyjnymi
pakietami. W normalnych aplikacjach sse math zmieni coś jeśli robią dużo
operacji na float (ale nie na double, do tego jest potrzebne sse2), np.:
właśnie {ogg,blade}enc i pewnie kilka innych rzeczy choć nic nie
przychodzi mi do głowy ;-)

-- 
: Michal Moskal ::::: malekith/at/pld-linux.org :  GCS {C,UL}++++$ a? !tv
: PLD Linux ::::::: Wroclaw University, CS Dept :  {E-,w}-- {b++,e}>+++ h



Więcej informacji o liście dyskusyjnej pld-devel-pl