Permalänk
Datavetare

Tittar man på testet som Toms Hardware gjorde på G3258 (med ett Nvidia Titan) så verkar faktiskt ARMA 3 använda sig av mer än 2 trådar fast på ett sätt som verkar rätt naivt då en i3-4330 har något mindre jitter än i5-4690K, det trots att 4690K både har fler CPU-kärnor och något bättre enkeltrådprestanda.

Att ARMA 3 faktiskt använder fler trådar än 2 ser man på att G3258 presterar (marginellt) sämre än i3-4330. Lite trist att det inte finns någon "K" modell av i3, rätt säker på att det skulle vara en helt optimal CPU för dagens spel. Intel vet säker också det och inser att en "K" modell av i3 skulle påverka försäljningen av framförallt i5 negativt. Efter 8 år av konsoler med minst 6 CPU-trådar (Xbox360) så borde det börja sjunka in att spel aldrig kommer skala speciellt bra med antal CPU-kärnor, dagens konsoler har också 6 CPU-trådar som spel kan använda så det är ingen förändring mot Xbox360 och det är en minskning mot PS3 2 PPC-trådar + 6 SPE trådar.

Tittar man runt på spel-tester just på G3258 så är det faktiskt en CPU som i klockad läge är en förvånansvärd bra match även till de absolut snabbaste GPUerna, i alla fall så länge man kör med ett grafikkort och 1920x1080 eller högre (svårt att se någon köpa GTX980 eller R9 290X och köra 1280x720...). Så en 500-600kr CPU kan vara en vettig match till ett grafikkort för >2500kr i sett system som helt ska optimeras för spelprestanda per kr.

Visa signatur

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

Permalänk
Inofficiell ambassadör
Skrivet av virtual void:

fantastiskt genomtänkt utlägg.

Då du helt klart har bättre koll på mjukvara och hur den interagerar med hårdvara än vad jag har (bedömt inte bara från denna tråd utan i allmänhet) så tänkte jag passa på att fråga: Finns det någon speciellt anledning till att just spel trådar så väldans dåligt? Vad är det som gör att spel allt som oftast tjänar väldigt lite på att t.ex kunna exekveras över 8 trådar istället för 2?

Visa signatur

Mobo Aorus B550 Pro V2 CPU Ryzen 5600X RAM Corsair Vengance 16GB @ 36000 MHZ
GPU MSI GTX 1080 ti Gaming X Skärm Acer X34A

Permalänk
Datavetare
Skrivet av Xyborg:

Då du helt klart har bättre koll på mjukvara och hur den interagerar med hårdvara än vad jag har (bedömt inte bara från denna tråd utan i allmänhet) så tänkte jag passa på att fråga: Finns det någon speciellt anledning till att just spel trådar så väldans dåligt? Vad är det som gör att spel allt som oftast tjänar väldigt lite på att t.ex kunna exekveras över 8 trådar istället för 2?

Främst en specifik sak som krävs för att något effektivt ska kunna köras på många CPU-kärnor:

  • De problem som varje CPU-kärna jobbar på måste kunna lösas med väldigt låg frekvens av kommunikation med andra kärnor, helst ska det inte behövas någon kommunikation alls vilket är fallet i t.ex. rendering vilket förklarar varför GPUer kan ha över 1000-kärnor och ändå skala

Det som utförs i en spelmotor har helt enkelt få/inga CPU-krävande delar som matchar den beskrivningen, samma gäller tyvärr de flesta program vi använder på skrivbordet.

Nästan alla problem går rent teoretiskt att dela upp i oberoende bitar, men det faller alltså på att en sådan uppdelning kräver för mycket samordning mellan trådarna. Men här kommer HyperThreading med en intressant sak: två trådar som kör på samma fysiska kärna delar lägsta nivå CPU-cache som har otroligt låg latens och kan därför kommunicera sinsemellan med nära nog noll kostnad. Utnyttjar man detta får man i alla fall 20-30% mer kraft, vilket kan vara nog så viktigt om man gör det på det som är största flaskhals.

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

[quote=virtual void;14964836]Främst en specifik sak som krävs för att något effektivt ska kunna köras på många CPU-kärnor:

  • De problem som varje CPU-kärna jobbar på måste kunna lösas med väldigt låg frekvens av kommunikation med andra kärnor, helst ska det inte behövas någon kommunikation alls vilket är fallet i t.ex. rendering vilket förklarar varför GPUer kan ha över 1000-kärnor och ändå skala

  • [/*][/*]

Det som utförs i en spelmotor har helt enkelt få/inga CPU-krävande delar som matchar den beskrivningen, samma gäller tyvärr de flesta program vi använder på skrivbordet.

Nästan alla problem går rent teoretiskt att dela upp i oberoende bitar, men det faller alltså på att en sådan uppdelning kräver för mycket samordning mellan trådarna. Men här kommer HyperThreading med en intressant sak: två trådar som kör på samma fysiska kärna delar lägsta nivå CPU-cache som har otroligt låg latens och kan därför kommunicera sinsemellan med nära nog noll kostnad. Utnyttjar man detta får man i alla fall 20-30% mer kraft, vilket kan vara nog så viktigt om man gör det på det som är största flaskhals.[/quote]

Då måste man ju passa på att fråga; kan en tvåkärnig I3 med HT vid samma frekvens och med samma mängd cache prestera bättre än en fyrkärnig I5?

Sen kan man ju fråga sig varför i hela friden konsollerna har så många kärnor.. CPUerna i dessa verkar ju flaska dessutom, Ubisoft klagade på det med AC5. Om man kikar på Alien Isolation så presterar en PC med en starkt Intelprocessor och ett HD 7870 betydligt bättre än ett PS4. Och PS4ans GPU verkar ju motsvara 7870.
Sony och Microsoft fick väl helt enkelt ett väldigt bra paketpris från AMD.

EDIT: och dessa åttakärniga mobiler.. Bara Apple är smarta nog att satsa på 2 kärnor med så hög IPC som möjligt. Troligtvis för att deras telefoner säljer utan att skriva "HELA ÅTTA KÄRNOR!!!".

Visa signatur

Bästa trådstarten någonsin.

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

Permalänk
Inofficiell ambassadör
Skrivet av MakeCoke:

Då måste man ju passa på att fråga; kan en tvåkärnig I3 med HT vid samma frekvens och med samma mängd cache prestera bättre än en fyrkärnig I5?

Sen kan man ju fråga sig varför i hela friden konsollerna har så många kärnor.. CPUerna i dessa verkar ju flaska dessutom, Ubisoft klagade på det med AC5. Om man kikar på Alien Isolation så presterar en PC med en starkt Intelprocessor och ett HD 7870 betydligt bättre än ett PS4. Och PS4ans GPU verkar ju motsvara 7870.
Sony och Microsoft fick väl helt enkelt ett väldigt bra paketpris från AMD.

EDIT: och dessa åttakärniga mobiler.. Bara Apple är smarta nog att satsa på 2 kärnor med så hög IPC som möjligt. Troligtvis för att deras telefoner säljer utan att skriva "HELA ÅTTA KÄRNOR!!!".

Bra frågor, och jag tror att jag det sistnämnda kan vara svaret i fler produkter än mobiler. Även laptops och desktops marknadsförs ju ofta med "8 kraftfulla kärnor" eller liknande helt substanslösa citat. Ang. konsolerna så är det än mer intressant. Jag tror att det har mycket att göra med att strömförbrukningen skalar exponentiellt med frekvensen. Dvs dubblar man antalet kärnor dubblar man i stort sätt strömförbrukningen, men om man dubblar frekvensen en kärna körs i så ökar strömförbrukningen med mer än 100%.

Visa signatur

Mobo Aorus B550 Pro V2 CPU Ryzen 5600X RAM Corsair Vengance 16GB @ 36000 MHZ
GPU MSI GTX 1080 ti Gaming X Skärm Acer X34A

Permalänk
Datavetare
Skrivet av MakeCoke:

Då måste man ju passa på att fråga; kan en tvåkärnig I3 med HT vid samma frekvens och med samma mängd cache prestera bättre än en fyrkärnig I5?

Sen kan man ju fråga sig varför i hela friden konsollerna har så många kärnor.. CPUerna i dessa verkar ju flaska dessutom, Ubisoft klagade på det med AC5. Om man kikar på Alien Isolation så presterar en PC med en starkt Intelprocessor och ett HD 7870 betydligt bättre än ett PS4. Och PS4ans GPU verkar ju motsvara 7870.
Sony och Microsoft fick väl helt enkelt ett väldigt bra paketpris från AMD.

EDIT: och dessa åttakärniga mobiler.. Bara Apple är smarta nog att satsa på 2 kärnor med så hög IPC som möjligt. Troligtvis för att deras telefoner säljer utan att skriva "HELA ÅTTA KÄRNOR!!!".

Sprider man ut saker för aggressivt över många CPU-kärnor kan det blir långsammare, så ja: rent teoretiskt kan en i3 bli snabbare än en i5, i praktiken har i5 fördel av turbo-boost och större L3-cache som borde göra att den ändå är snabbare.

Vad det gäller konsolerna och även mobiler så handlar det om att 8 enkla kärnor är både billigare och enklare att tillverka än något med samma teoretiska totala kapacitet som har färre kärnor, det senare är däremot allt snabbare i praktiken. Är ju det som är så trevligt med Pentium AE, billig CPU som kan klockas så man får riktigt bra prestanda per tråd. Hade dock varit väldigt mycket trevligare om den haft HT...

Skrev redan under spekulationerna kring hur PS4/XBO skulle komma att se ut att jag hoppades på 2st Piledriver/Steamroller moduler men tyvärr var inte valet av 8 Jaguar-kärnor speciellt överraskande. Jaguar är designad för att kunna integreras i systemkretsar, Piledriver/Steamroller är inte det men hoppades att APU-designen vara tillräckligt integrerad. Jaguar blev nog så mycket enklare att använda och därmed billigare att man inte såg ekonomi i en lösning med någon annan CPU-kärna. Strömförbrukning var garanterat också en faktor.

Att det blev 8-kärnor har nog att göra med att man vill ha 4 kärnor för spel då det handlar om rätt klena kärnor, enklast då att ta två 4-kärnor-block. Sedan fanns ingen poäng att reservera mer än 2 kärnor för systemet. Tittar man på L2-cache uppdelning så är det idag 4 kärnor som delar L2, gissar att de typiskt används av spelmotorn, sedan är det 2 kärnor som delar L2 med systemet och där ligger säkert med bakgrundsuppgifter som att läsa/skriva från disk och nätet etc (som inte alls är CPU-intensivt).

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

Du är hjärtligt välkommen att visa ett spel som trådar lika bra som Cinebench.

Skrev jag det? Vid flertrådat blir skillnaden genast mer markant.

Sen ser man hur dålig exempelvis 3770K är på flertrådat då den sjunker ner i nivå med en sådan urusel processor som FX-8350!

Edit: Däremot var testet som virtual void länkade till på toms intressant då jag rekommenderat en Pentium G3220/3240 till en WoW nörd..

Visa signatur

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

Permalänk
99:e percentilen
Skrivet av skruvis:

Skrev jag det? Vid flertrådat blir skillnaden genast mer markant.

Sen ser man hur dålig exempelvis 3770K är på flertrådat då den sjunker ner i nivå med en sådan urusel processor som FX-8350!

Edit: Däremot var testet som virtual void länkade till på toms intressant då jag rekommenderat en Pentium G3220/3240 till en WoW nörd..

OK, då tittar vi på ett av de mest vältrådade spelen: Battlefield 4.

Till att börja med kan vi ta den CPU-snälla singleplayerkampanjen, där dessutom GPU:n flaskar:

Jag tycker det ser ut som att 3770K, trots sin låga stockfrekvens, ligger en bit före 8350, men du har rätt i att skillnaden inte är så stor.

Det var som sagt CPU-lätta singleplayer. För att få ytterligare kött på benen kan vi slänga ett öga på SweClockers prestandaanalys: Processorer i BF4, där följande resultat – som dock måste tas med en nypa salt pga att testet ej är repeterbart – från den CPU-tunga och betydligt mer relevanta multiplayerdelen observerades:

Visa signatur

Skrivet med hjälp av Better SweClockers

Permalänk
Medlem
Skrivet av Alling:

OK, då tittar vi på ett av de mest vältrådade spelen: Battlefield 4.

Till att börja med kan vi ta den CPU-snälla singleplayerkampanjen, där dessutom GPU:n flaskar:

http://www.sweclockers.com/image/diagram/6932?k=5aa182733e505...

Jag tycker det ser ut som att 3770K, trots sin låga stockfrekvens, ligger en bit före 8350, men du har rätt i att skillnaden inte är så stor.

Det var som sagt CPU-lätta singleplayer. För att få ytterligare kött på benen kan vi slänga ett öga på SweClockers prestandaanalys: Processorer i BF4, där följande resultat – som dock måste tas med en nypa salt pga att testet ej är repeterbart – från den CPU-tunga och betydligt mer relevanta multiplayerdelen observerades:

http://www.sweclockers.com/image/diagram/4973?k=cd3689fda5965...

Pratade vi inte cinebench & 8-trådar fullt ut?

Visa signatur

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

Permalänk
99:e percentilen
Skrivet av skruvis:

Pratade vi inte cinebench & 8-trådar fullt ut?

Nej, jag har diskuterat spelprestanda hela tiden, för det är vad tråden handlar om.

Visa signatur

Skrivet med hjälp av Better SweClockers

Permalänk
Medlem
Skrivet av Alling:

Nej, jag har diskuterat spelprestanda hela tiden, för det är vad tråden handlar om.

Och jag syftade på Cinebench, att en 3770K är lika dålig i Cinebench flertrådat som en FX 8350..

Visa signatur

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

Permalänk
99:e percentilen
Skrivet av skruvis:

Och jag syftade på Cinebench, att en 3770K är lika dålig i Cinebench flertrådat som en FX 8350..

3770K @ 3,5 GHz är förvisso 9 % snabbare än 8350 @ 4 GHz, och att 3770K tappar gentemot 8350 i multitrådat Cinebench är ju inte så konstigt eftersom 8350 har åtta kärnor (moduler) och 3770K bara fyra (med HT).

Multitrådat Cinebench säger väldigt lite om spelprestanda.

Visa signatur

Skrivet med hjälp av Better SweClockers

Permalänk
Datavetare
Skrivet av Alling:

3770K @ 3,5 GHz är förvisso 9 % snabbare än 8350 @ 4 GHz, och att 3770K tappar gentemot 8350 i multitrådat Cinebench är ju inte så konstigt eftersom 8350 har åtta kärnor (moduler) och 3770K bara fyra (med HT).

Multitrådat Cinebench säger väldigt lite om spelprestanda.

Däremot visar Cinebench att av alla dåliga designval som AMD gjorde i Bulldozer-designen så är en delad FPU inte en av dessa! Denna benchmark är väldigt flyttalsintensiv och ändå är det en av de laster som 8350 står sig bäst mot Core i7.

Så faktum är att inte ens enkeltråd-resultatet för Cinebench representerar spelprestanda speciellt bra då det är mest heltalsberäkningar som spel gör med CPU-delen, flyttalen står GPU-delen för.

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

3770K @ 3,5 GHz är förvisso 9 % snabbare än 8350 @ 4 GHz, och att 3770K tappar gentemot 8350 i multitrådat Cinebench är ju inte så konstigt eftersom 8350 har åtta kärnor (moduler) och 3770K bara fyra (med HT).

Multitrådat Cinebench säger väldigt lite om spelprestanda.

Tycker att virtual void beskrev det bra..

8350 har 4 moduler som blir 8 logiska kärnor i windows (Intel fanboysen säger att det inte är 8 riktiga kärnor vilket även sweclockers redaktionen verkar stödja ), 3770K har 4 kärnor med HT som blir 8st logiska kärnor i windows..

Men om man ser till priset så kan man få riktigt bra spelprestanda/krona med en Pentium inte i alla spel vilket man tydligt ser i BF4 & där ser man även att tesen med enkeltrådad cinebench inte håller.

Visa signatur

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

Permalänk
99:e percentilen
Skrivet av skruvis:

Tycker att virtual void beskrev det bra..

8350 har 4 moduler som blir 8 logiska kärnor i windows (Intel fanboysen säger att det inte är 8 riktiga kärnor vilket även sweclockers redaktionen verkar stödja ), 3770K har 4 kärnor med HT som blir 8st logiska kärnor i windows..

Men om man ser till priset så kan man få riktigt bra spelprestanda/krona med en Pentium inte i alla spel vilket man tydligt ser i BF4 & där ser man även att tesen med enkeltrådad cinebench inte håller.

Absolut, för BF4 kräver mer CPU-prestanda än två kärnor Haswell kan ge. En Haswell med bara en aktiv kärna skulle förstås också ligga jämsides med 4690K och 4790K (i samma klockfrekvens) i singeltrådat Cinebench, men suga i spel.

Men vi kan inte komma ifrån det faktum att singeltrådad prestanda är viktig i spel; så fort en kärna är maximalt belastad flaskar CPU:n. Skulle du köra 32 kärnor Piledriver skulle du fortfarande inte få bättre prestanda.

Skrivet av virtual void:

Däremot visar Cinebench att av alla dåliga designval som AMD gjorde i Bulldozer-designen så är en delad FPU inte en av dessa! Denna benchmark är väldigt flyttalsintensiv och ändå är det en av de laster som 8350 står sig bäst mot Core i7.

Så faktum är att inte ens enkeltråd-resultatet för Cinebench representerar spelprestanda speciellt bra då det är mest heltalsberäkningar som spel gör med CPU-delen, flyttalen står GPU-delen för.

Fast skillnaden mellan AMD och Intel som uppvisas i flyttalsintensiva Cinebench borde väl, åtminstone i hög grad, gälla även heltalsprestanda?

Visa signatur

Skrivet med hjälp av Better SweClockers

Permalänk
Datavetare
Skrivet av skruvis:

8350 har 4 moduler som blir 8 logiska kärnor i windows (Intel fanboysen säger att det inte är 8 riktiga kärnor vilket även sweclockers redaktionen verkar stödja ), 3770K har 4 kärnor med HT som blir 8st logiska kärnor i windows..

För Windows är 8350 och 3770K båda singel-socket CPU som har 8 CPU-trådar. I både Windows och Linux behandlas dessa på samma sätt, man försöker lägga jobb på den ena av de två CPU-trådarna per fysisk kärnan / modul fram till att alla 4 trådar/moduler har last på ena tråden, först då börjar man använda båda CPU-trådarna.

Vidare delar Linux-kärnan upp CPU-trådar i "core_siblings" och "thread_siblings". Thread siblings är trådar som delar resurser och påverkar därför varandras kapacitet. Även här ses en AMD modul på samma sätt som HT.

Personligen tycker jag diskussionen kring vad som är "riktiga" kärnor eller ej är totalt meningslös, men sett från OSet och sett från perspektivet från programmeraren (om man vill optimera ner på topologin av CPUn) så är Intels HT och AMDs moduler båda exempel på SMT och inte "riktig" multicore.

Tyvärr delar inte moduler fördelen att kunna kommunicera extremt effektivt mellan CPU-trådar då varje tråd har en egen L1D$ på 16kB, här undrar man varför man inte har en delad L1D$ på 32kB i stället.

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

Absolut, för BF4 kräver mer CPU-prestanda än två kärnor Haswell kan ge. En Haswell med bara en aktiv kärna skulle förstås också ligga jämsides med 4690K och 4790K (i samma klockfrekvens) i singeltrådat Cinebench, men suga i spel.

Men vi kan inte komma ifrån det faktum att singeltrådad prestanda är viktig i spel; så fort en kärna är maximalt belastad flaskar CPU:n. Skulle du köra 32 kärnor Piledriver skulle du fortfarande inte få bättre prestanda.

Fast skillnaden mellan AMD och Intel som uppvisas i flyttalsintensiva Cinebench borde väl, åtminstone i hög grad, gälla även heltalsprestanda?

Vi kan inte komma ifrån att prestanda behövs.. Och vi kan diskutera detta om om & om igen..

Nu vet jag inte huruvida detta benchmark skiljer sig mot spelet men jag tycker att fördelningen över kärnorna känns hyffsat bra?

FX-8320
2xHD7850 1GB i CF

Visa signatur

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

Permalänk
Datavetare
Skrivet av Alling:

Fast skillnaden mellan AMD och Intel som uppvisas i flyttalsintensiva Cinebench borde väl, åtminstone i hög grad, gälla även heltalsprestanda?

Inte nödvändigtvis. Flyttalsoperationer är mycket mer komplicerade och tar därför många CPU-cykler att slutföra, de flest heltalsoperationer tar en cykel att slutföra. "Big core" CPUer som Haswell och Piledriver har s.k. "fully pipelined FPU" vilket betyder att flyttalsenheten kan accepterar en ny instruktion varje klockcykel. Teoretiskt flyttalskapacitet beror lite på mix av instruktioner, men är ungefär den samma per modul i Piledriver som den är per kärna i Ivy Bridge så länge som man inte använder AVX (då är Intel snabbare) vilket inte Cinebench verkar göra.

Flyttalsintensiva program brukar inte heller innehålla en hög frekvens av villkorade hopp, utan man är verkligen begränsad av CPUs kapacitet att utföra flyttalsberäkningar.

Heltalsintensiva program har mycket bredare spektrum i hur de beter sig, men t.ex. AI, kollisionsdetektering och liknande har väldigt hög frekvens av villkorade hopp, så beror mycket på kostnad för felspekulering av hopp samt hur bra man spekulerar. Att sortera saker och på andra sätt referera data relativt slumpmässigt i RAM beror väldigt mycket på hur man spekulerar kring framtida minnesreferenser samt hur dyrt det är att spekulera fel. Intel har bättre branch-predictors och har mycket bättre cache-design, så skulle vara förvånad om inte heltalsintensiva laster tippar ganska mycket till favör för Ivy Bridge.

Men visst ger Cinebench ändå en viss indikation om hur heltalsprestanda står sig, alla program har visst inslag av heltalsinstruktioner. Finns däremot många program som överhuvudtaget inte använder flyttal.

Visa signatur

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

Permalänk
Datavetare
Skrivet av skruvis:

Vi kan inte komma ifrån att prestanda behövs.. Och vi kan diskutera detta om om & om igen..

Nu vet jag inte huruvida detta benchmark skiljer sig mot spelet men jag tycker att fördelningen över kärnorna känns hyffsat bra?

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

FX-8320
2xHD7850 1GB i CF

Tycker det ser horribel ut. Ofta ligger alla kärnor på mellan 20-60%, minst två stora problem med det

  • ta fallet alla ligger på 50%, mycket effektivare att i stället låta hälften av kärnorna ligga på 100%. Detta ger högre turbo-frekvenser då hälften av kärnorna vilar. Färre kärnor betyder mindre cross-core overhead i form av kommunikation

  • att lasta alla kärnor till 100% är trivialt, problemet är att göra det på ett sätt så den prestanda man får med t.ex. 2 kärnor på 100% blir 4 gånger högre när 8 kärnor jobbar på 100%. Är man naiv i sin programmering kring detta hamnar man snabbt i läget att extra kärnor visst lastas till 100% men total mängd utfört arbete är konstant eller kan till och med bli negativt

Nu tror jag det är ganska vanliga att alla eller nästan alla kärnor blir lite lastade när man kör Windows, det verkar vara en prestanda-bug i hur schedulern fungerar sedan Vista. Här borde nog spelutvecklare börja explicit låsa ner trådar till specifika kärnor då de bättre vet hur CPU-trådar kommunicerar sinsemellan och vilka CPU-trådar som mår bäst av att köra på en egen modul/kärna och vilka som kan dela.

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

[QUOTE=virtual void;14966555]Tycker det ser horribel ut. Ofta ligger alla kärnor på mellan 20-60%, minst två stora problem med det

  • ta fallet alla ligger på 50%, mycket effektivare att i stället låta hälften av kärnorna ligga på 100%. Detta ger högre turbo-frekvenser då hälften av kärnorna vilar. Färre kärnor betyder mindre cross-core overhead i form av kommunikation

  • att lasta alla kärnor till 100% är trivialt, problemet är att göra det på ett sätt så den prestanda man får med t.ex. 2 kärnor på 100% blir 4 gånger högre när 8 kärnor jobbar på 100%. Är man naiv i sin programmering kring detta hamnar man snabbt i läget att extra kärnor visst lastas till 100% men total mängd utfört arbete är konstant eller kan till och med bli negativt

Nu tror jag det är ganska vanliga att alla eller nästan alla kärnor blir lite lastade när man kör Windows, det verkar vara en prestanda-bug i hur schedulern fungerar sedan Vista. Här borde nog spelutvecklare börja explicit låsa ner trådar till specifika kärnor då de bättre vet hur CPU-trådar kommunicerar sinsemellan och vilka CPU-trådar som mår bäst av att köra på en egen modul/kärna och vilka som kan dela.[/QUOTE]

Och ändå så påpekar "en del" att om man belastar en eller flera kärnor till 100% så "flaskar" processorn.. i mitt fall så belastas gpu:erna nästan till 95-100% vilket är korrekt enligt dessa "en del" men du menar alltså att dom har fel?

Samma bench fast med ett 660Ti & så ser man klockfrekvensen på proppen..

Visa signatur

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

Permalänk
Datavetare
Skrivet av skruvis:

Och ändå så påpekar "en del" att om man belastar en eller flera kärnor till 100% så "flaskar" processorn.. i mitt fall så belastas gpu:erna nästan till 95-100% vilket är korrekt enligt dessa "en del" men du menar alltså att dom har fel?

Samma bench fast med ett 660Ti & så ser man klockfrekvensen på proppen..
https://www.youtube.com/watch?v=3iwuV5PfdQk

I en ideal värld vill man att varken CPU eller GPU går över 90-95% för det är bara då man kan få riktigt stabil input-latency och väldigt låg varians i framerate. Det kan uppnås i praktiken genom trippel-buffring, låst FPS på någon rimligt nivå (60FPS) och inställningar som är rimligt givet HW. Men vad de nästan alla kör med är GPU på nära 100% vilket gör CPU-delen rätt irrelevant, enda som möjligt kan ha en positivt effekt här är så bra enkeltrådprestanda som möjligt för att hela tiden se till att GPU-delen aldrig står utan jobb.

Läser man lite om Lost Planet 2 så ser man att det är ett spel som lastar CPU-delen väldigt lite, så klena modeller som gamla Athlon X3 och lågt klockade i3 verkar kunna driva detta spel i 60FPS utan problem. Det kan nog också förklara varför Windows sprider ut saker så pass mycket som det gör över alla kärnor. Att saker flyttas runt mellan kärnor (något som är dåligt för prestanda då lägre nivå cache typiskt är lokal till en viss kärna) händer väldigt frekvent i Windows när CPU-kärnor blir lågt lastade.

Så detta spel är ingen indikation på att det går att använda många CPU-kärnor. Det kanske är så att Lost Planet 2 faktiskt använda många trådar, är som sagt inget problem att skriva sin spelmotor så den använder väldigt många CPU-kärnor. Men i och med att spelet kräver så lite CPU-kraft märker man inte om en viss design är bra eller dålig. Anta att det är en bra idé, d.v.s. en design som kan använda väldigt många CPU-kärnor, varför använder inte alla spel sig av liknande teknik idag med tanke på att Lost Planet 2 är från 2010? Man ser t.ex. att kärnorna hoppar i frekvens, det man inte ser är att de också kliver ur/i C-states och alla fall i Nvidia fallet är lasten så låg att det nog blir högre än C1 vilket i värsta fall leder till "studder" (kraftig varians i FPS), exakt denna typ av design som fick många att slå av "core-parking" trots att det i grunden är en extremt bra teknik fått dåligt rykte.

Även som som har viss skalning med CPU-kärnor skalar inte ens linjärt till 2 CPU-kärnor vilket bl.a. man ser i denna video som dock har två år på nacken nu

Säg att skalning ändå är så pass bra som 80% boost till 2:a kärnan (ser ut att vara betydligt mindre i praktiken), enligt Ahmdal's lag kan ett sådant program aldrig öka prestanda mer än med en faktor 3.9 med 8 kärnor (det är alltså teoretiskt max i fallet att HW i övrigt inte har några andra flaskhalsar). Det betyder att i detta fall så ger en 2-kärnig CPU med HT (antar 20% effektivitet på trådar) ungefär lika stor boost som en 8-kärnig CPU med halva prestanda per tråd jämfört med en fiktiv grundplattform som är enkeltrådad.

Notera att detta förutsätter att programmet verkligen kan använda minst 8 CPU-trådar som inte begränsas av något annat än Ahmdahl's lag. Då inser man hur brutalt mycket viktigare prestanda per CPU-tråd än total prestanda över alla CPU-kärnor är för spel.

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 virtual void:

Då inser man hur brutalt mycket viktigare prestanda per CPU-tråd än total prestanda över alla CPU-kärnor är för spel.

Så dom som påstår något annat har alltså fel dvs. att det inte är bra att låta 1 eller 2 kärnor/moduler arbeta till 90-95%?

Visa signatur

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