maskinvare
Hvorfor kutter Intel ut SMT, en teknologi som de i sin tid var ledende på?
Intel har i det siste slitt med feil og varmgang på sine toppmodeller. Kan dette grepet gi dem vind i seilene igjen?
SMT – «simultaneous multithreading» – er ikke et nytt påfunn, men Intel ble med sine Pentium 4-prosessorer de første som gjorde teknologien tilgjengelig for menigmann, da under betengelsen «hyperthreading».
Det nærmer seg 25 år siden, og nå vil Intel tilsynelatende dumpe teknologien de i sin tid var i spydspissen for.
Først av alt, hva er SMT?
Kort fortalt er det slik at når en prosessor jobber med en oppgave, så jobber den i realiteten med mange små oppgaver som til sammen utgjør den oppgaven vi brukere innbiller oss at vi har bedt den gjøre. Hent data fra der, regn ut slik, sendt data til sånn, og så videre – milliarder av ganger i sekundet. Men ikke alle deler av en prosessor opererer i samme hastighet, eller er opptatt med like mye arbeid til enhver tid.
Det betyr at noen komponenter på en prosessor kan bli stående uvirksom og vente på å få det som trengs – utregninger, data, instruksjoner, og så videre – fra en annen del.
Det er dette SMT forsøker å gjøre noe med. Når en prosessorkjerne har komponenter som venter på noe, kan disse komponentene ta seg av å løse andre oppgaver.
Slik kan man med SMT benytte én prosessorkjerne til å simulere to.
Bagasjebånd
SMT kan sammenlignes med å lempe bagasje av et samlebånd. Hvis en person må stå der og vente på hver koffert, blir det mye sløseri med tid dersom det er stort mellomrom mellom koffertene.
Har man derimot to samlebånd, vil ikke stort mellomrom være like problematisk, siden personen da kan ta en koffert fra det andre båndet i stedet for å vente på neste koffert fra det først.
Om de to båndene skulle levere en koffert samtidig, derimot, vil det ikke være noe å spare, men det skjer sannsynligvis kun unntaksvis.
Det er dermed ikke slik at man får dobbelt ytelse av det, og det hele avhenger i tillegg ganske mye av hvilke oppgaver prosessorkjernen er satt til å løse.
Man kan også simulere flere kjerner – IBMs Power7 har for eksempel ikke to, men fire – men jo flere, jo mindre effektiv blir teknikken.
Med fire samlebånd vil det være flere kofferter som dukker opp samtidig, enn med bare to.
Gamle dager
SMT, eller hyperthreading som Intel valgte å kalle det, var en fantastisk fordel da Intel hadde Pentium 4 som sitt hovedprodukt for vanlige forbruker-PCer på tidlige 2000-tall.
Dengang var det vanlig med kun én enkelt prosessorkjerne per prosessor, og ved hjelp av SMT kunne man da få en prosentvis kraftig økning i ytelse når det var behov for å gjøre flere ting samtidig.
Dette høres jo gull ut, så hvorfor vil Intel slutte med det nå?
Kort og godt fordi utviklingen har gått sin gang.
Utvikling
For det første er det nå ikke uvanlig med fra seks til noen og 30 kjerner per prosessor nå for tiden, så behovet for virtuelle prosessorkjerner er ikke det det engang var. Man tjener rett og slett ikke så mye på det, lenger.
Faktisk er det enkelte som foretrekker å slå av hele funksjonen.
Har man for eksempel en prosessor med 16 fysiske kjerner, er det ikke sikkert man får noe bedre ytelse dersom man i tillegg har 16 virtuelle, spesielt ikke dersom programvaren ikke er laget for å utnytte så mange.
Vanligvis kan en prosessor med SMT deaktivert gå litt raskere enn ellers, fordi den da utvikler litt mindre varme og trenger litt mindre strøm enn om SMT er aktivert.
I tillegg vil de virtuelle kjernene til tider benytte de samme fellesressursene som de fysiske, og dermed konkurrere om dem, slik at begge deler kan få litt begrenset ytelse av å måtte vente på hverandre.
Krever plass og strøm
For det andre er det ikke slik at SMT ikke opptar plass på brikken, eller tar fra brikkens tilgjengelige ressurser. En prosessor må ha en del egne kretser for å kunne benytte SMT-teknologien, og disse forsvinner ikke selv om SMT er slått av.
Og når man lager prosessorer, er hvor mange man får ut av hver silisiumskive svært viktig, så man ønsker ikke å sløse med plassen.
Ulike fysiske kjerner
Der AMD ennå kjører et antall kjerner på sine prosessorer, og alle i prinsippet er like og støtter SMT, så har Intel valgt å bygge opp sine prosessorer med et varierende antall av ulike typer kjerner.
Intels «vanlige» kjerner – de som tilsvarer AMD sine – er det de kaller P-kjerner. P for «performance», og dette er kjernene som har støtte for SMT.
Men i tillegg har Intel det de kaller E-kjerner – hvor E står for «efficient». Dette er små kjerner som ikke krever så mye strøm, men som heller ikke har i nærheten av den samme ytelsen som P-kjernene.
I tillegg har Intel ny type E-kjerne, såkalte LP E-kjerner. LP for «low power», og disse skal bruke enda mindre strøm enn de vanlige E-kjernene igjen. Ingen av dem vil egne seg til tunge oppgaver, men så lenge man har nok P-kjerner, vil de virtuelle SMT-baserte kjernene sjelden eller aldri bli satt til det heller.
En P-kjerne kan ta rundt fire ganger så mye fysisk plass på en prosessor som en E-kjerne, men også ha en ytelse som er tre til fem ganger bedre, avhengig av oppgaven. Strømforbruket er tilsvarende tre til fem ganger høyere enn for en vanlig E-kjerne – som igjen bruker rundt fire ganger så mye strøm som en LP E-kjerne.
Ifølge Intel skal E-kjerner også kreve mindre plass på brikken enn SMT-kretsene gjør. Da er det liten vits i å simulere prosessorkjerner, når man faktisk kan spare på å lage fysiske kjerner i stedet for virtuelle.
Mer effektiv
Ifølge Intel vil man summa summarum med dette spare 15 prosent på brikkeareal, og samtidig få en ytelsesøkning på rundt fem prosent per watt, slik at prosessoren totalt sett også vil bruke mindre strøm.
AMD har i sine siste prosessorgenerasjoner hatt en del bedre strømforbruk enn Intel, som har slitt med at toppmodellene deres har blitt fryktelig varme og dermed må skru ned hastigheten for å begrense varmeutviklingen, noe som igjen selvsagt går ut over ytelsen.
Dette har vi også sett selv for eksempel da vi testet Alienware X14 i 2022.
Så hver eneste watt spart, er bra for Intel.
Noen av Intels tidligere toppmodeller har bare vært i stand til å holde maksimal ytelse i et sekund eller så, før hastigheten måtte skrus ned.
AMD har ikke dette problemet i like stor grad, så derfor har de holdt seg til de vanlige kjernene – og støtte for SMT.
Ny oppgavestyring kan gi bedre ytelse
Intel har imidlertid spennende ting på gang som kan gi dem overtaket tilbake over erkekonkurrenten.
En av disse er en ny enhet for oppgavestyring som kan dele opp oppgavene etter behov. Denne teknikken involverer noe som kalles «Rentable Units». Vanligvis vil man gi den tyngste oppgaven til P-kjernene, som har mest ytelse å bruke på dem, mens de lettere oppgavene går til E-kjernene.
Høres logisk ut, men hva hvis P-kjernene på grunn av den høye ytelsen blir ferdige med sitt før E-kjernene gjør det?
Da må P-kjernene vente på at E-kjernene skal gjøre seg ferdige, og hele oppgaven tar lenger tid enn den trengte å gjøre.
Med den nye teknikken kan Intels prosessorer dele opp underoppgavene og fordele dem slik at både E-kjerner og P-kjerner blir ferdige omtrent samtidig.
Dermed må ikke den overordnede oppgaven vente, og på den måten er teknikken både mer fleksibel og potensielt mer effektiv enn SMT.