-
Data: 2023-05-15 14:03:13
Temat: Re: Ile cykli zajmuje mnożenie liczb 64-bitowych?
Od: Bogdan <b...@p...invalid> szukaj wiadomości tego autora
[ pokaż wszystkie nagłówki ]On 14/05/2023 16:39, o...@g...com wrote:
> niedziela, 14 maja 2023 o 11:28:17 UTC+2 Bogdan napisał(a):
>> 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.
>
> To jest to samo co niejakie load/store time? Jeżeli w algorytmie mam:
>
> k = k + x;
>
> To dobrze rozumiem, że mam liczyć to jako 4 cykle? Bo jeden cykl na pobranie k,
drugi cykl na pobranie x, trzeci cykl na dodawanie i czwarty cykl na przypisanie
wyniku do k?
Zależy od konkretnego modelu procesora i od poziomu optymalizacji. I
od rozmiaru zmiennych, i od cache, i od ułożenia w pamięci.
Jeśli 'k' jest 64-bitowe, to:
1) MOV 'k' z pamięci do rejestru = 2, MOV 'x' z pamięci do rejestru =
2, ADD = 1, potem ewentualne czekanie na wynik, potem MOV nowej
wartości do pamięci = 3.
2) MOV 'x' z pamięci do rejestru = 2, ADD 'x' do 'k' w pamięci z
rejestru = 6.
Najlepiej mierzyć fizycznie, co jest najszybsze.
Jak mierzenie jest trudne, to można chociaż zobaczyć, jakie
instrukcje kompilator generuje (z różnymi poziomami optymalizacji i
wyboru architektury docelowej) i dopiero mając je, wziąć tabele czasów
instrukcji i liczyć.
--
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
- 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
- Bibl. Qt jest sztucznie ograniczona - jest nieprzydatna do celów komercyjnych
- Co sciaga kretynow
- 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
Najnowsze wątki
- 2024-04-28 wymiana przewodu od licznika do mieszkania
- 2024-04-28 Lustra w maszynie ASML
- 2024-04-28 Elektryk przytarł podłogę
- 2024-04-27 Nowy, "szybki "komputer AsRock nie posiada modułu TPM
- 2024-04-27 Nowy, "szybki "komputer AsRock nie posiada modułu TPM
- 2024-04-27 Warszawa => Inżynier DevOps (projekt JP) <=
- 2024-04-27 Warszawa => Senior Account Manager (on-site) <=
- 2024-04-27 Wrocław => Dyrektor Sprzedaży (branża usług/produktów IT) <=
- 2024-04-27 Warszawa => Sales Representative for Outsourcing Services <=
- 2024-04-27 Chrzanów => Administrator i wdrożeniowiec Lotus Notes/Domino <=
- 2024-04-27 Ja pierdolę...
- 2024-04-27 Ryby i kawitacja
- 2024-04-27 Zabrze => Junior HelpDesk <=
- 2024-04-27 Katowice => Administrator IT - Wirtualizacja i Konteneryzacja <=
- 2024-04-27 Bażanowice => Inżynier Industrializacji - Elektronik <=