Påvirker Hyper Threading CPU temperaturen ?

Bundkort / CPU d.  20. juni. 2018, skrevet af Gripen90
Vist: 2002 gange.

Gripen90
 
Senior Skribent
Tilføjet:
20-06-2018 12:19:49
Svar/Indlæg:
15982/637
Jeg har prøvet at finde ud at det, men får 50% svar på ja og 50% svar på nej siden, så nu tænker jeg, at jeg vil spørge de kyndige brugere af hwt !

Hyper Threading på eksempelvis en core i7 CPU, når dette er slået til ,har det så den effekt at CPU'en under 100% load på alle fysiske kerner så bliver varmere/bruger mere watt end hvis Hyper Threading er slået fra ?.

Det lyder måske som et meget simpelt spørgsmål, og har spurgt andetsteds hvilken næsten resulterede i tvekamp da folk var splittet 50/50 på spørgsmålet.
NicklasAPJ
 
Skribent
Tilføjet:
20-06-2018 13:26:29
Svar/Indlæg:
1893/88
Ja, Det gør det.

Det ses også nogle gange at du kan overclocke højere uden HT da du har mere headroom vdr volt og temps.


Svaret blev redigeret 1 gang, sidst af NicklasAPJ d. 20-06-2018 13:26:59.


Ginner
 
Elitebruger
Tilføjet:
20-06-2018 13:58:35
Svar/Indlæg:
524/16
Gripen, så vidt jeg kan tænke mig frem til, vil det have lidt at sige, da 100% med og uden HT, da 100% belastning uden HT nok ofte ikke vil belaste alle dele af kernen, som jo er det man udnytter ved HT, at køre flere tråde i forskellige dele af cpu'en.

Ikke at jeg tror det vil gøre store udsving i temperatur om det er aktiveret eller ej. 🙂


freak_master
 
Redaktør
Tilføjet:
20-06-2018 14:34:31
Svar/Indlæg:
6368/477
Hver gang jeg forsøger at lave en god score i f.eks. SuperPI så slår jeg det altid fra.

Hvis du køre en 32M med HT f.eks. ved 5.5GHz på en 8700K får du en tydelig lavere ydelse end hvis HT er slået fra.

Jeg ved også at de større X79 og X99 CPU'er er noget sværer at holde kolde med LN2 når HT er aktiveret end hvis det ikke er.

Jeg har ingen målinger på det, jeg ved bare at HT kan tage lidt af single core ydelse, men giver en del i multitask, og at CPU'en bliver ekstra varm. Ren erfaring og ingen konkrete beviser for det.

Jeg kan især huske forskellen på 2600K og 2500K. CPU'erne er helt ens, men 2600K løb for varm ved samme volt, hvor 2500K fint kunne klare sig. 2500K kunne jeg presse til 1.6 volt og holde den kold, med 2600K landede jeg nær de 1.55 istedet.


Svaret blev redigeret 1 gang, sidst af freak_master d. 20-06-2018 14:36:33.


Sven
 
Superbruger
Tilføjet:
20-06-2018 14:51:28
Svar/Indlæg:
3661/82
Ja og nej.

HT giver en core mulighed for at koere instruktioner fra 2 traade (I dit software) ad gangen. Hvis f.eks traad1 skal hente noget data fra ram saa skal CORE'en staa stille og vente paa din langsomme ram.
I disse ventet episoder kan en cpu med Hyper threading ny koere instruktioenr for en sekundaer traad.


Det betyder naturligvs at eftersom din cpu arbejder mere og ikke har saa mange venter perioder hvor din cpu skan slukkk for corenes. saa laver du mere varme.

Temperaturen kommer altsaa fra det ekstra arbejder der bliver udfoert og ikke saa meget fra HT i sig selv


Ved lav belastning hvor der ikke laves mere arbejde via HT er der naeppe en maerkbar forskel i temp



Aka hvis du loader din cpu med en tung traade og laaser den til en given core, er der ikke maerkbar varme forskel mellem at koere med og uden HT

Eller sagt paaen enden maade

Hvis du loader din 4 fysisk core cpu med 4 harde traade er der heller ikke en varme forskelle.

Hvis du loader din 4 fysiske core cpu med 8 tunge traade saa kan du opleve en varme foroeges med HT forid din cpu nu udforer flere instruktioner



Grunden til du faa saa mange ja og nej svar, er fordi det er situaionsbestemt og de fleste folk bare have lavet en enkelt simpelt test uden at forstaa hvordan SMT virker.

Bare se hvor mange folker der siger at en cpu har X antal . Det er foerste hint til at de ikke forstaar SMT og load fordeling



Svaret blev redigeret 4 gange, sidst af Sven Bent d. 20-06-2018 14:59:48.


Walenad
 
Elitebruger
Tilføjet:
20-06-2018 15:15:14
Svar/Indlæg:
1906/25
100% load er 100% load - så den bliver vel næppe varmere.

Dit spørgsmål er jo hypotetisk, for hvordan definerer DU 100% load helt præcist - så svaret bliver det også.

(Hvad er højest? Rundetårn eller et tordenskrald? Og vil et tordenskrald være højere hvis du står på toppen af rundetårn?)


Sven
 
Superbruger
Tilføjet:
20-06-2018 15:24:52
Svar/Indlæg:
3661/82
#5
naar de fleste folk snakker om load taler de om hvad der reportes fra CPU scheduleren. aka hvad der ses I taskmanager


@op
Et andet sjovt faenomen er jo at m,ed HT for du dbl antal fysiske reservabra tids enhender. men det jo stadigvaek til de samme fysisiek ressorucer.

Saa 50% load med hyperthreading kan vaere det samme som 100% load uden Hyperthreading.


Gripen90
 
Senior Skribent
Tilføjet:
20-06-2018 15:54:39
Svar/Indlæg:
15982/637
Takker for alle svarerne 😉

Jeg tænker dog på, at hvis f.eks en ci7 7700 med 4 cores 8 threads er 100% belastet på alle fysiske core, hvorledes giver det så ressourcer til at instruere de 4 logiske cores ? Er det et bestemt overhead i CPU/BIOS eller windows scheduler, der gør at de logiske cores stadig kan "fungerer" selv om de fysiske er makisimalt belastet ?

Jeg sidder pt selv og tester med div. core i7 modeller og sågar ældre Pentium 4 med HT. Inden jeg giver nogle resultater, så vil jeg bare være sikker på at kunne forstå præmissen og have en konsistent test metode.


Svaret blev redigeret 1 gang, sidst af Gripen90 d. 20-06-2018 15:56:50.


Sven
 
Superbruger
Tilføjet:
20-06-2018 16:13:46
Svar/Indlæg:
3661/82
#7

Igen bliver jeg noed til at rette. i dette tilfaelde er det mere end bare for at vaare anal kongen.

Din cpu har ikke traade/threads. Det har dit software.
Din cpu har logiske cores eller thread execution units, der kan bruges til at haandter en traad fra dit software.

Traade er i dit software (og der er mange hundreded)
Du bliver neod til at forstaa dette for at forstaa svaret til dit spoergsmaal


Jeg tænker dog på, at hvis f.eks en i7 7700 med 4 cores 8 threads er 100% belastet på alle fysiske

hvis din cpu er 100% belastes fysisk set paa alle dine cpu ressorucer goer hyper threading ingenting (udover lidt extra stroem til traad handteringen).
men igen husk paa at det er ikke hvad du ser i taskmanger.
der ser du tidsmaessigt reservation af cpu'en

saa igen 50% tidsmaesigt reservering (hvad du ser i taskmanager) under HT kan vare 100% load paa de fysisk ressourcer i din cpu.

Det er fundamentalt at forstaa at load du ser i windows ikke er load paa din cpu. men blot tid der er blevet tildelt til en proces. 100% taskmanger laod til en process kan give mindre varme end 25% taskmanager load til en anden.

Eksempeil tag en batch filed der lbot loope en go to command og koer en for hver cores. du vil se 100% laod i taskmanger fordi din cpu er 100% reseverer af disse batchfiles. men det er intet cpu fysisk load inden for den tids ramme.

En enkelt traad med prime95 tager den core den koere paa 100% af gangen og lever derfor mere fysisk arbejde for cpu'en



Er det et bestemt overhead i CPU/BIOS eller windows scheduler, der gør at de logiske cores stadig kan "fungerer" selv om de fysiske er makisimalt belastet ?

Igen hvis du menr fysisk saa nej saa er der ikke laenger noget frie ressorucer tilbage. hvis du mener 100% paa 4 fysiske core set i taskmanger saa ja kan der var op till 99% frie fysiske ressorucer paa dine cores, som SMT/HT kan udnyttes hvis at bruge isntruktioner fra flere traade ind i den samem fyssisk cores.


samme aarsag at prime95 stressed mere end crap som superpi selvom de begger bruger 100% af cpu tidsmaessig ( set i taskmanager)



Svaret blev redigeret 1 gang, sidst af Sven Bent d. 20-06-2018 16:16:14.


Sven
 
Superbruger
Tilføjet:
20-06-2018 17:03:39
Svar/Indlæg:
3661/82
Windows tildeller din cpu saaledes at den opdeler din cpu adgang i smaa tids klumper kaldet quanta.

naar en traad skal have kode eksekveret bliver den tildelt et eller flere quanta (alt efter om det er baggrunds eller forgraunds og hvordan du har sat det op i windows).

lad os blot sige 1 for at holde det nemt


Hvis du har 7 traade der beder om cpu tid og du har en 4F/4l cpu saa har du kun 4 quanta at dele ud (en for hver logisk cores)

Traad 1 faar sas quanta der gaar til core 1
traad 2 faar saa quanta der gaar til core 2
osv osv

De sidste 3 traade bliver sat paa vente listen og maa vente til naeste omgang.

Der udfore altsaa nu insktrutioner fra 4 traade i dit system.
alt efer hvor effektiv kode er og om dne udnytte alle sub komponenter af en core (interger/ FPU pipelines of fetch units) saa kan loaded vare 1-100% fysisk set

lad os antages at disse traade kun bruger 80% af en cores sub komponenter

Din cpu er nu 100% optager af 4 traade saa der vises 100% i taskmanager
men din cpu er kun 80% belastes der er altsaa 20% af din fysisk cores subkomponer der sider og gaber

ind kommer SMT
stadigvaek 4 fysisk cores men windows ser nu 8 (logiske) cores)
Windows har altsa nu 8 quanta af gangen den kan dele ud
gar vi tilbage til de 7 traade fra foer er bliver det altsa nogen luinde lagt saaledes ud

Traad1 gaar to logisk core 1 som gar til fysisk core1
Traad2 gaar to logisk core 2 som gar til fysisk core1
Traad3 gaar to logisk core 3 som gar til fysisk core2
Traad4 gaar to logisk core 4 som gar til fysisk core2
Traad5 gaar to logisk core 5 som gar til fysisk core3
Traad6 gaar to logisk core 6 som gar til fysisk core3
Traad7 gaar to logisk core 7 som gar til fysisk core4
"Idle" gaar to logisk core 8 som gar til fysisk core4

sodm du kan see nu i samme tids interval har du kun reservestes 7/8% af din CPU's quanta. dvs taksmanager vil nu vise 87.5% brug
din 3 foerste coreer stadigvake fyldt med traade der kun tager 80% af e ncore sub componenter. men den kan nu vaelger fra 2 traade saa mens Traad1 bruger fetch delen af din core saa kan traadb bruger udregnings enhede og du kan nu opnaa fysisk udnyttelse af din cor 100%


Den foerste sitatione (uden SMT) bruger du altsaa 80% af dine cpu rent fysisk set 4x 100%*80% ud af 400% = 80%
med SMT bruger du altsaa nu (3 *100%*100%) + (1 *100*80%) ud af 400% = 95% af din CPU rent fysisk

Saa naturlgivis at bruger din cpu 15% mere rent fysisk selvom du gar fra 100% cpu load i taskmanager til kun at vise 87.5. vil give mere varme.

men du har ogsaa opnaets 95/80-1 = 18.75% mere performance rent raat set


P.S.
Great at forum loggede mig ud mens jeg skrev saa den ikke opfangede mit foerste submit



Sven
 
Superbruger
Tilføjet:
20-06-2018 17:22:24
Svar/Indlæg:
3661/82
Del 3. (side info)

naar du nu forstar hvordan traade fra dit software flyttes rund til dine fysiske cores igennem dine logiske cores under SMT saa er der heller ikke langt f ra at forstaar hvorofr SMT skader performance i nogle tilfaelde.

Windows er ikek bekendt med de fysiske cores bag logiske cores og ser logisk cores som blot varende cores det betyder at den til tider kan tildeler qunata lidt uheldigt

las os antage 2 cpu tunge traade paa en I7 med 4 fysiske cores og 8 logiske cores


TRaad1 goer til Logiske cores 1 som gaar til fysiske cores 1
Traad2 goer til Logiske cores 2 som gaar til fysiske cores 1
Resten eksvere blot idle traaden traadene

I de tilfalde faar du kun undyttes en fysisk cpu og din magtige 4 core spu med SMT er langsommer end hvis du blot havde 2 fysisk cores.

Hvor tit sker dette sa er maaske hvad en nysgerri persone vil sige.
Vi ved at windows CPU scheduleling er en stor modificret round robin metode. saa der er mange undtagelse (isaer med hensyl tip prioritering for at undgaa idle dead locks. saa der er masser af undtagelse til hvad jeg kommer frem til her

Ved 3 traade saa har du foelgende
traad1 har 8/8 logiskce cores som gar til en "fri" fysisk core
Traad2 har 6/7 logiscie cores som gaar til en "Fry fysisk core

saa cae 1/7 gange eller ca 14% af tiden. hvis du mister 50% performance af dette er det altsaa tale om aet tab af ca 7% performance grundet SMT er slutte til paa din core i7 med $f/8l cores


lad os proeve med 4 cpu tunge traade

Traad1 har 8/8 logiskce cores som gar til en "fri" fysisk core
Traad1 har 6/7 logiskce cores som gar til en "fri" fysisk core
Traad1 har 4/6 logiskce cores som gar til en "fri" fysisk core ved 1/7 tilfaelde og.. ok jeg gik tabt i det...
men det burde nemt illuster hvorfor folk for lidt mere performace ud af at slaa SMT fraa nar det software de tester med ikke har nok traade til at udnytte SMT.


Hvilket naturligvis mit project mercury har en loesning paa indbygget 🤣