15Aug

Kako izračunati brzinu procesora na višejezgrenim procesorima?

Pojava ekonomičnih multi-core procesorima potrošačke razine postavlja pitanje za mnoge korisnike: kako učinkovito izračunati stvarnu brzinu multi-core sustava? Je 4-jezgreni 3Ghz sustav stvarno 12Ghz? Pročitajte dalje dok istražujemo.

Današnje pitanje &Sesija odgovora nam dolazi zahvaljujući SuperUseru - podjele Stack Exchange, zajedničkom pogonu grupiranja Q & A web stranica.

Pitanje

SuperUser čitač NReilingh je bio znatiželjan kako se brzina procesora za multi-core sustav zapravo izračunava:

Je li točno reći, na primjer, da je procesor sa četiri jezgre svaki trčanje na 3GHz je zapravo procesor trčanjena 12GHz?

Jednom sam dobio argumente "Mac vs. PC"( koji usput NIJE fokus ove teme. .. koji se vratio u srednju školu) s poznanikom koji je inzistirao da se Macovi oglašavaju samo kao 1Ghz strojevi jer su bilidva procesora G4 svaki trčanje na 500MHz.

U to sam vrijeme znao da je to hogwash zbog razloga za koje mislim da su očigledni većini ljudi, ali upravo sam vidio komentar na ovu web stranicu za učinak "6 jezgri x 0.2GHz = 1.2Ghz" i to je dobio mene ponovno razmišljam opostoji li pravi odgovor na ovo.

Dakle, ovo je više-manje filozofsko / duboko tehničko pitanje o semantici izračuna brzine sata. Vidim dvije mogućnosti:

  1. Svaka jezgra u stvari radi x kalkulacije u sekundi, pa je ukupan broj izračuna x( jezgre).
  2. Brzina sata je prilično broj broja ciklusa koje procesor prolazi u razmaku od sekunde, tako da sve dok sve jezgre pokreću istom brzinom, brzina svakog ciklusa sata ostaje ista bez obzira koliko je jezgripostojati. Drugim riječima, Hz =( core1Hz + core2Hz +. ..) / jezgre.

Dakle, koji je prikladan način označavanja ukupne brzine sata i, što je još važnije, je li čak moguće koristiti jednorobnu brzinsku nomenklaturu na višejezgrenom sustavu?

Odgovori

SuperUser suradnici Mokubai pomaže razjasniti stvari. On piše:

Glavni razlog zašto četverojezgreni procesor 3GHz nikad nije brz kao 12 GHz jezgre ima veze s radom na taj proces koji radi na tom procesoru, tj. S jednim navojem ili više navojem. Amdahljev zakon je važan kada se razmatraju vrste zadataka kojima se bavite.

Ako imate zadatak koji je inherentno linearan i mora se izvršiti točno korak po korak, kao što je( vrlo jednostavan program)

10: a = a + 1 20: goto 10

Zatim zadatak ovisi o rezultatuprethodnog prolaza i ne može izvoditi više kopija same sebe bez oštećenja vrijednosti 'a', budući da će svaka kopija dobiti vrijednost 'a' u različito vrijeme i drugačije ga pisati. To ograničava zadatak jednoj niti i stoga zadatak može biti pokrenut samo na jednoj jezgri u bilo kojem trenutku, ako se pokrene na više jezgri, onda će se dogoditi korupcija sinkronizacije. To ograničava na 1/2 od snage CPU dual core sustava, ili 1/4 u quad core sustav.

Sada poduzmite zadatak kao što je

10: a = a + 1 20: b = b + 1 30: c = c + 1 40: d = d + 1 50: goto 10

Sve ove linije su neovisne i mogubiti podijeljen u 4 zasebna programa poput prvog i pokretanja istovremeno, svatko može učinkovito iskoristiti punu snagu jedne od jezgri bez ikakvog problema sinkronizacije, tamo gdje Amdahljev zakon ulazi u nju.

Dakle, ako imate jednu aplikaciju s navojem koji rade na brutalnoj sili, jedan 12 GHz procesor bi osvojio ruke, ako bi nekako mogao napraviti zadatak podijeljen u zasebne dijelove i više navojnih onda bi 4 jezgre mogle doći blizu, ali ne i do kraja, ista izvedba, prema Amdahlovom zakonu.

Glavna stvar koju vam daje više procesorskih sustava je reakcija. Na jednom jezgrenom stroju koji naporno radi, sustav može izgledati tromo jer se većinu vremena može koristiti jednim zadatkom, a ostale zadatke teku u kratkim rasprsima između veće zadaće, što rezultira sustavom koji se čini sporom ili juddery, Na višejezgrenom sustavu težak zadatak dobiva jednu jezgru, a sve druge zadatke igraju na drugim jezgrama, rade svoj posao brzo i učinkovito.

Argument "6 jezgri x 0.2GHz = 1.2Ghz" je smeće u svakoj situaciji osim gdje su zadaci savršeno paralelni i nezavisni. Postoji dobar broj zadataka koji su vrlo paralelni, ali još uvijek zahtijevaju neki oblik sinhronizacije. Ručna kočnica je video trancoder koji je vrlo dobar u korištenju svih raspoloživih procesora, ali zahtijeva proces jezgre kako bi ostale niti ispunjene podacima i prikupili podatke s kojima su obavljeni.
  1. Svaka jezgra u stvari radi x kalkulacije u sekundi, pa je ukupan broj izračuna x( jezgre).

Svaka jezgra je sposobna izvršiti x kalkulacije u sekundi, uz pretpostavku da je opterećenje prikladno paralelno, na linearnom programu sve što imate je 1 jezgre.

  1. Brzina sata je prilično broj broja ciklusa koje procesor prolazi u razmaku od sekunde, tako da sve dok se sve jezgre izvode pri istoj brzini, brzina svakog ciklusa sata ostaje ista bez obzira koliko je jezgripostojati. Drugim riječima, Hz =( core1Hz + core2Hz +. ..) / jezgre.

Mislim da je pogrešno misliti da 4 x 3GHz = 12 GHz, dodjeljuje se matematika, ali uspoređujete jabuke s narančama i sume jednostavno nisu u pravu, GHz se jednostavno ne može dodati zajedno za svaku situaciju. Ja bih ga promijenio na 4 x 3GHz = 4 x 3GHz.

Imate li što dodati objašnjenju? Zvuči u komentarima.Želite li pročitati više odgovora od drugih tehnoloških korisnika Stack Exchangea? Pogledajte ovdje cijelu raspravu.