🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

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

Odwracanie kolejności bajtów w tablicy

#2220
From: Wojciech Muła
Date: Thu, 22 Apr 2010 17:11
41 lines
3475 bytes
Hej, kontynuacja wątku założonego przez Andrzeja.
U mnie niestety starsze posty wyparowały, więc nie mam
gdzie się podczepić.

Przetestowałem właśnie kilka metod:
* "bajty"  - naiwny algorytm zamiany bajt po bajcie
* BSWAP    - zmiana 4 bajtów na iterację (1 x BSWAP)
* 2xBSWAP  - zmiana 8 bajtów na iterację (2 x BSWAP)
* PSHUFB   - zmiana 16 bajtów na iterację (1 x PSHUFB)
* 2xPSHUFB - zmiana 32 bajtów na iterację (2 x PSHUFB)

Rozmiary tablic są wielokrotnością 32 bajtów, więc wszystkie
dostępy do pamięci były wyrównane. Procesor Core 2 Duo E8400.
W tabelce są czasy wykonywania kilku-kilkuset tysięcy iteracji.
Mój wniosek nie jest odkrywczy: najbardziej ograniczają nas
czasy dostępu do pamięci.

+-------------+-----------+----------------+----------------+----------------+----------------+
|  rozmiar    |   bajty   |      BSWAP     |    2xBSWAP     |     PSHUFB     |    2xPSHUFB    |
+-------------+-----------+--------+-------+--------+-------+--------+-------+--------+-------+
|   64 B      |  759 ms   | 292 ms | 2.6 x | 267 ms | 2.8 x | 240 ms | 3.1 x | 138 ms | 5.5 x |
+-------------+-----------+--------+-------+--------+-------+--------+-------+--------+-------+
|  128 B      |  740 ms   | 264 ms | 2.8 x | 218 ms | 3.4 x | 108 ms | 6.8 x | 107 ms | 6.9 x |
+-------------+-----------+--------+-------+--------+-------+--------+-------+--------+-------+
|  256 B      |  808 ms   | 303 ms | 2.6 x | 243 ms | 3.3 x |  81 ms | 9.9 x |  72 ms |11.2 x |
+-------------+-----------+--------+-------+--------+-------+--------+-------+--------+-------+
|  512 B      | 1026 ms   | 394 ms | 2.6 x | 305 ms | 3.3 x |  91 ms |11.2 x |  84 ms |12.2 x |
+-------------+-----------+--------+-------+--------+-------+--------+-------+--------+-------+
|    1 kB     | 1000 ms   | 404 ms | 2.4 x | 298 ms | 3.3 x |  81 ms |12.3 x |  69 ms |14.5 x |
+-------------+-----------+--------+-------+--------+-------+--------+-------+--------+-------+
|    4 kB     |  786 ms   | 312 ms | 2.5 x | 235 ms | 3.3 x |  64 ms |12.0 x |  50 ms |15.7 x |
+-------------+-----------+--------+-------+--------+-------+--------+-------+--------+-------+
|    8 kB     |  793 ms   | 310 ms | 2.5 x | 235 ms | 3.4 x |  61 ms |13.0 x |  51 ms |15.5 x |
+-------------+-----------+--------+-------+--------+-------+--------+-------+--------+-------+
|   16 kB     | 1582 ms   | 617 ms | 2.6 x | 467 ms | 3.4 x | 120 ms |13.2 x | 100 ms |15.8 x |
+-------------+-----------+--------+-------+--------+-------+--------+-------+--------+-------+

w.

-- 
Mamy oswojoną sarnę i w związku z tym projektuję, by dorobić do niej kłódkę.
Technical Details
Message-ID: <20100422191115.9902fe58.wojciech_mula@poczta.null.onet.pl.invalid>
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!news.onet.pl!not-for-mail

Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!news.onet.pl!not-for-mail
From: Wojciech Muła
 <wojciech_mula@poczta.null.onet.pl.invalid>
Newsgroups: pl.comp.lang.asm
Subject: Odwracanie kolejności bajtów w tablicy
Date: Thu, 22 Apr 2010 19:11:15 +0200
Organization: http://onet.pl
Lines: 61
Message-ID: <20100422191115.9902fe58.wojciech_mula@poczta.null.onet.pl.invalid>
NNTP-Posting-Host: 178.56.0.35
Mime-Version: 1.0
X-Trace: news.onet.pl 1271956287 22011 178.56.0.35 (22 Apr 2010 17:11:27 GMT)
X-Complaints-To: niusy@onet.pl
NNTP-Posting-Date: Thu, 22 Apr 2010 17:11:27 +0000 (UTC)
X-Newsreader: Sylpheed 2.5.0 (GTK+ 2.10.14; i686-pc-mingw32)
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit