🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: pl.comp.programming
Article #217880

Re: Ile cykli zajmuje mnożenie liczb 64-bitowych?

#217880
From: osobli...
Date: Sat, 13 May 2023 17:28
36 lines
3428 bytes
sobota, 13 maja 2023 o 16:10:00 UTC+2 Bogdan napisał(a):
> On 11/05/2023 16:28, osobli...@gmail.com wrote: 
> > Znalazłem dwa źródła: 
> > 
> > http://www.phys.ufl.edu/~coldwell/MultiplePrecision/fpvsintmult.htm 
> > 
> > https://stackoverflow.com/questions/21819682/is-integer-multiplication-really-done-at-the-same-speed-as-addition-on-a-modern 
> > 
> > W jednym piszą, że to jest 20 cykli. W drugim 2-4 cykle (dla liczb 32-bitowych, dla 64-bitowych będzie dwa razy więcej?). Chcę zgrubnie oszacować liczbę cykli przypadającą na dwa różne algorytmy. Na przykład: 
> > 
> > https://prng.di.unimi.it/xoroshiro128plusplus.c 
> > 
> > Ale w drugim algorytmie mam mnożenie dwóch uint64_t. I nie wiem ile cykli mniej więcej przyjąć.
> Być może to nieoczywiste, ale jaka architektura? Na amd64 mnożenie 
> liczb 64-bitowych (czyli o wielkości rejestru) będzie zapewne o wiele 
> szybsze, niż na systemach 32-bitowych, o 16-bitowych nie wspominając. 
> 
> We floating point może bym nie szedł, bo może być utrata precyzji, no 
> i trzeba konwertować. 
> 
> Tak czy siak, pierwszy link z wyszukiwarki zapytanej o "intel 
> instruction latencies", zakładając, że jednak chodzi o architekturę 
> x86/x64: www.agner.org/optimize/instruction_tables.pdf. 
> Wybieram losowo procesor Haskell: MUL: czas: 3-4 cykli, 
> przepustowość: 0,5-1 instrukcji na cykl. 
> 
> Najlepiej pobierz dokument i wybierz stosowny procesor. 
> 
> 
> -- 
> 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

Interesuje mnie głównie architektura 64-bitowa, ale też GPU. Co do tabeli - te 3-4 cykle to jest dla liczb 32-bitowych? Mam zakładać, że dla 64-bitowych będzie to samo, czy dwa razy więcej?
Technical Details
Message-ID: <ae1c2360-6eb1-47bc-b3e1-9b5b58b8e7f3n@googlegroups.com>
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!newsfeed.pionier.net.pl!2.eu.feeder.erje.net!1.us.feeder.erje.net!feeder.erje.net!usenet.blueworldhosting.com!diablo1.usenet.blueworldhosting.com!peer03.iad!feed-me.highwinds-media.com!news.highwinds-media.com!news-out.google.com!nntp.google.com!postnews.google.com!google-groups.googlegroups.com!not-for-mail
References: <986309a4-5abd-46de-9d99-25bf51ba6144n@googlegroups.com> <u3o5jn$248lr$1@dont-email.me>

Show Full Headers
Complete Article Headers
X-Received: by 2002:a05:622a:170e:b0:3f4:e3d3:f8ff with SMTP id h14-20020a05622a170e00b003f4e3d3f8ffmr3073884qtk.4.1683998935841;        Sat, 13 May 2023 10:28:55 -0700 (PDT)
X-Received: by 2002:a25:12d5:0:b0:ba1:af7b:b88d with SMTP id 204-20020a2512d5000000b00ba1af7bb88dmr17993212ybs.2.1683998935481; Sat, 13 May 2023 10:28:55 -0700 (PDT)
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!newsfeed.pionier.net.pl!2.eu.feeder.erje.net!1.us.feeder.erje.net!feeder.erje.net!usenet.blueworldhosting.com!diablo1.usenet.blueworldhosting.com!peer03.iad!feed-me.highwinds-media.com!news.highwinds-media.com!news-out.google.com!nntp.google.com!postnews.google.com!google-groups.googlegroups.com!not-for-mail
Newsgroups: pl.comp.programming
Date: Sat, 13 May 2023 10:28:55 -0700 (PDT)
In-Reply-To: <u3o5jn$248lr$1@dont-email.me>
Injection-Info: google-groups.googlegroups.com; posting-host=92.67.160.10; posting-account=5sNFBgoAAAAxlae8lv99mPyGsDs6ynwB
NNTP-Posting-Host: 92.67.160.10
References: <986309a4-5abd-46de-9d99-25bf51ba6144n@googlegroups.com> <u3o5jn$248lr$1@dont-email.me>
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <ae1c2360-6eb1-47bc-b3e1-9b5b58b8e7f3n@googlegroups.com>
Subject: Re: Ile cykli zajmuje mnożenie liczb 64-bitowych?
From: "osobli...@gmail.com" <osobliwy.nick@gmail.com>
Injection-Date: Sat, 13 May 2023 17:28:55 +0000
X-Received-Bytes: 3480
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit