Gå til innhold

HyperThreading - av eller på?


Anbefalte innlegg

Har prøvd å se etter diskusjoner rundt dette, men har ikke greid å finne noe.

 

Jeg har en i7 920. Den har fire fysiske kjerner i tillegg til HyperThreading (som hovedkortet har slått på som default).

 

PC'en brukes for det meste til spilling samt konvertering av lyd fra FLAC til MP3 osv.

 

Det jeg lurer på rundt HyperThreading er: hvis et spill har støtte for flere kjerner (en del spill støtter vel iaf to kjerner i disse dager), hvordan fungerer tildelingen av kjerner?

 

I Windows (jeg kjører XP x64) så ser man 8 kjerner i Task Manager. Hvis et spill greier å utnytte to kjerner, hvordan unngås det at de to kjernene som tildeles ikke er en og samme fysiske kjerne?

 

Er man best tjent med å skru av HyperThreading? Eller finnes det en form for intelligens i enten spill, OS eller CPU som sørger for at trådene separeres over fysiske kjerner?

 

Sliter litt med å forklare dette godt ser jeg, men noen skjønner sikkert hva jeg mener =)

Lenke til kommentar
Videoannonse
Annonse

OSet ser forskjell på HT og en ekstra kjerne så her foretrekker den en ekstra kjerne foran hyperthreading.

Sistnevnte fungerer også dårlig i spill, grunnet måten dataene kjører, i tunge programmer hvor risikoen for at feil data kommer inn så kan HT hjelpe på ved å redusere tiden for omstilling.

 

Akkurat som ett samlebånd hvor en arbeider skal skru sammen en bil.

Kommer det inn feil deler på ett bånd så lar hyperthreading arbeideren se på samlebånd nr 2 som da mest sannsynlig har korrekt mens det som var feil går ut og kommer inn riktig igjen.

Lenke til kommentar

Her er dokumentasjon på at OSet i det minste har et API som er i stand til å skille mellom logiske og fysiske kjerner:

EDIT: oops, det var for Windows 7, her er en artikkel som beskriver hvordan programvare kan detektere om de kjører på et hyperthreadet system:

http://stackoverflow.com/questions/188503/...r-of-processors

 

Så informasjonen skal være tilgjengelig.

 

Jeg har ikke prøvd noe av dette selv, det er kun google som snakker her.

Endret av SjonkelSID
Lenke til kommentar

Jeg gjorde en test nå. Jeg kjørte flere instanser av FLAC (konvertere store wav-filer til FLAC).

FLAC i seg selv kjører kun en tråd av gangen.

 

Når jeg kjørte 2 instanser av FLAC så var det helt random hvilke av 8 corene de tok i bruk. Etter å ha satt i gang prosessen noen ganger så havnet de faktisk på hver sin logiske core på samme fysiske core. Sjansen for det er vel en sjuendedel.

Når jeg kjørte 4 instanser så greide jeg ikke å få dem til å kjøre på 4 ulike fysiske cores. Det ville nok gått til slutt, men oddsen for å få 4 prosesser til å gå på 4 ulike fysiske cores er i dette tilfellet litt over en femtedel eller noe sånt.

 

Jeg kjørte XP x64 SP2 (som er basert på 2003 Server). Jeg skal se om jeg får kjørt samme test i Vista og Windows 7.

 

 

Jeg konkluderer altså med at XP x64 SP2 ikke er i stand til å fordele trådene på en fornuftig måte, altså er det best å slå av HyperThreading med mindre man kjører programmerer som utnytter HT på en måte som veier opp for mine resultater.

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...