Permalänk
Medlem

@Gainsgoblin: Vet inte hur åldern mellan processorerna spelar in i slutsatsen men du får gärna utveckla.

Det jag tyckte var intressant var att det inte är så representativt att visa hur processorerna klarar sig i låga upplösningar för hur den kommer prestera med snabbare grafikkort i framtiden i högre upplösningar.

Man ska alltså ta testerna för vad de är. Jag skulle säga att cinebenchresultat, firestrike och alla andra möjliga syntetiska tester går lika lite att koppla linjärt till prestandan med framtida grafikkort än vad som går mellan låga och höga upplösningar i spel.

Permalänk
Medlem
Skrivet av liket:

@Blomkungen: Vet inte hur åldern mellan processorerna spelar in i slutsatsen men du får gärna utveckla.

Det jag tyckte var intressant var att det inte är så representativt att visa hur processorerna klarar sig i låga upplösningar för hur den kommer prestera med snabbare grafikkort i framtiden i högre upplösningar.

Man ska alltså ta testerna för vad de är. Jag skulle säga att cinebenchresultat, firestrike och alla andra möjliga syntetiska tester går lika lite att koppla linjärt till prestandan med framtida grafikkort än vad som går mellan låga och höga upplösningar i spel.

På lång sikt kan många andra faktorer spela in, ja.

På kort/medellång sikt är resultaten i låga upplösningar mycket intressanta, i synnerhet om man sitter på 144 Hz-skärm. Om man prompt vill ha tex 100+ FPS i BF1 kanske man hellre spelar på Low med sitt nuvarande grafikkort för att uppnå det, och när GTX 2080 kommer ut höjer man till Ultra.

Om det bara testats i upplösningar där GPUn flaskar vid tex 80 FPS är det omöjligt att utläsa något annat än huruvida CPUn klarar 80 FPS. Dvs det säger ännu mindre om framtiden.

Skickades från m.sweclockers.com

Visa signatur

Bästa trådstarten någonsin.

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

Permalänk
Hjälpsam
Skrivet av MakeCoke:

På lång sikt kan många andra faktorer spela in, ja.

På kort/medellång sikt är resultaten i låga upplösningar mycket intressanta, i synnerhet om man sitter på 144 Hz-skärm. Om man prompt vill ha tex 100+ FPS i BF1 kanske man hellre spelar på Low med sitt nuvarande grafikkort för att uppnå det, och när GTX 2080 kommer ut höjer man till Ultra.

Om det bara testats i upplösningar där GPUn flaskar vid tex 80 FPS är det omöjligt att utläsa något annat än huruvida CPUn klarar 80 FPS. Dvs det säger ännu mindre om framtiden.

Skickades från m.sweclockers.com

Om man nu vill testa i 100 Hz, varför inte välja vettiga inställningar för detta, ingen spelar väl i 720p?
Välj 1080p och sänk övriga inställningar i stället.

Visa signatur

AMD Ryzen 7 5700X | Saphire RX 5700 Pulse XT (Silent Mode) | 64 GB Kingston ECC | https://valid.x86.fr/51gntq | Stockkylaren | Bitfenix Whisper M 750W.
AMD Ryzen 9 5900X | AMD RX 5700 | 64 GB Micron ECC | https://valid.x86.fr/gwcxfs
HTPC | https://valid.x86.fr/gqtxws |

Permalänk
Entusiast
Skrivet av Ratatosk:

Om man nu vill testa i 100 Hz, varför inte välja vettiga inställningar för detta, ingen spelar väl i 720p?
Välj 1080p och sänk övriga inställningar i stället.

Grejen är ju bara den att visa inställningar i spel också kan påverka CPU-prestandan.
Att sänka upplösningen så lågt som möjligt och helst med övriga inställningar på max är optimalt, synd bara att inga recensenter verkar göra det.

Skickades från m.sweclockers.com

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
Medlem

Jag trodde att jag redan påvisat våndan av att testa i 720p/low settings... När man kommer upp i mycket hög fps (som man gör i 720p/low med 1080/ti/titan) så kommer andra faktorer i systemet bli limiterande, cpu användning/belastning kan faktiskt sjunka i dessa scenarion mot att köra en vettig upplösning/inställning där du inte är gpu limiterad (1080p/high/very high). Observera att nedanstående tester gjorts på min egen burk, inte på ett ryzen system. Principen är dock exakt den samma på ett Ryzen system.

Här ser du något så enkelt som hur minnesbandbredd påverkar FPS i spel, titta framförallt på max fps mellan 1600MHz och 2133MHz, här skiljer det mer än 50fps på en bandbreddsskillnad av ~9-10GB/s. Inget annat är ändrat mellan testerna förutom minnesfrekvens. Och innan nån säger att det gäller bara detta systemet och inget annat så ta på er tänkarmössan... Observera att varken CPU eller GPU är ens lite i närheten av att agera en flaskhals i dessa tester.

PCI-E 2.0 motsvarar lite mer än halva 3.0 så 8x@2.0 är ~4x@3.0, 16x@2.0 motsvarar ~8x@3.0

Här ser man effekten av PCI-E bandbredd på hög FPS, i normal FPS (144-165) så finns det praktiskt ingen mätbar skillnad/ytterst liten skillnad, kliv över 200FPS och du ser direkt en skillnad som bara växer med antal FPS. Här så är FPS helt lössläppt vilket borde ge en GPU flaskhals eller CPU flaskhals men ingendera kommer i närheten av 99-100% belastning under detta test heller.

Igen försök komma ihåg att fantasi FPS egentligen inte säger någonting om man inte samtidigt har data på gpu och cpu belastning, annars kan det vara att man sitter och benchar skillnad på PCI-E throughput eller latency för den samma istället för CPU styrka eller minnesbandbredd/latency på internminnet.

Här ser man istället skillnad på cpu belastning per frame mellan högsta och lägsta ingame inställningarna, på det värsta stället (Geothermal Valley) skiljer det mer än 40% vilket motsvarar mer än tre logiska kärnor på aktuellt system.

Här ser ni skillnad på cpu belastning per frame vid ändrad upplösning, medelvärde skiljer som mest 1% totalt

Ytterligare en på samma fast mellan 1080p ultra wide och 4k ultra wide.

Detta spelet kan under geothermal valley och Syria testet använda precis 100% av din cpu men det kräver rätt inställningar och upplösning som inte begränsas av GPU, vilken upplösning det i slutändan blir bero på din GPU. Men att kategoriskt säga att man alltid ska testa i 720p low eller high är inget annat än hål i huvudet. Man måste såklart titta på hur systemet faktiskt belastas av varje test.

Visa signatur

| nVidia RTX3090FE | R9 5800X3D | MSI x570 Unify | Ballistix sport 3000c15 32GB DR@3800c16 | Custom Loop EKWB | 12TB nvme, 2TB sata SSD | RM1000x | Creative X4 | Antec C8 | Alienware aw3821dw | >Antec C8 Custom Loop< |

Permalänk
Medlem

@MakeCoke:
Jag vet inte hur jag gav den uppfattningen om att det är ointressant med tester i låga upplösningar tvärtomhåller jag med dig om att testerna som visar höga fps är värdefulla.

Videon visar att grafikkortet processorn inte nödvändigtvis skalar linjärt med snabbare grafikkort, varken i FPS eller upplösning, det är snarare att det är exponentiellt avtagande och därför är höga upplösningar minst lika intressanta att visa.

Permalänk
Hjälpsam
Skrivet av Sisyfos:

Grejen är ju bara den att visa inställningar i spel också kan påverka CPU-prestandan.
Att sänka upplösningen så lågt som möjligt och helst med övriga inställningar på max är optimalt, synd bara att inga recensenter verkar göra det.

Skickades från m.sweclockers.com

Som @tellus82 visar, man vet inte om vad som begränsar i ett konstlat testfall, det kan vara något helt annat än de intällningar folk normalt använder, när de vill spela med hög fps.
Jag är också mot att testa grafikkort i extremt höga inställningar, nästan ingen är väl intresserad av vilket kort som presterar bäst i 4k, om det rör sig om bärst runt 15 fps.
Nej testa gärna i 4k, men se till att sänka grafiken, så att du i alla fall når i runt 60 Hz.

Visa signatur

AMD Ryzen 7 5700X | Saphire RX 5700 Pulse XT (Silent Mode) | 64 GB Kingston ECC | https://valid.x86.fr/51gntq | Stockkylaren | Bitfenix Whisper M 750W.
AMD Ryzen 9 5900X | AMD RX 5700 | 64 GB Micron ECC | https://valid.x86.fr/gwcxfs
HTPC | https://valid.x86.fr/gqtxws |

Permalänk
Datavetare
Skrivet av tellus82:

Grafen kommer från min burk... Trodde det var rätt uppenbart

Visst kompis, fattade absolut att det kommer från din burk. Och eftersom du postade det som ett bevis för att något inte fungerar som det ska på Ryzen ligger det VÄLDIGT nära tillhands att anta att din burk har en Ryzen CPU i sig.

För om det är en Intel, vad försökte du då visa? CPU-lasten är precis vad man förväntar sig från en CPU med SMT där alla CPU-tråd schemaläggning sköts till 100 % av Windows, d.v.s. cache-topologin är helt irrelevant då applikationen inte använder den till att själv styra mappning av OS-trådar till CPU-trådar.

Verkar också som felet med cache-topologin varken låg i Windows, i CPUn eller moderkortet. Problemet verkar vara att äldre versioner av programmet Coreinfo visar information fel, uppdaterar man till senaste Coreinfo blir det rätt (står om det i "Ryzen: strictly technical" Ryzen: Strictly technical).

Så cache-topologi lär aldrig ha varit ett problem då felet låg i att Coreinfo visade information fel.

PCPerspective nämner också här (kolla 42:30-44:00 minuter in i videon) att Windows schemalägger OS-trådar precis som förväntat på Ryzen. Man lastar först varannan CPU-tråd, d.v.s. lägger jobb på ena CPU-tråden i varje fysisk kärna. Först när det inte längre finns några CPU-kärnor om är "idle" börjar man också lasta den andra CPU-tråden.

De spekulerar en del mellan 40:00-50:00 om vad som kan vara orsaken till spel-prestanda. De pekar på något i Infinity-fabric.

Jag tror det är mycket enklare: benchmarks tenderar pushar skalära flyttal som Zen är lysande på, spel (och de flesta "vanliga" program) pushar skalära heltal och dessa är är inte heller "embarrassing parallel". Zen har Haswell/Broadwell IPC för skalära flyttal, men har Sandy/Ivy Bridge IPC för skalära heltal + synkronisering mellan kärnor är dyrare i Zen än Core. Det förklara i princip alla resultat vi ser.

Så SMT-schemaläggning fungerar precis som jag hävdat är fallet hela tiden och detta är det mest optimala en OS-kärnan kan göra. Det är inte nödvändigtvis det optimala för en viss applikation, men utan att ha detaljkännedom om vad de olika OS-trådarna gör (något som en OS-kärnan inte kan veta) är detta optimalt. Linux och OSX fungerar på samma sätt.

Skrivet av Ratatosk:

Tycker att Windows scheduler verkar vara för "hoppig", tror att både Intel och AMD skull tjäna på ett lugnare uppträdande.

Tänkte just på hur mycket saker hoppar runt i Windows när jag kopierade en stort git-repo mellan två maskiner. Brukar göra detta genom att köra detta

$ ssh IPADDR_OF_SRC tar czf SRC_DIR - | tar xzf -

D.v.s. via SSH kör jag tar som komprimerar innehållet och skickar ut resultatet på stdout (som då i detta fall tunnlas genom SSH) för att packas upp lokalt. På båda sidor körs i praktiken två processer, programmet som packar (vilket är flaskhals givet tillräckligt snabbt nätverk) och ssh (som kanske tar 10-15 %CPU).

Sändaren var i detta fall Ubuntu, under hela tiden låg gzip fast på CPU-tråd #1, SSH på CPU-tråd #2 och tar tog 0-1 % på CPU-tråd #0. Windows hade jämn last över alla CPU-trådar trots att det var samma konstellation av processer.

Så är detta ett problem? Svaret är med stor sannolikhet att det ändå inte är ett prestandaproblem, orsaken ligger i tidsskalan för det som kan påverkas.

Windows verkar av någon anledning göra något med fördelning av mappning av OS-trådar till CPU-trådar varje OS-tick, mitt Windows 10 har 16 ms mellan tick (Windows har tydligen normalt mellan 10-16 ms mellan OS-tick).

Tidsskalan för cache-miss vs cache-hit ligger på tiotals till i värsta fall långa hundratals nanosekunder, det är fem-sex tiopotenser ifrån!!! Så att trådar i värsta fall flyttas var 16:e millisekund är på det stora hela irrelevant för prestanda då det i värsta fall lägger på 100-tals nanosekunder på de första minnesaccesserna efter bytet.

Ett långt större problem är då att en CPU-kärna som inte är så hårt lastad lägger sig att sova, fast att komma ur C1 (billigaste sovlägen som används när CPUn relativt ofta används) tar ~1 mikrosekund. Fortfarande tre-fyra tiopotenser från tiden Windows skyfflar runt OS-trådar mellan CPU-trådar.

Det största problemet, sett till tidsskalan, är trots allt frekvensskalning: P-states. Tar tiotals till i värsta fall långa hundratals mikrosekunder att hoppa mellan olika frekvenser. Ovanpå det kan det ta minst ett tick (16 ms) innan Windows-kärnan anser att en viss CPU-kärna är tillräckligt lastad för att man ska kliva in i P0 (högsta frekvens). Just att det tar så pass lång tid för ett OS att hinna sampla den informationen är orsaken till att färre CPU-kärnor faktiskt kan ge bättre upplevelse i interaktiva program om man kör på laptops/pekplattor som är väldigt aggressiv att skala ner frekvens av strömförbrukningshänsyn.

Tanken med "Speed shift" är att flytta samplingen av CPU-last från OS till CPU, vilket då leder till att man kan reagera på millisekundnivå i stället för som bäst 10-16 ms (OS-tick upplösning).

Det som idag verkar ställa till det för Ryzen är just C-states och P-states (frekvensskalning), AMD rekommenderar att man kör med "high performance" profilen fram till att detta rättats i UEFI/Windows. Kör man i "high performance" används bara P0 så den delen av ekvationen försvinner, tror också att endast C0/C1 används (C3 och C6 spar betydligt mer ström, men i C6 tappar CPU-cachen ström så allt måste läsas från L3$/RAM vid uppvaknande).

Skrivet av Gruarn:

öh, bilden var på en Core-CPU, inte en Ryzen. några trådar för lite för att vara Ryzen:)

För någon som håller på att undersöka saker kring just hur program uppför sig över kärnor och över SMT förvånar det mig inte det minsta så länge inte antal CPU-trådar är fler än vad som är möjligt.

Eller var hittar jag denna i7-4702MQ som tydligen har 2 kärnor och totalt 3 CPU-trådar (är normalt 4C/8T)?

Dold text

Det är en laptop så är inte möjligt att ändra antalet CPU-kärnor i BIOS, fast behövs inte då det är en standardfunktion i Windows att ta upp en delmängd av alla CPU-trådar. Ännu coolare är det i Linux, där kan man ta upp/ner CPU-trådar dynamiskt!

Skrivet av marcusOCZ:

@Yoshman Som jag läser dina inlägg om saken så tror du inget på att Ryzen's SMT skall kunna optimeras genom en windowsuppdatering, har jag förstått det korrekt då? (Du behöver inte skriva en lång tirad, bara ja eller nej)

Nej.

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:

Visst kompis, fattade absolut att det kommer från din burk. Och eftersom du postade det som ett bevis för att något inte fungerar som det ska på Ryzen ligger det VÄLDIGT nära tillhands att anta att din burk har en Ryzen CPU i sig.

För om det är en Intel, vad försökte du då visa? CPU-lasten är precis vad man förväntar sig från en CPU med SMT där alla CPU-tråd schemaläggning sköts till 100 % av Windows, d.v.s. cache-topologin är helt irrelevant då applikationen inte använder den till att själv styra mappning av OS-trådar till CPU-trådar.

Verkar också som felet med cache-topologin varken låg i Windows, i CPUn eller moderkortet. Problemet verkar vara att äldre versioner av programmet Coreinfo visar information fel, uppdaterar man till senaste Coreinfo blir det rätt (står om det i "Ryzen: strictly technical" Ryzen: Strictly technical).

Så cache-topologi lär aldrig ha varit ett problem då felet låg i att Coreinfo visade information fel.

PCPerspective nämner också här (kolla 42:30-44:00 minuter in i videon) att Windows schemalägger OS-trådar precis som förväntat på Ryzen. Man lastar först varannan CPU-tråd, d.v.s. lägger jobb på ena CPU-tråden i varje fysisk kärna. Först när det inte längre finns några CPU-kärnor om är "idle" börjar man också lasta den andra CPU-tråden.
https://youtu.be/4aEw3e-je9w?t=2551

De spekulerar en del mellan 40:00-50:00 om vad som kan vara orsaken till spel-prestanda. De pekar på något i Infinity-fabric.

Jag tror det är mycket enklare: benchmarks tenderar pushar skalära flyttal som Zen är lysande på, spel (och de flesta "vanliga" program) pushar skalära heltal och dessa är är inte heller "embarrassing parallel". Zen har Haswell/Broadwell IPC för skalära flyttal, men har Sandy/Ivy Bridge IPC för skalära heltal + synkronisering mellan kärnor är dyrare i Zen än Core. Det förklara i princip alla resultat vi ser.

Vilket är precis vad jag hävdat är fallet hela tiden och detta är det mest optimala en OS-kärnan kan göra. Det är inte nödvändigtvis det optimala för en viss applikation, men utan att ha detaljkännedom om vad de olika OS-trådarna gör (något som en OS-kärnan inte kan veta) är detta optimalt. Linux och OSX fungerar på samma sätt.

Tänkte just på hur mycket saker hoppar runt i Windows när jag kopierade en stort git-repo mellan två maskiner. Brukar göra detta genom att köra detta

$ ssh IPADDR_OF_SRC tar czf SRC_DIR - | tar xzf -

D.v.s. via SSH kör jag tar som komprimerar innehållet och skickar ut resultatet på stdout (som då i detta fall tunnlas genom SSH) för att packas upp lokalt. På båda sidor körs i praktiken två processer, programmet som packar (vilket är flaskhals givet tillräckligt snabbt nätverk) och ssh (som kanske tar 10-15 %CPU).

Sändaren var i detta fall Ubuntu, under hela tiden låg gzip fast på CPU-tråd #1, SSH på CPU-tråd #2 och tar tog 0-1 % på CPU-tråd #0. Windows hade jämn last över alla CPU-trådar trots att det var samma konstellation av processer.

Så är detta ett problem? Svaret är med stor sannolikhet att det ändå inte är ett prestandaproblem, orsaken ligger i tidsskalan för det som kan påverkas.

Windows verkar av någon anledning göra något med fördelning av mappning av OS-trådar till CPU-trådar varje OS-tick, mitt Windows 10 har 16 ms mellan tick (Windows har tydligen normalt mellan 10-16 ms mellan OS-tick).

Tidsskalan för cache-miss vs cache-hit ligger på tiotals till i värsta fall långa hundratals nanosekunder, det är fem-sex tiopotenser ifrån!!! Så att trådar i värsta fall flyttas var 16:e millisekund är på det stora hela irrelevant för prestanda då det i värsta fall lägger på 100-tals nanosekunder på de första minnesaccesserna efter bytet.

Ett långt större problem är då att en CPU-kärna som inte är så hårt lastad lägger sig att sova, fast att komma ur C1 (billigaste sovlägen som används när CPUn relativt ofta används) tar ~1 mikrosekund. Fortfarande tre-fyra tiopotenser från tiden Windows skyfflar runt OS-trådar mellan CPU-trådar.

Det största problemet, sett till tidsskalan, är trots allt frekvensskalning: P-states. Tar tiotals till i värsta fall långa hundratals mikrosekunder att hoppa mellan olika frekvenser. Ovanpå det kan det ta minst ett tick (16 ms) innan Windows-kärnan anser att en viss CPU-kärna är tillräckligt lastad för att man ska kliva in i P0 (högsta frekvens). Just att det tar så pass lång tid för ett OS att hinna sampla den informationen är orsaken till att färre CPU-kärnor faktiskt kan ge bättre upplevelse i interaktiva program om man kör på laptops/pekplattor som är väldigt aggressiv att skala ner frekvens av strömförbrukningshänsyn.

Tanken med "Speed shift" är att flytta samplingen av CPU-last från OS till CPU, vilket då leder till att man kan reagera på millisekundnivå i stället för som bäst 10-16 ms (OS-tick upplösning).

Det som idag verkar ställa till det för Ryzen är just C-states och P-states (frekvensskalning), AMD rekommenderar att man kör med "high performance" profilen fram till att detta rättats i UEFI/Windows. Kör man i "high performance" används bara P0 så den delen av ekvationen försvinner, tror också att endast C0/C1 används (C3 och C6 spar betydligt mer ström, men i C6 tappar CPU-cachen ström så allt måste läsas från L3$/RAM vid uppvaknande).

För någon som håller på att undersöka saker kring just hur program uppför sig över kärnor och över SMT förvånar det mig inte det minsta så länge inte antal CPU-trådar är fler än vad som är möjligt.

Eller var hittar jag denna i7-4702MQ som tydligen har 2 kärnor och totalt 3 CPU-trådar (är normalt 4C/8T)?

Det är en laptop så är inte möjligt att ändra antalet CPU-kärnor i BIOS, fast behövs inte då det är en standardfunktion i Windows att ta upp en delmängd av alla CPU-trådar. Ännu coolare är det i Linux, där kan man ta upp/ner CPU-trådar dynamiskt!

Nej.

Men snälla du, hårdvaran jag använder står ganska tydligt i min signatur, tycker du inte det? Dessutom framgick det att jag gjort testandet på min burk. Och vad jag försöker påvisa har jag redan talat om, igen och igen och igen. Det är vid det här laget bara du som inte förstår eller rättare sagt inte vill förstå.

Visa signatur

| nVidia RTX3090FE | R9 5800X3D | MSI x570 Unify | Ballistix sport 3000c15 32GB DR@3800c16 | Custom Loop EKWB | 12TB nvme, 2TB sata SSD | RM1000x | Creative X4 | Antec C8 | Alienware aw3821dw | >Antec C8 Custom Loop< |

Permalänk
Medlem

Förhoppningsvis är alla eventuella felaktigheter fixade och alla frågetecken uträtade när Ryzen 5 lanseras. Det är ändå de CPUerna som kommer vara intressanta för gaming.

Intels i7or har redan så många kärnor/trådar att det blir svårt att kasta fler trådar på problemet, men som vi sett de senaste åren tjänar man mycket på att gå över i5ornas 4/4. Ryzen 4/8 och 6/12 blir intressanta, och jag gissar att de kommer göra i5orna till ganska dåliga val, i synnerhet vad gäller framtiden.

Visa signatur

Bästa trådstarten någonsin.

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

Permalänk
Datavetare
Skrivet av tellus82:

Men snälla du, hårdvaran jag använder står ganska tydligt i min signatur, tycker du inte det? Och vad jag försöker påvisa har jag redan talat om, igen och igen och igen. Det är vid det här laget bara du som inte förstår eller rättare sagt inte vill förstå.

Helt ärligt talat, men absolut noll ironi och sarkasm. Om du postade resultat från ett Intelsystem så var det något som överhuvudtaget inte hade något med vad du faktiskt protesterade emot.

Jag skrev att det inte spelar någon roll om cache-topologin är fel, för OS-kärnan bryr sig inte om den (bryr sig bara om storleken på cache-lines). Sedan skrev jag att 99,99 % av alla applikationer bryr sig inte heller om cache-topologin.

Du postade då lite bilder på lasten över CPU-trådar när man kör Unigine Heaven Benchmark, en bild som visar att allt fungerar PRECIS som man förväntar sig.

Var i hela det om står ovan finns det någon form av logik i ditt resonemang överhuvudtaget? Åter igen, varken sarkastisk eller retorisk fråga. Det är verkligen en ärlig fråga då inget av vad du postade eller det faktum att du i slutändan verkar fått damp på mig är på något sätt rationellt sett från mitt lilla hörn av världen. Brukar inte ha svårt att förstå folk när de försöker förklara tekniska saker, inte ens när de sker på hopplös kina-engelska. Men här har det uppenbarligen blivit ett totalt missförstånd och är uppriktigt ledsen om du uppfattat det som att jag ville dryga mig, har aldrig varit mitt uppsåt.

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

Jag trodde att jag redan påvisat våndan av att testa i 720p/low settings... När man kommer upp i mycket hög fps (som man gör i 720p/low med 1080/ti/titan) så kommer andra faktorer i systemet bli limiterande, cpu användning/belastning kan faktiskt sjunka i dessa scenarion mot att köra en vettig upplösning/inställning där du inte är gpu limiterad (1080p/high/very high). Observera att nedanstående tester gjorts på min egen burk, inte på ett ryzen system. Principen är dock exakt den samma på ett Ryzen system.

http://i621.photobucket.com/albums/tt297/Tellus82/Mountain_zps2ymzhrdc.png
Här ser du något så enkelt som hur minnesbandbredd påverkar FPS i spel, titta framförallt på max fps mellan 1600MHz och 2133MHz, här skiljer det mer än 50fps på en bandbreddsskillnad av ~9-10GB/s. Inget annat är ändrat mellan testerna förutom minnesfrekvens. Och innan nån säger att det gäller bara detta systemet och inget annat så ta på er tänkarmössan... Observera att varken CPU eller GPU är ens lite i närheten av att agera en flaskhals i dessa tester.

http://i621.photobucket.com/albums/tt297/Tellus82/PCIE_zpssgctc9zx.png
PCI-E 2.0 motsvarar lite mer än halva 3.0 så 8x@2.0 är ~4x@3.0, 16x@2.0 motsvarar ~8x@3.0

Här ser man effekten av PCI-E bandbredd på hög FPS, i normal FPS (144-165) så finns det praktiskt ingen mätbar skillnad/ytterst liten skillnad, kliv över 200FPS och du ser direkt en skillnad som bara växer med antal FPS. Här så är FPS helt lössläppt vilket borde ge en GPU flaskhals eller CPU flaskhals men ingendera kommer i närheten av 99-100% belastning under detta test heller.

Igen försök komma ihåg att fantasi FPS egentligen inte säger någonting om man inte samtidigt har data på gpu och cpu belastning, annars kan det vara att man sitter och benchar skillnad på PCI-E throughput eller latency för den samma istället för CPU styrka eller minnesbandbredd/latency på internminnet.

http://i621.photobucket.com/albums/tt297/Tellus82/ROTTRsettings_zpsbhxraip7.png

Här ser man istället skillnad på cpu belastning per frame mellan högsta och lägsta ingame inställningarna, på det värsta stället (Geothermal Valley) skiljer det mer än 40% vilket motsvarar mer än tre logiska kärnor på aktuellt system.

http://i621.photobucket.com/albums/tt297/Tellus82/ROTTR-dx11-60fps_zpshsdyblm3.png
Här ser ni skillnad på cpu belastning per frame vid ändrad upplösning, medelvärde skiljer som mest 1% totalt

http://i621.photobucket.com/albums/tt297/Tellus82/ROTTR-dx12-30fps_zpstgy4ly3i.png
Ytterligare en på samma fast mellan 1080p ultra wide och 4k ultra wide.

Detta spelet kan under geothermal valley och Syria testet använda precis 100% av din cpu men det kräver rätt inställningar och upplösning som inte begränsas av GPU, vilken upplösning det i slutändan blir bero på din GPU. Men att kategoriskt säga att man alltid ska testa i 720p low eller high är inget annat än hål i huvudet. Man måste såklart titta på hur systemet faktiskt belastas av varje test.

Visst, men det är ju inte just 720p som är det intressata. Det intressanta är om CPUn i fråga kan spotta ur sig 144 FPS om man har en 144 Hz-skärm, eller 240 FPS om man har en 240 Hz-skärm. Då får man köra på en rimlig upplösning för att uppnå det, och samtidigt biffa upp allt annat (GPU, minne etc) för att undvika flaskhalsar.

Varför tar du upp PCIE 2.0 8x? Alla testare använder PCIE 3.0 16x, dvs. det bästa som finns att tillgå.

Som @Sisyfos redan nämnt är det bättre att sänka upplösning än inställningar eftersom det senare också kan påverka CPU.

Skickades från m.sweclockers.com

Visa signatur

Bästa trådstarten någonsin.

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

Permalänk
Medlem
Skrivet av MakeCoke:

Visst, men det är ju inte just 720p som är det intressata. Det intressanta är om CPUn i fråga kan spotta ur sig 144 FPS om man har en 144 Hz-skärm, eller 240 FPS om man har en 240 Hz-skärm. Då får man köra på en rimlig upplösning för att uppnå det, och samtidigt biffa upp allt annat (GPU, minne etc) för att undvika flaskhalsar.

Varför tar du upp PCIE 2.0 8x? Alla testare använder PCIE 3.0 16x, dvs. det bästa som finns att tillgå.

Som @Uzanar redan nämnt är det bättre att sänka upplösning än inställningar eftersom det senare också kan påverka CPU.

Skickades från m.sweclockers.com

Om du överklockar bussen på Ryzen, vilket du gör vid 3000+MHz på internminnet så kommer PCI-E falla tillbaka på 2.0 eller till och med 1.0. Då kan det vara bra att föstå att vid tillräckligt hög FPS så kommer bandbredden av just PCI-E bussen bli den limiterande faktorn, inte varken GPU, CPU eller minnesbandbredd. Att skyffla FPS kräver i alla led tillräcklig bandbredd, vid tillräckligt hög FPS så kommer även latency spela mer och mer roll i hur något presterar.

Att då många ställen testat i "i shit you not" 500fps på intel system för att testa cpu prestanda säger mer om intelligensen hos testaren än prestandan hårdvaran som testas.

Visa signatur

| nVidia RTX3090FE | R9 5800X3D | MSI x570 Unify | Ballistix sport 3000c15 32GB DR@3800c16 | Custom Loop EKWB | 12TB nvme, 2TB sata SSD | RM1000x | Creative X4 | Antec C8 | Alienware aw3821dw | >Antec C8 Custom Loop< |

Permalänk
Medlem
Skrivet av Yoshman:

Helt ärligt talat, men absolut noll ironi och sarkasm. Om du postade resultat från ett Intelsystem så var det något som överhuvudtaget inte hade något med vad du faktiskt protesterade emot.

Jag skrev att det inte spelar någon roll om cache-topologin är fel, för OS-kärnan bryr sig inte om den (bryr sig bara om storleken på cache-lines). Sedan skrev jag att 99,99 % av alla applikationer bryr sig inte heller om cache-topologin.

Du postade då lite bilder på lasten över CPU-trådar när man kör Unigine Heaven Benchmark, en bild som visar att allt fungerar PRECIS som man förväntar sig.

Var i hela det om står ovan finns det någon form av logik i ditt resonemang överhuvudtaget? Åter igen, varken sarkastisk eller retorisk fråga. Det är verkligen en ärlig fråga då inget av vad du postade eller det faktum att du i slutändan verkar fått damp på mig är på något sätt rationellt sett från mitt lilla hörn av världen. Brukar inte ha svårt att förstå folk när de försöker förklara tekniska saker, inte ens när de sker på hopplös kina-engelska. Men här har det uppenbarligen blivit ett totalt missförstånd och är uppriktigt ledsen om du uppfattat det som att jag ville dryga mig, har aldrig varit mitt uppsåt.

Jag har på inget sätt undvikit eller varit otydlig, svamlat, haft damp eller varit irrationell , gå tillbaka och läs om, om du fortfarande inte förstår så finns det ingenting jag kan säga som kommer få dig att förstå.

Visa signatur

| nVidia RTX3090FE | R9 5800X3D | MSI x570 Unify | Ballistix sport 3000c15 32GB DR@3800c16 | Custom Loop EKWB | 12TB nvme, 2TB sata SSD | RM1000x | Creative X4 | Antec C8 | Alienware aw3821dw | >Antec C8 Custom Loop< |

Permalänk
Medlem
Skrivet av tellus82:

Jag trodde att jag redan påvisat våndan av att testa i 720p/low settings... När man kommer upp i mycket hög fps (som man gör i 720p/low med 1080/ti/titan) så kommer andra faktorer i systemet bli limiterande, cpu användning/belastning kan faktiskt sjunka i dessa scenarion mot att köra en vettig upplösning/inställning där du inte är gpu limiterad (1080p/high/very high). Observera att nedanstående tester gjorts på min egen burk, inte på ett ryzen system. Principen är dock exakt den samma på ett Ryzen system.

http://i621.photobucket.com/albums/tt297/Tellus82/Mountain_zps2ymzhrdc.png
Här ser du något så enkelt som hur minnesbandbredd påverkar FPS i spel, titta framförallt på max fps mellan 1600MHz och 2133MHz, här skiljer det mer än 50fps på en bandbreddsskillnad av ~9-10GB/s. Inget annat är ändrat mellan testerna förutom minnesfrekvens. Och innan nån säger att det gäller bara detta systemet och inget annat så ta på er tänkarmössan... Observera att varken CPU eller GPU är ens lite i närheten av att agera en flaskhals i dessa tester.

http://i621.photobucket.com/albums/tt297/Tellus82/PCIE_zpssgctc9zx.png
PCI-E 2.0 motsvarar lite mer än halva 3.0 så 8x@2.0 är ~4x@3.0, 16x@2.0 motsvarar ~8x@3.0

Här ser man effekten av PCI-E bandbredd på hög FPS, i normal FPS (144-165) så finns det praktiskt ingen mätbar skillnad/ytterst liten skillnad, kliv över 200FPS och du ser direkt en skillnad som bara växer med antal FPS. Här så är FPS helt lössläppt vilket borde ge en GPU flaskhals eller CPU flaskhals men ingendera kommer i närheten av 99-100% belastning under detta test heller.

Igen försök komma ihåg att fantasi FPS egentligen inte säger någonting om man inte samtidigt har data på gpu och cpu belastning, annars kan det vara att man sitter och benchar skillnad på PCI-E throughput eller latency för den samma istället för CPU styrka eller minnesbandbredd/latency på internminnet.

http://i621.photobucket.com/albums/tt297/Tellus82/ROTTRsettings_zpsbhxraip7.png

Här ser man istället skillnad på cpu belastning per frame mellan högsta och lägsta ingame inställningarna, på det värsta stället (Geothermal Valley) skiljer det mer än 40% vilket motsvarar mer än tre logiska kärnor på aktuellt system.

http://i621.photobucket.com/albums/tt297/Tellus82/ROTTR-dx11-60fps_zpshsdyblm3.png
Här ser ni skillnad på cpu belastning per frame vid ändrad upplösning, medelvärde skiljer som mest 1% totalt

http://i621.photobucket.com/albums/tt297/Tellus82/ROTTR-dx12-30fps_zpstgy4ly3i.png
Ytterligare en på samma fast mellan 1080p ultra wide och 4k ultra wide.

Detta spelet kan under geothermal valley och Syria testet använda precis 100% av din cpu men det kräver rätt inställningar och upplösning som inte begränsas av GPU, vilken upplösning det i slutändan blir bero på din GPU. Men att kategoriskt säga att man alltid ska testa i 720p low eller high är inget annat än hål i huvudet. Man måste såklart titta på hur systemet faktiskt belastas av varje test.

Men på vilket sätt påverkar det här testen, har inte processorerna samma förutsättningar?

Visa signatur

sweclockers prestandaindex

Efter 10 kommer 11.
Efter 99 kommer 100.

Permalänk
Medlem
Skrivet av Yoshman:

Det blir spännande att se vad som händer. Du har i alla fall lagt huvudet på kubben nu.

Visa signatur

14900KF--Apex Encore--RTX 4090--G.Skill 2x24GB DDR5-8000--Dynamic Evo XL
12900K--Asrock Z790i--2X16GB DDR5 6000
Ljud: Lewitt Connect 6--Shure SM7B

Permalänk
Medlem
Skrivet av ClintBeastwood:

Men på vilket sätt påverkar det här testen, har inte processorerna samma förutsättningar?

OK, vi tar det ännu en gång.

Vid varje enskilt producerad frame i ett spel så kräver det av systemet en viss cpu prestanda, gpu prestanda, minnesbandbredd, throughput på olika bussar osv.

Om man då justerar ingame upplösning och inställningar till absolut minimum så kommer man sänka cpu och gpu belastning per frame radikalt, det som däremot inte sänks per frame när man gör detta är belastning på bussar, minnesbandbredds belastning kan förändras något men inte lika kraftigt som den för cpu/gpu.

Det som då händer när du ber systemet spotta ur sig fullständigt orealistiska FPS så kommer man tilta/vrida belastningen på systemet att nyttja absolut maximal tillgänglig busskapacitet/minnesbandbredd medans cpu och gpu stallar pga att det inte finns tillräcklig bussbandbredd med lägre FPS som följd jämfört med ett system som har bättre throughput. Även Latency på bussar och minne kommer bli mer och mer viktigt ju högre FPS man försöker få ur systemet

Detta test har i slutända sagt precis 0 om varken cpu eller gpu prestanda, kan det vara intressant ur perspektivet system mot system, japp men då måste man också påtala detta i sitt testande, förutom den lilla detaljen att dessa surrealistiska sceanrier inte påvisar prestanda vid normala förhållanden, alla system är noga avvägda med vad kunden i slutändan kommer ha det till. Man måste också vara oerhört noga med hur man då gjort förutsättningarna för respektive plattform, alltså minneshastighet/latency och vilka inställningar man använder. Känner du någon som aktivt sitter och game'ar vid 500 fps? Att istället kanske ha ett tak på 240fps under sitt testande kommer ge en betydligt bätre bild över hur varje system kommer prestera för normala användare, även om framtida gpu'er kommer öka prestanda så kommer dom inte kräva lika hög total throughput av systemet vid 60-240fps som dagens gpu'er gör vid 500fps, alltså vid normala förhållanden (<240fps) så har inte buss prestanda någon direkt inverkan på spelprestanda på ett modernt system, testar man däremot >240fps så kommer bussprestanda/latency få en proportionellt på tok för hög inverkan på slutlig fps.

Att man som 99% av testarna där ute gör och inte nämner ett ord om systemets prestanda utan enbart fokuserar på ren cpu prestanda trots att man de fakto inte testar cpu prestanda i slutändan blir bara fel och det hjälper absolut inte en tilltänkt köpare att ta ett informerat beslut

Edit: Jag anser att skribenter och videorecensenter har en skyldighet att peka ut mer information om just hur systemen belastas under de tester som körs, om man som testare ser att CPU och GPU belastning sjunker/ stallas av något annat i systemet så ska man tala om just detta och kanske undersöka än mer noggrant vad som orsakar flaskhalsen i detta specifika fallet, gör man detta så kommer potentiella kunder se exakt vad som skulle kunna vara en begränsande faktor i ett visst system.
Trots att Ryzen har varit ute så länge som det ändå har har vi inte den blekaste hur den presterar när det kommer till throughput/latency på PCI-E vilket är ganska förbryllande då det är en mycket viktig del av den i slutändan totala prestandan. Men då alla testare har så förbannat bråttom att få ut sina alster så fokuserar man enbart på ett par träd i skogen och ingen förstår i slutändan hur hela skogen ser ut.

Edit 2: Här har man ett praktexempel på fps vid 720p/low, när man kommer upp så här högt så kommer det garanterat finnas andra begränsningar än ren cpu prestanda. Men killen som gjort videon gör det enbart för att poängtera att inge GPU flaskhals finns och samtidigt missar att andra faktorer spelar roll.
https://youtu.be/nsDjx-tW_WQ?t=2m45s

Visa signatur

| nVidia RTX3090FE | R9 5800X3D | MSI x570 Unify | Ballistix sport 3000c15 32GB DR@3800c16 | Custom Loop EKWB | 12TB nvme, 2TB sata SSD | RM1000x | Creative X4 | Antec C8 | Alienware aw3821dw | >Antec C8 Custom Loop< |

Permalänk
Datavetare
Skrivet av marcusOCZ:

Det blir spännande att se vad som händer. Du har i alla fall lagt huvudet på kubben nu.

Visst.

Har haft rätt om det mesta så här långt, men då mycket är mer eller mindre kvalificerade gissningar måste det blir fel ibland, vilket också har hänt. Hade kunna motivera svaret, men du ville ha ett ja/nej svar.

Är däremot långt mer positivt till att man kan göra saker i schedulern för att ta hänsyn till att det är två CCX som inte delar cache, något som i vissa fall spelar roll. Men det kommer handla om några procent skillnad.

Att dela upp CCX som två NUMA-noder, något som kan göras med standardfunktioner i Windows, har man ju redan testat i "Ryzen: strictly techical" tråden. Det var en dålig idé då Windows (och Linux) normalt vägrar köra en enskild process över NUMA-gräns. Så i det läget har man verkligen två fyrkärniga CPUer och inte en åttakärnig. De två CCXerna delar ju faktiskt minnesbuss så de är ju inte NUMA, i NUMA är ju även RAM separerat i flera zoner där latens och bandbredd är sämre om man går mot "fel" NUMA-zon.

Så ska man ta hänsyn till CCX måste det göras på något annat sätt, inte självklart hur det kan göras givet den information OS har om vad som faktiskt händer i processerna.

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:

Visst.

Har haft rätt om det mesta så här långt, men då mycket är mer eller mindre kvalificerade gissningar måste det blir fel ibland, vilket också har hänt. Hade kunna motivera svaret, men du ville ha ett ja/nej svar.

Är däremot långt mer positivt till att man kan göra saker i schedulern för att ta hänsyn till att det är två CCX som inte delar cache, något som i vissa fall spelar roll. Men det kommer handla om några procent skillnad.

Att dela upp CCX som två NUMA-noder, något som kan göras med standardfunktioner i Windows, har man ju redan testat i "Ryzen: strictly techical" tråden. Det var en dålig idé då Windows (och Linux) normalt vägrar köra en enskild process över NUMA-gräns. Så i det läget har man verkligen två fyrkärniga CPUer och inte en åttakärnig. De två CCXerna delar ju faktiskt minnesbuss så de är ju inte NUMA, i NUMA är ju även RAM separerat i flera zoner där latens och bandbredd är sämre om man går mot "fel" NUMA-zon.

Så ska man ta hänsyn till CCX måste det göras på något annat sätt, inte självklart hur det kan göras givet den information OS har om vad som faktiskt händer i processerna.

Jag tror det är just detta som försöker bli sagt vara ett problemområde just nu i windows, inte om, utan när en tråd blir skyfflad över CCX kommer man se prestanda förlust. Beroende på hur trådarna i ett spel är skapta finns det fall där att skapa trådar på annat CCX inte blir lika hindrande. Som exempel kan man lägga upp en spelmotor (dx11 / gl4.5) så här:

  • tråd 0: "main loop", håll koll på grejer, polla input, kontexthantering av diverse grejer

  • tråd 1: "draw loop", sekventiell i med många nuvarande titlar (tills dx12/vulcan blir helt standard)

  • tråd 2: ljud tråd, kontext mm

  • tråd 3: misc tråd, oftast async data laddning eller annat?

  • tråd n: resterande trådar som går att använda används för att räkna ut fysik, AI mm, detta jobb skalar oftast bra över många kärnor och är ett av skälen många moderna spel skalar så bra över många kärnor trots att de inte "borde"

Sedan måste jag säga att ovanstående är en gissning och generalisering på större spel, så det skiljer nog ganska mycket mot de flesta spel.

Det är nog också ett skäl till varför ahmdahl's lag inte fungerar så bra i praktiken som vissa här i tråden tror när man pratar om dessa problem (program med kraftigt varierade kristalliserbara delar), vi spelutvecklare hittar alltid "kryphål" som undviker dem

Håller med till 100% att man måste hitta någonting som fungerar bättre än att lura windows att ryzen är NUMA

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

@liket: när man jämför hur en processor stått sig genom åren tycker jag det är ganska relevant att nämna att den ena är ett par år nyare. Sen ignorerar han också att en 2500k kan överklockas till 4,5+ Ghz utan att ens anstränga sig när fx cpun redan är pressad bra mycket från fabrik.

Permalänk
Medlem
Skrivet av Enigma:

Ahh kanon att du hade uppsikt över det Ser betydligt bättre ut, dock så postade Stilt sina resultat efter den posten, men han kan fortfarande ha kört ett icke uppdaterat OS om nu verkligen MS löst detta. Det är ett allvarligt problem, men oavsett vad som är orsaken just nu så är det verkligen något som bromsar Zen när man tittar på resultaten mellan Win7 och Win10 både med och utan SMT.

Skrivet av Enigma:

Jupp, dom siffrorna jag räknade på och det är 26% skillnad i min fps samt 8% i snittfps med bara OS-byte vilket är enorma siffror i en recension t.ex. Man ser också att Ryzen påverkas utan SMT också vilket betyder att problemen handlar om hur man styr trådar till olika CCX. Som @Ratatosk sa så borde Ryzen ses som 2st xUMA noder vilket den inte inte verkar göra i Win10 ännu.

Ok, men Win7 ser den väl inte heller som NUMA? Stilts resultat visar ju framför allt ett penalty av SMT i win10 jämfört med 7. Det är knappast fallet att de få FPS som skiljer Win7 och 10 vid 8c/8t har med NUMA-topologin att göra, dels är skillnaden liten och dels ser jag inte vilken info processorn ger som Win7 skulle ha bättre koll än Win10 vad den ska göra med. Har svårt att tro att Ryzen uppfattas som NUMA av Win7, men detta kan ju coreinfo verifiera om det behövs.

Skrivet av Ratatosk:

Tycker att Windows scheduler verkar vara för "hoppig", tror att både Intel och AMD skull tjäna på ett lugnare uppträdande.

Skillnaden mellan 7 och 10 skulle kunna bestå i att win 10 flyttar trådar oftare som default, eller har större overhead när den gör detta på Ryzen. Det hade varit intressant att se Win10 och Win7 jämfört på en Ryzen med en CCX avstängd. Finns det en skillnad i "hoppigheten" mellan dessa OS så torde den skillnaden interagera med Ryzens relativt komplexa cachehierarki.

I Strictly technical-tråden diskuteras hur man kan forcera en NUMA-topologi på Windows (men med en varning om att inställningen i vissa fall kan göra systemet obootbart, verkar långsökt men värt att notera). Som @Yoshman tidigare nämnt så drar de slutsatsen att separeringen blir för hård, då ett enskilt program begränsas till att schemaläggas på en CCX enbart, något som jag tror också blir fallet vid verklig NUMA (så jag vet inte varför de blir förvånade i anand-tråden när systemet beter sig som väntat). Men vill man helt minimera risken för oförutsägbara prestandadippar så tror jag att den bästa vägen är just att låsa tex ett spel till en CCX (4c/8t), då undviks inter-CCX-kommunikation helt. Så jag tycker inte att nodseparering är helt fel väg att gå med Ryzen. Ska man undvika problemet helt med fler än en CCX inblandad så måste nog spelen själva hålla reda på vilka trådar som jobbar med samma minnesadresser, och berätta detta för OS. (eller möjligen om OS kan monitorera detta och schemalägga därefter?)

Men NUMA handlar ju i första hand om minnesaccess, och på ett normalt NUMA-system så är det viktiga att trådar körs så nära sitt fysiska minne som möjligt. Hos Ryzen är allt minne lika nära, så detta måste en eventuell anpassning ta hänsyn till (det kanske är trivialt, jag vet inte).

Windows har utöver "Thread Affinity" någonting som heter Thread Ideal Processor, detta skulle nog kunna användas för att se till att en ensam CCX schemaläggs i första hand. Se även "Processor Groups". Så det verkar finnas en infrastruktur på plats för att styra schemaläggningen av enskilda program, oberoende av NUMA. Detta är något som kanske enklast implementeras med ett tredjeparts-tool som monitorerar och sätter dessa variabler för valda program.

EDIT:

Skrivet av Yoshman:

Att dela upp CCX som två NUMA-noder, något som kan göras med standardfunktioner i Windows, har man ju redan testat i "Ryzen: strictly techical" tråden. Det var en dålig idé då Windows (och Linux) normalt vägrar köra en enskild process över NUMA-gräns.

Detta är alltså något jag inte tycker är en helt dåligt idé, även om jag ser nackdelarna.

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
Hjälpsam
Skrivet av Yoshman:

Visst kompis, fattade absolut att det kommer från din burk. Och eftersom du postade det som ett bevis för att något inte fungerar som det ska på Ryzen ligger det VÄLDIGT nära tillhands att anta att din burk har en Ryzen CPU i sig.

För om det är en Intel, vad försökte du då visa? CPU-lasten är precis vad man förväntar sig från en CPU med SMT där alla CPU-tråd schemaläggning sköts till 100 % av Windows, d.v.s. cache-topologin är helt irrelevant då applikationen inte använder den till att själv styra mappning av OS-trådar till CPU-trådar.

Verkar också som felet med cache-topologin varken låg i Windows, i CPUn eller moderkortet. Problemet verkar vara att äldre versioner av programmet Coreinfo visar information fel, uppdaterar man till senaste Coreinfo blir det rätt (står om det i "Ryzen: strictly technical" Ryzen: Strictly technical).

Så cache-topologi lär aldrig ha varit ett problem då felet låg i att Coreinfo visade information fel.

PCPerspective nämner också här (kolla 42:30-44:00 minuter in i videon) att Windows schemalägger OS-trådar precis som förväntat på Ryzen. Man lastar först varannan CPU-tråd, d.v.s. lägger jobb på ena CPU-tråden i varje fysisk kärna. Först när det inte längre finns några CPU-kärnor om är "idle" börjar man också lasta den andra CPU-tråden.
https://youtu.be/4aEw3e-je9w?t=2551

De spekulerar en del mellan 40:00-50:00 om vad som kan vara orsaken till spel-prestanda. De pekar på något i Infinity-fabric.

Jag tror det är mycket enklare: benchmarks tenderar pushar skalära flyttal som Zen är lysande på, spel (och de flesta "vanliga" program) pushar skalära heltal och dessa är är inte heller "embarrassing parallel". Zen har Haswell/Broadwell IPC för skalära flyttal, men har Sandy/Ivy Bridge IPC för skalära heltal + synkronisering mellan kärnor är dyrare i Zen än Core. Det förklara i princip alla resultat vi ser.

Så SMT-schemaläggning fungerar precis som jag hävdat är fallet hela tiden och detta är det mest optimala en OS-kärnan kan göra. Det är inte nödvändigtvis det optimala för en viss applikation, men utan att ha detaljkännedom om vad de olika OS-trådarna gör (något som en OS-kärnan inte kan veta) är detta optimalt. Linux och OSX fungerar på samma sätt.

Tänkte just på hur mycket saker hoppar runt i Windows när jag kopierade en stort git-repo mellan två maskiner. Brukar göra detta genom att köra detta

$ ssh IPADDR_OF_SRC tar czf SRC_DIR - | tar xzf -

D.v.s. via SSH kör jag tar som komprimerar innehållet och skickar ut resultatet på stdout (som då i detta fall tunnlas genom SSH) för att packas upp lokalt. På båda sidor körs i praktiken två processer, programmet som packar (vilket är flaskhals givet tillräckligt snabbt nätverk) och ssh (som kanske tar 10-15 %CPU).

Sändaren var i detta fall Ubuntu, under hela tiden låg gzip fast på CPU-tråd #1, SSH på CPU-tråd #2 och tar tog 0-1 % på CPU-tråd #0. Windows hade jämn last över alla CPU-trådar trots att det var samma konstellation av processer.

Så är detta ett problem? Svaret är med stor sannolikhet att det ändå inte är ett prestandaproblem, orsaken ligger i tidsskalan för det som kan påverkas.

Windows verkar av någon anledning göra något med fördelning av mappning av OS-trådar till CPU-trådar varje OS-tick, mitt Windows 10 har 16 ms mellan tick (Windows har tydligen normalt mellan 10-16 ms mellan OS-tick).

Tidsskalan för cache-miss vs cache-hit ligger på tiotals till i värsta fall långa hundratals nanosekunder, det är fem-sex tiopotenser ifrån!!! Så att trådar i värsta fall flyttas var 16:e millisekund är på det stora hela irrelevant för prestanda då det i värsta fall lägger på 100-tals nanosekunder på de första minnesaccesserna efter bytet.

Ett långt större problem är då att en CPU-kärna som inte är så hårt lastad lägger sig att sova, fast att komma ur C1 (billigaste sovlägen som används när CPUn relativt ofta används) tar ~1 mikrosekund. Fortfarande tre-fyra tiopotenser från tiden Windows skyfflar runt OS-trådar mellan CPU-trådar.

Det största problemet, sett till tidsskalan, är trots allt frekvensskalning: P-states. Tar tiotals till i värsta fall långa hundratals mikrosekunder att hoppa mellan olika frekvenser. Ovanpå det kan det ta minst ett tick (16 ms) innan Windows-kärnan anser att en viss CPU-kärna är tillräckligt lastad för att man ska kliva in i P0 (högsta frekvens). Just att det tar så pass lång tid för ett OS att hinna sampla den informationen är orsaken till att färre CPU-kärnor faktiskt kan ge bättre upplevelse i interaktiva program om man kör på laptops/pekplattor som är väldigt aggressiv att skala ner frekvens av strömförbrukningshänsyn.

Tanken med "Speed shift" är att flytta samplingen av CPU-last från OS till CPU, vilket då leder till att man kan reagera på millisekundnivå i stället för som bäst 10-16 ms (OS-tick upplösning).

Det som idag verkar ställa till det för Ryzen är just C-states och P-states (frekvensskalning), AMD rekommenderar att man kör med "high performance" profilen fram till att detta rättats i UEFI/Windows. Kör man i "high performance" används bara P0 så den delen av ekvationen försvinner, tror också att endast C0/C1 används (C3 och C6 spar betydligt mer ström, men i C6 tappar CPU-cachen ström så allt måste läsas från L3$/RAM vid uppvaknande).

För någon som håller på att undersöka saker kring just hur program uppför sig över kärnor och över SMT förvånar det mig inte det minsta så länge inte antal CPU-trådar är fler än vad som är möjligt.

Eller var hittar jag denna i7-4702MQ som tydligen har 2 kärnor och totalt 3 CPU-trådar (är normalt 4C/8T)?

Det är en laptop så är inte möjligt att ändra antalet CPU-kärnor i BIOS, fast behövs inte då det är en standardfunktion i Windows att ta upp en delmängd av alla CPU-trådar. Ännu coolare är det i Linux, där kan man ta upp/ner CPU-trådar dynamiskt!

Nej.

En cachemiss borde inte ta max några hundra nanosekunder, några hundra microssekunder menar du väl?
Grovt räknat, säg att man läser minnet i 30 GB/s och en process cachat 3 MB i L3, borde en cachemiss grovt kosta 200µs.

Visa signatur

AMD Ryzen 7 5700X | Saphire RX 5700 Pulse XT (Silent Mode) | 64 GB Kingston ECC | https://valid.x86.fr/51gntq | Stockkylaren | Bitfenix Whisper M 750W.
AMD Ryzen 9 5900X | AMD RX 5700 | 64 GB Micron ECC | https://valid.x86.fr/gwcxfs
HTPC | https://valid.x86.fr/gqtxws |

Permalänk
Hjälpsam
Skrivet av Gainsgoblin:

@liket: när man jämför hur en processor stått sig genom åren tycker jag det är ganska relevant att nämna att den ena är ett par år nyare. Sen ignorerar han också att en 2500k kan överklockas till 4,5+ Ghz utan att ens anstränga sig när fx cpun redan är pressad bra mycket från fabrik.

FX 8350 kom 1½ år efter i5 2500k, man skall inte heller överdriva skillnaden mellan FX-8350 och FX-8150 vi pratar om kanske 10%.
http://www.sweclockers.com/test/15973-amd-fx-8350-vishera/11#...

Visa signatur

AMD Ryzen 7 5700X | Saphire RX 5700 Pulse XT (Silent Mode) | 64 GB Kingston ECC | https://valid.x86.fr/51gntq | Stockkylaren | Bitfenix Whisper M 750W.
AMD Ryzen 9 5900X | AMD RX 5700 | 64 GB Micron ECC | https://valid.x86.fr/gwcxfs
HTPC | https://valid.x86.fr/gqtxws |

Permalänk
Datavetare
Skrivet av Ratatosk:

En cachemiss borde inte ta max några hundra nanosekunder, några hundra microssekunder menar du väl?
Grovt räknat, säg att man läser minnet i 30 GB/s och en process cachat 3 MB i L3, borde en cachemiss grovt kosta 200µs.

Latens mot RAM brukar ligga på ~200-300 klockcykler. Så det är på höga tiotals eller låga hundratals nanosekunder.

AIDA64 säger 59 ns här, men undrar om det inte är lite för lågt då det är svårt att få bort effekten från prefetchers. D.v.s. effektiva genomsnittslatensen kanske är ~60 ns på denna plattform, men "worst-case" som är faktiskt latens helt utan cache och prefetch hjälp lär ligga klart högre.

Latens mot L1$: 3-4 cykler (4 på högfrekvensdesigner som Zen och Core)
Latens mot L2$: 10-25 cykler (Zen och Core ligger i det nedre spannet)
Latens mot L3$: 20-50 cykler (skippar att säga något här då det tydligen inget program som korrekt kan mäta Zens latens än)

Vid en IPC på 1,5-2,5 (vilket få anses som riktvärde för "normala" desktop program med hög cache-hit rate) betyder det ändå att en total cache-miss betyder 300-700 instruktioner som skulle kunna körts. Out-of-order fönstret är "bara" ~200 instruktioner på dagens high-end x86 så inte ens teoretiskt möjligt att helt kompensera för en minnesaccess som måste gå hela vägen mot RAM, i praktiken kan det finnas andra begränsningar som gör att man inte fullt ut kan utnyttja hela out-of-order fönstret.

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

FX 8350 kom 1½ år efter i5 2500k, man skall inte heller överdriva skillnaden mellan FX-8350 och FX-8150 vi pratar om kanske 10%.
http://www.sweclockers.com/test/15973-amd-fx-8350-vishera/11#...

Dock kostade en 8150 snarare som en 2600K...

Hur som helst var inte poängen att jämföra specifika modeller, utan att påvisa att saker kan förändras med nyare spel. Hur representativt det kommer bli för Ryzen har vi ingen aning om.

Visa signatur

Bästa trådstarten någonsin.

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

Permalänk
Medlem
Skrivet av tellus82:

Grafen kommer från min burk... Trodde det var rätt uppenbart

Det är fullt möjligt att det fungerar i alla lägen men det är precis lika möjligt att det inte gör det, man har ingen garanti att MCE är stabilt, speciellt inte på X99 plattformen. Fördelen med saker som foljer tillverkarens specifikation är att då har du också en viss garanti att det är stabilitet i grejerna, ASUS som mestadels står för MCE håller ingen garanti alls för stabilitet med MCE påslaget.
Skillnaden mellan denna lösning och fabriksklockade gpu'er är att dessa testas på fabriken att klara alla krav på stabilitet, termiska förhållanden och prestanda, dom är mer eller mindre binnade att gå i dom frekvenserna. När man slår på MCE så har inga sådana tester utförts på just din processor, det är trots allt just din processor som blir den avgörande faktorn, inte moderkortet som står för MCE.

Skickades från m.sweclockers.com

Varför skulle MCE inte fungera stabilt på X99 plattformen? Finns det problem rapporterade med att köra MCE på X99 plattformen? Själv kör jag med en 24/7 överklockning @4.5Ghz 1.22v med MCE utan problem.

Visa signatur

“When a clown moves into a palace he doesn’t become a king, the palace instead becomes a circus.”

Permalänk
Medlem
Skrivet av MarkSix:

Varför skulle MCE inte fungera stabilt på X99 plattformen? Finns det problem rapporterade med att köra MCE på X99 plattformen? Själv kör jag med en 24/7 överklockning @4.5Ghz 1.22v med MCE utan problem.

Grattis du lyckades missa poängen totalt, det finns inga garantier att MCE skulle vara stabilt från någon tillverkare, att det sedan är stabilt för merparten förändrar inte faktumet att ingen validerat frekvenserna/multiplarna som används av MCE. Anledningen till att just X99 skulle vara mer känsligt för instabilitet med MCE jämfört med mainstream plattformarna lär vara rätt uppenbar, 7700k skiljer det 100MHz på 4 kärnor, på 6900k skiljer det 2-300MHz på 8 kärnor, om man inte ändrar vcore vilken tror du är mest trolig att bli ostabil?

MCE är inte framtaget av intel, inte heller validerat eller testat av intel, och framförallt inte utprovat på varje enskild processor som standard specifikation/multiplar är. Detta är en överklockningsfunktion framtagen av tredje part som inte är eller följer någon standard satt av intel. Vad är det i detta som är så svårt att förstå?

Visa signatur

| nVidia RTX3090FE | R9 5800X3D | MSI x570 Unify | Ballistix sport 3000c15 32GB DR@3800c16 | Custom Loop EKWB | 12TB nvme, 2TB sata SSD | RM1000x | Creative X4 | Antec C8 | Alienware aw3821dw | >Antec C8 Custom Loop< |

Permalänk
Medlem
Skrivet av MarkSix:

Varför skulle MCE inte fungera stabilt på X99 plattformen? Finns det problem rapporterade med att köra MCE på X99 plattformen? Själv kör jag med en 24/7 överklockning @4.5Ghz 1.22v med MCE utan problem.

Det finns ingen garanti för att MCE överhuvudtaget ska fungera (trots att det förmodligen oftast gör det), jämfört med turbo boost som är en standard funktion.
Något annat att tillägga är att MCE förmodligen inte stödjs på alla X99 moderkort (skulle gissa billiga/företags inriktade inte har ett spår av MCE)

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

@Gainsgoblin: Det verkar som att du missförstått poängen med varför han gjort videon eller varför jag pastear den. Det är inte vilken processor som är bättre av 2500k eller 8350 som är det som är intressant och ingen försöker visa vilken som är bättre.

Videon är gjord för att visa att det inte går att spå i framtiden att processorn kommer halka efter ännu mer i fps med senare generationers grafikkort bara för att den visar sämre prestanda i låga upplösningar.

Permalänk
Medlem
Skrivet av wowsers:

Det finns ingen garanti för att MCE överhuvudtaget ska fungera (trots att det förmodligen oftast gör det), jämfört med turbo boost som är en standard funktion.
Något annat att tillägga är att MCE förmodligen inte stödjs på alla X99 moderkort (skulle gissa billiga/företags inriktade inte har ett spår av MCE)

Jag tittade igenom manualerna för några X99 moderkort från Gigabyte och MSI och valde då dom enklare/billigaste varianten av moderkort och samtliga verkade ha funktionen att boosta alla cores.

@tellus82:
Jag viker mig på frågan om MCE är en överklockningsfunktion men jag tycker att den borde tas med i ett test scenario.

Visa signatur

“When a clown moves into a palace he doesn’t become a king, the palace instead becomes a circus.”