15Aug

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

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á otázka &Odpoveď na zasadnutie nám prináša zdvorilosť SuperUser - subdivizácia Stack Exchange, skupinové zdieľanie webových stránok Q & A.

Otázka

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

Je správne napríklad povedať, že procesor so štyrmi jadrami, každý spustený na 3GHz je v skutočnosti procesor bežína 12GHz?

Kedysi som sa dostal do argumentu "Mac vs. PC"( ktorý mimochodom NIE JE zameraný na túto tému. .. ktorý bol späť na strednej škole) s známym, ktorý trval na tom, že Macs boli len inzerované ako 1Ghz stroje, pretože bolidvojprocesorové G4, ktoré každý bežia na frekvencii 500MHz.

V tej dobe som vedel, že je to hogwash z dôvodov, ktoré si myslím, že sú zrejmé pre väčšinu ľudí, ale ja som videl komentár na túto webovú stránku v zmysle "6 jadier x 0.2GHz = 1.2Ghz", a to ma opäť myslieť oči na to existuje skutočná odpoveď.

Takže toto je viac či menej filozofická / hlboká technická otázka o sémantike výpočtu rýchlosti hodín. Vidím dve možnosti:

  1. Každé jadro v skutočnosti robí x výpočty za sekundu, takže celkový počet výpočtov je x( core).
  2. Rýchlosť hodín je skôr počet cyklov, ktoré procesor prechádza v priebehu sekundy, takže ak všetky jadrá beží rovnakou rýchlosťou, rýchlosť každého cyklu hodín zostáva rovnaká bez ohľadu na to, koľko jadierexistovať.Inými slovami, Hz =( core1Hz + core2Hz +. ..) / jadrá.

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?

Odpovedať na odpovede

SuperUser Mokubai pomáha vyriešiť veci. Píše:

Hlavným dôvodom, prečo štvorjadrový procesor 3GHz nikdy nie je taký rýchly ako jednofarebný 12GHz, súvisí s tým, ako funguje úloha, ktorá beží na tomto procesore, t. J. Jednoproudová alebo viacvláknová.Amdahlov zákon je dôležitý pri posudzovaní typov úloh, ktoré používate.

Ak máte úlohu, ktorá je prirodzene lineárna a musí sa robiť presne krok za krokom, ako je( hrubo jednoduchý program)

10: a = a + 1 20: goto 10

Potom úloha závisí vysoko na výsledkuz predchádzajúceho preukazu a nemôže spúšťať viac kópií bez toho, aby poškodil hodnotu 'a', pretože každá kópia by získala hodnotu 'a' v rôznych časoch a písala ju späť inak. To obmedzuje úlohu na jedinú niť, a preto úloha môže byť vždy spustená na jednom jadre v ľubovoľnom čase, ak by bola spustená na viacerých jadrách, potom by došlo k korigovaniu synchronizácie. To ho obmedzuje na polovicu výkonu cpu dvojjadrového systému alebo 1/4 v štvorjadrovom systéme.

Nasledujte úlohu ako:

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ébyť rozdelený do 4 samostatných programov, ako je prvý a bežať súčasne, každý schopný efektívne využiť plnú silu jedného z jadier bez akéhokoľvek problému synchronizácie, to je miesto, kde Amdahlov zákon nastúpi.

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 dosť, rovnaký výkon ako v Amdahlovom zákone.

Hlavná vec, ktorú vám poskytne 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ý v používaní všetkých dostupných procesorov, ale vyžaduje si základný proces, aby ostatné vlákna boli naplnené dátami a zbierali dáta, s ktorými sú spracovávané.

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

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.

  1. Rýchlosť hodín je skôr počet cyklov, ktoré procesor prechádza v priebehu sekundy, takže ak všetky jadrá beží rovnakou rýchlosťou, rýchlosť každého cyklu hodín zostáva rovnaká bez ohľadu na to, koľko jadierexistovať.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 nemožno jednoducho pridať do každej situácie. Zmenil by som ho na 4 x 3GHz = 4 x 3GHz.

Musíte niečo pridať k vysvetleniu? 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.