🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

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

Re: Odwracanie kolejności bajtów w tablicy

#2221
From: Andrzej Grażyński
Date: Fri, 23 Apr 2010 10:48
45 lines
3780 bytes
Wojciech Muła pisze:
> 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.
> 

Jak pamiętasz, zadałem na początku pytanie: czy przy odwracaniu 
kolejności bajtów BSWAP może się do czegoś przydać?

Jaki wniosek?
Technical Details
Message-ID: <hqrtv1$ouk$1@news.onet.pl>
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.rmf.pl!agh.edu.pl!news.agh.edu.pl!news.onet.pl!not-for-mail
References: <20100422191115.9902fe58.wojciech_mula@poczta.null.onet.pl.invalid>

Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.rmf.pl!agh.edu.pl!news.agh.edu.pl!news.onet.pl!not-for-mail
From: Andrzej Grażyński <grazynsk@petex.com.pl>
Newsgroups: pl.comp.lang.asm
Subject: Re: Odwracanie kolejności bajtów w tablicy
Date: Fri, 23 Apr 2010 12:48:58 +0200
Organization: http://onet.pl
Lines: 46
Message-ID: <hqrtv1$ouk$1@news.onet.pl>
References: <20100422191115.9902fe58.wojciech_mula@poczta.null.onet.pl.invalid>
NNTP-Posting-Host: public-gprs80242.centertel.pl
Mime-Version: 1.0
X-Trace: news.onet.pl 1272019750 25556 91.94.186.232 (23 Apr 2010 10:49:10 GMT)
X-Complaints-To: niusy@onet.pl
NNTP-Posting-Date: Fri, 23 Apr 2010 10:49:10 +0000 (UTC)
User-Agent: Thunderbird 2.0.0.24 (Windows/20100228)
In-Reply-To: <20100422191115.9902fe58.wojciech_mula@poczta.null.onet.pl.invalid>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit