no.phhsnews.com


no.phhsnews.com / Hvorfor har CPU-kjerner alle samme hastighet i stedet for forskjellige enheter?

Hvorfor har CPU-kjerner alle samme hastighet i stedet for forskjellige enheter?


Hvis du noen gang har gjort mye sammenligning med å kjøpe en ny CPU, har du kanskje lagt merke til at kjerner alle synes å ha fart snarere enn en kombinasjon av forskjellige. Hvorfor det? Dagens SuperUser Q & A-post har svaret på en nysgjerrig leser spørsmål.

Dagens Spørsmål og Svar-sesjon kommer til oss med høflighet av SuperUser-en underavdeling av Stack Exchange, en fellesskapsdrevet gruppe av Q & A-nettsteder.

Spørsmålet

SuperUser-leser Jamie vil vite hvorfor CPU-kjerner alle har samme hastighet i stedet for forskjellige:

Generelt om du kjøper en ny datamaskin, bestemmer du hvilken prosessor som skal kjøpes basert på forventet arbeidsbelastning for datamaskinen . Ytelse i videospill har en tendens til å bestemmes av enkel kjernehastighet, mens programmer som videoredigering bestemmes av antall kjerner. Når det gjelder hva som er tilgjengelig på markedet, synes alle CPUer å ha omtrent samme hastighet med de viktigste forskjellene som er flere tråder eller flere kjerner.

For eksempel:

  • Intel Core i5-7600K, basfrekvens 3,80 GHz, 4 kjerne, 4 tråder
  • Intel Core i7-7700K, basfrekvens 4.20 GHz, 4 kjerner, 8 tråder
  • AMD Ryzen 5 1600X, basisfrekvens 3,60 GHz, 6 kjerner, 12 tråder
  • AMD Ryzen 7 1800X, basfrekvens 3,60 GHz, 8 kjerner, 16 tråder

Hvorfor ser vi dette mønsteret av økende kjerner, men alle kjerner har samme klokkefrekvens? Hvorfor er det ingen varianter med forskjellige klokkehastigheter? For eksempel, to "store" kjerner og mange små kjerner. I stedet for å si fire kjerner på 4,0 GHz (dvs. 4 × 4 GHz, 16 GHz maksimum), hva med en CPU med to kjerner som kjører på 4,0 GHz og fire kjerner som kjører på 2,0 GHz (dvs. 2 × 4,0 GHz + 4 × 2,0 GHz, 16 GHz maksimum)? Ville det andre alternativet være like bra på enkeltrådede arbeidsbelastninger, men potensielt bedre ved multi-threaded arbeidsbelastninger?

Jeg spør dette som et generelt spørsmål og ikke spesifikt med hensyn til CPUene som er nevnt ovenfor eller om en bestemt arbeidsbelastning. Jeg er bare nysgjerrig på hvorfor mønsteret er hva det er.

Hvorfor har CPU-kjerner alle samme hastighet i stedet for forskjellige?

Svaret

SuperUser-bidragsyteren bwDraco har svaret for oss:

Dette er kjent som heterogen multi-processing (HMP) og er allment vedtatt av mobile enheter. I ARM-baserte enheter som implementerer big.LITTLE, inneholder prosessoren kjerner med forskjellige ytelses- og kraftprofiler, dvs. noen kjerner går fort, men tegner mye kraft (raskere arkitektur og / eller høyere klokker) mens andre er energieffektive men sakte ( langsommere arkitektur og / eller lavere klokker). Dette er nyttig fordi strømforbruket har en tendens til å øke uforholdsmessig når du øker ytelsen når du kommer forbi et bestemt punkt. Ideen her er å få ytelse når du trenger det og batterilevetiden når du ikke gjør det.

På stasjonære plattformer er strømforbruket langt mindre et problem, så dette er ikke helt nødvendig. De fleste applikasjoner forventer at hver kjerne har lignende ytelsesegenskaper, og planleggingsprosesser for HMP-systemer er mye mer kompliserte enn planlegging for tradisjonelle symmetriske multi-prosesseringssystemer (teknisk sett har Windows 10 støtte for HMP, men det er hovedsakelig ment for mobil enheter som bruker ARM big.LITTLE).

Dessuten er de fleste stasjonære og bærbare prosessorer i dag ikke termisk eller elektrisk begrenset til det punktet hvor noen kjerner må løpe raskere enn andre, selv for korte utbrudd. Vi har i utgangspunktet slått en vegg på hvor fort vi kan lage individuelle kjerner, så erstatning av noen kjerner med tregere vil ikke tillate at de gjenværende kjernene løper raskere.

Selv om det er noen stasjonære prosessorer som har en eller to kjerner i stand til kjører raskere enn de andre, er denne kapasiteten for tiden begrenset til visse meget avanserte Intel-prosessorer (kjent som Turbo Boost Max Technology 3.0), og innebærer bare en svak ytelse for de kjernene som kan kjøre raskere.

Mens det er absolutt mulig å designe en tradisjonell x86-prosessor med både store, hurtige kjerner og mindre, langsommere kjerner for å optimalisere for hardt belastede arbeidsbelastninger, vil dette legge til betydelig kompleksitet i prosessorutformingen, og det er usannsynlig at applikasjoner ikke støtter det riktig.

Ta en hypotetisk prosessor med to raske Kaby Lake (7. generasjon) kjerner og åtte sakte Goldmont (Atom) kjerner. Du vil ha totalt 10 kjerner, og kraftige gjengede arbeidsbelastninger optimalisert for denne typen prosessor kan se en gevinst i ytelse og effektivitet over en vanlig quad-core Kaby Lake-prosessor. Imidlertid har de forskjellige typer kjerner helt forskjellige ytelsesnivåer, og de sakte kjernene støtter ikke engang noen av instruksjonene som de hurtige kjernene støtter, som AVX (ARM unngår dette problemet ved å kreve at både de store og små kjernene støtter de samme instruksjonene ).

Igjen, antar de fleste Windows-baserte multi-threaded-applikasjoner at hver kjerne har samme eller nesten samme ytelsesnivå og kan utføre samme instruksjoner, slik at denne typen asymmetri sannsynligvis vil resultere i mindre enn Ideell ytelse, kanskje til og med krasjer hvis den bruker instruksjoner som ikke støttes av tregere kjerner. Mens Intel kunne endre langsomme kjerner for å legge til avansert instruksjonsstøtte slik at alle kjerner kan utføre alle instruksjoner, ville dette ikke løse problemer med programvarestøtte for heterogene prosessorer.

En annen tilnærming til applikasjonsdesign, nærmere hva du antakelig tenker om i spørsmålet ditt, ville bruke GPU for akselerasjon av svært parallelle deler av applikasjoner. Dette kan gjøres ved hjelp av APIer som OpenCL og CUDA. Når det gjelder en enkelt-chip-løsning, fremmer AMD maskinvare-støtte for GPU-akselerasjon i sine APUer, som kombinerer en tradisjonell CPU og en høyytelsesintegrert GPU i samme chip, som Heterogene System Architecture, selv om dette ikke har sett mye industriopptak utenfor av noen spesialiserte applikasjoner.

Har du noe å legge til forklaringen? Lyder av i kommentarene. Vil du lese flere svar fra andre tech-savvy Stack Exchange-brukere? Se full diskusjonstråd her.


Bilde Kreditt: Mirko Waltermann (Flickr)


Slik tar du raskere skjermbilder på PlayStation 4

Slik tar du raskere skjermbilder på PlayStation 4

Når du er opptatt i ditt favorittspill - du vet, den du kan spille om og om igjen, og fortsatt elsker alle andre av det - og det skjer noe utrolig, du vil fange det så fort som mulig. Dessverre er PlayStation 4s standard skjermdumpinnstilling sakte . Slik løser du det. Standardhandlingen for å ta et skjermbilde på PS4 (eller PS4 Pro) er å trykke lenge på Del-knappen på kontrolleren - siden en vanlig knapp åpner bare delingsmenyen.

(how-top)

Slik gjør du Alexa bedre for deg

Slik gjør du Alexa bedre for deg

Å Leve i fremtiden med en telefonsamtaler er stor, unntatt når hun ikke forstår dine forespørsler. Her er fem enkle ting du kan gjøre for å sikre at du bruker mer tid på å leke Alexa og mindre tid roping på henne for å misforstå deg. Når det gjelder å forbedre Alexa-opplevelsen, bør du holde en stor ting i tankene: kunstig intelligens er i sin absolutte barndom for øyeblikket, og det hjelper å tenke på Alexa og lignende stemmeassistenter som bokstavelige spedbarn.

(how-top)