Zašto sve jezgre procesora imaju istu brzinu umjesto različitih?
Ako ste ikada učinili mnogo za usporedbu s novim CPU-om, možda ste primijetili da sve jezgre imaju brzinu, a ne kombinaciju različitih. Zašto je to? Današnja postova s pitanjima o odgovorima korisnika imaju odgovor na pitanje znatiželjnog čitatelja.
Današnja sesija pitanja i odgovora dolazi nam ljubaznošću SuperUser-a, podjele Stack Exchangea, grupiranja web-lokacija za pitanja i odgovore u zajednici.
Pitanje
Čitač superkorisnika Jamie želi znati zašto CPU jezgre imaju istu brzinu umjesto različitih:
Općenito, ako kupujete novo računalo, odredili biste koji procesor kupiti na temelju očekivanog radnog opterećenja za računalo. Performanse u video igrama obično se određuju brzinom jedne jezgre, dok se aplikacije poput uređivanja videa određuju brojem jezgri. Što se tiče onoga što je dostupno na tržištu, čini se da svi CPU-ovi imaju otprilike istu brzinu, a glavne razlike su više niti ili više jezgri..
Na primjer:
- Intel Core i5-7600K, bazna frekvencija 3,8 GHz, 4 jezgre, 4 niti
- Intel Core i7-7700K, osnovna frekvencija 4,20 GHz, 4 jezgre, 8 niti
- AMD Ryzen 5 1600X, bazna frekvencija 3,6 GHz, 6 jezgri, 12 niti
- AMD Ryzen 7 1800X, osnovna frekvencija 3,6 GHz, 8 jezgri, 16 niti
Zašto vidimo ovaj uzorak povećanja jezgre, a sve jezgre imaju istu brzinu? Zašto nema varijanti s različitim brzinama takta? Na primjer, dvije “velike” jezgre i mnogo malih jezgri.
Umjesto, recimo, četiri jezgre na 4,0 GHz (tj. 4 × 4 GHz, 16 GHz maksimum), kako o CPU s dvije jezgre radi na 4,0 GHz i četiri jezgre radi na 2,0 GHz (tj. 2 × 4,0 GHz + 4 × 2,0 GHz, maksimalno 16 GHz)? Hoće li druga opcija biti jednako dobra u jednom navojnom opterećenju, ali potencijalno bolje kod višestrukih radnih opterećenja?
Pitam to kao opće pitanje, a ne konkretno u vezi s gore navedenim CPU-ovima ili o nekom specifičnom radnom opterećenju. Samo sam znatiželjan zašto je uzorak onakav kakav jest.
Zašto CPU jezgre imaju istu brzinu umjesto različitih?
Odgovor
Suradnik SuperUser-a bwDraco ima odgovor za nas:
To je poznato kao heterogena višestruka obrada (HMP) i široko je prihvaćena od strane mobilnih uređaja. U ARM-baziranim uređajima koji implementiraju big.LITTLE, procesor sadrži jezgre s različitim profilima performansi i snage, tj. Neke se jezgre pokreću brzo, ali crpe puno energije (brža arhitektura i / ili više takta), dok su druge energetski učinkovite, ali spore ( sporija arhitektura i / ili niži satovi). To je korisno jer se potrošnja energije povećava neproporcionalno dok povećavate performanse nakon što prijeđete određenu točku. Ideja je ovdje dobiti performanse kada vam je potrebna i trajanje baterije kada to ne učinite.
Na desktop platformama, potrošnja energije je mnogo manje problem, tako da to nije doista potrebno. Većina aplikacija očekuje da svaka jezgra ima slične karakteristike izvedbe, a procesi planiranja za HMP sustave mnogo su složeniji od planiranja za tradicionalne simetrične multi-processing (SMP) sustave (tehnički, Windows 10 ima podršku za HMP, ali je uglavnom namijenjen za mobilne uređaje) uređaji koji koriste ARM big.LITTLE).
Isto tako, većina stolnih i prijenosnih procesora danas nisu termički ili električno ograničeni na točku gdje neke jezgre moraju raditi brže od drugih, čak i za kratke pukotine. U osnovi smo pogodili zid kako brzo možemo napraviti pojedinačne jezgre, tako da zamjena nekih jezgri s sporijim jezgrama neće dopustiti da preostala jezgra rade brže.
Iako postoji nekoliko procesora za stolna računala koji imaju jednu ili dvije jezgre koje mogu raditi brže od ostalih, ova mogućnost je trenutno ograničena na određene vrlo napredne Intel procesore (poznate kao Turbo Boost Max tehnologija 3.0) i uključuje samo neznatno povećanje performanse za one jezgre koje mogu raditi brže.
Iako je svakako moguće dizajnirati tradicionalni x86 procesor s velikim i brzim jezgrama i manjim, sporijim jezgrama kako bi se optimiziralo za velika radna opterećenja, to bi dodalo znatnu složenost dizajnu procesora i aplikacije vjerojatno neće pravilno podržavati.
Uzmite hipotetski procesor s dvije jezgre Kaby Lake (7. generacije) i osam laganih Goldmont (Atom) jezgri. Imali biste ukupno 10 jezgri, a opterećenja s jako navojem, optimizirana za ovu vrstu procesora, mogla bi imati prednost u performansama i učinkovitosti u odnosu na normalni Kade Lake procesor. Međutim, različite vrste jezgara imaju vrlo različite razine performansi, a spore jezgre ne podržavaju čak ni neke od uputa koje podržavaju brze jezgre, kao što je AVX (ARM izbjegava ovaj problem zahtijevajući i velika i mala jezgra da podrže iste upute ).
Opet, većina višenitnih aplikacija temeljenih na sustavu Windows pretpostavlja da svaka jezgra ima istu ili gotovo istu razinu performansi i može izvršavati iste upute, tako da će ova vrsta asimetrije vjerojatno rezultirati performansama koje su manje od idealne, možda čak i ruši ako koristi upute koje ne podržavaju sporije jezgre. Iako je Intel mogao modificirati spore jezgre da bi dodao naprednu podršku za naredbe tako da sva jezgra mogu izvršiti sve upute, to ne bi riješilo probleme sa softverskom podrškom za heterogene procesore.
Drugačiji pristup dizajnu aplikacija, bliže onome o čemu vjerojatno razmišljate u vašem pitanju, koristit će GPU za ubrzavanje visoko paralelnih dijelova aplikacija. To se može učiniti pomoću API-ja kao što su OpenCL i CUDA. Što se tiče rješenja s jednim čipom, AMD promiče hardversku podršku za GPU akceleraciju u svojim APU-ovima, koja kombinira tradicionalni CPU i integrirani grafički procesor visokih performansi u isti čip, kao što je Heterogene System Architecture, iako to nije vidjelo mnogo industrije izvan nekoliko specijaliziranih aplikacija.
Imate li što dodati objašnjenju? Zvuk isključen u komentarima. Želite li pročitati više odgovora od drugih tehničkih korisnika Stack Exchangea? Pogledajte cjelokupnu temu za raspravu ovdje.
Zasluge za sliku: Mirko Waltermann (Flickr)