15Aug
Ekonomiškų vartotojiškų daugiabuč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.
Šiandienos klausimas &Atsakymų sesija ateina pas mus "SuperUser" - "Stack Exchange", "Q & A" svetainių bendruomenės naršyklės padalinys.
Klausimas
SuperUser skaitytuvas NReilingh buvo įdomu, kaip faktiškai apskaičiuojamas procesoriaus greitis daugiakultūrėje sistemoje:
Ar teisinga teigti, pavyzdžiui, kad procesorius su keturiais branduoliais, kurių kiekvienas veikia per 3GHz, iš tikrųjų yra procesorius12 GHz?
Aš vieną kartą pateko į "Mac vs. PC" argumentą( kuris, beje, nėra šios temos dėmesio. .. tai buvo vidurinėje mokykloje) su pažįstamu, kuris reikalavo, kad "Mac" būtų reklamuojamas tik kaip "1Ghz" įrenginiai, nes jie buvoDual-processor G4, kurių kiekvienas veikia 500 MHz.
Tuo metu, kai supratau, kad tai yra "Hogwash" dėl priežasčių, manančių, kad tai yra akivaizdi daugumai žmonių, tačiau aš tiesiog pamatė komentarą šiai tinklavietei apie "6 serijos x 0.2GHz = 1.2Ghz" poveikį, ir tai man atėjo į galvą dar kartą apiear realus atsakymas į tai yra.
Taigi, tai daugiau ar mažiau filosofinis / gilus techninis klausimas apie laikrodžio greičio skaičiavimo semantyką.Aš matau dvi galimybes:
- Kiekvienas branduolys faktiškai atlieka x skaičiavimus per sekundę, todėl bendras skaičiavimų skaičius yra x( branduoliai).
- 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ųegzistuoja. Kitaip tariant, Hz =( core1Hz + core2Hz +. ..) / šerdys.
Taigi, koks yra tinkamas būdas apibūdinti bendrą laikrodžio greitį ir, dar svarbiau, netgi galima naudoti vieno branduolio greičio nomenklatūrą daugiakultūroje sistemoje?
Atsakymai
"SuperUser" mokytojai Mokubai padeda aiškiai suprasti. Jis rašo: "
" Pagrindinė priežastis, kodėl keturių branduolių 3GHz procesorius niekada nėra toks greitas, kaip 12 GHz viengubas branduolys, yra susijęs su tuo, kaip veikia šio procesoriaus užduotis, t. Y. Vieno sriegio arba daugiasiūlių.Amdahl'o įstatymas yra svarbus svarstant jūsų užduočių rūšis.
Jei turite užduotį, kuri iš esmės yra linijinė ir turi būti vykdoma tiksliai, nuosekliai, pvz.,( Labai paprasta programa).
10: a = a + 1 20: goto 10Tada užduotis labai priklauso nuo rezultatoankstesnio leidimo ir negali paleisti kelis egzempliorius, nepažeidžiant "a" vertės, nes kiekviena kopija būtų "a" reikšmės įvairiomis kartomis ir parašyta atgal skirtingai. Tai riboja užduotį į vieną giją, todėl užduotis bet kada gali būti vykdoma tik vienu branduoliu, jei jis būtų paleistas 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 10Visos šios eilutės yra nepriklausomos ir galisuskirstyti į 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, tai yra Amdahlio įstatymas.
Taigi, jei turite vieną srieginę programą, atlikdami griežtą jėgos skaičiavimą, vienas 12 GHz procesorius laimėtų rankas žemyn, jei jūs galite kažkaip atlikti užduočių padalijimą į atskiras dalis ir daugiasienes, tada 4 šerdys gali būti arti, bet ne gana pasiekti, tas pats našumas, kaip nurodyta Amdahlio įstatyme.
Svarbiausia, kad daugiametė procesoriaus 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ą.
"6 serijos x 0.2GHz = 1.2Ghz" argumentas yra šiukšlių kiekvienoje situacijoje, 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 gali atlikti x skaičiavimus per sekundę, darant prielaidą, kad darbinis krūvis tinkamas lygiagrečiai, tiesine programa, kurią turite, yra 1 šerdis.
- Laikrodžio greitis - tai 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ųegzistuoja. 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 tiesiog netinkamos, GHz dažniausiai negalima pridėti prie kiekvienos situacijos. Aš norėčiau jį pakeisti 4 x 3GHz = 4 x 3GHz.
Ar 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.