Permalänk
Medlem

2 fler kärnor eller 4 fler trådar?

Hej!

En aning sen med detta inlägg men det är något jag har funderat över ända sedan Coffee Lake och i5-8600K släpptes. Detta speciellt då just denna CPU ibland jämfördes mot i7-7700K när folk funderade på vad de skulle köpa.

Säg att du har två CPU:er - A och B.

A har 4 kärnor och Simultaneous Multithreading (SMT).
B har 6 kärnor.

Både A och B är byggda med samma arkitektur, är klockade lika högt och har exakt likadan IPC samt kostar lika mycket. Den enda skillnaden är antalet kärnor och stöd för SMT.

Mina frågor är:

  • I vilka scenarion är CPU A ett bättre alternativ än CPU B?

  • I vilka scenarion är CPU B ett bättre alternativ än CPU A?

Tack för era svar!

(Pingar @Yoshman som verkar ha bra koll på detta också!)

Visa signatur

12c/24t 4.0GHz (Zen2) • 2x16GiB 3200MHz C14 • RTX 2080 FE 1965MHz 7000MHz • X570 I PW • Ghost S1 MKII

Permalänk
Medlem

Trådar är ju simulerade kärnor, du får alltså mer faktisk kraft av den som har mer kärnor.

Sen är det också så att många program inte kan använda så många Trådar/Kärnor ändå så att ha mer rå kraft skulle jag nog säga är mer vettigt.

Sen kanske det är så att den med fler trådar funkar bättre i praktiken om du multitasking mycket.

Eller så skaffar man en ryzen som inte låser saker som multithreading samt OC bakom en virtuell paywall.

Skickades från m.sweclockers.com

Permalänk
Medlem

Åtminstone upp till 6 belastade trådar så bör ju 6C/6T vara bättre. Hur mycket 4C/8T kommer ikapp när trådarna går upp till och över 8 får någon annan berätta om som vet mer.

edit:
Enligt SweC test så är 7700K bättre i x264 första passet, medan 8600K är bättre i andra passet. Tvärtemot vad jag hade väntat mig alltså. Kanske turbofrekvenser spelar roll här, att 7700K har högre "all-core turbo" än 8600K. Dock så är skillnaderna i testet mycket större än vad jag tror frekvenserna är...

Permalänk
Medlem

Vad skulle en bil kunna göra mer med 2 hjul extra om den ändå bara har 4 motorer?

Inte en helt perfekt analogi, men rätt kul.

Skickades från m.sweclockers.com

Permalänk
Medlem
Skrivet av ajp_anton:

Åtminstone upp till 6 belastade trådar så bör ju 6C/6T vara bättre. Hur mycket 4C/8T kommer ikapp när trådarna går upp till och över 8 får någon annan berätta om som vet mer.

edit:
Enligt SweC test så är 7700K bättre i x264 första passet, medan 8600K är bättre i andra passet. Tvärtemot vad jag hade väntat mig alltså. Kanske turbofrekvenser spelar roll här, att 7700K har högre "all-core turbo" än 8600K. Dock så är skillnaderna i testet mycket större än vad jag tror frekvenserna är...

Problemet med moderna processorer är att dom är så breda internt att det inte går att utnyttja alla resurser med en tråd.

Därför det är rätt bortkastat med en tråd per kärna på moderna processorer, används bara för att skapa budget modeller.

Så en i5:a med en tråd per kärna går alltid lite på sparlågor.

Sedan finns det direkta fördelar med att ett program kan lägga två trådar per kärna.
Inte nog med att man kan få ut mer prestanda om fler resurser kan nyttjas, men då dom körs på samma kärna har dom tillgång till samma data nästan omgående, så behöver man sammanställa data från tråd ett och två på en och samma kärna med SMT så tar det ofta bara några klockyklar medans två separata kärnor kan behöva vänta hundratals cyklar för data att hämtas från den ena till den andra kärnan, då går det inte så snabbt lägre.

Så en bred kärna med SMT stöd kan vara mer effektiv än smalare kärnor utan SMT i flertrådade applikationer.

IBM har ju världens bredaste processorer med Power serien som stödjer upp till 8 trådar och tror det är upp till 12 instruktioner, däromkring i alla fall.

I slutändan vilket som är bäst beror ju lite på vad man gör. Finns väl inget rätt svar men hade vi inte levt i en värld där pengar styr så hade i5:or inte funnits för det är rent slöseri att stänga av SMT stöd.

Permalänk
Medlem

@Sevenix: öhh... Ryzen 1200 har inte SMT fast det är samma chip som 1500X som har SMT. Samma "pay wall" där... Enda skillnaden är att alla kan OC med rätt moderkort.

Visa signatur

| CPU: Intel i7 7700k | RAM: Crucial DDR4 OC @2400mhz 16GB (2x8GB) | GPU: EVGA GeForce RTX 2080 XC GAMING| Mobo: MSI H110I Pro | SSD: Crucial BX200 240GB 2.5" SSD | SSD2: Samsung 850 EVO 500GB 2.5" SSD | Nätagg: be quiet! SFX L Power 600W | Kylare: NZXT Kraken X62 | Chassi: Fractal Design Nano S | OS: Windows 10 Pro

Permalänk
Medlem

@pa1983: Känns som jag redan vet allt det där, så jag vet inte varför du citerade mig. Eller är det något du inte håller med om? Okej, det där med gemensam cache på trådarna är något jag inte tog hänsyn till, något mer?

Permalänk
Medlem
Skrivet av Implor:

@Sevenix: öhh... Ryzen 1200 har inte SMT fast det är samma chip som 1500X som har SMT. Samma "pay wall" där... Enda skillnaden är att alla kan OC med rätt moderkort.

Inte bara samma chip som 1500X... det är samma chip som 1800X =).

Permalänk
Inaktiv

Jag är fundersam om att nya processorer utan HT till stor del handlar om att tillverkaren har spärrat dessa för att kunna sälja produkten till olika priser. Och det mer eller mindre handlar om dumsnålhet att köpa en cpu utan denna funktion.

jag tror det bästa är att se recensioner för det man ska göra, 6 kärnor istället för 4 + ht inom samma arkitektur känns ju som att belastningen sprids på en större yta och man slipper en drös med flaskhalsar.

Permalänk
Medlem
Skrivet av Sevenix:

Eller så skaffar man en ryzen som inte låser saker som multithreading samt OC bakom en virtuell paywall.

Skickades från m.sweclockers.com

Bytar över så fort AMD kan konkurrera i singeltråds prestanda.
Just nu finns där inget som skulle få mig att vilja välja Ryzen över 5.1Ghz@6c 8700k.

Permalänk
Avstängd

Kollar du skillnaden på tex den cpu jag har i3 6100 som är en dualcore med HT mot en pentium av samma modell som är samma cpu utan HT är i3an vassare i allt för den har HT och får mycket bättre prestanda pga ren singeltråds prestanda som är betydligt högre

Tar man däremot en 7700k som är snabbare singeltrådat och vi kan ta cinebech som exempel
Singel trådat har
7700k - 191P bör vara snabbast med bäst fps pga singeltråds prestanda
8600K - 179p
1600x - 161p

Så rent tekniskt bör 7700k vara snabbast i alla spel men är så liten skillnad i singeltråds prestanda att det är löjligt marginell skillnad och även en 1600x maxxar gpu i dom flesta scenarior men singeltråds avgör högsta fps och där kommer ryzen släpa några fps

Tittar vi på multitråds prestanda i cinebench
1600x - 1245p - Bör vara snabbast i dom flesta fall av redigering och rendering osv
8600k - 1038p
7700k - 960p

Vad som är snabbast beror på hur väl kärnor fördelas av mjukvaran och i spel vinner singeltråds prestanda där behöver man inte mer än 4 snabba kärnor men skillnaden är så liten mellan 7700k och 8600k både singel/multitrådat att jag hade gått på 8600k för det är korkat att betala 3000kr för en 7700k när man får en 8600k för 2300kr som presterar i det närmaste identiskt i alla scenarion och 8600k är modernare

Visa signatur

i3 6100 - MSI b150m pro-vd - 8gb 2133 ddr4 - GTX 950 GAMING 2G - z400s 120gb ssd - 1tb WD blue - Corsair 500w

Permalänk
Datavetare
Skrivet av Icte:

Hej!

En aning sen med detta inlägg men det är något jag har funderat över ända sedan Coffee Lake och i5-8600K släpptes. Detta speciellt då just denna CPU ibland jämfördes mot i7-7700K när folk funderade på vad de skulle köpa.

Säg att du har två CPU:er - A och B.

A har 4 kärnor och Simultaneous Multithreading (SMT).
B har 6 kärnor.

Både A och B är byggda med samma arkitektur, är klockade lika högt och har exakt likadan IPC samt kostar lika mycket. Den enda skillnaden är antalet kärnor och stöd för SMT.

Mina frågor är:

  • I vilka scenarion är CPU A ett bättre alternativ än CPU B?

  • I vilka scenarion är CPU B ett bättre alternativ än CPU A?

Tack för era svar!

(Pingar @Yoshman som verkar ha bra koll på detta också!)

På desktop där du kanske ignorerar eller i alla fall inte sätter perf/W som prio#1 är det extremt få fall där 6C/6T skulle vara sämre.

SMT stora fördelar är

  • moderna CPUs är så hög kapacitet per kärna, är så "breda", att de ytterst sällan kan utnyttjas fullt ut med bara en tråd per CPU-kärna, framförallt på x86 som har en väldigt "strikt" minneskonsistensmodell (den hindrar tyvärr vissa typer av optimeringar), så utan SMT använder man egentligen inte riktigt sin CPU till dess fulla kapacitet i de flesta lägen

  • SMT ger kanske bara 10-30 % mer, men det är till en väldigt låg ökning i effekt -> kretsar med SMT är typiskt mer energieffektiva

  • vissa väldigt I/O-tunga laster skalar i princip identiskt med antal CPU-trådar, oavsett om det handlar om "äkta" kärnor eller "hyper-trådar", i dessa fall är 8T > 6T (ytterst sällsynt att ha detta på skrivbordet, är sällsynt även på servers men fallet existerar i alla fall där)

Personligen har jag svårt för x86-modeller utan SMT, men tittar man på spel-benchmarks (är ofta spelprestanda som är måttstocken på SweC) så är det bara att konstatera att 6C/6T inte på något sätt verkar vara en nackdel över 4C/8T utan det är i princip helt jämnt (och då är i7-7700K något högre klockad jämfört med i5-8600K).

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 Icte:

Både A och B är byggda med samma arkitektur, är klockade lika högt och har exakt likadan IPC samt kostar lika mycket. Den enda skillnaden är antalet kärnor och stöd för SMT

Är detta som gör att de flesta fall tiltar över mot 6C/6T.

I normalfallet brukar det vara så att fler kärnor betyder lägre frekvens och/eller högre pris. 4C/8T är i en väldigt hög andel av fallen "tillräckligt mycket", vilket då flyttar "bäst" till vilken som har högst prestanda per kärna och/eller priset.

i7-8700K är inte precis den första x86 modellen med 6C, men den är den första som inte offrar enkeltrådprestanda för fler kärnor jämfört med föregående toppmodell. Är just detta som gör den till ett självklart val över i7-7700K idag.

Fler kärnor är i sig nästan aldrig en nackdel. Men om fler kärnor kommer på bekostnad av enkeltrådprestanda är det väldigt sällan det är en förbättring för en desktop-användare (finns självklart undantag, men de är just undantag).

Visa signatur

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

Permalänk
Inaktiv

Kortfattat kan man säga att en Averge Joe/svensson användare tjänar på att köpa hårdvara riktat till dens egen typ av användare. Så är det idag med ram, ssd, grafikkort, cpu, plattform, moderkort, skärmar, Windows licens ja allt. Plånboken blir bara tom att köpa fel och ibland som inom grafikkort så kan man t.o.m. få sämre prestanda för det man sysslar med om man väljer pro modellerna.

Jag gillar aldrig att folk pratar om vad olika datatyper behöver, jag själv har en server som flyter på hur bra som helst och den kör en Raspberry Pi. För mig är workstations = riktigt grymma arbetsstationer som ytterst få hemanvändare har, medans vissa mer så snabbt en dator så att det går att göra mer än att spela, surfa, netflexa på den så räknar de datorn som en workstation.

Permalänk
Medlem
Skrivet av Yoshman:

På desktop där du kanske ignorerar eller i alla fall inte sätter perf/W som prio#1 är det extremt få fall där 6C/6T skulle vara sämre.

SMT stora fördelar är

  • moderna CPUs är så hög kapacitet per kärna, är så "breda", att de ytterst sällan kan utnyttjas fullt ut med bara en tråd per CPU-kärna, framförallt på x86 som har en väldigt "strikt" minneskonsistensmodell (den hindrar tyvärr vissa typer av optimeringar), så utan SMT använder man egentligen inte riktigt sin CPU till dess fulla kapacitet i de flesta lägen

  • SMT ger kanske bara 10-30 % mer, men det är till en väldigt låg ökning i effekt -> kretsar med SMT är typiskt mer energieffektiva

  • vissa väldigt I/O-tunga laster skalar i princip identiskt med antal CPU-trådar, oavsett om det handlar om "äkta" kärnor eller "hyper-trådar", i dessa fall är 8T > 6T (ytterst sällsynt att ha detta på skrivbordet, är sällsynt även på servers men fallet existerar i alla fall där)

Personligen har jag svårt för x86-modeller utan SMT, men tittar man på spel-benchmarks (är ofta spelprestanda som är måttstocken på SweC) så är det bara att konstatera att 6C/6T inte på något sätt verkar vara en nackdel över 4C/8T utan det är i princip helt jämnt (och då är i7-7700K något högre klockad jämfört med i5-8600K).

Börjar kanske gå lite off-topic, men vore det möjligt att bygga en så "bred" CPU-kärna att den är som fyra kärnor i ett med 8 trådar? Är det ungefär detta som IBM gör?
Vad jag kan komma på med stora kärnor är att ljusets hastighet är för långsamt och latenserna skjuter upp i höjden, men finns det andra problem? Kommer på saker som storlek/latens på L1-cache samt klockfrekvenser, men det har väl just med ovanstående problem att göra.

Permalänk
Medlem
Skrivet av ajp_anton:

Börjar kanske gå lite off-topic, men vore det möjligt att bygga en så "bred" CPU-kärna att den är som fyra kärnor i ett med 8 trådar? Är det ungefär detta som IBM gör?
Vad jag kan komma på med stora kärnor är att ljusets hastighet är för långsamt och latenserna skjuter upp i höjden, men finns det andra problem? Kommer på saker som storlek/latens på L1-cache samt klockfrekvenser, men det har väl just med ovanstående problem att göra.

Du får nog ett svar i morgon om inte annat men under tiden. Du vet nog mer en mig så vad du menar med "bred" i detta sammanhang vet jag inte. Då du skapar en design så går du utifrån olika preferenser.

"Vad jag kan komma på med stora kärnor är att ljusets hastighet är för långsamt och latenserna skjuter upp i höjden, men finns det andra problem?"
Vi kan inte använda ljusets hastighet internt. Vi är bundna till elektroners energi överföringar inom atomer. Och hur vi ska styra dem.

Nya arkitekturer behöver vi. säjer jag. vissa gränser kan vi tumma på lite så vitt vi vet. Andra hoppas vi på. Som det ser ut nu(matte) så kan vi bara påverka latenserna lite gran. Men allt är välkommet.

Ser inte ut som vi kan fixa övergångar till fotoner till det vi behöver just nu.

Visa signatur

CPU: 5900x. Mem:64GB@3200 16-17-17-34-1T. (ImDIsk)
GPU: 1080 Ti@ca 6-7%OC. Sound: SB-Z -> toslink (DTS)-> old JVC. MB Realtek to Z-2300 for VOIP.

Permalänk
Datavetare
Skrivet av ajp_anton:

Börjar kanske gå lite off-topic, men vore det möjligt att bygga en så "bred" CPU-kärna att den är som fyra kärnor i ett med 8 trådar? Är det ungefär detta som IBM gör?
Vad jag kan komma på med stora kärnor är att ljusets hastighet är för långsamt och latenserna skjuter upp i höjden, men finns det andra problem? Kommer på saker som storlek/latens på L1-cache samt klockfrekvenser, men det har väl just med ovanstående problem att göra.

Är lite det IBM gör ja, är egentligen vad AMD/Intel också gör då deras nuvarande kretsar ofta inte kan utnyttja bredden fullt ut när bara en tråd per CPU-kärna används.

Så varför gör man då en så "bred" kära att den inte kan utnyttjas? Därför att det fortfarande är så att prestanda för saker som av olika skäl inte kan skalas väl med många CPU-trådar är extremt vanligt på skrivbordet och betydligt vanligare på servers än nog många gissar.

I vissa lägen kan dessa CPUer trots allt utnyttja sin hela bredd när bara en tråd används, det betyder att i genomsnitt får man ett positivt tillskott på enkeltrådprestanda. Utan SMT skulle det ändå varar svårt att motivera transistorbudget och strömbudget för den extra bredden givet ökning av enkeltrådprestanda.

8 trådar per kärna är ändå rätt extremt. Normalkonfigurationen för aktuella POWER-system är att köra 4 trådar per kärna, många fall ser ingen ökad total prestanda med 8 trådar och fler trådar per kärna betyder sämre prestanda per CPU-tråd vilket påverkar transaktionslatens negativt. Alla trådar ska även dela på cache, så finns fall som ser negativt utfall med SMT (rätt ovanligt på x86 där det handlar om 1 vs 2 trådar, inte helt ovanligt på POWER mellan 4 vs 8 trådar).

Visa signatur

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