Homepage » hogyan kell » Hogyan számolja ki a processzorsebességet a többmagos processzorokon?

    Hogyan számolja ki a processzorsebességet a többmagos processzorokon?

    A gazdaságos fogyasztói minőségű többmagos processzorok megjelenése sok felhasználó számára felveti a kérdést: hogyan hatékonyan kiszámítja a multi-core rendszer valós sebességét? Van egy 4 magú 3Ghz rendszer valóban 12 GHz? Olvassa el a vizsgálatot.

    A mai Kérdések és válaszok munkamenet jön számunkra a SuperUser-Stack Exchange alosztályának, a Q & A webhelyek közösségi meghajtó csoportosításának.

    A kérdés

    A SuperUser olvasó NReilingh kíváncsi volt, hogy a processzor sebessége egy többmagos rendszerben valójában kiszámított:

    Helyes azt mondani, hogy például egy olyan processzor, amelynek négy magja minden 3GHz-en fut, valójában egy 12 GHz-es processzor?

    Egyszer egy „Mac vs PC” érvbe kerültem (amely egyébként NEM a téma középpontjában ... ami visszafelé volt a középiskolában) egy ismerőssel, aki ragaszkodott ahhoz, hogy a Mac-eket csak 1GHz-es gépként hirdessék, mert kettős -processzor G4s, amelyek mindegyike 500 MHz-en fut.

    Abban az időben tudtam, hogy ez egy mosogató, mert úgy gondolom, hogy a legtöbb ember számára nyilvánvaló, de csak egy megjegyzést írtam erre a honlapra a „6 mag x 0,2GHz = 1,2 Ghz” hatására, és újra meggondoltam, hogy van egy igazi válasz erre.

    Tehát ez egy sokkal kevésbé filozófiai / mély technikai kérdés az órasebesség-számítás szemantikájáról. Két lehetőséget látok:

    1. Valamennyi mag ténylegesen x számítást végez másodpercenként, így a számítások száma x (mag)..
    2. Az óra sebessége inkább a ciklusok számát jelenti, amit a processzor egy másodperc alatt átmegy, így amíg az összes mag azonos fordulatszámon fut, minden órajel ciklusa ugyanaz marad, függetlenül attól, hogy hány mag létezik . Más szóval, Hz = (core1Hz + core2Hz +…) / magok.

    Tehát mi a megfelelő módja annak, hogy jelezzük a teljes órajel sebességét, és ami még fontosabb, hogy még egy mag-sebességű nómenklatúrát is használhatunk egy többmagos rendszeren?

    A válasz

    A SuperUser közreműködői, a Mokubai segítenek a dolgok tisztításában. Ír:

    A fő ok, amiért a négymagos 3GHz processzor soha nem olyan gyors, mint egy 12 GHz-es mag, annak az az eredménye, hogy az adott processzoron futó feladat működik, azaz egyszálú vagy többszálas. Amdahl törvénye fontos, amikor figyelembe vesszük a futtatott feladatok típusait.

    Ha olyan feladata van, amely eredetileg lineáris, és pontosan lépésről lépésre kell végrehajtani, mint például (egy rendkívül egyszerű program)

    10: a = a + 1
    20: goto 10 

    Ezután a feladat nagymértékben függ az előző menet eredményétől, és nem képes több példányt futtatni anélkül, hogy megsérülne az érték 'A' mivel mindegyik másolat értékét megkapja 'A' különböző időkben és másképpen írva. Ez csak egy szálra korlátozza a feladatot, és így a feladat csak egyetlen magon futhat egy adott időpontban, ha több magon futna, akkor megtörténne a szinkronizációs korrupció. Ez korlátozza a kettős magrendszer cpu teljesítményének 1/2-át, vagy egy négyzetmagos rendszer 1/4-ját.

    Most vegyen egy feladatot, például:

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

    Mindezek a sorok függetlenek, és négy különálló programra oszthatók, mint az első, és egyidejűleg futtathatók, mindegyik képes hatékonyan kihasználni az egyik mag teljes erejét szinkronizálási probléma nélkül, itt az Amdahl törvénye jön be.

    Tehát, ha van egy menetes alkalmazásuk, amely brutális erőszámításokat végez, az egyetlen 12 GHz-es processzor nyer le a kezeket, ha valahogy meg tudná osztani a feladatot különálló részekre és többszálúra, akkor a 4 mag magához közelíthet, de nem érhető el teljesen ugyanaz a teljesítmény, mint Amdahl törvénye.

    A legfontosabb, hogy egy több CPU-rendszer válaszol. Egyetlen, keményen működő gépen a rendszer lassúnak tűnhet, mivel az idő nagy részében egy feladat használható, a többi feladat pedig csak a rövid feladatok között fut a nagyobb feladat között, ami olyan rendszert eredményez, amely lassúnak vagy bírónak tűnik . Egy többmagos rendszeren a nehéz feladat egy magot és minden más feladatot játszhat a többi magon, gyorsan és hatékonyan elvégzi munkáját.

    A „6 mag x 0.2GHz = 1.2Ghz” érv minden helyzetben szemét, kivéve, ha a feladatok tökéletesen párhuzamosak és függetlenek. Számos feladat van párhuzamosan, de még mindig szükség van valamilyen szinkronizációra. A kézifék olyan videóátalakító, amely minden rendelkezésre álló CPU használatához nagyon jó, de alapvető folyamatot igényel, hogy a többi szál töltve legyen az adatokkal, és gyűjtsük össze azokat az adatokat, amiket elvégeztek.

    1. Valamennyi mag ténylegesen x számítást végez másodpercenként, így a számítások száma x (mag)..

    Minden mag képes elvégezni x másodperc számításokat, feltételezve, hogy a munkaterhelés megfelelő párhuzamos, egy lineáris programban mindössze 1 mag.

    1. Az óra sebessége inkább a ciklusok számát jelenti, amit a processzor egy másodperc alatt átmegy, így amíg az összes mag azonos fordulatszámon fut, minden órajel ciklusa ugyanaz marad, függetlenül attól, hogy hány mag létezik . Más szóval, Hz = (core1Hz + core2Hz +…) / magok.

    Úgy gondolom, hogy tévedés, ha azt gondolom, hogy a matematika 4 x 3GHz = 12GHz, de az almát a narancshoz hasonlítja, és az összegek nem megfelelőek, GHz-t nem lehet egyszerűen összeadni minden helyzetre. 4 x 3GHz = 4 x 3GHz-re változtatom.

    Van valami, amit hozzá kell adni a magyarázathoz? Kikapcsolja a megjegyzéseket. Szeretne további válaszokat olvasni más tech-savvy Stack Exchange felhasználóktól? Nézze meg a teljes beszélgetés szálát itt.