-
Path: news-archive.icm.edu.pl!news.icm.edu.pl!newsfeed.pionier.net.pl!2.eu.feeder.erj
e.net!feeder.erje.net!weretis.net!feeder8.news.weretis.net!eternal-september.or
g!news.eternal-september.org!.POSTED!not-for-mail
From: Bogdan <b...@p...invalid>
Newsgroups: pl.comp.programming
Subject: Re: Ile cykli zajmuje mnożenie liczb 64-bitowych?
Date: Sun, 14 May 2023 11:26:42 +0200
Organization: A noiseless patient Spider
Lines: 35
Message-ID: <u3q9gj$2jdsa$1@dont-email.me>
References: <9...@g...com>
<u3o5jn$248lr$1@dont-email.me>
<a...@g...com>
<f...@g...com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
Injection-Date: Sun, 14 May 2023 09:26:43 -0000 (UTC)
Injection-Info: dont-email.me; posting-host="31ce3a6f1479b310e51153983aa41509";
logging-data="2733962";
mail-complaints-to="a...@e...org";
posting-account="U2FsdGVkX181JwHbsEXheyrRUHs5+qVh"
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101
Thunderbird/102.11.0
Cancel-Lock: sha1:CnV1JSUL07JvbN2A42YOaITs2Mw=
Content-Language: pl
In-Reply-To: <f...@g...com>
Xref: news-archive.icm.edu.pl pl.comp.programming:215946
[ ukryj nagłówki ]On 13/05/2023 19:43, o...@g...com wrote:
> Swoją drogą mierzę sobie względną szybkość generatorów PRNG za pomocą:
>
> https://quick-bench.com
>
> Jedyne sensowne zestawienie, po zliczeniu przez mnie ręcznie liczby cykli na
operacje (wynik 22 do 13), które wykonują algorytmy, dostaję, gdy włączam optim=None.
Jeżeli zaś włączę OFast xoroshiro dostaje takiego przyspieszenia, że wyprzedza drugi
PRNG, według tego benchmarku.
>
> W samym xoroshiro liczę operację:
>
> const uint64_t s0 = s[0];
>
> jako jeden cykl, bo następuje wywołanie zmiennej z tablicy. Ale nie jestem pewien,
czy to tak należy szacować.
To zależy od poziomu optymalizacji.
Bez optymalizacji na samo to wziąłbym 1 cykl na kopię z pamięci do
rejestru i 1 na kopię z rejestru do innej pamięci. Ale wspomniany
dokument podaje np. 3 cykle na kopiowanie do pamięci, więc nawet to
nie jest takie oczywiste.
Z optymalizacją jest szansa, że "s0" siedzi w rejestrze, więc
wystarczy pewnie 1 cykl na załadowanie.
Oczywiście, jeśli s[0] jest ułożone na równym adresie.
Oczywiście, jeśli s[0] siedzi w cache, bo jeśli nie, to w najgorszym
przypadku mogą być może dziesiątki, jak nie setki cykli na pobranie z
głównej pamięci.
I pewnie jeszcze różne inne warunki, więc tabelki tabelkami, ale
najlepiej albo pomierzyć (RDTSC), albo użyć narzędzi mówiących, co ile
potrwa (kiedyś było np. jakieś VTune Analyzer).
--
Pozdrawiam/Regards - Bogdan (GNU/Linux & FreeDOS)
Kurs asemblera x86 (DOS, GNU/Linux): http://bogdro.evai.pl
Grupy dyskusyjne o asm: pl.comp.lang.asm alt.pl.asm alt.pl.asm.win32
www.Xiph.org www.TorProject.org Soft(EN): http://bogdro.evai.pl/soft
Następne wpisy z tego wątku
- 14.05.23 16:00 o...@g...com
- 14.05.23 16:39 o...@g...com
- 15.05.23 14:00 Bogdan
- 15.05.23 14:03 Bogdan
- 15.05.23 15:10 o...@g...com
- 15.05.23 18:02 o...@g...com
- 22.05.23 19:30 Wojciech Muła
- 02.06.23 11:01 o...@g...com
- 02.06.23 14:11 o...@g...com
Najnowsze wątki z tej grupy
- AEiC 2024 - Ada-Europe conference - Deadlines Approaching
- Jakie są dobre zasady programowania programów opartych na wtyczkach?
- sprawdzanie słów kluczowych dot. zła
- Re: W czym sie teraz pisze programy??
- Re: (PDF) Surgical Pathology of Non-neoplastic Gastrointestinal Diseases by Lizhi Zhang
- CfC 28th Ada-Europe Int. Conf. Reliable Software Technologies
- Młodzi programiści i tajna policja
- Ada 2022 Language Reference Manual to be Published by Springer
- Press Release - AEiC 2023, Ada-Europe Reliable Softw. Technol.
- Ada-Europe - AEiC 2023 early registration deadline approaching
- Ada-Europe Int.Conf. Reliable Software Technologies, AEiC 2023
- Ile cykli zajmuje mnożenie liczb 64-bitowych?
- Ideologia Polskiego Programisty wer.3
- Ada-Europe Conference - 6 March Extended Final Deadline
- Szybkie pytanko do fachowców od Bourne shella
Najnowsze wątki
- 2024-03-28 Amnesty International o izraelskim apartheidzie wobec Palestynczyków
- 2024-03-28 Warszawa => Senior Rust Software Engineer <=
- 2024-03-28 Przegląd po terminie
- 2024-03-28 Wrocław => Handlowiec w branży IT <=
- 2024-03-28 Warszawa => International freight forwarder <=
- 2024-03-28 Warszawa => Technical Tribe Leader (Java Background) <=
- 2024-03-28 Eltec nie zyje?
- 2024-03-28 Katowice => Application Engineer for Service and Deployments <=
- 2024-03-28 Wrocław => Mid PHP Developer (Laravel) <=
- 2024-03-28 Vectra 'Plan domowy bez limitu'
- 2024-03-28 Szczecin => Starszy inżynier oprogramowania (Rust) <=
- 2024-03-28 Zielona Góra => Spedytor międzynarodowy <=
- 2024-03-28 Wnuczek z Wehrmachtu idzie na rympal.
- 2024-03-28 Bażanowice => Inżynier Industrializacji - Elektronik <=
- 2024-03-28 Warszawa => Senior Account Manager <=