🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: pl.comp.lang.asm
Article #1809

SSE2: znaczenie wyrównania danych

#1809
From: Wojciech Muła
Date: Fri, 16 May 2008 20:41
24 lines
1948 bytes
Kontynuacja ostatniego tematu, tj. SSE2 wolniejsze niż MMX;
testowany algorytm http://wmula.republika.pl/snippets/asm/blur.c
(rozmycie obrazków grayscale).

Tym razem testy przeprowadziłem na komputerze C2D E8200 -- na
nim większość całkowitoliczbowych rozkazów SSE wykonuje się w
jednym cyklu.  Po zgrubnej zamianie nazw rejestrów i użyciu
MOVDQU (dla bezpieczeństwa) doznałem szoku: kod wolniejszy niż
MMX!  Prawie zemdlałem. :)

Spróbowałem użyć zamiast MOVDQU rozkazu LDDQU -- nie pomogło.
W sumie dane mieściły się w L2, więc raczej nie mogło.

Ostatecznie postanowiłem wyrównać adresy dwóch struktur, do
których odwołują się procedury (obraz oraz pomocnicza tablica),
wszystkie odczyty i zapisy do pamięci wykonują się poprzez
MOVDQA, zaś dane niewyrównane które są potrzebne zostały
wyciągnięte rozkazem PALIGNR.  I wiecie co?  Przyspieszenie
o 95% w stosunku do kodu MMX2 (przyspieszenie 6 razy w stosunku
do kodu x86).

Jak się wyśpię, to doszlifuję i wrzucę na stronę kod.

w.
Technical Details
Message-ID: <20080516224152.58baddcc.wojciech_mula@poczta.null.onet.pl.invalid>
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!newsfeed.gazeta.pl!wsisiz.edu.pl!newsfeed.neostrada.pl!atlantis.news.neostrada.pl!news.neostrada.pl!not-for-mail

Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!newsfeed.gazeta.pl!wsisiz.edu.pl!newsfeed.neostrada.pl!atlantis.news.neostrada.pl!news.neostrada.pl!not-for-mail
From: Wojciech Muła
 <wojciech_mula@poczta.null.onet.pl.invalid>
Newsgroups: pl.comp.lang.asm
Subject: SSE2: znaczenie wyrównania danych
Date: Fri, 16 May 2008 22:41:52 +0200
Organization: TP - http://www.tp.pl/
Lines: 24
Message-ID: <20080516224152.58baddcc.wojciech_mula@poczta.null.onet.pl.invalid>
NNTP-Posting-Host: aebq94.neoplus.adsl.tpnet.pl
Mime-Version: 1.0
X-Trace: nemesis.news.neostrada.pl 1210970930 18696 79.186.42.94 (16 May 2008 20:48:50 GMT)
X-Complaints-To: usenet@news.neostrada.pl
NNTP-Posting-Date: Fri, 16 May 2008 20:48:50 +0000 (UTC)
X-Newsreader: Sylpheed 2.4.8 (GTK+ 2.10.14; i686-pc-mingw32)
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit