Permalänk
Medlem
Skrivet av Yoshman:

Varför skulle Zen magiskt vara annorlunda på denna punkt? Och finns det något som pekar på att IPC för skalära heltal ligger på Haswell/Broadwell-nivå?

En liten kommentar om denna frågan bara - finns det verkligen inga benchmarks som syntetiskt testar heltalsprestanda? Jag levde i föreställningen att dessa saker var det lättaste att testa, tex SiSoft Sandras MIPS och FLOPS (där jag trodde att MIPS = heltal). Men det är alltså inte så enkelt? Jag menar såklart inte att dessa tester ska användas istället för spel- och nyttoprogramtester, utan tillsammans med, för att förklara skillnader mellan olika scenarier.

Citat:

Har försökt hitta källan till 22 GB/s, men gått bet. Ser inte riktigt hur man skulle komma dit heller. Infinity fabric är i praktiken Hypertransport 2.0. AnandTech konstaterar (precis som jag gjorde en bra bit bak i denna tråd) att Infinity fabric konceptuellt inte skiljer sig från vad man hittar i t.ex. ARM SoCer.

Normalt har en sådan "fabric" en egen klockdomän, Hypertransport tror jag klockade upp till 3,2 GHz. QPI ligger ofta också på 3,2 GHz men tror det kan klockas upp till 4,0 GHz idag.

Om man antar en frekvens på någonstans mellan 3,2-4,0 GHz så blir en rimlig bredd 64-bitar. Bandbredden borde då hamna mellan 26 GB/s - 32 GB/s så får inte riktigt ihop 22 GB/s siffran, den verkar låg.

Sedan är bandbredd mindre viktigt, frågan för spel är: vad ligger latensen på?

Ja det verkar som att mycket är obesvarat här. Jag funderade på hur man skulle kunna testa den praktiska betydelsen av att trådar ibland behöver hämta information från L3 på en annan CCX än tråden körs på. Tills någon kommer på bra sätt att testa latens och bandbredd generiskt för kors-CCX-accesser så skulle man på följande sätt kunna testa hur stor impact detta har för tex. ett specifikt spel. Såhär -

Test av den praktiska betydelsen av extra cachelatens mellan CCX i realistiska scenarier
Windows task-manager har jag för mig kan användas för att sätta CPU affinity för en process, på ett sådant sätt att alla trådar som skapas av den processen "ärver" CPU affinitiy. Någon som har en fungerande Ryzen-rigg skulle kunna testa att låta ett spel eller annat testprogram få endast 2 hårvarutrådar (så att båda utnyttjas maximalt), på så sätt att:

  • Testvillkor 1) Båda hårvarutrådar (kärnor) hör till samma CCX

  • Testvillkor 2) Hårvarutrådarna hör till olika CCX

Genom att jämföra prestanda i de två fallen så ser vi hur stor skillnad cacheaccesser över CCX maximalt kan göra, för ett specifikt "real-world" testcase. Någon som har Ryzen up-and-running som vill testa detta, @SectionX2, @SirMacke, @anon38900 ?

Tänk på att Windows betraktar alla hårdvarutrådar (oavsett om det är kärnor på en icke-SMT-maskin eller SMT-trådar på samma kärna) som en "CPU", när affinity sätts, så det måste man ta med i beräkningen. Jag antar nu att Ryzen/Windows räknar hårdvarutrådarna linjärt över CCX, så att de 0-7 hör till en CCX och 8-15 hör till den andra, det verkar som det enda rimliga.

Varför jag föreslår endast två trådar är för att maximera dessa trådars belastning och därmed antalet tillfällen vi riskerar passera CCX-gränsen vid cacheaccess. I ett senare test skulle man kunna köra 8 trådar från en CCX vs 4+4 från vardera CCX, för att se effekten på mer multitrådade laster. Sista testet kan vara att jämföra fallet med 8 trådar från en CCX med ingen affinity-inställning, dvs alla 16 hårdvarutrådar kan användas. För många laster skulle det kunna vara så att garantin att alltid ha "nära" cacheaccess väger upp vinsten av fler än 8 möjliga hårdvarutrådar.

Det hade varit intressant att se resultatet av ett sådant test, om någon som har tillgång till hårdvaran ids göra det.

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

Överklocka 1700 (3 699 kr) eller 1700X (4 499 kr) istället för att köpa 1800X (5 699 kr)

Vad jag uppfattat det kan man överklocka en 1700 till nästan samma som 1800X och spara 2 000 kr. Det vill säga om man lägger ner tiden till att experimentera. Observera att jag menar att man gör annat än bara spelar på sin PC.

Vad tror ni?

Visa signatur

[AMD Ryzen 9 3900X] [ASUS GeForce RTX 2080 Ti] [LG OLED 55 C9 som skärm] [Samsung HW-Q96R till ljudet]

Permalänk
Medlem

1700 är väl det bästa valet, man får ju även med en hyfsad kylare.

Lite orolig över att 1600/1500 utan x inte dykt upp som planerade släpp i nästa omgång eftersom de väl borde bli de mest intressanta för de som överklockar.

Permalänk
Hedersmedlem

*Okonstruktiva/meningslösa inlägg raderade, se §1.1 och §1.6 i forumreglerna*
/moderator

Visa signatur

Danskjävel så krattar som en skrivare...

Permalänk
Medlem
Skrivet av yrfhar:

Överklocka 1700 (3 699 kr) eller 1700X (4 499 kr) istället för att köpa 1800X (5 699 kr)

Vad jag uppfattat det kan man överklocka en 1700 till nästan samma som 1800X och spara 2 000 kr. Det vill säga om man lägger ner tiden till att experimentera. Observera att jag menar att man gör annat än bara spelar på sin PC.

Vad tror ni?

https://youtu.be/IKGJshXgOwU

Såg det klippet nyss. Men det verkar som om 1700 (utan X) är den bästa då den överklockade tempen är klart lägre än de andra i hans test

Edit:
Fick uppdatera mitt köp igen . Lade till 1700 istället för 1700X

Visa signatur

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

Permalänk
Avstängd
Skrivet av yrfhar:

Överklocka 1700 (3 699 kr) eller 1700X (4 499 kr) istället för att köpa 1800X (5 699 kr)

Vad jag uppfattat det kan man överklocka en 1700 till nästan samma som 1800X och spara 2 000 kr. Det vill säga om man lägger ner tiden till att experimentera. Observera att jag menar att man gör annat än bara spelar på sin PC.

Vad tror ni?

https://youtu.be/IKGJshXgOwU

som vanligt, jo.
finns ju lite att lära sig samt att hårdvaran med mjukvara ska mogna

Visa signatur

Träna bort dyslexin. Ryzen 3600 - asus B350plus - Msi Vega56 - Acer 1440p 144hz - M.2 ssd - asus essence stx - Sennheiser hd600 - Corsair 750w - 16gb ram 3ghz - atcs 840 - luftkylt - Felsökning? (Lär dig Googla)

Permalänk
Datavetare
Skrivet av sAAb:

Visst finns det siffror att backa upp det med. Det är ju det som är problemet idag, det finns så många siffror att man kan visa vad som helst för att få rätt. Du ställde en fråga i början på december förra året:

Nu har den kommit.

Titeln på sidan är "Benchmarks bei 3 GHz: AIDA64", dvs de är alla ställda på 3.0 GHz.

http://www.planet3dnow.de/cms/wp-content/gallery/ryzen/305.png

Du ställde frågan: "Och hur kan man då säga att IPC för Ryzen är på Haswell/Broadwell-nivå när det bara är sant för skalära flyttal?"

AIDA64 och Queen är väl knappast skalära flyttal.

Haswell-E och Ryzen får praktiskt taget samma värde vid 3.0 GHz, vid 8C/16T vilket alltså tyder på likvärdig IPC.

Skylake ligger på drygt hälften i "punkter" med 4C/8T, vilket också ger ett värde i samma härad, vilket också visar på likvärdig IPC.

Vad jag kan förstå borde då resultaten på sådan indikator, branch-prediction, stämma bättre överens med spelresultaten. Men, det gör det inte, och som vi har sett är dessa någorlunda "lågnivå-indikatorer" ganska oberäkneliga för spel. Ibland, i ett fåtal tester så vinner Ryzen över allt vad intel har, men dessa resultat verkar varken stämma med mina tidigare gissningar om uppdelningar på kärn- eller GHz-begränsade spel.

Vad jag försökte säga är att spelen verkar följa helt obeskrivna, tidigare okända lagar, som gissningvis då mer beror på spelens egna algoritmer, där cache-storlekar, matrishanteringar, mm döljs av annan, ren spel-logik vilket jag uppfattar att du också är inne på.

Spel skiljer sig på en väldigt fundamental punkt mot saker som Queen-chess, 7-zip, kompilering och det mesta andra tester för heltal. Återkommer till det.

Kan först nämna att jag känner mig rätt mycket mer bekväm i att göra utsagor kring spel, saker som kretsar runt operativsystem, webservers och parsers då det är alla saker jag jobbat eller jobbar med programvaruutveckling kring. Har under senare år jobbat väldigt mycket med utveckling av program som INTE är "embarrassingly parallel" men där man ändå vill dra nytta av multi-core, har utvecklat väldigt många framgångsrika algoritmer kring just synkronisering så borde förstå detta område rätt väl (alt. ha extremt tur att lyckat göra rätt utan att förstå varför...).

Är däremot ingen hejare på schack, kan nätt och jämt reglerna och har än mindre skrivit en schack AI. Fick därför gå på beskrivningen av vad Queen-chess testar, där stod det att testet var en bra indikator på kvalité av branch-predictor. Att det är mycket villkorad körning i en AI är uppenbart även för mig, vad jag däremot inte kunde bedöma är om det faktiskt finns en mönster i dessa villkor som en CPU kan lära sig. Här borde jag kanske tänkt tillbaka på tiden som spelprogrammerare (men det ligger ~15 år bakåt i tiden för min del...), spel AI är ett exempel på något där CPUer normalt inte kan förutspå hopp för man vill ha ett relativt stort mått av slumpmässighet här!

Visade sig att Queen-chess absolut är något som testar villkorade hopp på en extremt nivå. Gillar sådana tester då de ger en renodlad bild av en specifik detalj. De är däremot inte representativ för någon form av genomsnittlig prestanda. Detta, ihop med vetskapen att det är en AI samt det du visar att det även skalar perfekt med antal CPU-kärnor, visar dock väldigt bra vad Queen-chess faktiskt testar

Dold text

Det är ett perfekt test av branch-misprediction-penalty! SMT är lysande i fall där man får mycket "stalls", i det läget blir hela CPU-kärnan underutnyttjad vilket betyder att det finns massor med prestanda att använda för en extra CPU-kärna (detta är ett fall där POWER8 rimligen krossar Ryzen och Core med sina 8 trådar per kärna).

Vad detta visar är att Ryzen är precis lika bra som Core att hantera felspekuleringar, vilket tyder på att den effektiva längden på kärnans pipeline är väldigt snarlik mellan dessa designer. Var just då spel ofta innehåller relativt mycket villkorade hopp som inte kan förutsägas som Nintendo valde en CPU-design för GameCube, Wii och Wii-U som inte ens försökte förutsäga hopp utan den var optimerad för att ha extremt låg branch-misprediction-penalty i stället (vilket tyvärr gjorde designen hopplös att klocka högt).

Men tillbaka till spel. Vad är den fundamentala skillnaden här? Spel kan använda många CPU-kärnor men de är absolut inte "embarrassingly parallel"! DÄR ligger en enormt viktig skillnad jämfört med nästan alla andra saker som testas då det betyder att kostnaden för att synkronisera jobb mellan CPU-kärnor blir en väldigt relevant faktor. Detta är precis vad jag jobbat väldigt mycket med senaste åren, d.v.s synkroniseringsbiten inte spel.

Rätt säker att jag även kan förklara varför Ryzen tappar mot Core i DX12, men skulle vilja se lite mer tester här innan jag slår fast något allt för säkert här. Även detta har med synkronisering att göra.

Spel är inte på något sätt ett avvikande värde. Tittar man på JavaScript, som är primärt heltal då själva virtuella maskinen är enbart heltal men i testfallen använder JS-programmen i vissa fall skalära flyttal, så ligger ju Zen strax under Sandy Bridge i IPC. Tittar man på enkeltrådprestanda (d.v.s. IPC * frekvens) ligger faktiskt Ryzen lite mer efter Kaby Lake än vad Piledriver låg efter Sandy Bridge. I IPC är dock skillnaden mindre då Piledriver var högre klockad medan Kaby Lake är högre klockad idag.

Dold text

Det som lyfter Ryzen i heltal, vilket också var helt väntat givet designen, är att man har 8 kärnor samt att SMT i de flesta fall ger en större boost än på Core.

För heltal verkar enkeltråds-IPC ligga strax under Sandy Bridge.
För heltal verkar multitråds-IPC för sådant som är "embarrassingly parallel" ligga på Ivy Bridge nivå (och just i detta fall är det hyfsat stor skillnad i IPC mellan SNB och IVB, den senare fick en del förändringar i front-end som boostade just detta fall).

Om man tittar bakåt i denna tråd är detta precis vad jag förväntade mig efter att man presenterade Zens mikroarkitektur. Är ändå positivt överraskad av Ryzen då IPC i sig är irrelevant, det som spelar roll är IPC * frekvens och frekvensen hamnade högre än vad jag själv trodde!

Men kanske dags för de som hävdat att Intel bra latat sig erkänner att de kanske inte var helt rätt ute. Intels och Apples CPUer har en heltals IPC som fortfarande är generationer före alla andra. Det finns en hård gräns för hur mycket IPC som kan extraheras ur en enskild instruktionsström, dessa två företag kan lägga obscena resurser på FoU men de ligger idag väldigt nära den teoretiska gränsen för IPC med skalära heltal. Det "positiva" (om man vill se det så) är att övriga lär närma sig med tiden då ledarna är väldigt nära väggen nu!

Skrivet av Oegat:

En liten kommentar om denna frågan bara - finns det verkligen inga benchmarks som syntetiskt testar heltalsprestanda? Jag levde i föreställningen att dessa saker var det lättaste att testa, tex SiSoft Sandras MIPS och FLOPS (där jag trodde att MIPS = heltal). Men det är alltså inte så enkelt? Jag menar såklart inte att dessa tester ska användas istället för spel- och nyttoprogramtester, utan tillsammans med, för att förklara skillnader mellan olika scenarier.

Ja det verkar som att mycket är obesvarat här. Jag funderade på hur man skulle kunna testa den praktiska betydelsen av att trådar ibland behöver hämta information från L3 på en annan CCX än tråden körs på. Tills någon kommer på bra sätt att testa latens och bandbredd generiskt för kors-CCX-accesser så skulle man på följande sätt kunna testa hur stor impact detta har för tex. ett specifikt spel. Såhär -

22 GB/s CCX<->CCX bandbredd kommer tydligen från AMD och nämndes vid GDC, länk. Och om man som mig inte begriper franska.

22 GB/s är inte en fix gräns, utan den faktiska bandbredden är exakt samma som bandbredd per kanal mot RAM då hela Infinity Fabric delar klockdomän med minneskontroller.

22 GB/s är då DDR4 2667MT. Jag skriver alltid MT (megatransfers) och inte MHz då klockan för DDR är halva denna siffra.

Att Infinity Fabric delar klockdomän med RAM kan nog också förklara varför det är så pass struligt att köra RAM på riktigt höga frekvenser, är inte bara RAM-bussen man klockar upp!

AMD visade upp denna bild på GDC

Den förklarar också varför latens mot RAM är relativt hög, högre än Core-serien med som använder RAM med samma timings. Minneskontrollen sitter inte i CPUn, den är kopplad till Infinity Fabric.

Varje CCX är en klient till Infinity Fabric. Varje access mot RAM måste därför gå både till den andra CCX-klinent samt RAM och faktiskt latens blir tyvärr latens av det anrop som tar längst tid. Man gör i alla fall båda anropen samtidigt, rent logiskt vill man egentligen först fråga den andra CCX om det ligger cache där, annars gå mot RAM.

"In practice, a memory access for the processor does not take place in isolation. When the processor needs a data, it will begin by querying its cache hierarchy to see if the data is up-to-date. If this is the case, it will be read directly and no memory request will be made. The double partition of the L3 of Ryzen complicates things however. When a data is required, and after checking inside the CCX, the core will send two requests simultaneously, one to the other CCX, and the other to the memory controller. The two operations take place simultaneously (waiting for the response of the other CCX would be much too penalizing), but they impose an additional cost. AMD engineers have confirmed that we probably need to look at this side to explain the latency, even if the manufacturer has remained rather vague."

Latensen mellan CCX blir därför samma som mot RAM, det finns ingen dedicerad CCX<->CCX kommunikation utan Ryzen är verkligen två st 4 kärnors CCX som delar RAM.

Är också detta som nog gör att L3$ latens inte blir korrekt i AIDA. Ryzen har inte 16 MB L3$, går inte ens att göra ett syntetiskt fall där en kärna ser 16 MB L3$. Man har 2x 8 MB cache, så när AIDA mäter latens måste den vara medveten om att L3$ ska behandlas som 8 MB.

Mätning av latens för L1$, L2$ och RAM borde däremot vara korrekt.

Finns det inte syntetiska benchmarks för skalära heltal? För att svara på den frågan måste man inse att det är ungefär som att ställa frågan: finns det inte exempel på hur man räknar matematik?

Svaret är absolut ja, finns massor med sådana benchmarks. Problemet är att flaskhalsen för skalära heltal är extremt mycket mer varierad jämfört med skalära flyttal och vektoriserade flyttal/heltal.

De fall som är mest äpplen mot äpplen är de fall som skalar perfekt med CPU-kärnor, d.v.s. de fall som "embarrassingly parallel". Några sådana är 7-zip, Win-RAR och kompilering.

Men spel och de flesta desktop-program som kan utnyttja många CPU-trådar är INTE "embarrassingly parallel", så ovan är ingen bra indikator på vad man kan förvänta sig där.

Samma sak gäller "multi-taskande". Det ligger någonstans mellan dessa två fall. LinusTech hade ju något fall som kallades för "heavy multitasking" och där låg E-serien i topp, var en bit ner till R7-1800X som bara låg en hårsmån före i7-7700K.

Multi-tasking är något som inte alls skalar så väl med CPU-kärnor som visa i denna tråd försöker påskina. "Heavy multitasking" fallet är onormalt CPU-bundet, i lite mer normala fall (d.v.s. fall som är mer I/O-bundna) kommer antagligen i7-7700K hamna i topp då högre enkeltrådprestanda normalt gör att I/O-enheter kan presterar något närmare sin maximala kapacitet.

Visa signatur

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

Permalänk

Som nämnts förut så verkar det finnas problem med hur windows placerar trådar på kärnorna: https://youtu.be/SE4sxXva9Eg?t=960

Permalänk
Datavetare
Skrivet av tellus82:

Det där skulle kunna förklara en del underliga beteenden, samtidigt så låter det nästan lite för otroligt att ingen från AMD eller någon annan skulle märkt det innan lansering. Känns väl mer som att sysinternals misstolkar något i sin koll.

En annan bug verkar vara nVidias drivare som får tuppjuck och använder enorma mängder vram på ryzen plattformen, samma beteende hade inte AMD kort men det är illa nog att bara ett fåtal testare sett buggen alls. Hoppas alla parter kan fixa till respektive buggar inom en snar framtid.

Skickades från m.sweclockers.com

CoreInfo-programmet (vilket är det som länkades ovan) använder anropet GetLogicalProcessorInformation() för att ta reda på vad CPUn är kapabel till och hur dess cache-topologi ser ut.

GetLogicalProcessorInformation() läser ut informationen från CPU, så att hacka på MS i detta fall blir nog lite fel.

Har tydligen kommit en uppdatering av mikrokoden till Ryzen som rättar detta fel nu.
Ryzen: Strictly technical

Edit: och varför har ingen märkt något på AMDs sidan? Därför bortsett från program som AIDA och andra program som specifikt försöker mäta saker hos CPU-cache skiter 99,99 % av alla program fullständigt i hur topologin för CPU-cachen ser ut.

OS bryr sig normalt inte heller alls om topologin för CPU-cache, däremot bryr sig dessa om CPU-trådar delar fysiska kärna och om de delar minnesbuss eller ej (d.v.s. är NUMA).

Folk har testat att konfigurera Windows så att de två CCX hanteras som olika NUMA-zoner. Men det blir en för hård separation då båda CCX delar minnesbuss och således INTE är ett NUMA-system.

Både Windows och Linux schedulers försöker hålla varje enskild process på en separat NUMA-zon, i fallet Ryzen betyder det då att ett enskilt program då bara kör på enda CCX. De som testade sa att totalt sett blev det en prestandaförsämring av att göra detta. Finns några exempel i "Ryzen: Strictly Technical" tråden jag länkade ovan.

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

@Yoshman: Just trådfördelning över CCX verkar lite lurigt precis som dom testar på anand, då dom kör 8+8 och håller dom separata i belastning så ökade prestandan ganska mycket (förutsatt belastning kunde delas i 8+8). När windows då pingpongar trådar mellan kluster så kommer det bli prestandatapp jämfört med att hålla tråden kvar inom samma kluster, också visat i tråden där.

Grön stapel är enskild CCX användning på Ryzen

Många som testar draw calls på Ryzen med HLSL instancing från nVidia och tycker att det presterar skit men där har man lite samma problem, om jag på min 2600k forcerar HLSL att bara använda två fysiska kärnor (två trådar som används av programmet) så ökar min fps en smula (23->24fps, 1ship 16000 rocks, instancing off)), på Ryzen ökar det med praktiskt taget det dubbla när man forcerar till två fysiska kärnor inom samma kluster.

Frågan är då hur pass mycket som kan göras för att förbättra hur trådar fördelas över hårdvaran med ny mikrokod/uefi/drivare/winpatch?

Visa signatur

| nVidia RTX3090FE | R9 5950x | MSI x570 Unify | Ballistix sport 3000c15 32GB DR@3800c16 | Custom Loop EKWB | 9TB nvme, 3TB sata SSD | RM1000x | Creative X4 | Lian Li o11 Dynamic | Alienware aw3821dw | >Zen2 på 3-400 mobo< | >x570 VRM< | :::AMD Zen Minnesguide:::|:::AMD Zen & Zen+ Överklockningsguide:::

Permalänk
Inaktiv

Jag kommer inte alls ifrån spel branschen utan industrivärlden och där är begränsningen av antal kärnor som kan utnyttjas, är ungefär samma som antalet kärnor som praktisk kan utnyttjas för att driva "Internet". Där det finns mängder av tekniker för att se till så att användaren från en dator kan komma åt data ifrån helt skilda datorer liggande på andra sidan jorden, Marianergraven och även rymdstationen IIS.

Att använda Alms lag för att avgöra att avgöra när "Internet" inte längre praktisk kan tjäna prestanda på att fördelas på fler kärnor är felaktigt. Däremot skulle man kunna använda Alms lag för att räkna ut vad det optimala antalet kärnor för att driva Internet idag är.

Varför gäller inte i viss mån samma sak spel? Det är väl inte per definition förutbestämt att fiender i FPS spel måste sakna allt vad AI heter och utan att de istället kan ha extrema algoritmer som utvärderar olika saker. Detsamma gäller fysiska fenomen, för kör man t.ex på en liten buske så måste inte bilen tvärstanna som om det vore ett berg.
Jag har en kamrat som gillar mycket spel och tänker köpa en värsting simulator för bilspel, där han tänker öva för att bli bättre att köra på riktigt. Precis allt som går att simulera vill han ha, ratten ska rycka precis samma som en verklig ratt, detsamma gäller bromspedalen, frikopplingen skulle fungera som en verklig. Stolen ska självklart skapa G-krafter os.v.

Det är alltså extremt mycket som ska simuleras och jag ser inget stopp att det enbart kan fördelas på 4 kärnor, det finns dock självklart en begränsning, men det beror på hur kräsen man är. Tar vi motorcykelsimulatorer där ens förflyttning av kroppsvikt, lutning av cykel spelar roll blir det genast mycket komplicerat.
Exempel på en bra simuleringsmaskin för racingspel, visst dyr idag men allt blir både billigare och bättre.
https://www.youtube.com/watch?v=vVVFAC2p2X8

Permalänk
Hjälpsam

https://forums.anandtech.com/threads/ryzen-strictly-technical...
Window borde se Ryzen som 2 separata CPU:r med vardera fyra kärnor som var och en kan hantera två trådar via SMT.

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
Inaktiv
Skrivet av Ratatosk:

https://forums.anandtech.com/threads/ryzen-strictly-technical...
Window borde se Ryzen som 2 separata CPU:r med vardera fyra kärnor som var och en kan hantera två trådar via SMT.

Detta har jag länge funderat på vad som är bäst. Om man har ett program som använder två trådar ska man då lägga dem på var sin cpu eller samma? Där väl frågan är hur mycket kommunikation det är mellan trådarna.

I ryzens fall så är det inte lika extremt och jag tror att programtillverkare kan tjäna väldigt mycket prestanda på att tänka till. Samtidigt är det väldigt mycket som det ska tänkas till för och AMD har bara en bråkdel av marknaden. Så jag tror det är något för drivertillverkarna.
Om sedan nästa generationskonsoler får Ryzen, ja då har utvecklare helt andra föresättningar att optimera sin kod.
Jag vet för övrigt flera programvaror där man som användare kan bestämma vilka kärnor vissa processer ska få använda, men jag tror det ej komma att komma i konsumentprodukter.

Permalänk
Datavetare
Skrivet av anon159643:

Jag kommer inte alls ifrån spel branschen utan industrivärlden och där är begränsningen av antal kärnor som kan utnyttjas, är ungefär samma som antalet kärnor som praktisk kan utnyttjas för att driva "Internet". Där det finns mängder av tekniker för att se till så att användaren från en dator kan komma åt data ifrån helt skilda datorer liggande på andra sidan jorden, Marianergraven och även rymdstationen IIS.

Att använda Alms lag för att avgöra att avgöra när "Internet" inte längre praktisk kan tjäna prestanda på att fördelas på fler kärnor är felaktigt. Däremot skulle man kunna använda Alms lag för att räkna ut vad det optimala antalet kärnor för att driva Internet idag är.

Varför gäller inte i viss mån samma sak spel? Det är väl inte per definition förutbestämt att fiender i FPS spel måste sakna allt vad AI heter och utan att de istället kan ha extrema algoritmer som utvärderar olika saker. Detsamma gäller fysiska fenomen, för kör man t.ex på en liten buske så måste inte bilen tvärstanna som om det vore ett berg.
Jag har en kamrat som gillar mycket spel och tänker köpa en värsting simulator för bilspel, där han tänker öva för att bli bättre att köra på riktigt. Precis allt som går att simulera vill han ha, ratten ska rycka precis samma som en verklig ratt, detsamma gäller bromspedalen, frikopplingen skulle fungera som en verklig. Stolen ska självklart skapa G-krafter os.v.

Det är alltså extremt mycket som ska simuleras och jag ser inget stopp att det enbart kan fördelas på 4 kärnor, det finns dock självklart en begränsning, men det beror på hur kräsen man är. Tar vi motorcykelsimulatorer där ens förflyttning av kroppsvikt, lutning av cykel spelar roll blir det genast mycket komplicerat.
Exempel på en bra simuleringsmaskin för racingspel, visst dyr idag men allt blir både billigare och bättre.
https://www.youtube.com/watch?v=vVVFAC2p2X8

Grejen med AI är att: ja det kräver CPU-kraft, men AI för en enskild enhet är något som man i praktiken måste hålla till en fysisk kärna om det ska vara någon effektivitet. Ett spel som Ashes of the Singularity är däremot ett typexempel på hur man kan designa ett spelproblem specifikt så det kan skalas riktigt bra över CPU-kärnor.

I en FPS har man typiskt inte hundratals aktiva enheter samtidigt, en smartare AI hanteras bäst med högre enkeltrådprestanda.

Internet, specifik routers, firewalls och liknande, är ett ganska intressant exempel. IP-protokollet är tillståndslöst (om vi ignorerar fragment som kräver tillstånd på mottagande nod). Så i teorin är det ett typexempel på något som kan skalas i princip perfekt över CPU-kärnor då varje enskilt paket kan hanteras i isolation från alla andra paket.

I praktiken skalar IP-forwarding apa om man försöker hantera det med en ren programvarulösning. Orsaken? Tiden man spenderar per paket är typiskt <1 mikrosekund. Det är en ström med IP-paket, att då ha en mottagande CPU som klassificerar alla paket och sprider ut dem över alla CPU-trådar är logiskt sett en fullt rimlig lösning. Den lösningen kommer i absolut bästa fall kunna se en "speedup" på 1,5-2,0 om allt utförs av generell programkod på en CPU.

Och som vanligt kommer det ner till Amdahls lag. I detta fall kommer kostnaden för att synkronisera överlämnade mellan kärnor ligga i nivå på kostnaden för det jobb man gör per paket. p värdet i Amdahl hamnar därför i området runt 0,5...

Tricket här är att addera specifik HW utanför CPU-cache hierarkin där man klassificerar och bestämmer vilken CPU som ska få paketet. Då har man helt plötsligt gjort om problem till ett där p i praktiken hamnar väldigt nära 1,0 och det kommer skala i det närmaste perfekt.

Kanske kan man gör något liknande i spel. Också lite mer svängrum i spel då det tar ~10 millisekunder per bildruta (mot mikrosekundnivå för IP-paket), d.v.s. man kan ta en del synkroniseringskostnad och ändå ligger en bra bit över 0,9 i p här.

Skrivet av Ratatosk:

https://forums.anandtech.com/threads/ryzen-strictly-technical...
Window borde se Ryzen som 2 separata CPU:r med vardera fyra kärnor som var och en kan hantera två trådar via SMT.

Många har föreslagit det. Men om man nu är OS-utvecklare: vad ska man göra annorlunda på en 2x 4-kärnors CPU jämfört med en 1x 8-kärnors CPU som inte är NUMA? Redan idag har Windows och Linux en tröghet mot att flytta en tråd som kört på en viss fysisk kärna till en annan. Men om man vägrar köra på en annan CPU-kärna hamnar man snabbt i läget där en kärna kan vara överlastad och övriga gör inget. För NUMA är det värt att ta en sådan smäll, är allt för dyrt att börja flytta data mellan RAM-zonerna, för något som inte är NUMA ska inte OSet ta ett sådant beslut.

Är dock full möjligt för en applikation att ta detta beslut. Både Windows och Linux har APIer för att låsa trådar till CPU-trådar + att det är möjligt att läsa ut CPU och cache-topologi. Applikationsutvecklaren är den enda som känner till sin arbetslast, OSet har den kunskapen. Har själv skrivit mellanprogramvara för specifika områden som gör just detta, ville själv styra vilka CPU-trådar som kunde komma i fråga för att hantera specifika jobb. Det beroende på jobbets typ och vem som postade jobbet, gick att få ett rätt mycket bättre resultat än om man lät OSet själv leka med trådarna.

Problemet med ovan är: det fungerar på konsoler och andra former av inbyggda system där HW-plattformen är helt låst. Blir ohållbart kostnadsmässigt att göra för en generell PC-plattform där det finns väldigt många variationer.

Skrivet av anon159643:

Detta har jag länge funderat på vad som är bäst. Om man har ett program som använder två trådar ska man då lägga dem på var sin cpu eller samma? Där väl frågan är hur mycket kommunikation det är mellan trådarna.

I ryzens fall så är det inte lika extremt och jag tror att programtillverkare kan tjäna väldigt mycket prestanda på att tänka till. Samtidigt är det väldigt mycket som det ska tänkas till för och AMD har bara en bråkdel av marknaden. Så jag tror det är något för drivertillverkarna.
Om sedan nästa generationskonsoler får Ryzen, ja då har utvecklare helt andra föresättningar att optimera sin kod.
Jag vet för övrigt flera programvaror där man som användare kan bestämma vilka kärnor vissa processer ska få använda, men jag tror det ej komma att komma i konsumentprodukter.

I Linux kan du alltid styra vilka CPU-trådar en viss process någonsin kan köras på, detta genom taskset CPU_CORE_MASK. Använder det verktyget väldigt ofta för att få en känsla för vad multitrådade program har för sig när det kommer till synkronisering och core-till-core kommunikation. Är också ruggigt bra för att mäta skalning med kärnor, SMT och CPU-socklar.

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

Saknar spel tester där man kör med 2/3 grafikkort på AMDs nya Ryzen plattform. (jag kör med 3 st Fury X så man är ju lite nyfiken om det är dags att byta eller om man ska vänta ett år till. spelar i 4K så klarar allt idag då skärmen endast klarar 60Hz)

Visa signatur

Ryzen 5800X ROG STRIX X570-f GAMING FlareX DDR43600 cl 14-14-14-34 EVGA FTW3 Ultra RTX 3090

Permalänk
Medlem

Vill bara meddela att mitt asus crosshair VI hero är brickad och att det inte var mitt fel. Helt plötsligt när jag skulle starta upp datorn i morse kom det upp i dos att bios mitt uppdateras fast jag inte ens var inne där! Jag väntade i 20 min inget hände, värsta skumma glitchen.

Var tvungen stänga av datorn, när ja sedan satt på den igen var den stendöd. Testade resetta cmos, tog ut batteri osv. Inget hjälpte.

Pratade med inet idag dom ska skicka ett nytt men sjukt irriterande. Vill egentligen inte ha ett till asus hero om dom är så buggiga.

Skickades från m.sweclockers.com

Visa signatur

Ryzen 7800X3D
32GB DDR5
RX 7900XT

Permalänk
Medlem

@SectionX2: Aj då det var inte kul. Det hände JayzTwoCents. Ca 10m50s in i hans ryzen video https://www.youtube.com/watch?v=SE4sxXva9Eg. Jag har också ett Crosshair VI Hero men har inte byggt ännu då jag väntar på kylarfäste från corsair. Nu blir man lite orolig över detta moderkortet. Får hoppas det kommer någon bios fix snart om det visar sig vara någon sorts bugg.

Visa signatur

CPU: i9 13900kf MB: Strix z790-F RAM: 32GB Corsair Dominator Platinum RGB 5600cl36 GPU: RTX 4090 Suprim X SSD: Samsung 980 pro 1TB,960 Pro 512GB, 960 Pro 500GB 850 evo 1TB x2 860 evo 1TB Cooler: h150i elite lcd PSU:AX1200i Case: Phanteks P600S TG
Main Display: MSI Optix MAG281URF Peripherals: Logitech G915, G903, Pro X Wireless, Powerplay

Permalänk
Medlem
Skrivet av sesese:

Saknar spel tester där man kör med 2/3 grafikkort på AMDs nya Ryzen plattform. (jag kör med 3 st Fury X så man är ju lite nyfiken om det är dags att byta eller om man ska vänta ett år till. spelar i 4K så klarar allt idag då skärmen endast klarar 60Hz)

Såg en video förut där en spelade med 2xGTX 1080 kort med Ryzen

Visa signatur

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

Permalänk
Medlem

Skit, jag som eyeballat Asus kortet som första val för nya Ryzenbygget, nu blir jag lite nervös när det är flera som brickat sina kort.

Permalänk
Hjälpsam
Skrivet av Yoshman:

-- Text--
Många har föreslagit det. Men om man nu är OS-utvecklare: vad ska man göra annorlunda på en 2x 4-kärnors CPU jämfört med en 1x 8-kärnors CPU som inte är NUMA? Redan idag har Windows och Linux en tröghet mot att flytta en tråd som kört på en viss fysisk kärna till en annan. Men om man vägrar köra på en annan CPU-kärna hamnar man snabbt i läget där en kärna kan vara överlastad och övriga gör inget. För NUMA är det värt att ta en sådan smäll, är allt för dyrt att börja flytta data mellan RAM-zonerna, för något som inte är NUMA ska inte OSet ta ett sådant beslut.

Är dock full möjligt för en applikation att ta detta beslut. Både Windows och Linux har APIer för att låsa trådar till CPU-trådar + att det är möjligt att läsa ut CPU och cache-topologi. Applikationsutvecklaren är den enda som känner till sin arbetslast, OSet har den kunskapen. Har själv skrivit mellanprogramvara för specifika områden som gör just detta, ville själv styra vilka CPU-trådar som kunde komma i fråga för att hantera specifika jobb. Det beroende på jobbets typ och vem som postade jobbet, gick att få ett rätt mycket bättre resultat än om man lät OSet själv leka med trådarna.

Problemet med ovan är: det fungerar på konsoler och andra former av inbyggda system där HW-plattformen är helt låst. Blir ohållbart kostnadsmässigt att göra för en generell PC-plattform där det finns väldigt många variationer.
--Text--

Tycker att den trögheten verkar vara för liten, när man tittar på belastning av en tråd ser man inga hopp, trögheten är betydligt lägre än Aktivitetshanterarens upplösning.
Har man tillräckligt stor tröghet, borde man inte se någon negativ inverkan på grund av hoppen, det verkar man göra här.
I princip låg tröghet för att hoppa mellan trådar, högre för att hoppa mellan kärnor och ännu högre för att hoppa mellan modulerna.
Även högre för de program som exekverar mycket.

Skulle jag göra ett större realtidsprogram (tex spel), skulle jag nog skulle jag nog tilldela realtidsjobben hårt på olika kärnor, allt annat känns för okontrollerat.

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
Hjälpsam

@SectionX2: Har inte Asus någon form av nöduppdatering av UEFI? du laddar ned UEFI, ger det ett visst namn lägger upp det på en sticka och bootar med sticka i.

edit 17500 inlägg, tjoho, jag har inget liv!

edit 2
Kapitel 3.11.3, sidan 3-28.
http://dlcdnet.asus.com/pub/ASUS/mb/SocketAM4/CROSSHAIR-VI-HE...

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

Vill bara meddela att mitt asus crosshair VI hero är brickad och att det inte var mitt fel. Helt plötsligt när jag skulle starta upp datorn i morse kom det upp i dos att bios mitt uppdateras fast jag inte ens var inne där! Jag väntade i 20 min inget hände, värsta skumma glitchen.

Var tvungen stänga av datorn, när ja sedan satt på den igen var den stendöd. Testade resetta cmos, tog ut batteri osv. Inget hjälpte.

Pratade med inet idag dom ska skicka ett nytt men sjukt irriterande. Vill egentligen inte ha ett till asus hero om dom är så buggiga.

Skickades från m.sweclockers.com

https://youtu.be/SE4sxXva9Eg?t=643

Permalänk
Medlem
Skrivet av Ratatosk:

@SectionX2: Har inte Asus någon form av nöduppdatering av UEFI? du laddar ned UEFI, ger det ett visst namn lägger upp det på en sticka och bootar med sticka i.

edit 17500 inlägg, tjoho, jag har inget liv!

Esch, när du kommer till 175.000 inlägg... Då kan du börja oroa dig

Skickades från m.sweclockers.com

Visa signatur

🖥️ Fractal Design Node 804 • Asrock Fatal1ty X99M Killer • Intel 5820K • Noctua NH-U12S • Corsair Vengeance 16GB • Gigabyte GTX 970 • be quiet! Dark Power Pro 550w • 2x Intel 520 120GB • 2x 1TB • 1x 3TB
💻 Microsoft Surface Pro (8GB/128GB)
 iPhone 11 64GB 🎧 SONY WH-1000XM3
🎵📲 SONY NW-ZX300 64GB [Region changed & Mr Walkman custom firmware loaded] + 256GB xtra • Audio Technica ATH-M50X

Permalänk
Medlem

@Ratatosk: hur ska jag göra det? Datorn bootar ju inte.

Visa signatur

Ryzen 7800X3D
32GB DDR5
RX 7900XT

Permalänk
Medlem
Skrivet av ddelin:

Skit, jag som eyeballat Asus kortet som första val för nya Ryzenbygget, nu blir jag lite nervös när det är flera som brickat sina kort.

Bästa är att avvakta några månader innan man köper nåt. Jag väntar till sommaren i all fall

Visa signatur

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

Permalänk
Medlem
Skrivet av SectionX2:

Vill bara meddela att mitt asus crosshair VI hero är brickad och att det inte var mitt fel. Helt plötsligt när jag skulle starta upp datorn i morse kom det upp i dos att bios mitt uppdateras fast jag inte ens var inne där! Jag väntade i 20 min inget hände, värsta skumma glitchen.

Var tvungen stänga av datorn, när ja sedan satt på den igen var den stendöd. Testade resetta cmos, tog ut batteri osv. Inget hjälpte.

Pratade med inet idag dom ska skicka ett nytt men sjukt irriterande. Vill egentligen inte ha ett till asus hero om dom är så buggiga.

Skickades från m.sweclockers.com

Va fan, mitt gjorde exakt likadant!
Asus, vad håller ni på med..?

Visa signatur

[ Corsair 460X ] [ Corsair HX750i ] [ AMD Ryzen 5800X ] [ Zotac RTX3080 Trinity OC] [ Asus ROG Strix X570-F Gaming]
[ 32GB G.Skill TridentZ Neo 3800Mhz DDR4 ] [ Samsung 980 Pro 500GB + 960 EVO 500GB ] [ Logitech PRO X 2 ] [ Corsair H115i ] [ Win11 ] [Asus TUF Gaming VG27AQ]

Permalänk
Medlem

Hade varit försiktig om jag hade haft ett ROG X370. Fler som brickat det, men samtidigt är det en hel del som det fungerar bra hos. Undrar varför man inte kan hitta asus x370 på amazon.co .uk längre?

Visa signatur

14900KF--Apex Encore--RTX 4090--G.Skill 2x24GB DDR5-8000--Dynamic Evo XL
12900K--RTX 2080Ti--Gigabyte Z690 Aorus Master--4X16GB DDR5 6000
Ljud: Lewitt Connect 6--Shure SM7B
Skärmar: Neo G8 4K 240hz--Huawei 3440x1440 165hz

Permalänk
Medlem

@SirMacke: va i helvete. Detta borde bli en sweclockers nyhet.

Visa signatur

Ryzen 7800X3D
32GB DDR5
RX 7900XT

Permalänk
Medlem
Skrivet av ddelin:

Skit, jag som eyeballat Asus kortet som första val för nya Ryzenbygget, nu blir jag lite nervös när det är flera som brickat sina kort.

Inte med billiga och enkla PRIME X370-PRO vad jag läst eller sett på Tuben.

Visa signatur

[AMD Ryzen 9 3900X] [ASUS GeForce RTX 2080 Ti] [LG OLED 55 C9 som skärm] [Samsung HW-Q96R till ljudet]