Permalänk
Medlem
Skrivet av Ratatosk:

Jag valde att välja moderkortet manuellt som jag alltid brukar göra och då funkar det inte, men om jag skriver in namnet i sökrutan så funkar det. Tror Asus behöver fixa sin sida också än bara moderkortet

Visa signatur

Coca Cola missbrukare Förbjuden dryck för mig pga diabetes
AMD älskare
Katt älskare

Permalänk
Hjälpsam
Skrivet av criscros:

Tänkte också på detta .. sen kom jag på att amd generellt brukar undervolta riktigt bra!

Vore kul om någon här kunde undervolta en stock 1700 lr någon annan ryzen cpu bara för att se wattage?

Ja menar de kommer absolut inte vara för långsökt med 8c i en bärbar dator snart?

En 1700 låst till 3ghz med bra binning lär ju ligga på 30w ungefär ?

Tror att man får gå lägre än så, basfrekvensen är ju redan 3.0 GHz.
Intressant länk här.
https://forums.anandtech.com/threads/ryzen-strictly-technical...

Visa signatur

AMD Ryzen 7 1700 | Saphire RX 5700 Pulse XT (Silent Mode) | 64 GB Kingston ECC | https://valid.x86.fr/z2ljhr | Stockkylaren | Bitfenix Whisper M 750W.
AMD Ryzen 9 5900X | AMD RX 5700 | 64 GB Micron ECC | https://valid.x86.fr/5krwxf
HTPC | https://valid.x86.fr/uuzli0 |

Permalänk
Medlem
Skrivet av Ratatosk:

Tror att man får gå lägre än så, basfrekvensen är ju redan 3.0 GHz.
Intressant länk här.
https://forums.anandtech.com/threads/ryzen-strictly-technical...

lyckas man gå ner till runt 20-25w på 3ghz så är det otroligt bra.. En 1700+rx580 i en bärbar kommer inte ens dra 100w i peak då ..

Detta fick mig att tänka på raven ridge.. 30-40w för helt okej 1080p prestanda..

Det jag hoppas på mest nu från amd i samband med utsläpp av raven ridge är (håller tummarna som fan) introduktionen av pico-itx för hemmabyggare !

Permalänk
Hjälpsam
Skrivet av criscros:

lyckas man gå ner till runt 20-25w på 3ghz så är det otroligt bra.. En 1700+rx580 i en bärbar kommer inte ens dra 100w i peak då ..

Detta fick mig att tänka på raven ridge.. 30-40w för helt okej 1080p prestanda..

Nej jag menar att man får nog sänka frekvensen lägre än 3.0 för att nå 30W.
Ser verkligen fram mot AMD:s APUr, detta kommer att bli ett intressant år.

Visa signatur

AMD Ryzen 7 1700 | Saphire RX 5700 Pulse XT (Silent Mode) | 64 GB Kingston ECC | https://valid.x86.fr/z2ljhr | Stockkylaren | Bitfenix Whisper M 750W.
AMD Ryzen 9 5900X | AMD RX 5700 | 64 GB Micron ECC | https://valid.x86.fr/5krwxf
HTPC | https://valid.x86.fr/uuzli0 |

Permalänk
Medlem
Skrivet av Ratatosk:

Nej jag menar att man får nog sänka frekvensen lägre än 3.0 för att nå 30W.
Ser verkligen fram mot AMD:s APUr, detta kommer att bli ett intressant år.

jaha haha xD

Ne jag tror med bra binnade och lite bättre batcher av 1700 så kan man nog få ner wattage till runt 30w i 3ghz

Permalänk
Entusiast
Skrivet av Ratatosk:

Sett många ondgöra sig över Rx480s effekförbrukning, det drar mer energi än ett kärnkraftverk kan producera, datorlådan blir hetare än en masugn, elräkningen kommer att ruinera dig.
Är det någon som tror att vi kommer få höra motsvarande om AMD Ryzen vs Intel?
https://tpucdn.com/reviews/AMD/Ryzen_7_1800X/images/power_gaming.png
https://www.techpowerup.com/reviews/AMD/Ryzen_7_1800X/
30W är egentligen skit samma, men visst är det trevligt att AMD:s nya modeller är så pass effektsnåla?
Det bådar också gott vad gäller AMD:s kommande utbud, både för deras bärbara och deras servrar.

Det där är absolut bra siffror, kanske lite för bra siffror.
Det här är Sweclockers resultat:

Dold text
Visa signatur

Den digitala högborgen: [Fractal Design Meshify C] ≈ [Corsair RM850x] ≈ [GeForce RTX 3080] ≈ [AMD Ryzen 7 7800X3D ≈ [Noctua NH-U14S] ≈ [G.Skill Flare X5 32GB@6GHz/CL30] ≈ [MSI MAG B650 TOMAHAWK] ≈ [Kingston Fury Renegade 2 TB] ≈

Permalänk
Inaktiv
Skrivet av criscros:

jaha haha xD

Ne jag tror med bra binnade och lite bättre batcher av 1700 så kan man nog få ner wattage till runt 30w i 3ghz

Hur resonerar du fram det? Idle eller under belastning? Tror faktiskt du är helt ute och cyklar om du tror den kan gå så lågt under belastning. Inte för att tdp säger allt men Intels lågt klockade 8core (under 2GHz) har dubbelt så hög tdp.

Skickades från m.sweclockers.com

Permalänk
Medlem
Skrivet av Sisyfos:

Det där är absolut bra siffror, kanske lite för bra siffror.
Det här är Sweclockers resultat:

Jobbar alla kärnor i Ryzen max så kommer det se ut som hos Sweclockers. I spel som testet du quotar handlar om jobbar inte alla kärnorna fullt ut så därför ser siffrorna annorlunda ut.

edit: I och för sig borde Sweclockers 7700k också jobbat max i de testen, eller varför skulle den dra mer i spel?

Visa signatur

sweclockers prestandaindex

Efter 10 kommer 11.
Efter 99 kommer 100.

Permalänk
Avstängd

DigitalFoundry har äntligen fått ut sin video.

Visa signatur

R7 3700X | X570 Aorus Master | 32GB | EVGA 1080 Ti FTW3 | Noctua NH-D15S | FD Meshify C Copper
R7 1700 | X370 Gaming-ITX | 16GB | RX Vega 64 LE | Noctua U12S | Node 304
2 x HPE ProLiant Microserver Gen 8 | 1265L V2 | 16GB | 20TB

Permalänk
Medlem
Skrivet av anon75480:

Hur resonerar du fram det? Idle eller under belastning? Tror faktiskt du är helt ute och cyklar om du tror den kan gå så lågt under belastning. Inte för att tdp säger allt men Intels lågt klockade 8core (under 2GHz) har dubbelt så hög tdp.

Skickades från m.sweclockers.com

snackar inte om tdp. Jag snackar om wattage under load..

Varför skulle jag vara ute o cykla? om du låser cpun till 3ghz och undervoltar så bör man nog komma under 60watt med dagens binnings..

I standard utförande så drar dom knappt 90w..

En bra binnad lär nog kunna undervoltas för att ligga runt 30-35w.

edit:ironiskt nog så hitta jag en kille som har undervoltat sin 1700 med en multiplier på 30 och skrivit ner sina värden
https://www.computerbase.de/forum/showthread.php?t=1664307

30 i multi + undervolt ledde till en wattage på 61w.

Tror knappast att jag är ute och cyklar.

Bättre binnade kommer kunna sjunka lägre i volt. Kanske 30w är lite väl lågt men 40w är ej omöjligt alls.

Edit 2: vill även poängtera en sak här... många kör en rätt brutal overkill på sina psuer där de har en lägre verkningsgrad/effektivitet vid lägre load som leder till att systemet drar ännu mer samt att atx moderkort brukar oftast leda till några procent högre wattage.

Så jag är ute med motorcykeln i 110km/h och lämnar cykeln hemma .

Permalänk
Medlem
Skrivet av SeF.Typh00n:

DigitalFoundry har äntligen fått ut sin video.

https://www.youtube.com/watch?v=TId-OrXWuOE

Det intressantaste IMO var att Ryzen 1800x @ 3+3 cores var endast ett fåtal procent långsammare än fulla 1800x. Om det är representativt för hur 1600x kommer prestera (vilket det bör vara, då de har lika mycket cache [Edit: hade tydligen 16 MB ist.f. 20 MB] och samma base/turbo clocks), blir i5:orna något av en "hard sell" enligt mig då de presterar ungefär samma som 1800x i dag, men med 1600x skulle man få betydligt bättre framtidssäkerhet eftersom spel lär skala bättre och bättre med fler kärnor.

Dessutom får man bättre prestanda i relaterade sidosysslor som streaming och videoredigering, och därtill har man en bättre uppgraderingsväg eftersom AM4 ska vara flera år framöver.

Edit: Såg nu att 1600x har mindre cache än 1800x enligt både Netonnet och Inet, det jag läste innan måste varit felaktiga rykten. Då återstår det att se hur prestandan blir.

Visa signatur

Bästa trådstarten någonsin.

Asus Zenbook UX430: 8550U, MX150, 16 GiB, 1 TB

Permalänk

@MakeCoke: Efter att ha kollat Sweclockers egna tabeller så har 1600X 1MB mindre L2-cache.

Visa signatur

Nuvarande rigg: CPU: AMD R7 3700X, RAM: G.Skill Flare X, GPU: EVGA 1080Ti FTW3, Moderkort: Gigabyte GA-AX370-Gaming K7 (F51g), HDD: Samsung 840 SSD Pro Basic, WD Black Caviar 1TB SATA II, CPU-kylare: Corsair H115i (Noctua NF-A14), Chassi: Fractal Design R5, PSU: Seasonic Prime GX 1000

Permalänk
Medlem
Skrivet av MakeCoke:

Det intressantaste IMO var att Ryzen 1800x @ 3+3 cores var endast ett fåtal procent långsammare än fulla 1800x. Om det är representativt för hur 1600x kommer prestera (vilket det bör vara, då de har lika mycket cache [Edit: hade tydligen 16 MB ist.f. 20 MB] och samma base/turbo clocks), blir i5:orna något av en "hard sell" enligt mig då de presterar ungefär samma som 1800x i dag, men med 1600x skulle man få betydligt bättre framtidssäkerhet eftersom spel lär skala bättre och bättre med fler kärnor.

Dessutom får man bättre prestanda i relaterade sidosysslor som streaming och videoredigering, och därtill har man en bättre uppgraderingsväg eftersom AM4 ska vara flera år framöver.

Edit: Såg nu att 1600x har mindre cache än 1800x enligt både Netonnet och Inet, det jag läste innan måste varit felaktiga rykten. Då återstår det att se hur prestandan blir.

Gissa varför jag är intresserad till 6 kärniga Ryzen då jag har råd

Undrar varför de visar olika cache mängder, cache borde vara (nästan) lika för både 1800X och 1600X, 20MB kommer ifrån 16MB L3 + 0.5MB per kärna, då borde 1600X ha 19MB kombinerad cache, om en L3 "slice" också stängs av per kärna borde kombinerad cache bli 15 efter bilden nedan.

Så det låter mer som marknadsföringsavdelningen behövde några olika siffror.

edit: Att L2 är 1MB mindre är för att varje kärna har 0.5MB L2$, om man disablar två kärnor får man då 1MB mindre cache

Visa signatur

"Oh glorious cheeseburger… we bow to thee. The secrets of the universe are between the buns..."
"All my farts come straight from hell, you're already dead if you notice a smell"

Permalänk
Medlem
Skrivet av anon75480:

Hur resonerar du fram det? Idle eller under belastning? Tror faktiskt du är helt ute och cyklar om du tror den kan gå så lågt under belastning. Inte för att tdp säger allt men Intels lågt klockade 8core (under 2GHz) har dubbelt så hög tdp.

Skickades från m.sweclockers.com

Nu kommer jag inte ihåg i vilken tråd i vilket forum det var (kan ha varit strictly technical j men det har provats och jag har för mig att resultatet blev att de behövde ner i 2,8GHz och lite undervolt för att nå ner till 30W. På den nivån fick R7 ~1050 cp i cinebench, om inte minnet sviker.

Såg förresten en intressant tråd på Reddit som nog fler skulle finns intressant.

Permalänk
Hjälpsam

@criscros: De flesta R7 1700 ligger nog redan på 60W som mest.

Visa signatur

AMD Ryzen 7 1700 | Saphire RX 5700 Pulse XT (Silent Mode) | 64 GB Kingston ECC | https://valid.x86.fr/z2ljhr | Stockkylaren | Bitfenix Whisper M 750W.
AMD Ryzen 9 5900X | AMD RX 5700 | 64 GB Micron ECC | https://valid.x86.fr/5krwxf
HTPC | https://valid.x86.fr/uuzli0 |

Permalänk
Medlem
Skrivet av S-FighterPilot:

@MakeCoke: Efter att ha kollat Sweclockers egna tabeller så har 1600X 1MB mindre L2-cache.

Skrivet av wowsers:

Gissa varför jag är intresserad till 6 kärniga Ryzen då jag har råd

Undrar varför de visar olika cache mängder, cache borde vara (nästan) lika för både 1800X och 1600X, 20MB kommer ifrån 16MB L3 + 0.5MB per kärna, då borde 1600X ha 19MB kombinerad cache, om en L3 "slice" också stängs av per kärna borde kombinerad cache bli 15 efter bilden nedan.
https://www.techpowerup.com/img/16-08-23/100b.jpg

Så det låter mer som marknadsföringsavdelningen behövde några olika siffror.

edit: Att L2 är 1MB mindre är för att varje kärna har 0.5MB L2$, om man disablar två kärnor får man då 1MB mindre cache

Aha, tack för info!
Hoppas 1600x blir så bra som det pekar mot!

Visa signatur

Bästa trådstarten någonsin.

Asus Zenbook UX430: 8550U, MX150, 16 GiB, 1 TB

Permalänk
Hjälpsam
Skrivet av ClintBeastwood:

Jobbar alla kärnor i Ryzen max så kommer det se ut som hos Sweclockers. I spel som testet du quotar handlar om jobbar inte alla kärnorna fullt ut så därför ser siffrorna annorlunda ut.

edit: I och för sig borde Sweclockers 7700k också jobbat max i de testen, eller varför skulle den dra mer i spel?

Orsaken till att i7 7700k drar mer i spel är väl helt enkelt att en större del av CPU:n används, om ett spel kan nyttja 4C/8T används hela i 7700k och halva R7 Ryzen.

Visa signatur

AMD Ryzen 7 1700 | Saphire RX 5700 Pulse XT (Silent Mode) | 64 GB Kingston ECC | https://valid.x86.fr/z2ljhr | Stockkylaren | Bitfenix Whisper M 750W.
AMD Ryzen 9 5900X | AMD RX 5700 | 64 GB Micron ECC | https://valid.x86.fr/5krwxf
HTPC | https://valid.x86.fr/uuzli0 |

Permalänk
Medlem
Skrivet av Ratatosk:

Orsaken till att i7 7700k drar mer i spel är väl helt enkelt att en större del av CPU:n används, om ett spel kan nyttja 4C/8T används hela i 7700k och halva R7 Ryzen.

Ja, jag gjorde misstaget att direkt jämföra TechReports siffror med dom som Sweclockers fick när dom körde blender.

Visa signatur

sweclockers prestandaindex

Efter 10 kommer 11.
Efter 99 kommer 100.

Permalänk
Medlem
Skrivet av Ratatosk:

@criscros: De flesta R7 1700 ligger nog redan på 60W som mest.

nej nej.. jag är ute o cyklar

Permalänk
Medlem

Två våtare drömmar.

AMD Naples Benchmarks vs Intel Xeon E5-2699 V4

@Yoshman, hade inte du något sådant här att leka med? Känns dessa resultat rimliga?

Visa signatur

| Fractal Design Define R5| Asrock X399 Fatal1ty| Threadripper 1950X| Noctua NH-U14S TR4-SP3| Corsair Vengeance LPX 8x16GB 3200 C16| be quiet! Straight Power 11 Platinum 1000W| ASUS RTX 3080 10GB Strix| LG OLED 4k 42" C2| Debian Sid| KDE 5.x|

Permalänk
Inaktiv
Skrivet av criscros:

snackar inte om tdp. Jag snackar om wattage under load..

Varför skulle jag vara ute o cykla? om du låser cpun till 3ghz och undervoltar så bör man nog komma under 60watt med dagens binnings..

I standard utförande så drar dom knappt 90w..

En bra binnad lär nog kunna undervoltas för att ligga runt 30-35w.

edit:ironiskt nog så hitta jag en kille som har undervoltat sin 1700 med en multiplier på 30 och skrivit ner sina värden
https://www.computerbase.de/forum/showthread.php?t=1664307

30 i multi + undervolt ledde till en wattage på 61w.

Ser fortfarande inte hur du hamnar på 30W, att bara höfta ut att det är möjligt med bra binnad ser jag inte direkt som bevis. Det är STOR skillnad på 60W och 30W, det skulle kräva (om man går efter länken) en vcore på runt 0.6v. Beror dock på hur det skalar med A osv, men det är rätt jäkla lågt.

Sen hade det vart helt fantastiskt om det skulle visa sig stämma. Men tills den dagen kommer så fortsätter jag vara skeptiskt.

Permalänk
Medlem
Skrivet av anon75480:

Ser fortfarande inte hur du hamnar på 30W, att bara höfta ut att det är möjligt med bra binnad ser jag inte direkt som bevis. Det är STOR skillnad på 60W och 30W, det skulle kräva (om man går efter länken) en vcore på runt 0.5v, det är rätt jäkla lågt.

Sen hade det vart helt fantastiskt om det skulle visa sig stämma. Men tills den dagen kommer så fortsätter jag vara skeptiskt.

30W vid 3GHz kommer inte att hända. En rimlig gissning är typ 2,2 GHz, då på 0,7~0,75V. Om man verkligen binnade för det.
I praktiken lär det inte lanseras fullt så häftiga CPUer.

Permalänk
Medlem

Här kommer en lite längre redogörelse för tester jag kört, inspirerad av ffa @tellus82 s tips på mjukvaror, resonemang om OS-timerinställningar samt frågeställningar att testa. Jag försöker ha underrubriker och fetstilta partier som ska göra inlägget överblickbart trots att det är långt.

TL;DR kommer här direkt för den som är otålig:

- Tester körda under Windows 8.1 på en 8-kärnig processor som har en liknande cachedesign som Ryzen, med 2st moduler med 4 kärnor och 1st L3$ vardera.

- Vid 0.5ms OS-timer (motsv Win10 game mode) ser vi en 9-10% prestandareduktion i Wprime enkeltrådat jämfört med 15.625ms OS-timer (default i win7-10), men bara om följande villkor är uppfyllda:

  1. Power plan sätts till ”balanced”

  2. Windows inte är medvetet om vilka kärnor som fysiskt sitter tillsammans med gemensam L3$

  3. Trådflytt inte förhindras mha ”thread affinity” i Windows task manager.

- Vid ”high performance” power plan, thread affinity låst till 1 tråd, eller om Windows uppfattar som att de olika processormodulerna (motsv. CCX) sitter på olika socklar, så försvinner prestandareduktionen vid hög OS-timer i stort sett helt.

- Slutsatsen blir att någon slags overhead verkar uppstå då trådar flyttas mellan processormoduler med liknande struktur som Ryzens CCX, men detta fenomen är bara markant när trådparkering är aktivt som strömsparfunktion.

- En ytterligare slutsats, som vi kan extrapolera från dessa resultat, är att trådflytt mellan CCX verkar kunna undvikas om Windows betraktar Ryzens båda CCX som två processorer på var sin sockel (detta oberoende av NUMA).

Inledande teori
Det finns fortfarande ett oförklarat fenomen att vissa spel presterar bättre på Win7 än på Win10 med Ryzen, oberoende av om SMT är påslaget, samt att prestandaskillnaden försvinner eller minskar kraftigt om man slår av ett helt CCX. Andra tester visar att olika laster förbättras eller försämras när ett CCX slås av (i Ryzen master eller Bios), där just spellaster oftare presterar bättre med ett ensamt CCX. En misstänkt optimeringspunkt som diskuterats är hur windows schemalägger trådar och huruvida det faktum att olika kärnor på CCX har olika latens till varandra och olika L3$ bör tillåtas influera schemaläggningen. Samtidigt är AMD inte så intresserade av att diskutera optimering av schemaläggningen, utan de pekar på problem med powermanagementinställningarna, som de arbetar med Microsoft för att reducera. Det har också visats i tester att om man väljer ”High performance mode” i power settings så presterar Ryzen betydligt bättre på Windows 10, vilket också AMD rekommenderar som workaround tills vidare. Diskussioner här i tråden har samtidigt kretsat kring OS-timerns upplösning, vilken vi vet skiljer sig mellan Win7 och Win10. Kan det vara så att den höga OS-timerfrekvensen vid spel under Win10 gör att trådar flyttas oftare mellan CCX, och att detta leder till en märkbar impact under Win10 jämfört med Win7? Det finns också förslag på att schemaläggningen interagerar med power settings, vilket lyfter frågan om en eventuell effekt av OS-timerfrekvens begränsas av vilken power setting man använder. Det blir därför intressant att veta hur OS-timern påverkar prestanda i enkeltrådade CPU-laster, om en sådan effekt interagerar med powerinställningarna, och om effekten har något att göra med Ryzens design med 2st CCX.

I brist på Ryzen-maskin att testa på så har jag kört lite tester på min egen desktop, spel- och virtualiseringslabbrigg, som har den trevliga egenskapen att jag ganska lätt kan emulera en processor med samma cache-hierarki som Ryzen. Primärt gör jag det för att jag inte har någon Ryzen-rigg, men det finns också ett egenvärde i om jag kan replikera fenomen vi ser på Ryzen på en maskin som delar de egenskaper vi tror är relevanta, men som inte är Ryzen. På så vis kan vi verifiera att det är just de aspekter vi misstänker som producerar resultaten, och inte någon annan okänd aspekt av Ryzens arkitektur som vi inte mätt.

Min testrigg
Maskinen är en dual Opteron 6140 (Magny-Cours, AMD K10 45nm). Den hör alltså till generationen Opteron som kom före Bulldozer, ca 2009. Jag har använt den som desktop/arbetsstation samt även spelkonsol tack vara en virtualiserad Windows-instans med dedikerat grafikkort (PCIe passthrough). Varje CPU har 8 kärnor, och är lik Ryzen på ett antal punkter.

Likheter mot Ryzen:

  • Varje CPU är en MCM med två moduler med 4 kärnor i varje

  • Moduler på samma sockel kommunicerar med varandra på samma sätt som moduler på olika socklar (man tjänar alltså inget på den fysiska närheten mellan moduler på samma MCM/sockel)

  • L1&2$ är privat per kärna

  • L3$ är privat per modul och är en victim-cache till L2

Skillnader mot Ryzen:

  • Annan mikroarkitektur (K10 vs Zen)

  • Modulerna kopplas inte samman med en buss, som i Ryzen, utan med dedikerade HyperTransport-länkar mellan varje modul (upp till ett visst antal moduler)

  • Magny-Cours är NUMA, eftersom varje modul har en egen minneskontroller med 2 kanaler. Att accessa minnesbankar som kontrolleras av andra moduler kostar latens jämfört med att accessa det ”egna” minnet. Men - NUMA går att ”stänga av” (förenklat sett...) till kostnad av en generell latenspenalty, jag har gjort detta för testerna nedan.

  • Ingen SMT, dvs 1 kärna = 1 tråd

  • 6Mb L3$ / modul varav 1Mb är snoop-filter för att lättare hålla reda på vad som finns cachat i andra L3 (något vi inte hittils fått indikation på att Ryzen har)

På grund av dessa likheter så tycker jag att det är intressant att testa om jag kan replikera fenomen vi ser på Ryzen på denna rigg, särskilt då vi misstänker just cachedesignen vilken här är mer lik Ryzen än någon annan x86-maskin. Vi har alltså moduler om 4 kärnor som delar på en victim-LLC, en skillnad är dock att modulerna kommunicerar oberoende av minnesbussen. Detta tillsammans med snoop-filtret borde innebära något mindre overhead vid kommunikation mellan kärnor på olika moduler, jämfört med Ryzen, men ändå en overhead. Då SMT saknas kan jag inte testa effekter av SMT på/av. Däremot kan jag testa effekter av schemaläggning inom/mellan moduler, vid olika power settings och OS-timers, tack vare testproceduren som @tellus82 beskrivit tidigare. Dessutom, eftersom Windows (8.1) körs som virtuell instans, så kan jag via KVM/libvirt styra hur mycket Windows ”vet” om vilka kärnor som delar LLC (mer om detta nedan).

Frågeställningar

  1. Kan vi på Magny-cours replikera fenomenet att schemaläggning över Ryzens CCX-gräns i vissa fall ger en performance hit, och i så fall uppstår fenomenet oberoende av power settings och OS-timer?

  2. Finns det någon information som Windows 8.1 idag kan läsa direkt från hårdvara, som påverkar schemaläggningen på ett gynnsamt sätt för en processor med modularitet likt Ryzen (2 block med var sin LLC)? (I praktiken – vore det lätt eller svårt att få Windows mer medveten om Ryzens struktur?).

Testuppställning och metod

  • Moderkort: Supermicro H8DG6

  • CPU: 2x Opteron 6140 (8core 2.6GHz), totalt 16 kärnor

  • Minne: 32Gb

  • OS: Ubuntu 16.10 4.4.0-64 generic (VMhost), Windows 8.1 (VM guest)

  • NUMA: arkitekturen artificiellt tillplattad och dold för OS (Node interleaving påslaget i BIOS)

Resurser till Windows-VM: 8 kärnor (fysiska kärnor 8-15, alla på fysiska CPU01, isolerade från Linux med isolcpus), 14Gb minne (hugepages, nosharepages, locked), kärnorna fördelade på en eller två (virtuella) socklar beroende på testvillkor (se nedan). HPET exponeras inte för Windows, då det inte verkar vara relevant (tack @Yoshman för redogörelsen).

Vad Windows 8.1 ser:

  • Virtuellt moderkort: Intel 440FX

  • Minne: 14Gb

  • CPU: 8x Magny-cours kärnor med 1 tråd per kärna (cpu-mode=host-passthrough)

  • CPU-topologi: 1 sockel med 8 kärnor ELLER 2 socklar med 4 kärnor vardera (beroende på testvillkor)

Jag har kört alla tester med Windows 8.1, eftersom det är den enda Windows jag har installerat. Vi har tidigare indikation på att timerinställningarna för OS beter sig liknande på Win8 som på Win10, vilket jag också verifierar nedan.

Bios-inställningen ”node interleaving” gör att minneskontrollerna arbetar ungefär som i raid0, och konsekvensen blir att alla CPU-kärnor har samma latens till allt minne. Det ger en latenspenalty jämfört med att accessa lokalt minne, men ökar total minnesbandbredd något (dock ej linjärt pga latensen). Poängen för detta testet är dock inte prestanda utan att emulera Ryzens minneshierarki, för med denna inställning är det precis som i Ryzen endast L3$ som är privat för varje kluster om 4 kärnor. Då windows får se 8 kärnor från samma sockel så uppfattar windows en miljö som är maximalt lik Ryzen i minneshierarki. Kärnorna på den andra fysiska sockeln stannar helt i Linux.

Topologi-inställningarna är en del av experimentet. Jag resonerade så att den information som windows i dagsläget kan agera på, som ligger närmast Ryzens fysiska struktur, är inte NUMA-information utan information om fysiska socklar. Detta eftersom multicore-system med flera socklar kom före NUMA (före minneskontrollern blev en del av processorn), och Windows kunnat hantera SMP över fysiska socklar åtminstone sedan Windows NT 3.51. Dessutom, som diskuterats i tråden, är Ryzen inte ett NUMA-system utan det är enbart hårdvara upp till L3$ som är modulär per CCX. Detta är exakt vad som typiskt är fallet för icke-NUMA-system med flera socklar och flera hårdvarutrådar per sockel, tex de första Xeon med Intel hypertrheading eller ≥2-kärniga Opteron MP. Detta blir också fallet för de flesta moderna NUMA-system där ”node interleaving” är aktiverat, tex denna testrigg. Därför bör Windows, om det får informationen att systemet har två socklar per CPU-die (1 per CCX i Ryzens fall eller 1 per modul i Magny-cours fall) men inte är NUMA, ha all information det behöver för att implementera eventuella optimeringar relaterat till de separata L3$. Vad Windows gör med sådan information i dagsläget visste jag inte, så att undersöka det var ett delsyfte med testet!

Experiment 1: Påverkas prestanda av OS-timerns upplösning, och hur relaterar detta till power settings och huruvida windows ser processorns två moduler som en eller två processorer?

Utfallsmått: Wprime singeltrådat 32M-test (kvadratrot ur de 32 miljoner första heltalen), tid att avsluta testet (lägre är bättre), median av tre körningar.

Faktorer som jag manipulerat:
OS-timer (15.625 ms vs 0.5 ms) x power plan (high performance vs balanced) x CPU-topologi som windows ser (8 core 2skt vs 8 core flat)

Med 8 core flat ser Windows de 8 kärnorna som att de sitter på en sockel, vid 8 core 2skt ser windows 2 socklar med 4 kärnor i varje (vilka sammanfaller med Magny-cours-modulerna). I det senare fallet har windows i teorin tillgång till informationen att de första och sista 4 cores sitter tillsammans och delar på en L3$ vardera. Det borde finnas anledning att undvika att flytta trådar mellan socklar på ett multi-socket-system, varför jag gissar att Windows schemaläggning tar hänsyn till detta, oberoende av hur Windows i övrigt väljer att balansera trådar över socklarna. Då borde vi inte heller se någon effekt av timern i detta fall, OM effekten av timern har att göra med trådflytt mellan moduler. Detta kan alltså leda till en fingervisning om vad motsvarande topologiinformation borde betyda för Ryzen.

Här följer coreinfo för de båda topologivillkoren.

8 core flat:

AMD Opteron(tm) Processor 6140
AMD64 Family 16 Model 9 Stepping 1, AuthenticAMD
Microcode signature: 01000065
HTT * Multicore
HYPERVISOR * Hypervisor is present
VMX - Supports Intel hardware-assisted virtualization
SVM * Supports AMD hardware-assisted virtualization
X64 * Supports 64-bit mode

SMX - Supports Intel trusted execution
SKINIT - Supports AMD SKINIT

NX * Supports no-execute page protection
SMEP - Supports Supervisor Mode Execution Prevention
SMAP - Supports Supervisor Mode Access Prevention
PAGE1GB * Supports 1 GB large pages
PAE * Supports > 32-bit physical addresses
PAT * Supports Page Attribute Table
PSE * Supports 4 MB pages
PSE36 * Supports > 32-bit address 4 MB pages
PGE * Supports global bit in page tables
SS - Supports bus snooping for cache operations
VME * Supports Virtual-8086 mode
RDWRFSGSBASE - Supports direct GS/FS base access

FPU * Implements i387 floating point instructions
MMX * Supports MMX instruction set
MMXEXT * Implements AMD MMX extensions
3DNOW * Supports 3DNow! instructions
3DNOWEXT * Supports 3DNow! extension instructions
SSE * Supports Streaming SIMD Extensions
SSE2 * Supports Streaming SIMD Extensions 2
SSE3 * Supports Streaming SIMD Extensions 3
SSSE3 - Supports Supplemental SIMD Extensions 3
SSE4a * Supports Streaming SIMDR Extensions 4a
SSE4.1 - Supports Streaming SIMD Extensions 4.1
SSE4.2 - Supports Streaming SIMD Extensions 4.2

AES - Supports AES extensions
AVX - Supports AVX intruction extensions
FMA - Supports FMA extensions using YMM state
MSR * Implements RDMSR/WRMSR instructions
MTRR * Supports Memory Type Range Registers
XSAVE - Supports XSAVE/XRSTOR instructions
OSXSAVE - Supports XSETBV/XGETBV instructions
RDRAND - Supports RDRAND instruction
RDSEED - Supports RDSEED instruction

CMOV * Supports CMOVcc instruction
CLFSH * Supports CLFLUSH instruction
CX8 * Supports compare and exchange 8-byte instructions
CX16 * Supports CMPXCHG16B instruction
BMI1 - Supports bit manipulation extensions 1
BMI2 - Supports bit manipulation extensions 2
ADX - Supports ADCX/ADOX instructions
DCA - Supports prefetch from memory-mapped device
F16C - Supports half-precision instruction
FXSR * Supports FXSAVE/FXSTOR instructions
FFXSR * Supports optimized FXSAVE/FSRSTOR instruction
MONITOR - Supports MONITOR and MWAIT instructions
MOVBE - Supports MOVBE instruction
ERMSB - Supports Enhanced REP MOVSB/STOSB
PCLMULDQ - Supports PCLMULDQ instruction
POPCNT * Supports POPCNT instruction
LZCNT * Supports LZCNT instruction
SEP * Supports fast system call instructions
LAHF-SAHF * Supports LAHF/SAHF instructions in 64-bit mode
HLE - Supports Hardware Lock Elision instructions
RTM - Supports Restricted Transactional Memory instructions

DE * Supports I/O breakpoints including CR4.DE
DTES64 - Can write history of 64-bit branch addresses
DS - Implements memory-resident debug buffer
DS-CPL - Supports Debug Store feature with CPL
PCID - Supports PCIDs and settable CR4.PCIDE
INVPCID - Supports INVPCID instruction
PDCM - Supports Performance Capabilities MSR
RDTSCP - Supports RDTSCP instruction
TSC * Supports RDTSC instruction
TSC-DEADLINE * Local APIC supports one-shot deadline timer
TSC-INVARIANT - TSC runs at constant rate
xTPR - Supports disabling task priority messages

EIST - Supports Enhanced Intel Speedstep
ACPI - Implements MSR for power management
TM - Implements thermal monitor circuitry
TM2 - Implements Thermal Monitor 2 control
APIC * Implements software-accessible local APIC
x2APIC * Supports x2APIC

CNXT-ID - L1 data cache mode adaptive or BIOS

MCE * Supports Machine Check, INT18 and CR4.MCE
MCA * Implements Machine Check Architecture
PBE - Supports use of FERR#/PBE# pin

PSN - Implements 96-bit processor serial number

PREFETCHW * Supports PREFETCHW instruction

Maximum implemented CPUID leaves: 00000005 (Basic), 8000001A (Extended).

Logical to Physical Processor Map:
*------- Physical Processor 0
-*------ Physical Processor 1
--*----- Physical Processor 2
---*---- Physical Processor 3
----*--- Physical Processor 4
-----*-- Physical Processor 5
------*- Physical Processor 6
-------* Physical Processor 7

Logical Processor to Socket Map:
******** Socket 0

Logical Processor to NUMA Node Map:
******** NUMA Node 0

No NUMA nodes.

Logical Processor to Cache Map:
*------- Data Cache 0, Level 1, 64 KB, Assoc 2, LineSize 64
*------- Instruction Cache 0, Level 1, 64 KB, Assoc 2, LineSize 64
*------- Unified Cache 0, Level 2, 512 KB, Assoc 16, LineSize 64
******** Unified Cache 1, Level 3, 10 MB, Assoc 1, LineSize 64
-*------ Data Cache 1, Level 1, 64 KB, Assoc 2, LineSize 64
-*------ Instruction Cache 1, Level 1, 64 KB, Assoc 2, LineSize 64
-*------ Unified Cache 2, Level 2, 512 KB, Assoc 16, LineSize 64
--*----- Data Cache 2, Level 1, 64 KB, Assoc 2, LineSize 64
--*----- Instruction Cache 2, Level 1, 64 KB, Assoc 2, LineSize 64
--*----- Unified Cache 3, Level 2, 512 KB, Assoc 16, LineSize 64
---*---- Data Cache 3, Level 1, 64 KB, Assoc 2, LineSize 64
---*---- Instruction Cache 3, Level 1, 64 KB, Assoc 2, LineSize 64
---*---- Unified Cache 4, Level 2, 512 KB, Assoc 16, LineSize 64
----*--- Data Cache 4, Level 1, 64 KB, Assoc 2, LineSize 64
----*--- Instruction Cache 4, Level 1, 64 KB, Assoc 2, LineSize 64
----*--- Unified Cache 5, Level 2, 512 KB, Assoc 16, LineSize 64
-----*-- Data Cache 5, Level 1, 64 KB, Assoc 2, LineSize 64
-----*-- Instruction Cache 5, Level 1, 64 KB, Assoc 2, LineSize 64
-----*-- Unified Cache 6, Level 2, 512 KB, Assoc 16, LineSize 64
------*- Data Cache 6, Level 1, 64 KB, Assoc 2, LineSize 64
------*- Instruction Cache 6, Level 1, 64 KB, Assoc 2, LineSize 64
------*- Unified Cache 7, Level 2, 512 KB, Assoc 16, LineSize 64
-------* Data Cache 7, Level 1, 64 KB, Assoc 2, LineSize 64
-------* Instruction Cache 7, Level 1, 64 KB, Assoc 2, LineSize 64
-------* Unified Cache 8, Level 2, 512 KB, Assoc 16, LineSize 64

Logical Processor to Group Map:
******** Group 0

Dold text

8 core 2skt:

AMD Opteron(tm) Processor 6140
AMD64 Family 16 Model 9 Stepping 1, AuthenticAMD
Microcode signature: 01000065
HTT * Multicore
HYPERVISOR * Hypervisor is present
VMX - Supports Intel hardware-assisted virtualization
SVM * Supports AMD hardware-assisted virtualization
X64 * Supports 64-bit mode

SMX - Supports Intel trusted execution
SKINIT - Supports AMD SKINIT

NX * Supports no-execute page protection
SMEP - Supports Supervisor Mode Execution Prevention
SMAP - Supports Supervisor Mode Access Prevention
PAGE1GB * Supports 1 GB large pages
PAE * Supports > 32-bit physical addresses
PAT * Supports Page Attribute Table
PSE * Supports 4 MB pages
PSE36 * Supports > 32-bit address 4 MB pages
PGE * Supports global bit in page tables
SS - Supports bus snooping for cache operations
VME * Supports Virtual-8086 mode
RDWRFSGSBASE - Supports direct GS/FS base access

FPU * Implements i387 floating point instructions
MMX * Supports MMX instruction set
MMXEXT * Implements AMD MMX extensions
3DNOW * Supports 3DNow! instructions
3DNOWEXT * Supports 3DNow! extension instructions
SSE * Supports Streaming SIMD Extensions
SSE2 * Supports Streaming SIMD Extensions 2
SSE3 * Supports Streaming SIMD Extensions 3
SSSE3 - Supports Supplemental SIMD Extensions 3
SSE4a * Supports Streaming SIMDR Extensions 4a
SSE4.1 - Supports Streaming SIMD Extensions 4.1
SSE4.2 - Supports Streaming SIMD Extensions 4.2

AES - Supports AES extensions
AVX - Supports AVX intruction extensions
FMA - Supports FMA extensions using YMM state
MSR * Implements RDMSR/WRMSR instructions
MTRR * Supports Memory Type Range Registers
XSAVE - Supports XSAVE/XRSTOR instructions
OSXSAVE - Supports XSETBV/XGETBV instructions
RDRAND - Supports RDRAND instruction
RDSEED - Supports RDSEED instruction

CMOV * Supports CMOVcc instruction
CLFSH * Supports CLFLUSH instruction
CX8 * Supports compare and exchange 8-byte instructions
CX16 * Supports CMPXCHG16B instruction
BMI1 - Supports bit manipulation extensions 1
BMI2 - Supports bit manipulation extensions 2
ADX - Supports ADCX/ADOX instructions
DCA - Supports prefetch from memory-mapped device
F16C - Supports half-precision instruction
FXSR * Supports FXSAVE/FXSTOR instructions
FFXSR * Supports optimized FXSAVE/FSRSTOR instruction
MONITOR - Supports MONITOR and MWAIT instructions
MOVBE - Supports MOVBE instruction
ERMSB - Supports Enhanced REP MOVSB/STOSB
PCLMULDQ - Supports PCLMULDQ instruction
POPCNT * Supports POPCNT instruction
LZCNT * Supports LZCNT instruction
SEP * Supports fast system call instructions
LAHF-SAHF * Supports LAHF/SAHF instructions in 64-bit mode
HLE - Supports Hardware Lock Elision instructions
RTM - Supports Restricted Transactional Memory instructions

DE * Supports I/O breakpoints including CR4.DE
DTES64 - Can write history of 64-bit branch addresses
DS - Implements memory-resident debug buffer
DS-CPL - Supports Debug Store feature with CPL
PCID - Supports PCIDs and settable CR4.PCIDE
INVPCID - Supports INVPCID instruction
PDCM - Supports Performance Capabilities MSR
RDTSCP - Supports RDTSCP instruction
TSC * Supports RDTSC instruction
TSC-DEADLINE * Local APIC supports one-shot deadline timer
TSC-INVARIANT - TSC runs at constant rate
xTPR - Supports disabling task priority messages

EIST - Supports Enhanced Intel Speedstep
ACPI - Implements MSR for power management
TM - Implements thermal monitor circuitry
TM2 - Implements Thermal Monitor 2 control
APIC * Implements software-accessible local APIC
x2APIC * Supports x2APIC

CNXT-ID - L1 data cache mode adaptive or BIOS

MCE * Supports Machine Check, INT18 and CR4.MCE
MCA * Implements Machine Check Architecture
PBE - Supports use of FERR#/PBE# pin

PSN - Implements 96-bit processor serial number

PREFETCHW * Supports PREFETCHW instruction

Maximum implemented CPUID leaves: 00000005 (Basic), 8000001A (Extended).

Logical to Physical Processor Map:
*------- Physical Processor 0
-*------ Physical Processor 1
--*----- Physical Processor 2
---*---- Physical Processor 3
----*--- Physical Processor 4
-----*-- Physical Processor 5
------*- Physical Processor 6
-------* Physical Processor 7

Logical Processor to Socket Map:
****---- Socket 0
----**** Socket 1

Logical Processor to NUMA Node Map:
******** NUMA Node 0

No NUMA nodes.

Logical Processor to Cache Map:
*------- Data Cache 0, Level 1, 64 KB, Assoc 2, LineSize 64
*------- Instruction Cache 0, Level 1, 64 KB, Assoc 2, LineSize 64
*------- Unified Cache 0, Level 2, 512 KB, Assoc 16, LineSize 64
****---- Unified Cache 1, Level 3, 10 MB, Assoc 1, LineSize 64
-*------ Data Cache 1, Level 1, 64 KB, Assoc 2, LineSize 64
-*------ Instruction Cache 1, Level 1, 64 KB, Assoc 2, LineSize 64
-*------ Unified Cache 2, Level 2, 512 KB, Assoc 16, LineSize 64
--*----- Data Cache 2, Level 1, 64 KB, Assoc 2, LineSize 64
--*----- Instruction Cache 2, Level 1, 64 KB, Assoc 2, LineSize 64
--*----- Unified Cache 3, Level 2, 512 KB, Assoc 16, LineSize 64
---*---- Data Cache 3, Level 1, 64 KB, Assoc 2, LineSize 64
---*---- Instruction Cache 3, Level 1, 64 KB, Assoc 2, LineSize 64
---*---- Unified Cache 4, Level 2, 512 KB, Assoc 16, LineSize 64
----*--- Data Cache 4, Level 1, 64 KB, Assoc 2, LineSize 64
----*--- Instruction Cache 4, Level 1, 64 KB, Assoc 2, LineSize 64
----*--- Unified Cache 5, Level 2, 512 KB, Assoc 16, LineSize 64
----**** Unified Cache 6, Level 3, 10 MB, Assoc 1, LineSize 64
-----*-- Data Cache 5, Level 1, 64 KB, Assoc 2, LineSize 64
-----*-- Instruction Cache 5, Level 1, 64 KB, Assoc 2, LineSize 64
-----*-- Unified Cache 7, Level 2, 512 KB, Assoc 16, LineSize 64
------*- Data Cache 6, Level 1, 64 KB, Assoc 2, LineSize 64
------*- Instruction Cache 6, Level 1, 64 KB, Assoc 2, LineSize 64
------*- Unified Cache 8, Level 2, 512 KB, Assoc 16, LineSize 64
-------* Data Cache 7, Level 1, 64 KB, Assoc 2, LineSize 64
-------* Instruction Cache 7, Level 1, 64 KB, Assoc 2, LineSize 64
-------* Unified Cache 9, Level 2, 512 KB, Assoc 16, LineSize 64

Logical Processor to Group Map:
******** Group 0

Dold text

Som synes i den senare så ser Windows två socklar med 4 kärnor i varje, fortfarande inga NUMA-noder, och varje 4 kärnor delar en L3$. Storleken på L3$ beräknas dock fel, coreinfo ser det som att varje sockel har 10Mb (5Mb är korrekt, eftersom 1Mb per modul används som snoop-filter). Storleken enligt coreinfo borde inte spela roll dock.

OS-timer ställs in med programmet TimerTool, powerplan ändras och övervakas mha ParkControl, båda efter tips från @tellus82.

Nedan följer resultatet, jag körde varje testvillkor tre gånger för att få en uppfattning om variabiliteten i resultatet. Medianen i varje villkor (fetstilt) är det värde jag sedan räknar på, men jag listar samtliga körningar så att ni kan se hur mycket det varierar. Kolumnen Running time % penalty är procentuella skillnaden i körtid mellan 15.625ms och 0.5ms (lägre är bättre).

8 core 2skt (4core/skt, aware of processor modularity)

8core flat (1skt*8core, unaware of processor modularity)

15.625ms

0.5ms

Running time %penalty

15.625ms

0.5ms

Running time %penalty

hi perf

66.36

66.38

0%

64.35

64.9

1%

66.84

66.67

0%

64.74

65.35

1%

67.4

66.9

-1%

65.57

65.89

1%

balanced

68.83

69.01

0%

66.08

73.58

11%

69

69.03

0%

66.11

73.81

12%

69.87

69.45

-1%

66.13

74.59

13%

Som synes är variabiliteten liten, oftast < 1s. Den intressanta kvadranten är 8 core flat, balanced, 0.5ms, alltså längst ner t.h. i tabellen. Där tar testet 73-74 sekunder istället för 64-66, vilket motsvarar en 12-%ig ökning mot timern inställd på 15.625ms (allt annat hållet lika). Detta är alltså vid ”balanced” powerplan och mer intressant, när Windows inte vet att CPU-kärnorna fysiskt sitter i två moduler.

Vid high performance powerplan försvinner effekten nästan helt, även om det är frestande att tolka den 1%-iga ökningen av körtid som kvarstår som en reliabel effekt. I vilket fall är det en mycket liten effekt, så det är osäkert om den skulle ha genomslag i verkliga applikationer. Det intressanta är här att effekten nästan försvinner vid high performance powerplan. Det verkar som att en eventuell effekt av trådflytt mellan moduler har mer att göra med latenser kopplade till avparkering av kärnor än med tiden det tar att fylla L3$ - men likafullt så finns effekten bara då modulerna inte är kända av OS, så den fysiska moduluppdelningen är relevant på något sätt.

Vi ser också att effekt av timerinställningen helt saknas, oberoende av powerplan, då Windows betraktar var och en av processorns två fysiska moduler som en separat processor. Detta bör rimligen betyda att trådar begränsas av Windows till samma sockel under trådens livslängd. Frågan kvarstår dock – handlar detta om problem med att trådar flyttas mellan processormoduler/CCX, eller har det att göra med någon annan aspekt av processorns modularitet eller Windows hantering av multi-socket? Därför körde jag ett uppföljande experiment.

Experiment 2: Försvinner effekten av OS-timer om trådflytt förhindras på annat sätt än genom att informera Windows om CPU-topologin?

Ett enkelt sätt att testa detta är att låta Windows betrakta processorn som en helt platt 8-kärnig processor med en gemensam L3$ (det som normalt skapar prestandareduktion) men att istället låsa trådens affinity till en CPU-kärna. I följande test körde jag det lite längre 1024M-testet i Wprime, som på min maskin tar 33-35 minuter att slutföra singeltrådat. Jag märkte att Wprimes workertrådar inte ärver affinity av GUI-tråden, så jag satte affinity manuellt till CPU1 (andra kärnan på första modulen) direkt (< 20s) efter att tråden startat. Eftersom den kör så länge är det som händer innan jag hunnit låsa affinity försumbart (jag var för lat för att hitta något mer automatiskt sätt). Således är faktorerna: OS-timer (15.625 ms vs 0.5 ms) x thread affinity (TA set vs TA not set)

Utfallsmått: Wprime 1024M körtid (lägre är bättre)

Resultat för balanced power plan:

8core flat (1skt*8core, unaware of processor modularity)

15.625ms

0.5ms

Running time %penalty

balanced, TA not set

2168.88

2394.9

10%

balanced, TA set

2061.27

2068.93

0%

Vi ser här att när Thread affinity för Wprimes arbetartråd är satt till en kärna (villkoret TA set), så försvinner effekten av 0.5ms OS-timer. Så det verkar som att det faktiskt är när trådar flyttas till den andra modulen som prestandatappet uppstår, och ingen annan aspekt av att OS inte känner till processorns interna modularitet.

Sammanfattning
Undersökningen började i konstaterandet att Win10 kör en OS-timer på 0.5ms när spel körs (eller också begär spelen detta själva, jag vet inte), vilket kunde vara en delförklaring för varför flera testare sett ett prestandatapp i Windows 10 jämfört med Windows 7. Jag testade därför om denna timerinställning påverkar enkeltrådprestanda för ett specifikt testprogram (Wprime), och om en sådan påverkan hänger samman dels med modulariteten hos Magny-cours-processorn, dels med Windows powerinställningar.

Slutsatsen blir att trådflytt mellan processormoduler redan på Magny-Cours är relevant för prestanda, men att relevansen mest framträder då power settings står på balanced (förmodligen har det att göra med parkering av trådar). Detta speglar vad jag kan se de olika tester som körts med Ryzen. Detta förklarar AMDs prioritering av powerinställningarna snarare än schemaläggningen, då ett mer gynnsamt powerschema nästan tar bort den kombinerade effekten av OS-timern och modulgränsen.

Ett intressant fynd var att Windows verkar förstå att inte flytta trådar mellan processorsocklar i onödan, något som antagligen kan nyttjas för optimeringar till Ryzen. Att exponera två socklar till Windows verkar som en rimlig trade-off mellan den komplicerade separation som NUMA innebär, och den helt platta $-hierarki som Windows verkar se i Ryzen idag. Dock är det inte uppenbart vilka optimeringar Windows bör göra givet denna info, då optimal schemaläggning antagligen beror både på processorns och på programmets egenskaper. Jag kan tillägga att jag kört några varv med Unigine Heaven och Valley utan att se några tydliga effekter på prestanda beroende på om Windows ser processorn som en eller två socklar (har inte testat mot OS-timern). Dock ser jag vid två socklar att trådarna sprider sig ganska jämt över (de virtuella) socklarna, så att 3 kärnor av 4 belastas på varje ”sockel”. Detta är förmodligen klokt i många fall, då det leder till ett maximalt utnyttjande av L3$ storlek. Frågan kvarstår om egenheter hos Ryzen kommer att göra den policyn mindre självklar, enligt hur vi diskuterat tidigare i tråden.

Resultatet här är alltså baserat på Magny-Cours, som liknar Ryzen i hur kärnor klustras samman inom samma fysiska processordie. Det började med en ide om en möjlig effekt av CCX-modulernas sammankoppling på Ryzen, som jag testade på Magny-Cours och den visade sig finnas även där. Det tyder på att våra gissningar om effekten av Ryzens modularitet är på rätt spår, även om vi också ser att det finns andra faktorer som påverkar, vilka nog är lättare att optimera än schemaläggningen. Det hade varit intressant att se resultatet replikerat på ett Intelsystem med samma modulstruktur, tex en multi-socket Xeon med node interleaving aktiverat, för att se om fenomenet uppstår även där!

Visa signatur

Här hade jag en historik sen 1990-talet, men den blev tillslut för lång. Aktiva maskiner 2022-framåt:
Work/Play/Everythingstation: AMD Epyc 7443p, Pop OS host, Win10 + Linux guests (KVM/Qemu)
Work/Play nr 2: AMD Phenom II 1090t, Debian + Win 10 (dual boot)
Server x3: Epyc 7252 (TrueNAS Core), Atom 2550 (FreeBSD, backup), Opteron 6140 (Ubuntu, off prem backup)
Retrohörna under uppbyggnad: Dual Pentium Pro 200MHz, Pentium P54C 90MHz, Gravis Ultrasound MAX

Permalänk
Medlem
Skrivet av sAAb:

Två våtare drömmar.

AMD Naples Benchmarks vs Intel Xeon E5-2699 V4

https://www.youtube.com/watch?v=ZtYTPcshyA0

@Yoshman, hade inte du något sådant här att leka med? Känns dessa resultat rimliga?

ojojoj vilka intressanta resultat, några saker jag gärna också skulle vilja veta är CPU hastigheter och varför RAM på Intels inte går i 2400, jag antar att det är en E5-2699 v4 dom testar mot, och dom stödjer 2400. Jag är ganska säker på att Zen arkitekturen tekniskt sett kan hålla ganska höga hastigheter med många kärnor (tack vare CCX), allt under 3.3 GHz på Ryzen verkade föllja en bra effektkurva. Med IF som silly putty mellan CCX borde bara TDP och mängden CCX man har sätta gränsen på hur mycket klock man kan få ur.

En full Naples krets ska vara 8 CCX, 2 CCX undervoltat till 2.2 ish GHz (i en Ryzen 1700) verkar enligt tidigare inlägg ligga kring 30W. Om detta är rimligt borde man med ganska stor säkerhet nå upp till TDP av 145-150W med 8 CCX någonstans mellan 2 och 2.5 GHz, det som skulle ge Ryzen överhanden i det fallet mot Intels 22 kärniga skulle då vara den extrema mängden data som kan flyga igenom med "octa channel" minne och 64MB totalt L3$ (en minneskanal per CCX?). Detta jämfört med Intel's design med två gigantiska (12 kärnor) ringbussar blir då väldigt passande för vissa ändamål, finns säkert fortfarande många ändamål där Intels server CPU fungerar bättre dock. Vi får helt enkelt se vad framtiden väntar (Själv hoppas jag på quad channel 16 core WS processorer och se hur de presterar)

Visa signatur

"Oh glorious cheeseburger… we bow to thee. The secrets of the universe are between the buns..."
"All my farts come straight from hell, you're already dead if you notice a smell"

Permalänk
Medlem
Skrivet av wowsers:

ojojoj vilka intressanta resultat, några saker jag gärna också skulle vilja veta är CPU hastigheter och varför RAM på Intels inte går i 2400, jag antar att det är en E5-2699 v4 dom testar mot, och dom stödjer 2400. Jag är ganska säker på att Zen arkitekturen tekniskt sett kan hålla ganska höga hastigheter med många kärnor (tack vare CCX), allt under 3.3 GHz på Ryzen verkade föllja en bra effektkurva. Med IF som silly putty mellan CCX borde bara TDP och mängden CCX man har sätta gränsen på hur mycket klock man kan få ur.

En full Naples krets ska vara 8 CCX, 2 CCX undervoltat till 2.2 ish GHz (i en Ryzen 1700) verkar enligt tidigare inlägg ligga kring 30W. Om detta är rimligt borde man med ganska stor säkerhet nå upp till TDP av 145-150W med 8 CCX någonstans mellan 2 och 2.5 GHz, det som skulle ge Ryzen överhanden i det fallet mot Intels 22 kärniga skulle då vara den extrema mängden data som kan flyga igenom med "octa channel" minne och 64MB totalt L3$ (en minneskanal per CCX?). Detta jämfört med Intel's design med två gigantiska (12 kärnor) ringbussar blir då väldigt passande för vissa ändamål, finns säkert fortfarande många ändamål där Intels server CPU fungerar bättre dock. Vi får helt enkelt se vad framtiden väntar (Själv hoppas jag på quad channel 16 core WS processorer och se hur de presterar)

Ironiskt nog är det Infinity Fabric som kommer att sätta stop för hur många CCX man kan ha i samma krets. Alla dessa minneskanaler, alla dessa PCI-E och alla dessa kärnor måste kommunicera över samma 32byte breda IF-buss... Men för laster som inte ställer särskilt stora krav på kommunikation mellan trådar eller med andra delar av datorn kommer den att bli enorm...

Permalänk
Medlem
Skrivet av anon75480:

Ser fortfarande inte hur du hamnar på 30W, att bara höfta ut att det är möjligt med bra binnad ser jag inte direkt som bevis. Det är STOR skillnad på 60W och 30W, det skulle kräva (om man går efter länken) en vcore på runt 0.6v. Beror dock på hur det skalar med A osv, men det är rätt jäkla lågt.

Sen hade det vart helt fantastiskt om det skulle visa sig stämma. Men tills den dagen kommer så fortsätter jag vara skeptiskt.

Bevis? När har jag sagt att det kommer bli så? Jag skrev det som en förhoppning/möjlighet..

Jag har absolut inga bevis på att de kommer bli så alls.

Permalänk
Hjälpsam
Skrivet av anon75480:

Ser fortfarande inte hur du hamnar på 30W, att bara höfta ut att det är möjligt med bra binnad ser jag inte direkt som bevis. Det är STOR skillnad på 60W och 30W, det skulle kräva (om man går efter länken) en vcore på runt 0.6v. Beror dock på hur det skalar med A osv, men det är rätt jäkla lågt.

Sen hade det vart helt fantastiskt om det skulle visa sig stämma. Men tills den dagen kommer så fortsätter jag vara skeptiskt.

30W är absolut görligt även om 35W verkar kosta mindre prestanda per Watt enligt denna graf.

https://forums.anandtech.com/threads/ryzen-strictly-technical...

Vill man att Ryzen skall gå snålt, är det enklast att köpa en R7 1700 och låta den gå i stock, då får strömsparfunktionerna max möjlighet att kicka in.
En R7 drar oftast endast en liten del av sin maxeffekt, eftersom alla kärnor sällan används, i de flesta fall är många av dem parkerade.

Visa signatur

AMD Ryzen 7 1700 | Saphire RX 5700 Pulse XT (Silent Mode) | 64 GB Kingston ECC | https://valid.x86.fr/z2ljhr | Stockkylaren | Bitfenix Whisper M 750W.
AMD Ryzen 9 5900X | AMD RX 5700 | 64 GB Micron ECC | https://valid.x86.fr/5krwxf
HTPC | https://valid.x86.fr/uuzli0 |

Permalänk
Medlem
Skrivet av Ratatosk:

30W är absolut görligt även om 35W verkar kosta mindre prestanda per Watt enligt denna graf.
http://i.imgur.com/9oVGc83.png
https://forums.anandtech.com/threads/ryzen-strictly-technical...

Görligt är det, men några 3GHz blir det inte.

Permalänk
Medlem
Skrivet av anon75480:

Ser fortfarande inte hur du hamnar på 30W, att bara höfta ut att det är möjligt med bra binnad ser jag inte direkt som bevis. Det är STOR skillnad på 60W och 30W, det skulle kräva (om man går efter länken) en vcore på runt 0.6v. Beror dock på hur det skalar med A osv, men det är rätt jäkla lågt.

Sen hade det vart helt fantastiskt om det skulle visa sig stämma. Men tills den dagen kommer så fortsätter jag vara skeptiskt.

Hur räknade du ut att det skulle krävas en vcore på runt 0,6v?

Permalänk
Hjälpsam
Skrivet av lorgix:

Görligt är det, men några 3GHz blir det inte.

Nej det blir det inte, dock är nog 2,6 GHz möjligt.

Visa signatur

AMD Ryzen 7 1700 | Saphire RX 5700 Pulse XT (Silent Mode) | 64 GB Kingston ECC | https://valid.x86.fr/z2ljhr | Stockkylaren | Bitfenix Whisper M 750W.
AMD Ryzen 9 5900X | AMD RX 5700 | 64 GB Micron ECC | https://valid.x86.fr/5krwxf
HTPC | https://valid.x86.fr/uuzli0 |