Kaip apskaičiuoti procesoriaus greitį daugiafunkciuose procesoriuose?

Turinys:

Kaip apskaičiuoti procesoriaus greitį daugiafunkciuose procesoriuose?
Kaip apskaičiuoti procesoriaus greitį daugiafunkciuose procesoriuose?

Video: Kaip apskaičiuoti procesoriaus greitį daugiafunkciuose procesoriuose?

Video: Kaip apskaičiuoti procesoriaus greitį daugiafunkciuose procesoriuose?
Video: Is the Canon 75-300mm f/4-5.6 III USM the Worst Canon Lens? - YouTube 2024, Kovas
Anonim
Ekonominio vartojimo klasės daugiamečių procesorių atsiradimas kelia klausimą daugeliui vartotojų: kaip efektyviai apskaičiuoti tikrąjį daugiakryptės sistemos greitį? Ar 4-core 3Ghz sistema tikrai 12Ghz? Perskaitykite, kaip mes tiriame.
Ekonominio vartojimo klasės daugiamečių procesorių atsiradimas kelia klausimą daugeliui vartotojų: kaip efektyviai apskaičiuoti tikrąjį daugiakryptės sistemos greitį? Ar 4-core 3Ghz sistema tikrai 12Ghz? Perskaitykite, kaip mes tiriame.

Šiandieninė klausimų ir atsakymų sesija ateina pas mus "SuperUser" - "Stack Exchange", "Q &A" interneto svetainių grupių bendruomenės, padalinys.

Klausimas

SuperUser skaitytojas NReilingh buvo įdomu, kaip procesoriaus greitis daugiakultūrėje sistemoje iš tikrųjų apskaičiuojamas:

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.

Taigi, koks yra tinkamas būdas apibūdinti bendrą laikrodžio greitį ir, dar svarbiau, netgi galima naudoti vieno branduolio greičio nomenklatūrą daugiabriaunėje sistemoje?

Atsakymas

"SuperUser" mokytojai Mokubai padeda išsiaiškinti viską. Jis rašo:

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

Tuomet užduotis labai priklauso nuo ankstesnio leidimo rezultato ir negali paleisti kelių kopijų, nepažeidžiant jo vertės

'a'

nes kiekvienas egzempliorius gautų vertę

'a'

skirtingais laikais ir skirtingai rašydamas. Tai riboja užduotį į vieną giją, taigi bet kuriuo metu užduotis gali būti vykdoma tik viename branduolyje, jei ji būtų veikiama keliuose branduoliuose, tada įvyko sinchronizavimo korupcija. Tai riboja tai iki 1/2 procesoriaus galios dvigubos sistemos, arba 1/4 keturių pagrindinių sistemoje.

Dabar atlikite tokią užduotį kaip:

10: a = a + 1

20: b = b + 1

30: c = c + 1

40: d = d + 1

50: goto 10

Visos šios eilutės yra nepriklausomos ir gali būti suskirstytos į 4 atskiras programas, tokias kaip pirmasis ir paleisti tuo pačiu metu, kiekvienas iš jų gali veiksmingai panaudoti visą galingumą vienoje iš branduolių be sinchronizavimo problemos, kur yra Amdahlio įstatymas ateina į jį.

Taigi, jei turite vieną srieginę taikomąją programą, atliekančią krūvių jėgos skaičiavimus, vienas 12 GHz procesorius laimėtų rankas žemyn, jei jūs kažkaip galite atlikti užduočių padalijimą į atskiras dalis ir daugiasienes, tada 4 šerdys gali būti arti, bet ne gana pasiekti, tas pats rezultatas, kaip nurodyta Amdahlio įstatyme.

Svarbiausia, kad kelių procesorių sistema suteikia jums reagavimą. Vienoje pagrindinėje mašinoje, kuri sunkiai dirba, sistema gali atrodyti lėta, nes daugeliu atvejų ji gali būti naudojama vienoje užduotyje, o kitos užduotys atliekamos tik trumpesnėmis pertraukomis tarp didesnių užduočių, todėl gaunama sistema, kuri atrodo vangiai arba varginanti. Daugelio branduolių sistemoje sunki užduotis tampa viena branduolio, o visos kitos užduoties atlieka kiti branduoliai, greitai ir efektyviai atliekantys savo darbą.

Argumentas "6 šerdys x 0.2GHz = 1.2Ghz" yra šiukšlių visose situacijose, išskyrus atvejus, kai užduotys yra visiškai lygiagrečios ir nepriklausomos. Yra nemažai užduočių, kurios yra labai lygiagrečios, tačiau joms vis tiek reikia tam tikros sinchronizacijos formos. Rankinis stabdis yra vaizdo trankoderis, kuris labai gerai naudoja visus galimus CPU, bet jam reikalingas pagrindinis procesas, kad kiti užpildytieji užrašai būtų užpildyti duomenimis ir surinkti duomenis, kuriais jie buvo atlikti.

Kiekvienas branduolys faktiškai atlieka x skaičiavimus per sekundę, todėl bendras skaičiavimų skaičius yra x (branduoliai).

Kiekviena šerdis sugeba atlikti x skaičiavimus per sekundę, darant prielaidą, kad darbinis krūvis yra tinkamas lygiagretus, tiesine programa, kurią turite, yra 1 šerdis.

Laikrodžio greitis - tai ciklo ciklo, kurį procesorius praeina per sekundę, skaičius, taigi tol, kol visi branduoliai veikia tuo pačiu greičiu, kiekvieno laikrodžio ciklo greitis išlieka tas pats, nes kiek branduolių yra. Kitaip tariant, Hz = (core1Hz + core2Hz + …) / šerdys.

Manau, kad klaidinga manyti, kad 4 x 3GHz = 12 GHz, suteikė matematikos darbus, bet jūs lyginate obuolius į apelsinus, o sumos yra netinkamos, GHz dažniausiai negalima pridėti prie kiekvienos situacijos. Aš norėčiau jį pakeisti 4 x 3GHz = 4 x 3GHz.

Ar turite ką nors įtraukti į paaiškinimą? Garsas išjungtas komentaruose. Norite skaityti daugiau atsakymų iš kitų "Tech-savvy Stack Exchange" vartotojų? Patikrinkite visą diskusijų temą čia.

Rekomenduojamas: