Ako vypočítavate rýchlosť procesora na viacjadrových procesoroch?

Obsah:

Ako vypočítavate rýchlosť procesora na viacjadrových procesoroch?
Ako vypočítavate rýchlosť procesora na viacjadrových procesoroch?

Video: Ako vypočítavate rýchlosť procesora na viacjadrových procesoroch?

Video: Ako vypočítavate rýchlosť procesora na viacjadrových procesoroch?
Video: How to Create a Custom Refresh Image in Windows 8 - YouTube 2024, Apríl
Anonim
Nástup ekonomických spotrebiteľských viacjadrových procesorov vyvoláva otázku pre mnohých používateľov: ako efektívne vypočítať skutočnú rýchlosť viacjadrového systému? Je 4-core 3Ghz systém naozaj 12Ghz? Čítajte ďalej, keď prešetrujeme.
Nástup ekonomických spotrebiteľských viacjadrových procesorov vyvoláva otázku pre mnohých používateľov: ako efektívne vypočítať skutočnú rýchlosť viacjadrového systému? Je 4-core 3Ghz systém naozaj 12Ghz? Čítajte ďalej, keď prešetrujeme.

Dnešná relácia otázok a odpovedí sa k nám pridelí zdvorilosťou SuperUser - podskupiny Stack Exchange, zoskupenia webových stránok Otázky a odpovede.

Otázka

Čítačka SuperUser NReilingh bola zvedavá, ako rýchlosť procesora pre viacjadrový systém je skutočne vypočítaná:

Is it correct to say, for example, that a processor with four cores each running at 3GHz is in fact a processor running at 12GHz?

I once got into a “Mac vs. PC” argument (which by the way is NOT the focus of this topic… that was back in middle school) with an acquaintance who insisted that Macs were only being advertised as 1Ghz machines because they were dual-processor G4s each running at 500MHz.

At the time I knew this to be hogwash for reasons I think are apparent to most people, but I just saw a comment on this website to the effect of “6 cores x 0.2GHz = 1.2Ghz” and that got me thinking again about whether there’s a real answer to this.

So, this is a more-or-less philosophical/deep technical question about the semantics of clock speed calculation. I see two possibilities:

  1. Each core is in fact doing x calculations per second, thus the total number of calculations is x(cores).
  2. Clock speed is rather a count of the number of cycles the processor goes through in the space of a second, so as long as all cores are running at the same speed, the speed of each clock cycle stays the same no matter how many cores exist. In other words, Hz = (core1Hz+core2Hz+…)/cores.

Takže aký je vhodný spôsob, ako označiť celkovú rýchlosť hodín a čo je ešte dôležitejšie, je dokonca možné používať jednojadrovú rýchlostnú nomenklatúru na viacjadrovom systéme?

Odpoveď

Prispievatelia služby SuperUser Mokubai pomáhajú objasniť veci. On píše:

The main reason why a quad-core 3GHz processor is never as fast as a 12GHz single core is to do with how the task running on that processor works, i.e. single-threaded or multi-threaded. Amdahl’s Law is important when considering the types of tasks you are running.

If you have a task that is inherently linear and has to be done precisely step-by-step such as (a grossly simple program)

10: a = a + 1

20: goto 10

Potom úloha závisí vo veľkej miere na výsledku predchádzajúceho prechodu a nemôže spúšťať viac kópií bez toho, aby poškodila hodnotu

'a'

pretože každá kópia by získala hodnotu

'a'

v rôznych časoch a písanie späť inak. To obmedzuje úlohu na jedinú niť, a preto úloha môže byť vždy spustená na jedinom jadre v ľubovoľnom čase, ak by bežala na viacerých jadrách, potom by došlo k poškodeniu synchronizácie. To ho obmedzuje na polovicu výkonu cpu dvojjadrového systému alebo 1/4 v štvorjadrovom systéme.

Teraz vykonajte úlohu, ako napríklad:

10: a = a + 1

20: b = b + 1

30: c = c + 1

40: d = d + 1

50: goto 10

Všetky tieto riadky sú nezávislé a mohli by byť rozdelené do 4 samostatných programov, ako sú prvé a bežiace súčasne, každý schopný efektívne využiť plnú silu jedného z jadier bez akéhokoľvek synchronizačného problému, to je miesto, kde Amdahlov zákon prichádza do nej.

Takže ak máte jednu závitovú aplikáciu robiť výpočty hrubou silou, jediný 12GHz procesor by vyhral ruky nadol, ak môžete nejako rozdeliť úlohu na samostatné časti a viacvláknové potom 4 jadra by sa mohli priblížiť, ale nie docela dosť, rovnaký výkon ako v Amdahlovom zákone.

Hlavná vec, ktorú vám poskytuje multiprocesorový systém, je schopnosť reagovať. Na jedinom jadrovom stroji, ktorý tvrdo pracuje, sa môže systém zdajú byť pomalé, pretože väčšinu času môže používať jedna úloha a ostatné úlohy sa spúšťajú iba v krátkych výbojoch medzi väčšími úlohami, výsledkom čoho je systém, ktorý sa zdá byť pomalý alebo drsný, Na viacjadrovom systéme ťažké úlohy dostávajú jedno jadro a všetky ostatné úlohy hrajú na ostatných jadrách, robia svoju prácu rýchlo a efektívne.

Argument "6 jadier x 0.2GHz = 1.2Ghz" je odpad v každej situácii okrem prípadov, kde sú úlohy dokonale paralelné a nezávislé. Existuje veľa úloh, ktoré sú veľmi paralelné, ale stále vyžadujú určitú formu synchronizácie. Ručná brzda je video trankodér, ktorý je veľmi dobrý pri používaní všetkých dostupných procesorov, ale vyžaduje si základný proces, aby ostatné vlákna boli naplnené dátami a zhromažďovali dáta, s ktorými sú spracovávané.

Každé jadro v skutočnosti robí x výpočty za sekundu, takže celkový počet výpočtov je x (jadrá).

Každé jadro je schopné robiť x výpočty za sekundu, za predpokladu, že pracovné zaťaženie je vhodné paralelne, na lineárnom programe všetko, čo máte, je 1 jadro.

Rýchlosť hodín je skôr počet cyklov, ktoré procesor prechádza v priebehu sekundy, takže ak všetky jadrá beží na rovnakej rýchlosti, rýchlosť každého cyklu hodín zostáva rovnaká bez ohľadu na to, koľko jadier existuje, Inými slovami, Hz = (core1Hz + core2Hz + …) / jadrá.

Myslím, že je to omylom si myslieť, že 4 x 3GHz = 12GHz, udeľuje matematické práce, ale porovnávate jablká s pomarančmi a sumy jednoducho nie sú správne, GHz sa nedá jednoducho pridať do každej situácie. Zmenil by som ho na 4 x 3GHz = 4 x 3GHz.

Máte niečo doplniť vysvetlenie? Zvuk vypnúť v komentároch. Chcete si prečítať viac odpovedí od iných používateľov technológie Stack Exchange? Pozrite sa na celý diskusný príspevok tu.

Odporúča: