Kuidas arvutada protsessorkiirust mitmetuumaliste protsessorite puhul?

Sisukord:

Kuidas arvutada protsessorkiirust mitmetuumaliste protsessorite puhul?
Kuidas arvutada protsessorkiirust mitmetuumaliste protsessorite puhul?

Video: Kuidas arvutada protsessorkiirust mitmetuumaliste protsessorite puhul?

Video: Kuidas arvutada protsessorkiirust mitmetuumaliste protsessorite puhul?
Video: Windows 10 S ✔ in den Windows 10 Home Modus wechseln [ ohne neuen Produkt Key ] einfach u. schnell* - YouTube 2024, Aprill
Anonim
Eduka tarbijariski mitmetuumaliste protsessorite ilmumine tekitab paljudele kasutajatele küsimuse: kuidas te arvutate efektiivselt mitme tuumaga süsteemi tegelikku kiirust? Kas 4-core 3Ghz süsteem on tõesti 12Ghz? Loe edasi, kui uurime.
Eduka tarbijariski mitmetuumaliste protsessorite ilmumine tekitab paljudele kasutajatele küsimuse: kuidas te arvutate efektiivselt mitme tuumaga süsteemi tegelikku kiirust? Kas 4-core 3Ghz süsteem on tõesti 12Ghz? Loe edasi, kui uurime.

Tänane küsimuste ja vastuste seanss tuleb meile viisakalt SuperUseriga, mis on Q & A veebisaitide kogukonna juhtimisgruppide Stack Exchange osakond.

Küsimus

SuperUseri lugeja NReilingh oli uudishimulik, kuidas protsessori kiirus mitme tuumaga süsteemile tegelikult arvutatakse:

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.

Niisiis, milline on sobilik viis, kuidas tähistada kogu kella kiirust ja mis veelgi olulisem on see, et isegi mitme tuumaga süsteemis on võimalik kasutada ühe tuumade kiirusnomenklatuuri?

Vastus

SuperUseri toetajad Mokubai aitab selgeid asju üles. Ta kirjutab:

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

Seejärel sõltub ülesanne suurel määral eelmise passi tulemusest ja ei saa käivitada mitu eksemplari, ilma et see rikuks väärtust

'a'

kuna iga koopia saab väärtust

'a'

erinevatel aegadel ja kirjutades seda tagasi erinevalt. See piirab ülesande ühekorraga ja seega võib ülesanne töötada ainult üksiku tuumaga igal ajal, kui see peaks töötama mitmesugustel südamikel, siis võib juhtuda sünkroonimise korruptsioon. See piirab seda kahekordse põhisüsteemi protsessorivõimsusega 1/2 või quad core süsteemis 1/4.

Nüüd võtke ülesanne, näiteks:

10: a = a + 1

20: b = b + 1

30: c = c + 1

40: d = d + 1

50: goto 10

Kõik need jooned on sõltumatud ja neid saab jagada nelja erinevasse programmisse nagu esimene ja käivitada samal ajal, millest igaüks suudab tõhusalt ära kasutada ühe südamiku täielikku võimsust ilma sünkroniseerimisprobleemita, kusjuures Amdahli seadus tuleb sinna sisse.

Nii et kui teil on ühekordne keermestatud rakendus, tehes jõuvõtete arvutamist, saab 12GHz protsessor võita käed alla, kui saate mõnevõrra ülesande jagada eraldi osadeks ja mitme keermega, siis võivad 4 südamikud olla lähedal, kuid mitte üsna ligipääsetavad, sama tulemus, vastavalt Amdahli seadusele.

Peaasi, et multiprotsessorite süsteem annab teile reageerimise. Süsteemil töötava ühekordse põhiseadme puhul võib süsteem tunduda loidana, sest enamus ajast võib seda kasutada ühe ülesande täitmiseks ja teised ülesanded toimivad vaid suurema ülesande vahel lühikeste pursketena, mille tulemuseks on süsteem, mis tundub olevat aeglane või ebakindel. Mitmekeselises süsteemis saab raske ülesanne ühe tuumiku ja kõik muud ülesanded mängivad teistel südamikel, tehes oma tööd kiiresti ja tõhusalt.

Argument "6 südamikku x 0.2GHz = 1.2Ghz" on prügi igas olukorras, välja arvatud juhul, kui ülesanded on täiesti paralleelsed ja sõltumatud. Seal on palju ülesandeid, mis on väga paralleelsed, kuid nendega on siiski vaja mingit sünkroniseerimist. Käeshooburatt on videotekooder, mis kasutab kõiki saadaolevaid CPU-sid väga hästi, kuid see nõuab põhiprotsessi, et teised näpunäited täidaksid andmeid ja kogutaksid nendega seotud andmeid.

Iga tuum teeb tegelikult x arvutusi sekundis, seega on arvutuste koguarv x (südamikud).

Iga tuum on võimeline tegema x arvutusi sekundis, eeldades, et töökoormus on paralleelne, lineaarprogrammil on kõik, mis sul on, on 1 tuum.

Kellukiirus on pigem arvu tsüklite arv, mille protsessor läbib sekundi ruumis, nii kaua, kui kõik südamikud töötavad sama kiirusega, jääb iga tsükliaja kiirus samaks olenemata sellest, kui palju tuumorme on olemas. Teisisõnu, Hz = (core1Hz + core2Hz + …) / südamikud.

Ma arvan, et on ekslik arvata, et 4 x 3GHz = 12 GHz, matemaatika töötab, kuid te võrdlete õunu apelsinidega ja summad lihtsalt ei ole õiged, GHz ei saa lihtsalt iga olukorra jaoks kokku liita. Ma muudaksin selle 4 x 3GHz = 4 x 3GHz.

Kas teil on seletamiseks midagi lisada? Helistage kommentaarides. Kas soovite lugeda rohkem vastuseid teistelt tech-savvy Stack Exchange'i kasutajatelt? Tutvu täieliku arutelu teemaga siit.

Soovitan: