If-Koubou

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

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

Pojavom ekonomičnih multi-core procesorima potrošačke razine postavlja se 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šnja pitanja i odgovori nam se javljaju zahvaljujući SuperUseru - podjele Stack Exchange-a, zajedničkom pogonu Q & A web stranica.

Pitanje

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

Je li ispravno reći, na primjer, da je procesor s četiri jezgre koji trče na 3GHz zapravo procesor koji radi na 12 GHz?

Jednom sam ušao u argument "Mac vs. PC" (koji usput NIJE fokus ove teme ... koji se vratio u srednju školu) s poznanikom koji je inzistirao na tome da se Macovi oglašavaju samo kao 1Ghz strojevi jer su bili dvostruki -procesorski G4 svaki koji radi na 500MHz.

U to sam vrijeme znao da je to hogwash iz razloga za koje mislim da su vidljive većini ljudi, ali sam upravo vidio komentar na ovu web stranicu na učinak "6 jezgri x 0.2GHz = 1.2Ghz" i to me je dobio ponovno razmišljam o tome postoji 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 sekundi, tako da sve dok se sve jezgre prikazuju istom brzinom, brzina svakog ciklusa sata ostaje ista bez obzira koliko se jezgri nalaze , 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?

Odgovor

SuperUser suradnici Mokubai pomaže razjasniti stvari. Piše:

Glavni razlog zbog kojeg četverostruki procesor 3GHz nikada nije brz kao 12 GHz jezgre ima veze s radom na taj procesor, tj. S jednim navojem ili s 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 napraviti upravo korak-po-korak, kao što je (grubo jednostavan program)

10: a = a + 1
20: goto 10 

Zatim zadatak ovisi jako o rezultatu prethodnog prolaza i ne može pokrenuti više kopija same sebe bez oštećenja vrijednosti'A' budući da bi svaka kopija dobila vrijednost'A' u različitim vremenima i pisanje natrag drugačije. Time se zadatak ograničava na jednu nit i time zadatak može biti prikazan samo na jednoj jezgri u bilo kojem trenutku, ako se pokrene na više jezgri, tada ć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 + l
50: goto 10 

Sve te linije su neovisne i mogu se podijeliti 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 dolazi u nju.

Dakle, ako imate jednu aplikaciju s navojem koji rade na brutalnoj sili, jedan 12 GHz procesor bi osvojio ruke, ako nekako uspije podijeliti zadatak u zasebne dijelove i više navojnih, onda bi 4 jezgre mogle biti blizu, ali ne sasvim dosegne, ista izvedba, kao po 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,2 GHz" 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 za x kalkulacije u sekundi, uz pretpostavku da je opterećenje prikladno paralelno, na linearnom programu sve što imate je 1 jezgra.

  1. Brzina sata je prilično broj broja ciklusa koje procesor prolazi u sekundi, tako da sve dok se sve jezgre prikazuju istom brzinom, brzina svakog ciklusa sata ostaje ista bez obzira koliko se jezgri nalaze , Drugim riječima, Hz = (core1Hz + core2Hz + ...) / jezgre.

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

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