Behöver förtydligande angående hyper threading

Permalänk
Medlem

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.

Permalänk

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

Skickades från m.sweclockers.com

Permalänk
Medlem

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.

Visa signatur

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 6TB - Seagate SV35 2TB - Noctua NH-C12P SE14 - LG DVD+-RW - Seasonic Focus+ Gold 750FX - Antec One Hundred - Dell 25" UltraSharp U2515H 1440p

Permalänk

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

Visa signatur

/ Tidigare: Dr.Pez /
Stationär:- Lian Li o11 - Asus B450F Gaming II - Ryzen 9 3900X - Kingston HyperX 3200mhz 4x8GB - Corsair RM750x - RX 6900 XT - Custom Loop -
Bärbar: Dell Latitude 5290
Monitor: Acer X34 + Asus PB278Q Lurar: Sennheiser HD599

Permalänk
99:e percentilen

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

Visa signatur

Skrivet med hjälp av Better SweClockers

Permalänk
Datavetare
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.

Visa signatur

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

Permalänk
Medlem
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.

Visa signatur

XFX Radeon RX 7700 XT Speedster QICK 319 Black Edition | AMD Ryzen R7 5700X | Noctua NH-D15 | Asus TUF Gaming B550-Plus | Kingston Fury Beast DDR4 3600MHz 4x8GB | Samsung 990 Pro 1TB | Corsair HX1000i | Fractal Design Define S | LG 27GL83A | Corsair K95 Platinum | Corsair Sabre RGB PRO Wireless | Corsair Void Elite Wireless

Permalänk
Medlem
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!

Visa signatur

XFX Radeon RX 7700 XT Speedster QICK 319 Black Edition | AMD Ryzen R7 5700X | Noctua NH-D15 | Asus TUF Gaming B550-Plus | Kingston Fury Beast DDR4 3600MHz 4x8GB | Samsung 990 Pro 1TB | Corsair HX1000i | Fractal Design Define S | LG 27GL83A | Corsair K95 Platinum | Corsair Sabre RGB PRO Wireless | Corsair Void Elite Wireless

Permalänk
Medlem
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!

Visa signatur

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.

Permalänk
Medlem
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...

Visa signatur

XFX Radeon RX 7700 XT Speedster QICK 319 Black Edition | AMD Ryzen R7 5700X | Noctua NH-D15 | Asus TUF Gaming B550-Plus | Kingston Fury Beast DDR4 3600MHz 4x8GB | Samsung 990 Pro 1TB | Corsair HX1000i | Fractal Design Define S | LG 27GL83A | Corsair K95 Platinum | Corsair Sabre RGB PRO Wireless | Corsair Void Elite Wireless

Permalänk
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

Permalänk
Medlem
Skrivet av StuntmanMike:

Nej, därav situations tecken.

Skickades från m.sweclockers.com

Ok!

Visa signatur

XFX Radeon RX 7700 XT Speedster QICK 319 Black Edition | AMD Ryzen R7 5700X | Noctua NH-D15 | Asus TUF Gaming B550-Plus | Kingston Fury Beast DDR4 3600MHz 4x8GB | Samsung 990 Pro 1TB | Corsair HX1000i | Fractal Design Define S | LG 27GL83A | Corsair K95 Platinum | Corsair Sabre RGB PRO Wireless | Corsair Void Elite Wireless

Permalänk
Medlem
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.

Visa signatur

DATOR i bruk: ASUS ROG STRIX B550-F Gaming, Ryzen 7 5900X. 4x16 GB Ballistix MAX RGB @ 3800 MT/s 16-17-18-34-51 (1T)/~58 ns. MSI RTX 4090 Ventus x3. Samsung 980 Pro 1 TB. EK AIO Elite 360.
DATOR 2011 års modell: Underbara Sandy Bridge, i7 2600K@4,7 GHz på ett P67 Sabertooth-bräde. Radeon HD 7770

Permalänk
Medlem
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.

Visa signatur

XFX Radeon RX 7700 XT Speedster QICK 319 Black Edition | AMD Ryzen R7 5700X | Noctua NH-D15 | Asus TUF Gaming B550-Plus | Kingston Fury Beast DDR4 3600MHz 4x8GB | Samsung 990 Pro 1TB | Corsair HX1000i | Fractal Design Define S | LG 27GL83A | Corsair K95 Platinum | Corsair Sabre RGB PRO Wireless | Corsair Void Elite Wireless

Permalänk
Datavetare
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.

Visa signatur

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

Permalänk
Datavetare
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.

Visa signatur

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

Permalänk
Entusiast

Tycker denna video förklarar det ganska simpelt

Permalänk
Datavetare

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).

Visa signatur

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

Permalänk
Medlem
Skrivet av StuntmanMike:

Nej, därav situations tecken.

Skickades från m.sweclockers.com

Google: menar du citationstecken
(Eller Citattecken)

[/språkpolis]

Visa signatur

”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.”

Permalänk
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

Permalänk
Medlem
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.

Visa signatur

XFX Radeon RX 7700 XT Speedster QICK 319 Black Edition | AMD Ryzen R7 5700X | Noctua NH-D15 | Asus TUF Gaming B550-Plus | Kingston Fury Beast DDR4 3600MHz 4x8GB | Samsung 990 Pro 1TB | Corsair HX1000i | Fractal Design Define S | LG 27GL83A | Corsair K95 Platinum | Corsair Sabre RGB PRO Wireless | Corsair Void Elite Wireless

Permalänk
Datavetare
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.

Visa signatur

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

Permalänk
Medlem
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!

Visa signatur

XFX Radeon RX 7700 XT Speedster QICK 319 Black Edition | AMD Ryzen R7 5700X | Noctua NH-D15 | Asus TUF Gaming B550-Plus | Kingston Fury Beast DDR4 3600MHz 4x8GB | Samsung 990 Pro 1TB | Corsair HX1000i | Fractal Design Define S | LG 27GL83A | Corsair K95 Platinum | Corsair Sabre RGB PRO Wireless | Corsair Void Elite Wireless

Permalänk
Datavetare
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.

Visa signatur

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

Permalänk
Medlem

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

Visa signatur

[i7 6700k @4500|Asus Z170 Pro Gaming|Corsair Vengeance DDR4 3200MHz XMP |EVGA GQ 1000W Hybrid Modular 80+|MSI GeForce GTX 1080|Windows 10 Pro Swe|Aoc 28-4K|SSD Samsung 850 evo 250 Gb|

Permalänk
Medlem
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:

Visa signatur

XFX Radeon RX 7700 XT Speedster QICK 319 Black Edition | AMD Ryzen R7 5700X | Noctua NH-D15 | Asus TUF Gaming B550-Plus | Kingston Fury Beast DDR4 3600MHz 4x8GB | Samsung 990 Pro 1TB | Corsair HX1000i | Fractal Design Define S | LG 27GL83A | Corsair K95 Platinum | Corsair Sabre RGB PRO Wireless | Corsair Void Elite Wireless

Permalänk
Datavetare
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.

Visa signatur

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

Permalänk
Medlem

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!

Visa signatur

XFX Radeon RX 7700 XT Speedster QICK 319 Black Edition | AMD Ryzen R7 5700X | Noctua NH-D15 | Asus TUF Gaming B550-Plus | Kingston Fury Beast DDR4 3600MHz 4x8GB | Samsung 990 Pro 1TB | Corsair HX1000i | Fractal Design Define S | LG 27GL83A | Corsair K95 Platinum | Corsair Sabre RGB PRO Wireless | Corsair Void Elite Wireless