If-Koubou

Miksi CPU-korteilla kaikilla on sama nopeus eri käyttäjien sijasta?

Miksi CPU-korteilla kaikilla on sama nopeus eri käyttäjien sijasta? (Miten)

Jos olet tehnyt paljon vertailuostoksia uudelle CPU: lle, olet ehkä huomannut, että ytimillä näyttää olevan nopeus pikemminkin kuin erilaisten yhdistelmä. Miksi niin? Tänään SuperUser Q & A -postilla on vastaus utelias lukijan kysymykseen.

Tämän päivän kysymys- ja vastausistunto tulee meihin SuperUserin hyväksi - Stack Exchangein alaosasto, joka on yhteisöllinen Q & A-sivustojen ryhmittely.

Kysymys

SuperUser-lukija Jamie haluaa tietää, miksi prosessorin ytimissä on sama nopeus kuin erilaisilla:

Yleensä, jos ostat uuden tietokoneen, voit määrittää, mitä prosessoria haluat ostaa tietokoneen odotetun työmäärän perusteella. Videopelien suorituskyky määräytyy yleensä yhden ytimen nopeuden mukaan, kun taas sovellukset, kuten videon editointi, määräytyvät ytimien lukumäärän mukaan. Markkinoilla saatavilla olevien kaikkien prosessorien näyttävät olevan suunnilleen sama nopeus, kun tärkeimmät erot ovat useampia kierteitä tai useampia ytimiä.

Esimerkiksi:

  • Intel Core i5-7600K, perustaajuus 3.80 GHz, 4 ytimiä, 4 lankaa
  • Intel Core i7-7700K, perustaajuus 4,20 GHz, 4 ytimiä, 8 lankaa
  • AMD Ryzen 5 1600X, perusnopeus 3,60 GHz, 6 ytimiä, 12 lankaa
  • AMD Ryzen 7 1800X, perusnopeus 3,60 GHz, 8 ytimiä, 16 lankaa

Miksi näemme tämän nousevan ytimen mallin, mutta kaikki ytimet, joilla on sama kellotaajuus? Miksi ei ole muunnoksia, joilla on erilaiset kellonopeudet? Esimerkiksi kaksi "suurta" ydintä ja paljon pieniä ytimiä.

Sen sijaan, että sanoisin neljä ydintä 4,0 GHz: ssä (eli 4 × 4 GHz, 16 GHz maksimi), kuinka paljon prosessori, jossa on kaksi sydämiä, jotka toimivat 4,0 GHz: n taajuudella, ja neljä ydintä, jotka toimivat 2,0 GHz: ssä (eli 2 × 4,0 GHz + 4 × 2,0 GHz, enintään 16 GHz)? Olisiko toinen vaihtoehto yhtä hyvä yhtä kierteitettyä työkuormaa kohden, mutta mahdollisesti parempi monisäikeisiin työkuormiin verrattuna?

Pyydän tätä yleisenä kysymyksenä eikä nimenomaan edellä lueteltujen prosessorien tai tietyn työmäärän suhteen. Olen vain utelias, miksi kuvio on se, mitä se on.

Miksi CPU-ytimillä on kaikki samat nopeudet kuin erilaiset?

Vastaus

SuperUser-avustaja bwDraco on meille vastaus:

Tätä kutsutaan heterogeeniseksi moniprosessoimiseksi (HMP) ja se on laajalti käytössä mobiililaitteilla. ARM-pohjaisissa laitteissa, jotka toteuttavat big.LITTLE-prosessin, prosessori sisältää erilaisia ​​suorituskyky- ja tehoprofiileja sisältäviä ytimiä eli jotkut ytimet ajaa nopeasti, mutta käyttävät paljon tehoa (nopeampi arkkitehtuuri ja / tai korkeammat kellot), kun taas toiset ovat energiatehokkaita mutta hidas hitaampi arkkitehtuuri ja / tai alemmat kellot). Tämä on hyödyllistä, koska energiankulutus kasvaa suhteettomasti, kun lisäät suorituskykyä, kun saavutat tietyn pisteen. Ajatus tässä on saada suorituskyky, kun tarvitset sitä ja akun käyttöikä, kun et.

Työpöytäympäristöissä virrankulutus on paljon vähemmän ongelma, joten tämä ei ole todella tarpeen. Useimmat sovellukset odottavat, että kullakin ytimellä on samanlaiset suorituskykyominaisuudet ja HMP-järjestelmien aikataulutusprosessit ovat paljon monimutkaisempia kuin perinteisten symmetristen moniprosessointilaitteiden (SMP) järjestelmät (teknisesti Windows 10: lla on tuki HMP: lle, mutta se on tarkoitettu lähinnä liikkuville laitteet, jotka käyttävät ARM big.LITTLE).

Myös useimmat pöytäkoneiden ja kannettavien tietokoneiden prosessorit eivät nykyään ole termisesti tai sähköisesti rajoittuneet siihen pisteeseen, jossa joidenkin sydämien on toimittava nopeammin kuin toiset, myös lyhyillä purskeilla. Olemme päässeet osaksi seinään siitä, kuinka nopeasti voimme tehdä yksittäisiä ytimiä, joten joidenkin ytimien korvaaminen hitaammilla ei salli jäljelle jääneiden ytimien ajaa nopeammin.

Vaikka on olemassa muutamia työpöytäprosessoreita, joilla on yksi tai kaksi ydintä, jotka pystyvät toimimaan nopeammin kuin muut, tämä ominaisuus rajoittuu nykyään vain tiettyihin erittäin huippuluokan Intel-prosessoreihin (tunnetaan nimellä Turbo Boost Max Technology 3.0). suorituskyky niille ytimille, jotka voivat toimia nopeammin.

Vaikka on varmasti mahdollista suunnitella perinteinen x86 -prosessori, jossa on sekä suuret, nopeat ytimet että pienemmät hitaammat ytimet optimoimaan raskaasti kierrätyille työmäärille, tämä lisää huomattavasti prosessorin suunnittelua ja sovellukset eivät todennäköisesti tue sitä oikein.

Ota hypoteettinen prosessori kahdella nopealla Kaby Lake (7. sukupolven) ytimellä ja kahdeksalla hidas Goldmont (Atom) -ydintä. Sinulla olisi yhteensä 10 ydintä, ja tämäntyyppiselle prosessorille optimoidut runsaasti kierrätetyt työmäärät saattavat näkyä suorituskyvyn ja tehokkuuden suhteen tavalliseen nelitaajuiseen Kaby Lake -prosessoriin nähden. Eri tyyppisillä hylsyillä on kuitenkin erilainen suorituskyky, eivätkä hitaat ytimet edes tue joitain ohjeita, joita nopeat ytimet tukevat, kuten AVX (ARM estää tämän ongelman vaatimalla sekä suuria että pieniä hylsyjä tukemaan samoja ohjeita ).

Jälleen useimmat Windows-pohjaiset monisäikeiset sovellukset olettavat, että kaikilla ytimillä on sama tai lähes sama suorituskyky ja ne voivat suorittaa samat ohjeet, joten tällainen epäsymmetria johtaa todennäköisesti vähemmän kuin ihanteelliseen suorituskykyyn, ehkä jopa kaatuu, jos se käyttää ohjeita, joita hitaimmat ytimet eivät tue. Vaikka Intel pystyi muokkaamaan hitaita ytimiä lisättävän käskytuen avulla, jotta kaikki ytimet pystyvät suorittamaan kaikki ohjeet, tämä ei ratkaise ongelmat, joiden ohjelmistokehitys heterogeenisille prosessoreille.

Erilainen lähestymistapa sovellusten suunnitteluun, lähempänä mitä olet todennäköisesti ajattelemassa kysymyksessänne, käyttää GPU: ta kiihdyttämään hyvin rinnakkaisia ​​sovellusosioita. Tämä voidaan tehdä käyttämällä sovellusliittymiä, kuten OpenCL ja CUDA. Yksisiruisen ratkaisun osalta AMD edistää laitteistokehitystä GPU-kiihdyttämiseen APUssa, joka yhdistää perinteisen CPU: n ja korkean suorituskyvyn integroidun GPU: n samaan siruun kuin Heterogeneous System Architecture, vaikka tämä ei ole nähnyt paljon teollisuuden muutamia erikoistuneita sovelluksia.

Onko jokin asia lisättävä selitykseen? Kuulkaa kommentit. Haluatko lukea lisää vastauksia muilta tech-tajuilta Stack Exchange-käyttäjiltä? Katso koko keskusteluketju täältä.

Kuvakortti: Mirko Waltermann (Flickr)