11Aug
Ak ste niekedy urobili veľa porovnávacích nákupov pre nový CPU, možno ste si všimli, že všetky jadrá majú skôr rýchlosť ako kombináciu rôznych. Prečo to je? Dnešný príspevok SuperUser Q & A má odpoveď na otázku zvedavého čitateľa.
Dnešná otázka &Odpoveď na zasadnutie nám príde s láskavým dovolením SuperUser - subdivíziu Stack Exchange, komunitne riadeného zoskupenia webových stránok Q & A.
Otázka
čítačka SuperUser Jamie chce vedieť, prečo všetky procesory majú rovnakú rýchlosť ako iné:
Všeobecne platí, že ak kupujete nový počítač, určite, ktorý procesor si kúpite na základe očakávaného pracovného zaťaženia počítača, Výkonnosť videohier má tendenciu byť určená jedinou jadrovou rýchlosťou, zatiaľ čo aplikácie ako strih videa sú určené počtom jadier. Pokiaľ ide o to, čo je dostupné na trhu, zdá sa, že všetky CPU majú približne rovnakú rýchlosť, pričom hlavné rozdiely sú viac vlákien alebo viac jadier.
Napríklad:
- Intel Core i5-7600K, základná frekvencia 3,80 GHz, 4 jadra, 4 vlákna
- Intel Core i7-7700K, základná frekvencia 4,20 GHz, 4 jadrá, 8 závitov
- AMD Ryzen 5 1600X, základná frekvencia 3,60 GHz, 6jadier, 12 závitov
- AMD Ryzen 7 1800X, základná frekvencia 3,60 GHz, 8 jadier, 16 závitov
Prečo vidíme tento model rastúcich jadier, ale všetky jadrá majú rovnakú rýchlosť hodín? Prečo neexistujú varianty s rôznymi rýchlosťami hodín? Napríklad dve "veľké" jadrá a veľa malých jadier.
Namiesto štyroch jadier na 4,0 GHz( tj 4 x 4 GHz, maximálne 16 GHz), čo sa týka CPU s dvoma jadrami pracujúcimi na frekvencii 4,0 GHz a štyrmi jadrami pracujúcimi na frekvencii 2,0 GHz( tj 2 × 4,0 GHz + 4 ×2,0 GHz, maximálne 16 GHz)?Mohla by byť druhá voľba rovnako dobrá pri jedno závitových pracovných zaťaženiach, ale potenciálne lepšia pri viacnásobných záťažových záťažoch?
Pýtam sa na to ako na všeobecnú otázku, a nie konkrétne s ohľadom na CPU uvedené vyššie alebo na jedno konkrétne pracovné zaťaženie. Len som zvedavý, prečo je tento model taký.
Prečo majú všetky CPU rovnaké rýchlosti ako iné?
Odpoveď
SuperUser prispievateľ bwDraco má pre nás odpoveď:
Toto je známe ako heterogénne multiprocessing( HMP) a je široko prijaté mobilnými zariadeniami. V zariadeniach ARM, ktoré implementujú veľké. LITTLE, procesor obsahuje jadrá s rôznymi výkonovými a výkonovými profilmi, tj niektoré jadrá bežia rýchlo, ale čerpajú veľa energie( rýchlejšia architektúra a / alebo vyššie hodiny), zatiaľ čo iné sú energeticky účinné, ale pomalépomalšia architektúra a / alebo nižšie hodiny).To je užitočné, pretože využívanie energie má tendenciu neprimerane narastať, pretože zvyšujete výkonnosť, keď prejdete určitým bodom. Myšlienkou je dosiahnuť výkon, keď to potrebujete, a životnosť batérie, keď to nie je.
Na stolných počítačoch je spotreba energie oveľa menej problémom, takže to nie je naozaj potrebné.Väčšina aplikácií očakáva, že každé jadro bude mať podobné výkonové charakteristiky a plánovacie procesy pre systémy HMP sú oveľa zložitejšie ako plánovanie tradičných systémov symetrického viacprocesorového( SMP)( technicky Windows 10 podporuje HMP, ale je určený hlavne pre mobilné zariadeniazariadenia, ktoré používajú ARM big. LITTLE).
Taktiež väčšina desktopových a prenosných procesorov dnes nie je tepelne alebo elektricky obmedzená na miesto, kde niektoré jadrá potrebujú bežať rýchlejšie ako iné, a to aj pri krátkych výbojoch. V podstate sme zasiahli stenu o tom, ako rýchlo môžeme vyrobiť jednotlivé jadrá, takže nahradenie niektorých jadier pomalšími nebude znamenať, že zostávajúce jadrá budú môcť bežať rýchlejšie.
Zatiaľ čo existuje niekoľko desktopových procesorov, ktoré majú jednu alebo dve jadrá schopné bežať rýchlejšie ako ostatné, táto schopnosť je v súčasnosti obmedzená na niektoré veľmi výkonné procesory Intel( známe ako Turbo Boost Max Technology 3.0) a zahŕňa iba mierny nárastvo výkonnosti pre tie jadrá, ktoré môžu bežať rýchlejšie.
Aj keď je určite možné navrhnúť tradičný x86 procesor s veľkými, rýchlymi jadrami a menšími, pomalšími jadrami na optimalizáciu pracovných záťaží s veľkým závitom, to by prinieslo značnú zložitosť návrhu procesora a aplikácie pravdepodobne nebudú správne podporovať.
Take hypotetický procesor s dvoma rýchlymi jadrami Kaby Lake( 7. generácie) a osmi pomalými jadrami Goldmontu( Atom).Mali by ste mať celkovo 10 jadier a náročné pracovné záťaže optimalizované pre tento druh procesora môžu vidieť zisk z výkonu a efektívnosti v porovnaní s bežným štvorjadrovým procesorom Kaby Lake. Avšak rôzne typy jadier majú veľmi odlišné úrovne výkonnosti a pomalé jadrá dokonca nepodporujú niektoré pokyny, ktoré podporujú rýchle jadrá, ako napríklad AVX( ARM sa vyhýba tomuto problému tým, že vyžaduje veľké a LITTLE jadrá na podporu rovnakých pokynov).
Väčšina aplikácií s viacerými závitmi založenými na systéme Windows sa domnieva, že každé jadro má rovnakú alebo takmer rovnakú úroveň výkonu a môže vykonať rovnaké pokyny, takže tento druh asymetrie pravdepodobne povedie k menšiemu než ideálnemu výkonu,dokonca zlyhá, ak používa inštrukcie, ktoré nie sú podporované pomalšími jadrami. Zatiaľ čo spoločnosť Intel mohla upraviť pomalé jadrá na pridanie rozšírenej podpory výučby, aby všetky jadrá mohli vykonať všetky pokyny, nevyriešili by to problémy so softvérovou podporou pre heterogénne procesory.
Iný prístup k návrhu aplikácií, bližšie k tomu, o čom ste pravdepodobne premýšľal vo vašej otázke, by použil GPU na zrýchlenie vysoko paralelných častí aplikácií.Môžete to urobiť pomocou rozhraní API ako OpenCL a CUDA.Pokiaľ ide o jedno-čipové riešenie, AMD podporuje hardvérovú podporu pre zrýchlenie GPU vo svojich APU, ktoré kombinuje tradičný CPU a vysokovýkonný integrovaný GPU do rovnakého čipu ako Heterogeneous System Architecture, aj keď to nevidí veľa priemyselného využitia mimoniekoľkých špecializovaných aplikácií.
Musíte niečo pridať k vysvetleniu? Znížte komentáre. Chcete si prečítať viac odpovedí od iných používateľov technológie Stack Exchange? Pozrite sa na celý diskusný príspevok tu. Obrázok
: Mirko Waltermann( Flickr)