-
Data: 2021-06-15 07:46:17
Temat: Re: Jak liczyć cykle na bajt?
Od: Wojciech Muła <w...@g...com> szukaj wiadomości tego autora
[ pokaż wszystkie nagłówki ]On Saturday, June 5, 2021 at 12:19:23 PM UTC+2, slawek wrote:
> Przy "dużych" CPU (takich jak Intel I9, w odróżnieniu od jakichś
> popierdułek w rodzaju 8 bitowego ATmega8) jest jeszcze
> ciekawiej:
>
> 1. Jest zegar, np. 3.5 GHz.
> 2. Ale w trybie boost leci do 5GHz - jeżeli jeden rdzeń tylko pracuje.
> 3. przetworzenie rozkazu może zająć kilka faktów (wczytanie
> rozkazu, wczytanie danych, zapisanie danych)
To jest szczegół techniczny, o którym należy zapomnieć. W rzeczywistości
potoki są głębokie (co najmniej kilkanaście etapów). Dekodowanie rozkazów,
ich scheduling na fizyczne jednostki wykonawcze i ich faktyczne
wykonywanie są asynchroniczne. Procesor Skylake może obsługiwać ponad
200 rozkazów w jednej chwili.
Z punktu widzenia programisty istotne są tylko dwie liczby charakteryzujące
instrukcje:
- opóźnienie (latency) - po ilu cyklach zegara wynik instrukcji będzie dostępny,
- przepustowość (throughput) - co ile cykli zegara można odpalać dany rozkaz.
Np. mnożenie ma latency=3, ale throughput=1, co znaczy, że jak masz wykonać
10 mnożeń, to ich wynik może być dostępny w najgorszym przypadku po 10*3
cyklach, a w najlepszym po 3 + 9*1 cyklach.
Albo latency=1, throughput=0.33 dla dodawania całkowitoliczbowego oznacza, że
wynik będzie po cyklu, ale jak scheduler da radę i będą wolne jednostki wykonawcze,
to trzy dodawania zostaną przekazane do wykonania w 1 cyklu.
> 4. Ale jest pipeline i na jednym core jest na raz kilka rozkazów
> (na różnych etapach realizacji)
> 5. Są rozkazy SIMD i rejestry o długości tak z 2KB - teoretycznie
> operacje na nich też są "w jednym cyklu"
Nie istnieją takie duże rejestry SIMD. Największe obecnie to 64 bajty
w AVX512 i niektórych implementacjach SVE; większość to 16 lub 32 bajty.
Latency dla dużej części operacji wektorowych wynosi jeden cykl,
bez cudzysłowu. Dlatego procesory się grzeją. :)
w.
Najnowsze wątki z tej grupy
- 7. Raport Totaliztyczny: Sprawa Qt Group wer. 424
- TCL - problem z escape ostatniego \ w nawiasach {}
- Nauka i Praca Programisty C++ w III Rzeczy (pospolitej)
- testy-wyd-sort - Podsumowanie
- Tworzenie Programów Nieuprzywilejowanych Opartych Na Wtyczkach
- Do czego nadaje się QDockWidget z bibl. Qt?
- 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
Najnowsze wątki
- 2024-11-21 Re: Dla mr. J.F`a, Trybuna i Wiesiaczka którzy "troszczą" się o państwowe i u których 0 pragmatyzmu
- 2024-11-21 Re: Dla mr. J.F`a, Trybuna i Wiesiaczka którzy "troszczą" się o państwowe i u których 0 pragmatyzmu
- 2024-11-21 Re: Dla mr. J.F`a, Trybuna i Wiesiaczka którzy "troszczą" się o państwowe i u których 0 pragmatyzmu
- 2024-11-20 "betamaxy" i inne voip-y dzisiaj
- 2024-11-21 Strach się bać
- 2024-11-21 Koniec smrodów
- 2024-11-20 Krematorium
- 2024-11-20 Taki tam szkolny problem...
- 2024-11-20 LIR2032 a ML2032
- 2024-11-20 SmartWatch Multimetr bezprzewodowy
- 2024-11-21 Środa Wielkopolska => Konsultant SAP <=
- 2024-11-21 Łódź => Spedytor Międzynarodowy <=
- 2024-11-21 Wrocław => Inżynier bezpieczeństwa aplikacji <=
- 2024-11-21 Kraków => Lead Java EE Developer <=
- 2024-11-21 Karlino => Konsultant wewnętrzny SAP (FI/CO) <=