Behöver förtydligande angående hyper threading

Trädvy Permalänk
Medlem
Plats
Linköping
Registrerad
Jan 2009

Behöver förtydligande angående hyper threading

Jag kände att mina kunskaper inte riktigt var på topp och googlade hyper threading, hittade följande mening som jag tyckte förklarade det hela rätt bra:

"Hyper-threading allows the two logical CPU cores to share physical execution resources. This can speed things up somewhat — if one virtual CPU is stalled and waiting, the other virtual CPU can borrow its execution resources."

Men då uppstår några funderingar.

Säg att vi har 8 trådar som konstant matas med uppgifter som måste lösas. En Intel 4 kärnig, 8 trådad cpu skulle i detta fallet bara mäkta med att lösa 4 av trådarna sett till påstående ovan, eftersom det inte blir någon väntetid mellan trådarna. Skulle vi istället ha en AMD 8 kärnig cpu skulle den kunna jobba med alla trådar samtidigt eftersom varje tråd inte delar på en fysisk kärna, utan har en helt egen kärna.

Hur kommer det sig då att i alla cpu tunga tester där flertalet trådar används brukar Intels 8 trådiga cpu'er dominera rätt hårt över AMD's? Är det som så att i dessa program uppkommer det faktiskt väntetider mellan trådarna även fast programmen använder säg 8 trådar? Jag bortser även från mikrostrukturella skillnader där 1 Ghz från Intel generellt presterar bättre än 1 Ghz från AMD utan vill enbart få klargörande i hyper threading.

Trädvy Permalänk
Medlem
Plats
Staun
Registrerad
Feb 2012

För att AMD cpu:erna inte har åtta "riktiga" kärnor.

Skickades från m.sweclockers.com

•Enthoo Evolv•i7 4790K•Maximus VII Gene•GTX980 Strix•
•Fury 4x4GB@1866MHz•850Pro@256GB•830@128GB•
•Leadex Platinum@1000W•TC14PE•5xF14HP PWM•
•LS23A700@120Hz•Celeritas MxBrown•EC1 CL•QH-90•
•One+X•Lamina T-8•

Trädvy Permalänk
Medlem
Registrerad
Apr 2012

Jag är ingen expert men det har säkert att göra med att instructions per cycle (IPC) är betydligt högre för Intel och att AMDs kärnor inte är helt fristående från varandra när det gäller resurser.

Intel i7-3770K@4,5GHz 1,275V - ASRock P67 Pro3 REV B3 - Corsair Vengeance Pro DDR3 2133MHz 2x8GB - MSI GTX 1080 Gaming X - Samsung 840 EVO 120GB - WD Caviar Black 6.0TB - Seagate SV35 2TB - Noctua NH-C12P SE14 - LG DVD+-RW - Corsair TX 650W - Antec One Hundred - Dell 25" UltraSharp U2515H

Trädvy Permalänk
Medlem
Plats
Edsbyn
Registrerad
Sep 2011

AMDs design är väl lite tvärt om, Du har 2st kärnor med en tråd vardera i en modul, Men kärnorna i varje modul delar vissa resurser med varandra vilket påverkar prestandan ganska mkt när man belastar båda kärnorna i en modul hårt samtidigt.

Jag kan inte mkt om sånt här med det är så jag har uppfattat det iaf

Stationära:- Corsair 750D - MSI Z87 G45 - 4770K @4,5Ghz + Corsair H110 med 2x Noctua NF-A14 - Corsair XMS 3 4x4GB - XFX Pro series 850w - MSI R9 290 Twin Frozr -2x Samsung 850 EVO 250GB Raid0 -
Bärbar: Asus G75VX
Monitor: Asus PB278Q + LG 27EA73LM 27" Headset: Corsair Vengeance 2000 Mus: Logitech G600 Tangentbord: Func KB-460

Trädvy Permalänk
Entusiast
Plats
Chalmers
Registrerad
Aug 2011

Man behöver förstå hur en CPU är uppbyggd mer detaljerat än vad som nämns i trådstarten. @Yoshman förklarar.

5930K • Corsair DP 32 GiB 2666 MHz • EVGA GTX 980
6600K • Corsair Vengeance 8 GiB 2666 MHz • EVGA GTX 960
Asus ROG Swift • Yamakasi Catleap Q270 2B
Better SweClockers

Trädvy Permalänk
Datavetare
Plats
Stockholm
Registrerad
Jun 2011
Skrivet av mixxo:

Jag kände att mina kunskaper inte riktigt var på topp och googlade hyper threading, hittade följande mening som jag tyckte förklarade det hela rätt bra:

"Hyper-threading allows the two logical CPU cores to share physical execution resources. This can speed things up somewhat — if one virtual CPU is stalled and waiting, the other virtual CPU can borrow its execution resources."

Förklaringen ovan är felaktig. Vad den beskriver är något som kallas barrel processor medan Intels HyperThreading och även AMDs Bulldozer moduler implementerar något som kallas SMT.

Den mest signifikanta skillnaden mellan dessa två är att en "barrel processor" har flera trådar men endast en kör vid varje givet tillfälle. Vinsten är att om någon tråd stallar på en minnesoperation eller liknade så kan andra trådar fortsätta använda beräkningsenheterna. Exempel på saker som använder detta är dagens GPUer samt SPARC T1/T2.

Ett krav för att kalla något för SMT är att flera trådar kan köra samma klockcykel, vilket alltså är möjligt både med HT och med Bulldozer-moduler.

Skrivet av mixxo:

Men då uppstår några funderingar.

Säg att vi har 8 trådar som konstant matas med uppgifter som måste lösas. En Intel 4 kärnig, 8 trådad cpu skulle i detta fallet bara mäkta med att lösa 4 av trådarna sett till påstående ovan, eftersom det inte blir någon väntetid mellan trådarna. Skulle vi istället ha en AMD 8 kärnig cpu skulle den kunna jobba med alla trådar samtidigt eftersom varje tråd inte delar på en fysisk kärna, utan har en helt egen kärna.

Hur kommer det sig då att i alla cpu tunga tester där flertalet trådar används brukar Intels 8 trådiga cpu'er dominera rätt hårt över AMD's? Är det som så att i dessa program uppkommer det faktiskt väntetider mellan trådarna även fast programmen använder säg 8 trådar? Jag bortser även från mikrostrukturella skillnader där 1 Ghz från Intel generellt presterar bättre än 1 Ghz från AMD utan vill enbart få klargörande i hyper threading.

Hur många CPU-trådar som finns är helt irrelevant för vad du beskriver ovan så länge man kör på ett operativsystem som har s.k. preemptive scheduler. Windows, Linux och OSX har alla detta, Windows har haft det sedan Windows 95 och Linux/OSX har haft det sedan första version.

Angående AMD så säger CPUn själv att den har 4 fysiska kärnor med två trådar per kärna. D.v.s. det är SMT. AMDs marknadsavdelning kan säga vad som helst, men om CPUn skulle hävda mot OSet att den faktiskt hade 8 "riktiga" kärnor skulle man få sämre prestanda.

Var precis det problemet man såg i Windows precis efter att första Bulldozer-generationen lanserades, kom ganska snabbt en patch som hanterade det korrekt. Vet inte riktigt varför det behövdes en patch, i Linux fungerade det korrekt från dag ett då varje modul just behandlades som en fysisk kärna med två CPU-trådar (d.v.s. SMT).

"Hyperthreading" är ingen teknisk term, det är bara Intels namn på deras implementation av SMT.

Care About Your Craft: Why spend your life developing software unless you care about doing it well? - The Pragmatic Programmer

Trädvy Permalänk
Medlem
Plats
Infernum
Registrerad
Jul 2001
Skrivet av Yoshman:

Förklaringen ovan är felaktig. Vad den beskriver är något som kallas barrel processor medan Intels HyperThreading och även AMDs Bulldozer moduler implementerar något som kallas SMT.

Den mest signifikanta skillnaden mellan dessa två är att en "barrel processor" har flera trådar men endast en kör vid varje givet tillfälle. Vinsten är att om någon tråd stallar på en minnesoperation eller liknade så kan andra trådar fortsätta använda beräkningsenheterna. Exempel på saker som använder detta är dagens GPUer samt SPARC T1/T2.

Ett krav för att kalla något för SMT är att flera trådar kan köra samma klockcykel, vilket alltså är möjligt både med HT och med Bulldozer-moduler.

Hur många CPU-trådar som finns är helt irrelevant för vad du beskriver ovan så länge man kör på ett operativsystem som har s.k. preemptive scheduler. Windows, Linux och OSX har alla detta, Windows har haft det sedan Windows 95 och Linux/OSX har haft det sedan första version.

Angående AMD så säger CPUn själv att den har 4 fysiska kärnor med två trådar per kärna. D.v.s. det är SMT. AMDs marknadsavdelning kan säga vad som helst, men om CPUn skulle hävda mot OSet att den faktiskt hade 8 "riktiga" kärnor skulle man få sämre prestanda.

Var precis det problemet man såg i Windows precis efter att första Bulldozer-generationen lanserades, kom ganska snabbt en patch som hanterade det korrekt. Vet inte riktigt varför det behövdes en patch, i Linux fungerade det korrekt från dag ett då varje modul just behandlades som en fysisk kärna med två CPU-trådar (d.v.s. SMT).

"Hyperthreading" är ingen teknisk term, det är bara Intels namn på deras implementation av SMT.

AMD kör med CMT inte SMT eller?, AMD kallar CMT för modul som innehåller 2 kärnor så man kan köra 2 trådar/modul har jag fått förklarat för mig.

https://en.wikipedia.org/wiki/Bulldozer_(microarchitecture)

Edit: Detta tycker jag är en korrekt identifiering av en FX processor.

Trädvy Permalänk
Medlem
Plats
Infernum
Registrerad
Jul 2001
Skrivet av StuntmanMike:

För att AMD cpu:erna inte har åtta "riktiga" kärnor.

Skickades från m.sweclockers.com

Klarar du av att backa upp det med fakta från den internationella standarden som beskriver hur en "riktig" kärna skall vara uppbyggd för att få kallas för just kärna? Inget svammel nu om hur man traditionellt har byggt processorer eller hur operativsystem är kodade för att identifiera kärnor!

Trädvy Permalänk
Medlem
Plats
Helsingborg
Registrerad
Maj 2003
Skrivet av Bael:

Klarar du av att backa upp det med fakta från den internationella standarden som beskriver hur en "riktig" kärna skall vara uppbyggd för att få kallas för just kärna? Inget svammel nu om hur man traditionellt har byggt processorer eller hur operativsystem är kodade för att identifiera kärnor!

Helt bortsett från att AMD själva hävdar att det är 4'a kärnor med 2 tråds funktionalitet? Kärnor är normalt "helt" fristående från varandra, möjligen med gemensam L2/L3 cache, men för övrigt delar de inte resurser, och har egen L1 cache.
B!

Allting jag skriver är om inget annat uttrycks, min åsikt! Ingenting måste vara dagens sanning enligt din åsikt, och gör du antaganden baserade på mina åsikter hoppas jag att du övervägt mer än bara just min åsikt.

Trädvy Permalänk
Medlem
Plats
Infernum
Registrerad
Jul 2001
Skrivet av -=Mr_B=-:

Helt bortsett från att AMD själva hävdar att det är 4'a kärnor med 2 tråds funktionalitet? Kärnor är normalt "helt" fristående från varandra, möjligen med gemensam L2/L3 cache, men för övrigt delar de inte resurser, och har egen L1 cache.
B!

Saxat från AMD´s sida. (marknadsförarnas sida ) Men ja jag föredrar 4 moduler & 8 logiska processorer!

Citat:

AMD FX™ 8-Core Processors

The industry's first native 8-core desktop processor for unmatched multitasking and pure core performance with "Bulldozer" architecture.

http://www.amd.com/en-us/products/processors/desktop/fx#Secti...

Trädvy Permalänk
Medlem
Plats
Staun
Registrerad
Feb 2012
Skrivet av Bael:

Klarar du av att backa upp det med fakta från den internationella standarden som beskriver hur en "riktig" kärna skall vara uppbyggd för att få kallas för just kärna? Inget svammel nu om hur man traditionellt har byggt processorer eller hur operativsystem är kodade för att identifiera kärnor!

Nej, därav situations tecken.

Skickades från m.sweclockers.com

•Enthoo Evolv•i7 4790K•Maximus VII Gene•GTX980 Strix•
•Fury 4x4GB@1866MHz•850Pro@256GB•830@128GB•
•Leadex Platinum@1000W•TC14PE•5xF14HP PWM•
•LS23A700@120Hz•Celeritas MxBrown•EC1 CL•QH-90•
•One+X•Lamina T-8•

Trädvy Permalänk
Medlem
Plats
Infernum
Registrerad
Jul 2001
Skrivet av StuntmanMike:

Nej, därav situations tecken.

Skickades från m.sweclockers.com

Ok!

Trädvy Permalänk
Medlem
Plats
Uppsala
Registrerad
Aug 2010
Skrivet av Bael:

AMD kör med CMT inte SMT eller?, AMD kallar CMT för modul som innehåller 2 kärnor så man kan köra 2 trådar/modul har jag fått förklarat för mig.
https://upload.wikimedia.org/wikipedia/commons/e/e9/AMD_Bulldozer_block_diagram_%28CPU_core_bloack%29.PNG
https://en.wikipedia.org/wiki/Bulldozer_(microarchitecture)

Edit: Detta tycker jag är en korrekt identifiering av en FX processor.
http://cdn.overclock.net/0/00/002b5ca8_metrotest.jpeg

Är inte CMT något som AMD har hittat på? Antagligen för att någon på marknadsavdelningen ville ha en fancy förkortning. Man måste kolla på vad teknikerna betyder i praktiken.

DATOR: Corsair AX760 W | ASUS P8Z77 M Pro | 2500K @ 4,8 Ghz | Gigabyte GTX 980 Ti G1 Gaming @ 1447 MHz Core/8118 MHz Mem| 16 GB RAM | Massa SSDs och HDDs | Noctua NH-D14 | Fractal Design Define R5 ||||
LJUD: Denon AVR-2313 | Monitor Audio RX1 | Dali Lektor Sub | Corsair SP2500 | Rega RP1 | Cambridge 651P (RIAA) | Philips Fidelio X2 | Creative SoundBlaster E5

Trädvy Permalänk
Medlem
Plats
Infernum
Registrerad
Jul 2001
Skrivet av heatm:

Är inte CMT något som AMD har hittat på? Antagligen för att någon på marknadsavdelningen ville ha en fancy förkortning. Man måste kolla på vad teknikerna betyder i praktiken.

Tror jag inte men man kan aldrig veta med wikipedia men hittat på & hittat på AMD benämner det modul iaf. Saxar från wikipedia.

Citat:

With the Bulldozer family of processors, AMD re-introduced the "Clustered Integer Core" micro-architecture, an architecture developed by DEC in 1996 with the RISC microprocessor Alpha 21264. This technology is informally called CMT (Clustered Multi-Thread) and formally called "module" by AMD.

https://en.wikipedia.org/wiki/Bulldozer_(microarchitecture)

Men visst SMT.

Trädvy Permalänk
Datavetare
Plats
Stockholm
Registrerad
Jun 2011
Skrivet av Bael:

AMD kör med CMT inte SMT eller?, AMD kallar CMT för modul som innehåller 2 kärnor så man kan köra 2 trådar/modul har jag fått förklarat för mig.
https://upload.wikimedia.org/wikipedia/commons/e/e9/AMD_Bulldozer_block_diagram_%28CPU_core_bloack%29.PNG
https://en.wikipedia.org/wiki/Bulldozer_(microarchitecture)

Edit: Detta tycker jag är en korrekt identifiering av en FX processor.
http://cdn.overclock.net/0/00/002b5ca8_metrotest.jpeg

Till skillnad från en kärna så är SMT faktiskt väldefinierat. CMT och "modul" är helt ihopkokat av AMD, så varken OS eller något annat bryr sig om den nomenklaturen.

Och finns nog flera bra anledning varför "kärna" inte är definierat. Dels fanns det under årtionden ingen som helst anledning att göra en sådan klassificering, det var en kärna och en CPU-tråd. För att ta ett annat exempel: vad är definitionen för att något ska vara en bil?

Precis som med bilar kan man säga att om det är en motorcykel så är det inte en bil. Samma strategi går att använda här ihop med "proof by contradiction". D.v.s. om man kan visa att Bulldozer-kärnorna är något som gör det omöjligt för dem att vara "kärnor" så är man hemma.

Finns tre typer av multitrådning i CPU-kärnor

  • Interleaved multithreading (finns två underklasser: fine-grained och coare-grained, extremfallet för fine-grained kallas barrel processor)

  • SMT

  • övrigt (som normalt benämns oberoende kärnor)

De två första är väldefinierade. För att klassificeras som SMT måste följande uppfyllas

  • minst en av fetch, decode och execute måste delas mellan trådar (d.v.s minst ett av de tre steg i den klassiska RISC pipeline:en måste delas)

  • minst två av trådarna ska kunna avancera sina programräknare samma cykel, detta kräver en superskalär design eller trådseparat exekverings-enhet

Tittar vi på Hyperthreading så delas alla tre stegen samt det är en superskalär design, så det är SMT

Tittar vi på Bulldozer/Piledriver delas fetch och decode, sedan är det separat exekveringsdel (som även råkar vara superskalär), så det är SMT

Så eftersom Bulldozer/Piledriver moduler är SMT kan den inte tillhöra sista klassen (den som normalt kallas "multi-core"). Vilken också är helt i linje med vad CPUn själv identifierar sig via CPUID.

Care About Your Craft: Why spend your life developing software unless you care about doing it well? - The Pragmatic Programmer

Trädvy Permalänk
Datavetare
Plats
Stockholm
Registrerad
Jun 2011
Skrivet av mixxo:

Hur kommer det sig då att i alla cpu tunga tester där flertalet trådar används brukar Intels 8 trådiga cpu'er dominera rätt hårt över AMD's? Är det som så att i dessa program uppkommer det faktiskt väntetider mellan trådarna även fast programmen använder säg 8 trådar? Jag bortser även från mikrostrukturella skillnader där 1 Ghz från Intel generellt presterar bättre än 1 Ghz från AMD utan vill enbart få klargörande i hyper threading.

Det som står här har mindre att göra med hur många CPU-trådar som finns och långt mer hur CPU-kretsen faktiskt är designad.

Tar vi ett fall som är helt begränsat av att läsa/skriva mot minnet/cache

  • Skylake: möjlighet att göra upp till två läsningar/skrivningar (valfri kombination), en skrivning och adressberäkning per cykel och kärna

  • Piledriver: möjlighet att göra två minnesoperationer per cykel (valfri kombination av läsning, skrivning och adressberäkning) och CPU-tråd

Kan se lite lustig ut för Skylake, men bygger på att läsning är mer komplicerat att implementera än skrivning i kombination med att x86 tenderar att ha 2:1 split mellan läsning och skrivning. Finns dock vissa serverlaster som genererar väldigt mycket skrivning. Så i väldigt många fall kan Skylake göra fyra minnesoperationer per cykel trots att den inte har fyra "fulla" minnespipelines.

Tar vi ett fall som helt begränsas av heltalsaritmetik

  • Skylake: möjlighet att göra upp till fyra beräkningar per cykel och kärna

  • Piledriver: möjlighet att göra två beräkningar per cykel och CPU-tråd

Tar vi ett fall som helt begränsas av flyttalsaritmetik

  • Skylake: möjlighet att göra upp till 32 SP eller 16 DP per cykel och kärna

  • Piledriver: möjlighet att göra upp till 16 SP eller 8 DP per cykel och modul (FPU-delen delas mellan CPU-trådar)

Att HT i de flesta fall ger en extra knuff beror främst på att Intels CPU-kärnor har så hög kapacitet att det är relativt sällan det finns tillräckligt med oberoende instruktioner att köra varje cykel för att mätta alla beräkningsenheter. Med två oberoende instruktionsströmmar per kärna är det möjligt att bättre fylla tillgängliga beräkningsresurser.

Care About Your Craft: Why spend your life developing software unless you care about doing it well? - The Pragmatic Programmer

Trädvy Permalänk
Medlem
Plats
Skutskär
Registrerad
Jul 2005

Tycker denna video förklarar det ganska simpelt

Chassi: Hex Gear R80 CPU: Intel i7 6700K @ 4.7Ghz Mobo: ASUS Z170 Pro Gaming Ram: 4x4GB Corsair Vengeance GPU: 2x ASUS 1080 STRIX (SLI) SSD: 120GB Intel 520 & 500GB Crucial BX100 PSU: EVGA G2 Supernova 850W Monitor: Acer Predator X34A | OS: Win 10 Pro x64

Kylning: EK XE480 & EK XE 360 - EK Supremacy EVO - EK Strix-block + Backplates - 8 EK Vardar-fläktar - EK-XRES 140 Revo D5 - Barrow fittings

Trädvy Permalänk
Datavetare
Plats
Stockholm
Registrerad
Jun 2011

Han gör dock det fel väldigt många gör när de beskriver HT, de beskriver det som "interleaved multithreading" och inte SMT.

Enda anledningen att "interleaved multithreading" är vettigt är just i fall där man annars skulle få en "stall" på en minnesoperation. Genom att ha flera trådar minskar man kostnaden för att göra en minnesaccess räknat i CPU-cykler. Har jag två trådar och kör "interleaved multithreading" så får ju varje tråd bara köra var annan cykel så länge ingen av trådar är "stallad".

Detta användarfall är vanligt på servers och är också precis detta GPUer använder möjligheten att köra flera program samtidigt till: att "gömma" latens mot RAM.

För desktop är ovan i praktiken helt värdelöst. Däremot har SMT ett värde till som är relevant på desktop. Det är fall när det inte går att fylla alla beräkningsenheter varje cykel från en enda tråd, t.ex. p.g.a. att för många instruktioner vill ha samma beräkningsenhet eller att det finns beroende mellan instruktioner som gör att de inte kan köra samma cykel.

Genom att ha flera trådar per kärna har man fler kombinationer till att fylla alla beräkningsenheter, så HT (d.v.s. SMT) ger typiskt en boost även i fall där all data träffar cache (desktop program har normalt sett väldigt nära 100 % cache-hit).

Care About Your Craft: Why spend your life developing software unless you care about doing it well? - The Pragmatic Programmer

Trädvy Permalänk
Medlem
Plats
STHLM
Registrerad
Jul 2008
Skrivet av StuntmanMike:

Nej, därav situations tecken.

Skickades från m.sweclockers.com

Google: menar du citationstecken
(Eller Citattecken)

[/språkpolis]

”Wherever God erects a house of prayer, The Devil always builds a chapel there; And ’twill be found, upon examination, The later has the largest congregation.”

Trädvy Permalänk
Medlem
Plats
Staun
Registrerad
Feb 2012
Skrivet av ReverenD:

Google: menar du citationstecken
(Eller Citattecken)

[/språkpolis]

Tack, tyckte det kändes fel när telen gjorde rättstavning åt mig.

Skickades från m.sweclockers.com

•Enthoo Evolv•i7 4790K•Maximus VII Gene•GTX980 Strix•
•Fury 4x4GB@1866MHz•850Pro@256GB•830@128GB•
•Leadex Platinum@1000W•TC14PE•5xF14HP PWM•
•LS23A700@120Hz•Celeritas MxBrown•EC1 CL•QH-90•
•One+X•Lamina T-8•

Trädvy Permalänk
Medlem
Plats
Infernum
Registrerad
Jul 2001
Skrivet av Yoshman:

Till skillnad från en kärna så är SMT faktiskt väldefinierat. CMT och "modul" är helt ihopkokat av AMD, så varken OS eller något annat bryr sig om den nomenklaturen.

Och finns nog flera bra anledning varför "kärna" inte är definierat. Dels fanns det under årtionden ingen som helst anledning att göra en sådan klassificering, det var en kärna och en CPU-tråd. För att ta ett annat exempel: vad är definitionen för att något ska vara en bil?

Precis som med bilar kan man säga att om det är en motorcykel så är det inte en bil. Samma strategi går att använda här ihop med "proof by contradiction". D.v.s. om man kan visa att Bulldozer-kärnorna är något som gör det omöjligt för dem att vara "kärnor" så är man hemma.

Finns tre typer av multitrådning i CPU-kärnor

  • Interleaved multithreading (finns två underklasser: fine-grained och coare-grained, extremfallet för fine-grained kallas barrel processor)

  • SMT

  • övrigt (som normalt benämns oberoende kärnor)

De två första är väldefinierade. För att klassificeras som SMT måste följande uppfyllas

  • minst en av fetch, decode och execute måste delas mellan trådar (d.v.s minst ett av de tre steg i den klassiska RISC pipeline:en måste delas)

  • minst två av trådarna ska kunna avancera sina programräknare samma cykel, detta kräver en superskalär design eller trådseparat exekverings-enhet

Tittar vi på Hyperthreading så delas alla tre stegen samt det är en superskalär design, så det är SMT

Tittar vi på Bulldozer/Piledriver delas fetch och decode, sedan är det separat exekveringsdel (som även råkar vara superskalär), så det är SMT

Så eftersom Bulldozer/Piledriver moduler är SMT kan den inte tillhöra sista klassen (den som normalt kallas "multi-core"). Vilken också är helt i linje med vad CPUn själv identifierar sig via CPUID.

En defination är inte tvingande i motsats till standard för att exempelvis få kallas för falukorv måste man följa en standard vilken standard gäller för cpu kärnor?

Edit: CPUID? Kan inte vara detta du menar?

Edit: Fast jag håller fast vid 4 moduler (eftersom det inte är traditionella kärnor) & 8 trådar för FX8xxx serien.

Trädvy Permalänk
Datavetare
Plats
Stockholm
Registrerad
Jun 2011
Skrivet av Bael:

En defination är inte tvingande i motsats till standard för att exempelvis få kallas för falukorv måste man följa en standard vilken standard gäller för cpu kärnor?

Edit: CPUID? Kan inte vara detta du menar?
http://www.overclockers.com/forums/attachment.php?attachmentid=118689&stc=1&d=1352664754

Edit: Fast jag håller fast vid 4 moduler (eftersom det inte är traditionella kärnor) & 8 trådar för FX8xxx serien.

Vet inte vad CPU-Z visar. I Linux kan man se en helt ofiltrerad variant av vad CPUID säger via /proc/cpuinfo, detta är vad man får för FX-8350

processor : 0 vendor_id : AuthenticAMD cpu family : 21 model : 2 model name : AMD FX(tm)-8350 Eight-Core Processor stepping : 0 microcode : 0x6000832 cpu MHz : 4013.832 cache size : 2048 KB physical id : 0 siblings : 8 core id : 0 cpu cores : 4 apicid : 16 initial apicid : 0 fpu : yes fpu_exception : yes cpuid level : 13 wp : yes flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall nx mmxext fxsr_opt pdpe1gb rdtscp lm constant_tsc rep_good nopl nonstop_tsc extd_apicid aperfmperf pni pclmulq dq monitor ssse3 fma cx16 sse4_1 sse4_2 popcnt aes xsave avx f16c lahf_lm cmp_legacy svm extapic cr8_legacy abm sse4a misalignsse 3dnowprefetch osvw ibs xop skinit wdt lwp fma4 tce nodeid_msr tbm topoext perfctr_core perfctr_nb arat cpb hw_pstate npt lbrv svm_lock nrip_save tsc_scale vmcb_clean flushbyasid decodeassists pausefilter pfthreshold vmmcall bmi1 bugs : fxsave_leak sysret_ss_attrs bogomips : 8030.15 TLB size : 1536 4K pages clflush size : 64 cache_alignment : 64 address sizes : 48 bits physical, 48 bits virtual power management: ts ttp tm 100mhzsteps hwpstate cpb eff_freq_ro

D.v.s. 8 "siblings" (logiska kärnor) och 4 "fysiska" kärnor.

En falukorv är ändå en korv, men det är inte en mejeriprodukt. Något som implementerar SMT är något annat än något som implementerar oberoende CPU-kärnor. Det är det enda relevanta.

Care About Your Craft: Why spend your life developing software unless you care about doing it well? - The Pragmatic Programmer

Trädvy Permalänk
Medlem
Plats
Infernum
Registrerad
Jul 2001
Skrivet av Yoshman:

Vet inte vad CPU-Z visar. I Linux kan man se en helt ofiltrerad variant av vad CPUID säger via /proc/cpuinfo, detta är vad man får för FX-8350

processor : 0 vendor_id : AuthenticAMD cpu family : 21 model : 2 model name : AMD FX(tm)-8350 Eight-Core Processor stepping : 0 microcode : 0x6000832 cpu MHz : 4013.832 cache size : 2048 KB physical id : 0 siblings : 8 core id : 0 cpu cores : 4 apicid : 16 initial apicid : 0 fpu : yes fpu_exception : yes cpuid level : 13 wp : yes flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall nx mmxext fxsr_opt pdpe1gb rdtscp lm constant_tsc rep_good nopl nonstop_tsc extd_apicid aperfmperf pni pclmulq dq monitor ssse3 fma cx16 sse4_1 sse4_2 popcnt aes xsave avx f16c lahf_lm cmp_legacy svm extapic cr8_legacy abm sse4a misalignsse 3dnowprefetch osvw ibs xop skinit wdt lwp fma4 tce nodeid_msr tbm topoext perfctr_core perfctr_nb arat cpb hw_pstate npt lbrv svm_lock nrip_save tsc_scale vmcb_clean flushbyasid decodeassists pausefilter pfthreshold vmmcall bmi1 bugs : fxsave_leak sysret_ss_attrs bogomips : 8030.15 TLB size : 1536 4K pages clflush size : 64 cache_alignment : 64 address sizes : 48 bits physical, 48 bits virtual power management: ts ttp tm 100mhzsteps hwpstate cpb eff_freq_ro

D.v.s. 8 "siblings" (logiska kärnor) och 4 "fysiska" kärnor.

En falukorv är ändå en korv, men det är inte en mejeriprodukt. Något som implementerar SMT är något annat än något som implementerar oberoende CPU-kärnor. Det är det enda relevanta.

Enda anledning att det står cpu cores är för att systemet inte hade kunnat tolkat informationen modul, kanske?

Eftersom det inte finns en standard om hur en cpu kärna skall vara uppbyggd så är det tillverkarens definition som gäller dvs. 1 modul har 2 kärnor för att kunna köra 2st trådar.

Det är riktigt en falukorv är ingen mejeriprodukt däremot finns det standarder för vad som får kallas för korv!

Trädvy Permalänk
Datavetare
Plats
Stockholm
Registrerad
Jun 2011
Skrivet av Bael:

Enda anledning att det står cpu cores är för att systemet inte hade kunnat tolkat informationen modul, kanske?

Eftersom det inte finns en standard om hur en cpu kärna skall vara uppbyggd så är det tillverkarens definition som gäller dvs. 1 modul har 2 kärnor för att kunna köra 2st trådar.

Det är riktigt en falukorv är ingen mejeriprodukt däremot finns det standarder för vad som får kallas för korv!

Det fina med /proc/cpuinfo är att den inte tolkar något, det är en rå presentation av vad CPUn presenterar via CPUID.

Care About Your Craft: Why spend your life developing software unless you care about doing it well? - The Pragmatic Programmer

Trädvy Permalänk
Medlem
Plats
halmstad
Registrerad
Jul 2007

Jag har 4 fysiska korvar och 8 pastöriserade kärnor.

CPU: Core i7 6700K @ 4.8GHz, CPU kylare: Dark Rock Pro 3. GPU 2X 290 4GB, Moderkort: Asus Z170 Pro Gaming Minne: Corsair Vengeance DDR4 3000MHz 16GB, SSD Samsung 850 Evo HDD 4x 2TB, Nätaggregat: EVGA 80+ Gold 1000W GQ V2, OS Windows 10 Pro

Hjälp med bygge/felsökning *jag finns i halmstad*

Trädvy Permalänk
Medlem
Plats
Infernum
Registrerad
Jul 2001
Skrivet av Yoshman:

Det fina med /proc/cpuinfo är att den inte tolkar något, det är en rå presentation av vad CPUn presenterar via CPUID.

Precis & AMD har skrivit in cpu cores istället för moduler för att vara säkra på att det inte blir något missförstånd

Om du kör Cinebench single core på en FX8xxx propp & hur många av dom 4 kärnorna belastar den 100%? Jag tror att den belastar modulens ena kärna bara! Men jag kan ha fel.

@AmdX2:
Tänka sig jag har 4 fysiska korvar & 8 homogeniserade kärnor:

Trädvy Permalänk
Datavetare
Plats
Stockholm
Registrerad
Jun 2011
Skrivet av Bael:

Precis & AMD har skrivit in cpu cores istället för moduler för att vara säkra på att det inte blir något missförstånd

Om du kör Cinebench single core på en FX8xxx propp & hur många av dom 4 kärnorna belastar den 100%? Jag tror att den belastar modulens ena kärna bara! Men jag kan ha fel.

Med den logiken skulle en i7 6700K bli 8-kärnig bara man införde restriktionen att ena tråden bara får använda exekveringsportar med udda nummer och den andra tråden bara får använda de med jämna nummer (ja, exakt så korkad är moduldesignen tyvärr).

Eller man behöver inte dra det så långt. Om man kör Cinebench single core på en i7 6700K, hur många av de 4 kärnorna belastar den till 100 %? Om det är en 100 % av en kärna, hur kommer det sig då att total mängd utfört arbete ökar om man använder båda CPU-trådarna i en kärna?

Bulldozer-serien är SMT, SMT är distinkt från "oberoende" kärnor.

Care About Your Craft: Why spend your life developing software unless you care about doing it well? - The Pragmatic Programmer

Trädvy Permalänk
Medlem
Plats
Infernum
Registrerad
Jul 2001

Hur mycket belastar cinebench single core AMD kärnan?

Modulens ena kärna belastas oavsett om den har delade resurser eller inte med den andra kärnan!