Miksi CPU-ytimillä kaikilla on sama nopeus kuin eri?
Jos olet koskaan tehnyt paljon vertailua uuden CPU: n ostamiseen, olet ehkä huomannut, että kaikilla ytimillä näyttää olevan pikemminkin nopeus kuin niiden yhdistelmä. Miksi niin? Tämän päivän SuperUser Q&A -postissa on vastaus utelias lukijan kysymykseen.
Nykypäivän Kysymys- ja vastaus -istunto tulee meille suotuisasti SuperUserin - Stack Exchange -alueen, yhteisöpohjaisen Q & A-sivustojen ryhmittymän - kautta..
Kysymys
SuperUser-lukija Jamie haluaa tietää, miksi CPU-ytimillä on sama nopeus kuin eri:
Yleensä, jos ostat uutta tietokonetta, voit määrittää, mikä prosessori ostaa tietokoneen odotetun työmäärän perusteella. Videopelien suorituskyky määräytyy yhden ytimen nopeuden mukaan, kun taas sovellusten, kuten videon muokkauksen, määrää ytimien lukumäärä. Kaikkien CPU-laitteiden nopeus markkinoilla on markkinoilla, ja tärkeimmät erot ovat enemmän säikeitä tai ytimiä.
Esimerkiksi:
- Intel Core i5-7600K, perustaajuus 3,80 GHz, 4 ytintä, 4 säiettä
- Intel Core i7-7700K, perustaajuus 4,20 GHz, 4 ytintä, 8 kierteitä
- AMD Ryzen 5 1600X, perustaajuus 3,60 GHz, 6 ytintä, 12 säiettä
- AMD Ryzen 7 1800X, perustaajuus 3,60 GHz, 8 ytintä, 16 kierteitä
Miksi näemme kasvavan ytimen mallin, mutta kaikki ytimet ovat samaa kellonopeutta? Miksi ei ole vaihtoehtoja, joissa on erilaiset kellonopeudet? Esimerkiksi kaksi ”suurta” ydintä ja paljon pieniä ytimiä.
Esimerkiksi neljän ytimen 4,0 GHz: n (eli 4 × 4 GHz, 16 GHz: n enimmäismäärän) sijasta kuinka noin CPU: lla, jossa on kaksi ytimiä, jotka toimivat 4,0 GHz: llä ja neljällä ytimellä, jotka toimivat 2,0 GHz: llä (eli 2 × 4,0 GHz + 4 × 2,0 GHz, enintään 16 GHz)? Olisiko toinen vaihtoehto yhtä hyvä yhtä ainoalle kierteitetylle työkuormitukselle, vaan potentiaalisesti paremmin monisäikeisille työmäärille?
Pyydän tätä yleisenä kysymyksenä eikä nimenomaan edellä lueteltujen CPU: ien tai jonkin tietyn työmäärän osalta. Olen vain utelias siitä, miksi malli on mitä se on.
Miksi CPU-ytimillä on sama nopeus kuin eri?
Vastaus
SuperUserin avustaja bwDracolla on vastaus meille:
Tätä kutsutaan heterogeeniseksi monenkäsittelyksi (HMP) ja mobiililaitteet hyväksyvät sen laajalti. ARM-pohjaisissa laitteissa, jotka käyttävät suurta LITTLE-prosessoria, prosessori sisältää ytimiä, joilla on erilaiset suorituskyky- ja tehoprofiilit, eli jotkut ytimet toimivat nopeasti, mutta vetävät paljon tehoa (nopeampi arkkitehtuuri ja / tai korkeammat kellot), kun taas toiset ovat energiatehokkaita, mutta hitaita ( hitaampi arkkitehtuuri ja / tai alemmat kellot). Tämä on hyödyllistä, koska virrankulutus kasvaa suhteettomasti, kun tehostat tietyn pisteen ohi. Ajatuksena on saada suorituskyky, kun tarvitset sitä ja akun käyttöikää, kun et.
Työpöydän alustoilla virrankulutus on paljon vähemmän ongelma, joten tämä ei ole todella tarpeen. Useimmat sovellukset odottavat, että jokaisella ytimellä on samanlaiset suorituskykyominaisuudet, ja HMP-järjestelmien ajoitusprosessit ovat paljon monimutkaisempia kuin perinteisten symmetristen monikäyttöjärjestelmien (SMP) ajoitus (teknisesti Windows 10 tukee HMP: tä, mutta se on tarkoitettu pääasiassa mobiililaitteille). laitteet, jotka käyttävät ARM big.LITTLE).
Myös useimmat työpöydän ja kannettavan tietokoneen prosessorit eivät nykyään ole termisesti tai sähköisesti rajattuja siihen pisteeseen, jossa joidenkin ytimien täytyy kulkea nopeammin kuin muutkin, vaikka lyhyitä purskeita. Olemme pääsääntöisesti osuneet seinään, kuinka nopeasti voimme tehdä yksittäisiä ytimiä, joten joidenkin ytimien vaihtaminen hitaammin ei anna jäljellä olevien ytimien juoksua nopeammin.
Vaikka on olemassa muutamia pöytäprosessoreita, joissa on yksi tai kaksi ydintä, jotka pystyvät toimimaan nopeammin kuin muut, tämä ominaisuus on tällä hetkellä rajoitettu tiettyihin erittäin huippuluokan Intel-prosessoreihin (tunnetaan nimellä Turbo Boost Max Technology 3.0), ja siihen liittyy vain pieni lisäys suorituskyky niille ytimille, jotka voivat toimia nopeammin.
Vaikka on mahdollista suunnitella perinteinen x86-prosessori, jossa on sekä suuria, nopeita ytimiä että pienempiä, hitaampia ytimiä, jotta optimoidaan voimakkaasti kierretyt työmäärät, tämä lisäisi huomattavasti prosessorin suunnittelua ja sovellukset eivät todennäköisesti tue sitä oikein.
Ota hypoteettinen prosessori, jossa on kaksi nopeaa Kabyn järven (7. sukupolvi) ytimiä ja kahdeksan hidasta Goldmont (Atom) -ydintä. Sinulla olisi yhteensä 10 ydintä, ja voimakkaasti kierteiset työmäärät, jotka on optimoitu tällaiselle prosessorille, saattavat parantaa suorituskykyä ja tehokkuutta normaalilla nelikerroksisella Kaby Lake -prosessorilla. Eri tyyppisillä ytimillä on kuitenkin hämmästyttävän erilaiset suorituskyvyn tasot, ja hitaat ytimet eivät edes tue joitakin ohjeita, jotka tukevat nopeaa ytimiä, kuten AVX (ARM välttää tämän ongelman vaatimalla sekä suuria että LITTLE-ytimiä tukemaan samoja ohjeita) ).
Jälleen useimmat Windows-pohjaiset monisäikeiset sovellukset olettavat, että jokaisella ytimellä on sama tai lähes sama suorituskyky ja että se voi suorittaa samat ohjeet, joten tällainen epäsymmetria johtaa todennäköisesti vähemmän kuin ihanteellinen suorituskyky, ehkä jopa kaatuu, jos se käyttää ohjeita, joita ei tueta hitaammin. Vaikka Intel voisi muokata hitaita ytimiä lisäämään kehittyneitä ohjeita, jotta kaikki ytimet voisivat suorittaa kaikki ohjeet, tämä ei ratkaise ongelmia heterogeenisten prosessorien ohjelmistotuella.
Eri lähestymistapa sovellussuunnitteluun, lähempänä sitä, mitä olet todennäköisesti miettinyt kysymyksessäsi, käyttäisi GPU: ta sovellusten erittäin rinnakkaisten osien kiihdyttämiseen. Tämä voidaan tehdä käyttämällä API: ta, kuten OpenCL ja CUDA. Yksisiruisen ratkaisun osalta AMD edistää APU-laitteissaan laitteiston tukea GPU-kiihtyvyydelle, joka yhdistää perinteisen CPU: n ja korkean suorituskyvyn integroidun GPU: n samaan siruun kuin Heterogeeninen järjestelmäarkkitehtuuri, vaikka tämä ei ole nähnyt paljon teollisuuden ottoa ulkopuolelle muutamia erikoistuneita sovelluksia.
Onko jotain lisättävää selitykseen? Ääni pois kommenteista. Haluatko lukea lisää vastauksia muilta tech-savvy Stack Exchange -käyttäjiltä? Tutustu koko keskusteluketjuun täällä.
Kuvaluotto: Mirko Waltermann (Flickr)