11Aug

Miks CPU tuumadel on sama kiirus erinevate asjadega?

Kui olete uut CPU-d ostnud palju võrdlusega, võite olla märganud, et kõikidel südamikele tundub olevat kiirus, mitte kombinatsioon erinevatest. Miks nii? Tänane SuperUser Q & postitus on vastuseks uudishimulikule lugeja küsimusele.

Tänane küsimus &Vastuste seanss tuleb meile viisakalt SuperUseriga - Q & A veebisaitide kogukonnapõhise grupi Stack Exchange jagunemisest.

Küsimus

SuperUser-lugeja Jamie tahab teada, miks on kõigi CPU-südamike erinevad asemel erinevad kiirused:

Üldiselt, kui ostad uue arvuti, siis määrate, milline protsessor osta arvuti eeldatava töökoormuse alusel. Videomängude jõudlus on tavaliselt kindlaks määratud ühekordse kiirusega, samas kui videotöötlusrakendusi määravad südamike arv. Mis turul on saadaval, näib, et kõigil CPU-del on ligikaudu sama kiirus, kusjuures peamised erinevused on rohkem niidid või rohkem südamikud.

Näiteks:

  • Intel Core i5-7600K, baasagedus 3,80 GHz, 4 südamikku, 4 niiti
  • Intel Core i7-7700K, põhisagedus 4,20 GHz, 4 südamikku, 8 niiti
  • AMD Ryzen 5 1600X, baasagedus 3,60 GHz, 6südamikud, 12 niidid
  • AMD Ryzen 7 1800X, põhisagedus 3,60 GHz, 8 südamikud, 16 niit

Miks näeme seda suurenenud südamike mustrit, kuid kõik südamikud on sama kella kiirusega? Miks pole erinevate kella kiirustega variante? Näiteks kaks "suurt" südamikku ja palju väikesi südamikku.

Selle asemel, et ütleksin, et neli 4,0 GHz sagedust( st 4 × 4 GHz, maksimaalselt 16 GHz), kuidas umbes 4,0 GHz töötavate kahe südamikuga CPU ja 2,0 GHz töötavad neli südamikku( st 2 × 4,0 GHz + 4 ×2,0 GHz, maksimaalselt 16 GHz)?Kas teine ​​võimalus oleks ühe keermestatud töökoormusega sama võrdselt hea, kuid potentsiaalselt paremini mitme keermega töökoormusega?

Ma küsin seda üldiselt ja mitte konkreetselt ülaltoodud CPU-de või konkreetse töökoormuse osas. Mul on lihtsalt uudishimulik, miks on muster see, mis see on.

Miks on kõigi protsessori südamike asemel erinevad kiirused sama kiirusega?

Vastuseks

SuperUseri kaasautorile bwDraco on meile vastus:

See on tuntud kui heterogeenne multiprocessing( HMP) ja seda laialdaselt kasutavad mobiilseadmed. ARM-põhistes seadmetes, mis rakendavad suurt. LITTLE, sisaldab protsessor erinevaid jõudluse ja võimsusega profiile, st mõned südamikud töötavad kiiresti, kuid võtavad palju võimsust( kiirem arhitektuur ja / või kõrgemad kellad), samas kui teised on energiatõhusad, kuid aeglane( aeglasem arhitektuur ja / või madalam kellad).See on kasulik, kuna võimsuse kasutamine kipub ebaproportsionaalselt suurenema, kuna suurendate jõudlust, kui jõuate teatud punktist. Siin on idee jõudluse saavutamiseks, kui seda vajate ja aku kasutusiga, kui seda ei tehta.

Töölaua platvormidel on energiatarbimine palju vähem probleem, mistõttu see pole tõeliselt vajalik. Enamik rakendusi eeldavad, et igale tuumale on sarnased toimivusomadused, ja HMP süsteemide sõiduplaanimise protsessid on palju keerukamad kui tavapäraste sümmeetriliste multiprotsesside süsteemide( tehniliselt Windows 10 toetab HMP-d), kuid see on peamiselt mõeldud mobiilseadmeteleseadmed, mis kasutavad ARM big. LITTLE).

Ka enamik lauaarvutites ja sülearvutites ei ole tänapäeval termiliselt ega elektriliselt piiratud punktiga, kus mõned südamikud peavad töötama kiiremini kui teised, isegi lühikeste purunemiste korral. Oleme põhiliselt tabanud seina, kui kiiresti me saame teha üksikuid südamikke, nii et mõned südamikud asendada aeglasematega, ei lase ülejäänud südamikel kiiremini liikuda.

Kuigi on vähe töölauarakendusi, millel on üks või kaks südamikku, mis suudavad töötada teistest kiiremini, on see võime praegu piiratud teatud väga kõrgekvaliteediliste Inteli protsessoritega( tuntud kui Turbo Boost Max Technology 3.0) ja see hõlmab ainult väikest kasumimääranende südamike tulemuslikkus, mis võivad kiireneda.

Kuigi on kindlasti võimalik kujundada traditsiooniline x86-protsessor nii suurte, kiirete südamike kui ka väiksemate ja aeglasemate südamikega, et optimeerida tugevasti keermestatud töökoormust, lisaks see protsessori konstruktsioonile märkimisväärset keerukust ja tõenäoliselt ei pruugi rakendused seda õigesti toetada.

Võta hüpoteetiline protsessor kahe kiirega Kaby järve( 7. põlvkonna) südamikud ja kaheksa aeglaselt Goldmonti( Atom) südamikud. Teil oleks kokku 10 südamikku, ja sellisele protsessorile optimeeritud tugevalt keermestatud töökoormus võib näha jõudlust ja tõhusust võrreldes tavapärase neljakordse Kaby järve protsessoriga. Kuid erinevat tüüpi tuumad on metsikult erinevad jõudluse tasemed ja aeglane südamikud isegi ei toeta mõnda juhendit, mida toetavad kiiret südamikud, nagu AVX( ARM aitab seda probleemi vältida, nõudes nii suurte kui ka väikeste südamike toetamist samade juhistega)

Enamikul Windowsis asuvatel mitut keermestatud rakendustel on eelduseks, et igal südamikul on sama või peaaegu sama jõudlusaste ning et nad võivad täita samu juhiseid, mistõttu selline asümmeetria võib viia vähem kui ideaalse jõudluse saavutamiseni, võib-ollaisegi jookseb kokku, kui see kasutab juhiseid, mida ei toeta aeglasemad südamikud. Kuigi Intel võib modifitseerida aeglaseid südamikke, et lisada täiendavat juhenditeenust nii, et kõik südamikud saaksid täita kõiki juhiseid, ei lahendaks see heterogeensete protsessorite tarkvaratoe probleemid.

Erinev lähenemine rakenduste disainile, mis on teie küsimusele ilmselt mõtlema lähemal, kasutab graafikaprotsessorit rakenduste väga paralleelsete osade kiirendamiseks. Seda saab teha kasutades API-sid, nagu OpenCL ja CUDA.Mis puutub ühe kiibi lahendusesse, siis AMD toetab riistvaratoetust GPU kiirendamiseks oma APU-s, mis ühendab traditsioonilise protsessoriga ja suure jõudlusega integreeritud GPU sama kiibiga, nagu heterogeensed süsteemi arhitektuurid, kuigi see ei näinud palju tööstuse kasutuselevõttu väljaspoolmõnest konkreetsest rakendusest.

Kas teil on seletamiseks midagi lisada? Helistage kommentaarides. Kas soovite lugeda rohkem vastuseid teistelt tech-savvy Stack Exchange'i kasutajatelt? Tutvu täieliku arutelu teemaga siit.

Image Credit: Mirko Waltermann( Flickr)