The future of i486 arch in Th
Tomasz Pala
gotar at polanet.pl
Wed Dec 31 20:21:55 CET 2014
On Wed, Dec 31, 2014 at 12:52:56 +0100, Jacek Konieczny wrote:
> Historia komputeryzacji i stan obecny opisałeś ładnie, a jesteś w stanie
> rzucić konkretami? Co na włączeniu SSE zyskamy?
Teoretycznie: dodatkowe rejestry XMM (żałosnej liczby rejestrów IA-32
nie trzeba chyba wyjaśniać).
Ufając np. Intelowi:
https://software.intel.com/en-us/blogs/2012/09/26/gcc-x86-performance-hints
It uses SSE floating point model by default. In other cases you should
specify "-mfpmath=sse" to improve floating pont performance.
<strong>Adding "-mfpmath=sse" is important in 32 bits mode!</strong>
- 4-5% wydajności dzięki SSE (nie SSE2).
SSE wykorzystuje x264:
https://mailman.videolan.org/pipermail/x264-devel/2009-August/006224.html
czytam komentarze typu (pod koniec):
https://www.google-melange.com/gsoc/project/details/google/gsoc2011/mpopoloski/5668600916475904
No i wreszcie ta stała 80-bitowa precyzja x87.
> Np. benchmarki kilku
> procesorożernych aplikacji, czy coś, pozwoliłyby świadomie podjąć
> sensowną decyzję.
Nic pod ręką nie mam, nie dziś;)
> IMHO nie ma sensu porzucać kompatybilności nawet z antykami, jeżeli
> dzięki temu zyskamy 1% wydajności w 5% zastosowań. To byłoby wypięcie
> się na niektórych (owszem, pojedynczych) użytkowników w pogoni za
> numerkami.
Pentium Pro? Nie wierzę, że ktoś takich maszyn używa _aktualizując_
oprogramowanie. Sam kiedyś żałowałem porzucenia i586 i athlon, ale od tamtego
czasu nawet raz nie uruchomiłem komputerów używających tego. Przypomnę:
SSE ma już 15 lat, na tak starych maszynach nie sądzę, by dało się
korzystać ze współczesnego firefoxa.
A podążając za taką argumentacją - dlaczego w takim razie i686 a nie
i586 czy wręcz jeszcze niższe? Było coś rewolucyjnego, co znacząco
podniosło wydajność i686 względem i586? Jak dobrze pamiętam tamte czasy,
to rewolucją był MMX i 3D Now! - z przeznaczeniem pod multimedia. Zatem
bez SIMD jesteśmy w epoce premultimedialnej.
> I czy nie jest tak, że w zastosowaniach, w których ma to największe
> znaczenie, detekcja i wykorzystanie specjalnych funkcji procesorów jest
> załatwiane ???on runtime???? Przynajmniej kiedyś tak ze wszelkimi codekami
> było.
Tak miał mplayer, jest to w różnych cruncherach, jest libjpeg-turbo, ale
poza tym - szczerze wątpię, pisanie wstawek w asemblerze to ciężki
kawałek chleba, żaden libpng czy zlib strzelam, że tego nie ma. Istotne
jest, że umie te instrukcje wygenerować gcc, bez SIMD nie ma ani tych
rejestrów, ani _żadnych_ instrukcji wektorowych, więc wyłączamy sporo
potencjalnych optymalizacji - konkrety mam tylko dla -ftree-vectorize:
http://www.haifa.il.ibm.com/Workshops/compiler2004/papers/autovectorizationGCC.pdf
Pixel Blending Application
- small dataset: 16x improvement
- tiled large dataset: 7x improvement
- large dataset with display: 3x improvement
SPEC gzip 9% improvement
To są potencjalne zyski, które wyrzucamy. Może i da to realnie 1%, ale
wierzę, że wypniemy się w ten sposób na =0% użytkowników.
Do przemyślenia na 2015:)
--
Tomasz Pala <gotar w pld-linux.org>
More information about the pld-devel-pl
mailing list