11Aug

Zakaj CPU jedra vsi imajo isto hitrost namesto različnih?

click fraud protection

Če ste kdaj naredili veliko primerjave nakupovanja za nov CPU, ste morda opazili, da imajo vsa jedra hitrost in ne kombinacijo različnih. Zakaj? Današnji SuperUser Q & Objava ima odgovor na radovedno vprašanje bralca.

Današnje vprašanje &S sejo odgovora prihaja uporaba SuperUserja, ki je razdeljena na Stack Exchange, skupinsko spletno mesto Q & A spletnih strani.

Vprašalnik

SuperUser bralnik Jamie želi vedeti, zakaj imajo vsa CPU jedra enako hitrost namesto različnih:

Na splošno, če kupujete nov računalnik, bi določili, kateri procesor naj kupi glede na pričakovano delovno obremenitev računalnika. Učinkovitost video iger se običajno določi z enosmerno hitrostjo, medtem ko se aplikacije, kot je urejanje videa, določi s številom jeder. Glede na to, kaj je na voljo na trgu, se zdi, da imajo vsi CPU približno enako hitrost, pri čemer so glavne razlike več niti ali več jeder.

Na primer:

  • Intel Core i5-7600K, osnovna frekvenca 3,80 GHz, 4 žice, 4 niti
  • Intel Core i7-7700K, osnovna frekvenca 4,20 GHz, 4 žice, 8 niti
  • instagram viewer
  • AMD Ryzen 5 1600X, osnovna frekvenca 3,60 GHz, 6jedra, 12 niti
  • AMD Ryzen 7 1800X, osnovna frekvenca 3.60 GHz, 8 jeder, 16 niti

Zakaj vidimo ta vzorec naraščajočih jeder, vendar imajo vsa jedra enako število ur? Zakaj ni variant z različnimi hitrosti taktov? Na primer, dve "veliki" jedri in veliko majhnih jeder.

Namesto, recimo, štirih jeder pri 4,0 GHz( tj. 4 × 4 GHz, največ 16 GHz), kako približno CPU z dvema jedroma, ki delujejo pri 4,0 GHz, in štiri jedra, ki delujejo pri 2,0 GHz( tj. 2 x 4,0 GHz + 4 ×2,0 GHz, največ 16 GHz)?Ali bi bila druga možnost enako dobra pri enojnih obremenitvah, vendar bi lahko bila boljša pri več navojnih delovnih obremenitvah?

To postavljam kot splošno vprašanje in ne posebej glede CPU-jev, ki so navedene zgoraj, ali o kakšni specifični obremenitvi. Zanima me, zakaj je vzorec tisto, kar je.

Zakaj imajo vsa CPU jedra enako hitrost namesto različnih?

Odzivnik

SuperUser, ki prispeva bwDraco, ima odgovor za nas:

To je znano kot heterogena večnamenska obdelava( HMP) in jo široko uporabljajo mobilne naprave. V napravah, ki uporabljajo ARM, ki izvajajo big. LITTLE, procesor vsebuje jedra z različnimi zmogljivostmi in moči, tj. Nekatera jedra tečejo hitreje, vendar veliko energije( hitrejše arhitekture in / ali večje ure), medtem ko so druge energetsko učinkovite, vendar počasipočasnejša arhitektura in / ali nižje ure).To je uporabno, ker se poraba energije povečuje nesorazmerno, ko povečate učinkovitost, ko prestopite neko točko. Tu je ideja, da dobite zmogljivost, ko jo potrebujete, in življenjsko dobo baterije, ko ga ne.

Na namiznih platformah je poraba energije veliko manj problem, zato to ni resnično potrebno. Večina aplikacij pričakuje, da ima vsako jedro podobne karakteristike delovanja, procesi načrtovanja za sisteme HMP pa so veliko bolj zapleteni kot načrtovanje za tradicionalne simetrične sisteme za večkratno obdelavo( tehnično, Windows 10 podpira HMP, vendar je namenjen predvsem mobilnimnaprave, ki uporabljajo ARM velik. LITTLE).

Prav tako večina namiznih in prenosnih procesorjev danes ni termično ali električno omejena na točko, kjer morajo nekatera jedra teči hitreje kot druge, tudi za kratke razpoke. V bistvu smo zadeli steno o tem, kako hitro lahko izdelamo posamezna jedra, zato zamenjava nekaterih jeder s počasnejšimi ne bo omogočala hitrejšega delovanja preostalih jeder.

Čeprav obstaja nekaj namiznih procesorjev, ki imajo eno ali dve jedri, ki se lahko izvajajo hitreje kot druge, je ta zmogljivost trenutno omejena na nekatere zelo visoko zmogljive procesorje Intel( znan kot Turbo Boost Max Technology 3.0) in vključuje le rahlo povečanjev zmogljivosti za tista jedra, ki se lahko hitreje izvajajo.

Oblikovanje tradicionalnega x86 procesorja z velikimi, hitrimi jedri in manjšimi, počasnejšimi jedri, ki se lahko optimizirajo za delovne obremenitve z velikim navojem, je vsekakor mogoče načrtovati, kar bi zapleteno za zasnovo procesorja povečalo, aplikacije pa verjetno ne bodo ustrezno podprle.

Vzemite hipotetični procesor z dvema hitro kaby jezeroma( sedma generacija) in osmimi počasi Goldmont( Atom) jedri. Imeli bi skupno 10 jeder, delovne obremenitve s težko navojem, optimizirane za to vrsto procesorja, lahko vidijo povečanje zmogljivosti in učinkovitosti nad običajnim procesorjem Kaby Lake s štirimi jeziki. Vendar imajo različni tipi jeder različno različno zmogljivost, počasna jedra pa tudi ne podpirajo nekaterih navodil, ki jih hitra jedra podpira, na primer AVX( ARM se izogiba tej težavi, tako da zahtevata tako velika kot tudi LITTLE jedra, da podpirajo enaka navodila).

Spet večina aplikacij z več nitji na osnovi Windows predvideva, da ima vsaka jedra enako ali skoraj enako raven zmogljivosti in da lahko izvede enaka navodila, zato je takšna asimetrija verjetno posledica manj učinkovitih zmogljivosti, mordacelo zruši, če uporablja navodila, ki jih ne podpirajo počasnejša jedra. Medtem ko bi Intel lahko spremenil počasna jedra, da bi dodal napredno podporo za navodila, tako da bi vsa jedra lahko izvršila vsa navodila, to ne bi odpravilo težav s podporo programske opreme za heterogene procesorje.

Drugačen pristop k oblikovanju aplikacij, bližje tistemu, za kar verjetno razmišljaš v svojem vprašanju, bi GPU uporabljal za pospeševanje zelo vzporednih delov aplikacij. To lahko storite z uporabo API-jev, kot so OpenCL in CUDA.Kar zadeva rešitev z enim čipom, AMD podpira strojno podporo za pospeševanje GPU v svojih APU-jih, ki združuje tradicionalni procesor in visoko zmogljiv integriran grafični procesor v isti čip, kot arhitektura heterogenega sistema, čeprav to ni zaznalo veliko privlačnosti industrije zunajnekaj specializiranih aplikacij.

Ali želite dodati nekaj pojasnila? Zvok v komentarjih.Želite prebrati več odgovorov od drugih uporabniških članov stack Exchange? Oglejte si celotno temo za razpravo tukaj.

Image Credit: Mirko Waltermann( Flickr)