If-Koubou

Zašto CPU jezgre imaju istu brzinu umjesto različitih?

Zašto CPU jezgre imaju istu brzinu umjesto različitih? (Kako da)

Ako ste ikada napravili mnogo usporednih kupovina za novi CPU, možda ste primijetili da sve jezgre izgledaju kao da imaju brzinu, a ne kombinaciju različitih. Zašto je to? Danas SuperUser Q & A post ima odgovor na pitanje čudnog čitatelja.

Današnja pitanja i odgovori nam se javljaju zahvaljujući SuperUseru - podjele Stack Exchange-a, zajednice-driven grupiranja Q & A web stranica.

Pitanje

SuperUser čitač 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 posla za računalo. Izvedba u videoigrama obično se određuje jednostrukom brzinom, a aplikacije kao što su uređivanje videozapisa određuju broj jezgri. Što se tiče onoga što je dostupno na tržištu, čini se da svi CPU-ovi imaju otprilike jednaku brzinu s glavnim razlikama što su više niti ili više jezgri.

Na primjer:

  • Intel Core i5-7600K, osnovna frekvencija 3.80 GHz, 4 jezgre, 4 niti
  • Intel Core i7-7700K, osnovna frekvencija 4,20 GHz, 4 jezgre, 8 niti
  • AMD Ryzen 5 1600X, osnovna frekvencija 3,60 GHz, 6 jezgri, 12 niti
  • AMD Ryzen 7 1800X, frekvencija baze 3,60 GHz, 8 jezgri, 16 niti

Zašto vidimo ovaj uzorak povećanja jezgri, ali sve jezgre imaju istu brzinu sata? Zašto nema inačica s različitim brzinama sata? Na primjer, dvije "velike" jezgre i mnoštvo malih jezgri.

Umjesto, recimo, četiri jezgre na 4,0 GHz (tj. 4 × 4 GHz, maksimum od 16 GHz), kako o CPU s dvije jezgre koji rade na 4,0 GHz i četiri jezgre koji rade na 2,0 GHz (tj. 2 × 4,0 GHz + 4 × 2,0 GHz, najviše 16 GHz)? Hoće li druga opcija biti jednako dobra u jednokratnim radnim opterećenjima, ali je možda bolja u višestrukim opterećenjima?

Postavljam to kao opće pitanje, a ne posebno u odnosu na gore navedene procesore ili na bilo koje određeno radno opterećenje. Samo sam znatiželjan zašto je uzorak onakav kakav jest.

Zašto CPU jezgre imaju istu brzinu umjesto različitih?

Odgovor

SuperUser suradnik 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 uređajima koji rade na ARM-u koji implementiraju velik. LITTLE, procesor sadrži jezgre s različitim performansama i profilima snage, tj. Neke jezgre brzo pokreću, ali privlače mnogo snage (brže arhitekture i / ili više satove) dok su drugi energetski učinkoviti ali spor ( sporije arhitekture i / ili niže satove). To je korisno jer se potrošnja energije povećava nerazmjerno dok povećavate performanse nakon što dosegnete određenu točku. Ideja je da dobijete izvedbu kada vam je potrebna i vijek trajanja baterije kada to ne učinite.

Na stolnim računalima potrošnja energije znatno je manje važna, stoga to nije doista neophodno. Većina aplikacija očekuje da svaka jezgra ima slične karakteristike performansi, a raspoređivanje procesa za HMP sustave mnogo je složenije od raspoređivanja za tradicionalne simetrične višestruke (SMP) sustave (tehnički, Windows 10 ima podršku za HMP, ali je uglavnom namijenjen mobilnom uređaji koji upotrebljavaju ARM velik. LITTLE).

Također, većina desktop i laptop procesora danas nisu termički ili električki ograničeni na točku gdje neke jezgre trebaju raditi brže od drugih, čak i za kratke eksplozije. U osnovi smo pogodili zid o tome kako brzo možemo napraviti pojedinačne jezgre, pa zamjenjujući neke jezgre sporijim neće dopustiti preostale jezgre da se brže rade.

Iako postoji nekoliko procesora za obradu računala koji imaju jednu ili dvije jezgre koji mogu raditi brže od ostalih, ova je mogućnost trenutno ograničena na određene vrlo napredne Intelove procesore (poznat kao Turbo Boost Max Technology 3.0) i uključuje samo blagi dobitak performanse za one jezgre koje se mogu izvoditi brže.

Iako je svakako moguće dizajnirati tradicionalni procesor x86 s velikim, brzim jezgrama i manjim, sporijim jezgrama za optimiziranje za teško opterećene radne opterećenja, to bi dodalo znatnu složenost procesoru, a aplikacije vjerojatno neće pravilno podržavati.

Uzmite hipotetski procesor s dvije jezgre brzog jezera Kaby (7. generacija) i osam uskih jezgara Goldmont (Atom). Imat ćete ukupno 10 jezgri, a opterećena opterećenja koja su optimizirana za ovu vrstu procesora mogu imati povećanu učinkovitost i učinkovitost u odnosu na normalni procesor jezgre četverojezgrenog jezera Kaby. Međutim, različite vrste jezgri imaju divlje različite razine izvedbe, a spore jezgre čak ne podržavaju neke od instrukcija koje podržavaju brze jezgre, kao što je AVX (ARM izbjegava taj problem zahtijevajući i velika i sitna jezgra da podržavaju iste upute ).

Opet, većina aplikacija s više navoja temeljenih na sustavu Windows pretpostavlja da svaka jezgra ima istu ili gotovo istu razinu performansi i može izvršiti iste upute pa će takva vrsta asimetrije vjerojatno rezultirati u performansama manje od idealne, možda čak i padne ako upotrebljava upute koje ne podržavaju usporene jezgre. Iako bi Intel mogao modificirati polagane jezgre kako bi dodao naprednu podršku za upute, tako da sve jezgre mogu izvršiti sve upute, to ne bi riješilo probleme s programskom podrškom za heterogene procesore.

Drugi pristup dizajnu aplikacija, bliži onome što vjerojatno razmišljate o svom 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 single-chip rješenja, AMD promiče hardversku podršku za GPU ubrzanje u svojim APU-ovima, koji kombinira tradicionalni procesor i integrirani GPU s visokim performansama u isti čip, kao Heterogena arhitektura sustava, iako to nije vidjelo puno prihvaćanja industrije izvan od nekoliko specijaliziranih aplikacija.

Imate li nešto za objašnjenje? Zvuči u komentarima. Želite li pročitati više odgovora od drugih tehnoloških korisnika Stack Exchangea? Pogledajte ovdje cijelu raspravu.

Slikovni kredit: Mirko Waltermann (Flickr)