Onko userbenchmarkin prossutesti suoraan verrannollinen pelitehoon?

  • Keskustelun aloittaja Keskustelun aloittaja jusbru
  • Aloitettu Aloitettu
Liittynyt
17.11.2018
Viestejä
599
Hei. Minulla on z390-emolevy joka parhaimmillaan tukisi i9-9900k:ta. Kuitenkin nykyinen prossuni i5 8600k pääsee helposti userbenchmarkin testissä 103%:iin, eikä userbenchmarkin mukaan i9:llä pääse kuin parhaimmillaan 106%:iin. Tarkoittaako tämä sitä, että päivitys i9:iin olisi käytännössä aivan turha? Kuinka suoraan testin tulokset vertautuvat pelikäyttöön, joka on ainoaa raskasta käyttöä jota koneella teen?
 
Userbenchmarkin tuloksiin ei pidä luottaa missään tilanteessa jossa verrataan kahta eri prosessorimallia keskenään. Sivuston laskukaavat on vedetty sen verran rajusti hatusta ja mutu periaatteesta, että tuloksilla ei ole mitään tekemistä oikean elämän kanssa.
 
Userbenchmark sivu pitäisi kokonaan sulkea.
Virheellistä tietoa tuutintäydeltä.
Okei, mun nähdäkseni ainakin näyttistesteissä userbenchmarkin pisteet ovat olleet linjassa esim. Time Spyn kanssa. Mutta mikä olisi sitten sopiva stressitesti peliprossun suorituskyvyn mittaamiseen? Onko Time Spyn testi hyvä?
Ja kuinka paljon parempaa voisi odottaa 9900k:lta vs tosi hyvin kellottuvaan 8600 k:hon?
 
Okei, mun nähdäkseni ainakin näyttistesteissä userbenchmarkin pisteet ovat olleet linjassa esim. Time Spyn kanssa. Mutta mikä olisi sitten sopiva stressitesti peliprossun suorituskyvyn mittaamiseen? Onko Time Spyn testi hyvä?
Ja kuinka paljon parempaa voisi odottaa 9900k:lta vs tosi hyvin kellottuvaan 8600 k:hon?
Ehkä sen userbenchmarkin luotettavuudesta kertoo tarpeeksi se, että redditin intel- ja nvidia-alueilla se on kielletty kokonaan ja amd-alueellakin tulee vissiin automaagisesti ilmoitus, joka kertoo miksi se ei ole luotettava.
Mitään yhtä testiä ei ole, mikä antaisi hyvän kokonaiskuvan. Jos peli tai ohjelma hyödyntää hyvin kaikkia ytimiä ja säikeitä tuo 9900K voi olla edellä todella isolla marginaalilla, mutta toisaalta jos yhden ytimen suorituskyky onkin suurin tekijä ne voi olla ihan tasoissa (jos kellotaajuudet on samat)
 
Pelikäytössä erot riippuu myös siitä mikä näytönohjain on kyseessä.
Mutta 5 sek youtube haulla löytyi esim tällainen missä on GTX1080 ja GTX1080Ti ohjaimet käytössä. Ja googlettamalla löydät lisää vertailuja
 
Userbenchmarkkia pitää käyttää vaan siihen, että katsoo, toimiiko koneen osat oikein. Eli toimiiko tuo i5-8600K oikein, vai onko esim. kellotaajuudessa jotain ongelmia. Prosessorilla harvemmin on ongelmia, mutta esim. muistit voivat olla unohtuneet 2133MHz tai kovalevy IDE-moodiin.

--

Päivittämällä nyt i9-9900K:hon, tuskin huomaat mitään eroa peleissä, jos ne toimii jo nyt oikein. Nuo yo. videon fps-erot voit ottaa kiinni ihan kellottamalla prosessoria (ja/tai korkkaamalla sen ja laittamalla nestemetallit sisälle).
 
Pelikäytössä erot riippuu myös siitä mikä näytönohjain on kyseessä.
Mutta 5 sek youtube haulla löytyi esim tällainen missä on GTX1080 ja GTX1080Ti ohjaimet käytössä. Ja googlettamalla löydät lisää vertailuja

Kiitos hyvästä linkistä! Valitettavasti kuvauksessa ei sanottu oliko 8600k @stock vai ei. Mutta oli miten oli, sain näköjään vastauksen kysymykseeni:) eli ihan turha tuhlata ylimääräisiä satasia prossuun, vaan mennään tällä niin kauan kun tulee niin paljon n-ohjainsukupolvia että prossusta ehtii tulla oikeasti pullonkaula. Ylimääräiset rahat vaan näytönohjaimiin sitten.
 
Tällä hetkellä lähtökohta on aina se että rahat näyttikseen, prossu ei ole niin justiinsa peleissä - keskitason i5 tai 6-8 core Ryzen ajaa mitä vaan ihan hyvin ja näyttis on se mistä ensin ottaa kiinni. Sitten jos on jo 2080ti voi alkaa pistää pelimerkkejä Vielä Vähän Nopeampaan prosessoriin. Sitä ennen, ei mitään järkeä.

8600k vastaa 10-sarjan i5-tavaraa eli ihan kuranttia kamaa vielä useamman vuoden.
 
8600k vastaa 10-sarjan i5-tavaraa eli ihan kuranttia kamaa vielä useamman vuoden.
On sillä 10-sarjalla HT puolellaan kuitenkin, se on sitten toinen juttu moniko peli jää siitä säikeiden määrästä kiinni
 
Eipä taida olla hirveästi pelikäytössä merkitystä HT vai ei.

Itse en 8600k uusisi vielä ainakaan vuoteen, todennäköisesti kahteen. Katsellaan sitten kun Intel on selvinnyt suostaan ja AMDllä on 5nm lastuja että mikä on tilanne.
 
Eipä taida olla hirveästi pelikäytössä merkitystä HT vai ei.

Itse en 8600k uusisi vielä ainakaan vuoteen, todennäköisesti kahteen. Katsellaan sitten kun Intel on selvinnyt suostaan ja AMDllä on 5nm lastuja että mikä on tilanne.
Juu en sillä meinannutkaan että päivitystarvetta tuossa olisi
 
Neliytimisellä ainakin HT:n tuoman eron huomaa jo selkeästi.

Mutta taas 6-ydin prossuilla siitä on enemmänkin haittaa jollei peli osaa hyödyntää kaikkia 12-säiettä.
Jos peli esim. käyttää 8-säiettä niin 6c/12t prossulla kuorma annetaan vaan neljälle ytimelle.
Ja taas jos HT on pois, niin kuorman saa kuusi oikeaa ydintä ja peli pyörii huomattavasti paremmin.

Muutenkin lisää ytimiä/säikeitä ei tarkoita lisää suorituskykyä vaikka peli osaiskin hyödyntää 8c/16t prossun kaikkia säikeitä.
Nimittäin tällöin usein säikeitten kuormat vaan siellä 30-40% luokkaa ja prossu vaipuu virransäästötilaan ja fps lukemat jäävät pieniksi.
Toki asiaan auttaa jos ottaa virransäästöt pois päältä.

Mutta näiden takia esim 4c/8t i7-2600K@4.7GHz ja ihan jopa 4c/4t i5-6500@4.6GHz hakkaa 8c/16t Ryzen 7 1700@4.0GHz:n pelikäytössä suurimmassa osassa peleistä.
 
"Liian monta corea" on myös oikeasti asia jolla voi olla merkitystä. On paljon softaa joka on koodattu periaatteella "jaetaan duuni kaikille käytettävissä oleville coreille" ja niin kauan kun coreja oli se 2-8kpl (oikeita tai loogisia) kaikki oli hyvin. Nyt näitä voi olla helposti jopa sen 128 threadia (3990X). Jokainen thread tuo aina hieman overheadia ja syö myös oman palansa muistia. Duunin jako 8 erään on vielä ihan jees, mutta jos sama koodi "tyhmästi" jakaa sen 128 erään niin voidaan saada reippaasti huonompaa perffiä kun tehoa kuluu 128 "duunarin" kommunikointiin toistensa kanssa ja hirveän threadimäärän overheadeihin...

Lisäksi kun threadien määrä paisuu kuin pullataikina, muistikaista alkaa ottaa kiinni joissain tilanteissa. Kaistaa X, threadeja hakemassa kamaa 8kpl, kaistaa per threadi X/8.

No, tuplataan kanavat koska HEDT. Kaistaa X*2, threadeja hakemassa kamaa 128kpl... kaistaa per threadi murto-osa 8 threadin tilanteesta, vaikka muistiväyliä onkin tuplat.

Tämän ongelman vuoksi loputon corejen ja threadien pinoaminen ilman järkevää schedulointia ja jopa ihan tarkoituksella tapahtuvaa thread countin rajoittamista voi syödä tehoja, joskus jopa melkoisesti...

Tämä myös tuo haasteita tehdä realistinen relevantti CPU benchmarkki joka skaalaa "loputtomasti coreja"-tilanteessa järkevästi ilman että pullonkaula siirtyy muualle.
 
"Liian monta corea" on myös oikeasti asia jolla voi olla merkitystä. On paljon softaa joka on koodattu periaatteella "jaetaan duuni kaikille käytettävissä oleville coreille" ja niin kauan kun coreja oli se 2-8kpl (oikeita tai loogisia) kaikki oli hyvin. Nyt näitä voi olla helposti jopa sen 128 threadia (3990X). Jokainen thread tuo aina hieman overheadia ja syö myös oman palansa muistia. Duunin jako 8 erään on vielä ihan jees, mutta jos sama koodi "tyhmästi" jakaa sen 128 erään niin voidaan saada reippaasti huonompaa perffiä kun tehoa kuluu 128 "duunarin" kommunikointiin toistensa kanssa ja hirveän threadimäärän overheadeihin...

Windowsissa ei taatusti mikään rinnakkaistu "vahingossa" 128 säikeelle, kun yhteen "prosessoriryhmään" mahtuu vaan 64 säiettä. Yli 64 säikeen käyttäminen windowsissa samalle softalle vaatii purkkaa jota ohjelmoija joutuu erikseen vääntämään.


Ja tuollainen "ääretön rinnakkaistuminen" on mahdollista käytännössä vain jossain yksinkertaisissa "embarrassingly parallel" loopeissa, joissa sitä synkronointia ei tarvita ollenkaan, jolloin säikeiden ei myöskään tarvi kommunikoisda keskenään. Ja se määrä muistia mikä kuluu niiden tällaista looppia ajavien säikeiden pinoihin on myös todella pieni, puhutaan usein maksimissaan kymmenistä kilotavuista.

Lisäksi kun threadien määrä paisuu kuin pullataikina, muistikaista alkaa ottaa kiinni joissain tilanteissa. Kaistaa X, threadeja hakemassa kamaa 8kpl, kaistaa per threadi X/8.

Kaistaa per tehty työ ei tarvita yhtään sen enempää, ellei välimuistien osumatarkkuus huonone.

Lisäksi useamman aktiivisen ytimen kanssa ytimien kellotaajuudet on usein alhaisemmat.

Ja muistikaistan kanssa ei tule mitään liikenneruuhkaan verattavaa tilannetta, jossa suuri kuormitus johtaisi kokonaisuuden hidastumiseen, päin vastoin.

Jotta se kaista saadaan tehokkaasti hyödynnettyä, niitä requesteja pitää tulla todella paljon, monelta eri ytimeltä.

No, tuplataan kanavat koska HEDT. Kaistaa X*2, threadeja hakemassa kamaa 128kpl... kaistaa per threadi murto-osa 8 threadin tilanteesta, vaikka muistiväyliä onkin tuplat.

Edelleenkään niitä säikeitä ei ole 128 vaan 64. Ja kokonaiskaista silti suurempi.

"kaistaa per säie" on irrelevantti mittayksikkö. Millä on väliä on, että kokonaiskaistaa on enemmän ja eirtyisesti että sitä saadaan hyödynnettyä enemmän.

Tämän ongelman vuoksi loputon corejen ja threadien pinoaminen ilman järkevää schedulointia ja jopa ihan tarkoituksella tapahtuvaa thread countin rajoittamista voi syödä tehoja, joskus jopa melkoisesti...

Tämä myös tuo haasteita tehdä realistinen relevantti CPU benchmarkki joka skaalaa "loputtomasti coreja"-tilanteessa järkevästi ilman että pullonkaula siirtyy muualle.

Koko viesti on jälleen malliesimerkki siitä, kuinka verrataan aivan vääriä asioita keskenään ja keksitään tämän takia olematon ongelma.

Vaikka kaista muodostuu useammalla säikeellä pahemmaksi pullonkaulaksi, ei se kuitenkaan hidasta ellei L3-välimuistien kapasiteetti muodostu pahaksi pullonkaulaksi, että niitä accesseja tulee kokonaisuudessaan enemmän


Mitään ongelmaa on ainoastaan siinä tilanteessa, että (L3-)välimuistin osumatarkkuus huononee siten että muistiaccessien kokonaismäärä kasvaa.

Siihen käykö näin sitten vaikuttaa oleellsiesti se, millainen muistiaccesspatterni sillä koodilla on. Jos siellä on jotain valtavia taulukoita, ja kaikki käsittelee aivan eri kohtia niistä, se voi kärsiä. Jos taas siellä on jotain vakiotaulukkoja, joita kaikki säikeet lukee, tulee L3-välimuistin osalta suuria synergiaetuja ja välimuistin osumatarkkuus voi jopa kasvaa.
 
Mutta taas 6-ydin prossuilla siitä on enemmänkin haittaa jollei peli osaa hyödyntää kaikkia 12-säiettä.
Jos peli esim. käyttää 8-säiettä niin 6c/12t prossulla kuorma annetaan vaan neljälle ytimelle.
Ja taas jos HT on pois, niin kuorman saa kuusi oikeaa ydintä ja peli pyörii huomattavasti paremmin.

Ei se noin mene, käyttöjärjestelmän scheluderi jakaa ensin kaikille 6:lle ytimelle yhden säikeen ja pistää loput 2 kahdelle ytimelle toiseksi säikeeksi. Kuinka scheluderi onnistuu em. jakamisessa ratkaisee onko 12 threadin prosessori lopulta nopeampi vai hitaampi kuin 6 threadin versio, mutta 8:n threadin tapauksessa voisin epäillä että 99% todennäköisyydellä 12 threadin prosessori on nopeampi. Jos käytössä olisi vain 6 tai vähemmän threadeja ilman SMT:tä oleva prosessori olisi suhteessa vahvempi ja mahdollisesti jopa nopeampi.
 
Ei se noin mene, käyttöjärjestelmän scheluderi jakaa ensin kaikille 6:lle ytimelle yhden säikeen ja pistää loput 2 kahdelle ytimelle toiseksi säikeeksi. Kuinka scheluderi onnistuu em. jakamisessa ratkaisee onko 12 threadin prosessori lopulta nopeampi vai hitaampi kuin 6 threadin versio, mutta 8:n threadin tapauksessa voisin epäillä että 99% todennäköisyydellä 12 threadin prosessori on nopeampi. Jos käytössä olisi vain 6 tai vähemmän threadeja ilman SMT:tä oleva prosessori olisi suhteessa vahvempi ja mahdollisesti jopa nopeampi.

Epäile vaikka mitä, mutta tuossa sen verran tullut noita tässä testailua että edelleen monessa tapauksessa jopa 4c/4t on nopeampi ratkaisu pelikäytössä kuin 6c/12t tai 8c/16t.
Tässä esimerkki pelistä tai kahdesta (omia benchmarkkejani ja ajettu Vega 64:lla) mikä säikeistyy hienosti 16-säikeelle mutta...
wwz.png
MetroExodus.png

Tässä pari muuta esimerkkeja jotka myös osaavat hyödyntää extra säikeet ja oikeasti niistä jopa hyötyvätkin kunhan IPC/kelloja löytyy tarpeeksi. Mutta taaskaan erot 4c/8t prossuihin on minimaalinen tai edes 4c/4t ei tipu pahemmin kyydistä:
DevilMayCry5.pngQuakeChampions.png

Yksi hyvä esimerkki on myös Project Cars 2:n jossa 4930K paukuttaa ilman HT yli 30fps kovemmat tulokset tauluun kuin HT päällä vaikka peli hyödyntää 8-säiettä ilman ongelmia.
Harmi kun mulla ei tuon benchmark tuloksia ole enää missään tallessa.
 
Yksi hyvä esimerkki on myös Project Cars 2:n jossa 4930K paukuttaa ilman HT yli 30fps kovemmat tulokset tauluun kuin HT päällä vaikka peli hyödyntää 8-säiettä ilman ongelmia.
Ja olet täysin varma siitä että kyseessä on kuvailemasi ilmiö jossa säikeet pakattaisiin täysin käsittämättömästi vain neljälle ytimelle ht päällä? Kai sulla on sentään näyttää tästä joku lokitiedosto? Esim. hwinfo pystyy lokittamaan ydinkohtaista kuormaa taustalla ongelmitta.

Oikea syy noiden vanhojen ht prossujen suorituskyvyn sakkaamiseen liittyy windowssin/intelin tietoturvapäivityksiin.
 
Ja olet täysin varma siitä että kyseessä on kuvailemasi ilmiö jossa säikeet pakattaisiin täysin käsittämättömästi vain neljälle ytimelle ht päällä? Kai sulla on sentään näyttää tästä joku lokitiedosto? Esim. hwinfo pystyy lokittamaan ydinkohtaista kuormaa taustalla ongelmitta.

Oikea syy noiden vanhojen ht prossujen suorituskyvyn sakkaamiseen liittyy windowssin/intelin tietoturvapäivityksiin.

Huoh... Ei jaksa taas vääntää asiasta mutta näkeehän sen ihan selvästi että esim 6c/12t prossulla kuormitetaan vain 8-ensimmäistä jo loput seisoo IDLE:ssa ja kun HT otetaan pois päältä niitä 6 itse ydintä kuormitetaan kunnolla ja peli suorituskyky kasvaa.
Ja muuten löysin HT off vs HT on testini Excel taulukon ja tässä ne teille:
Project Cars 2 tulokset.jpg

Unreal Tournament.jpg
Muistin että ajoin ne 4930K:lla mutta joo eihän mulla silloin sitä edes ollut... eli 3930K ja 1650 v2 Xeoni (=4930K) ja ero ei myöskään ollut "ihan" 30fps :hmm:
Mutta kuitenkin selvä ero.
Ja muistaakseni nuo ovat GTX 980 Ti:lla ajettuja.

EDIT: Ja ihan MSI Afterburnerilla ytimien käyttöä olen seurannut ja näkyvät aina noissa videoissanikin.
EDIT2: Onkos itselläs faktaa asiasta vai menetkö itse mutulla, että pakko sen on oltava nopeampi ?

Nimittäin sama ilmiö toistuu myös Ryzeneillakin ja uusilla Inteleilla.
Esim monessa pelissä 3500 (6c/6t) on nopeampi kuin 3600 (6c/12) mitä kattelin tuosta testiä, harmi vaan että tuota 3500:sta ei enää saa.

EDIT3:
On myös pelejä mitkä reakoivat todella negatiivisesti säie-määrän kasvuun kuten tämä Unity-moottorilla tehty:
Project Warlock.png
 
Viimeksi muokattu:
Huoh... Ei jaksa taas vääntää asiasta mutta näkeehän sen ihan selvästi että esim 6c/12t prossulla kuormitetaan vain 8-ensimmäistä jo loput seisoo IDLE:ssa ja kun HT otetaan pois päältä niitä 6 itse ydintä kuormitetaan kunnolla ja peli suorituskyky kasvaa.
Ja muuten löysin HT off vs HT on testini Excel taulukon ja tässä ne teille:

Käyttöjärjestelmän scheluderi jakaa säikeet ensin oikeille ytimille ja vasta oikeiden ytimien loputtua säkeitä jaetaan HT-ytimille. Kaikki 6-ydintä on käytössä jos ajettavia threadeja on vähintään 6, tosin scheluderin voi ohjelmoida toisinkin tarvittaessa, lähinnähän on ollut silloin kyse ongelmista eli käyttis ei ole osannut allokoida threadeja uudelle prosessorille aluksi oikein.

Suorituskyky voi vaihdella, 6-ytimellä ilman HT:tä kahdeksan threadia ajetaan niillä 6:lla ytimellä peräjälkeen, HT:n kanssa kaksi paria threadeja jakaa ytimen ja jos scheluderi allokoi tälläiseen jaettuun pariin krittisen threadin jonka suorituksen hidastuminen hidastaa koko peliengineä suorituskyky HT päällä voi laskeakin. Käytännössä nykyään suurempia hidastumisia ei pitäisi tapahtua vaan threadit osataan jakaa HT:nkin kanssa fiksusti.
 
EDIT: Ja ihan MSI Afterburnerilla ytimien käyttöä olen seurannut ja näkyvät aina noissa videoissanikin.
Kappas. Jänniä tuloksia kyllä, en ole omassa käytössä havainnut vastaavaa. Pitääpä kokeilla jossain kohtaa omalla koneella jollain samalla pelillä, niin näkee että onko toi lähes affinitymaskilta vaikuttava käyttäytyminen universaalia vai ei.

Onkohan noissa legacy pelimoottoreissa jotain affinityn pakotusvirityksiä sisäänrakennettuna? Windowsin scheduler kun ei kuvatulla tavalla toimi perus hyötyohjelmilla.

edit: nappasin parin rundin cs:go tulokset ulos ryzen balanced ja windows balanced power planeilla (eli oikealla näkyvä average on kahdelta rundilta) ja en kyllä moista ilmiötä kyennyt toistamaan. Pitäis varmaan olla joku SERrimpi laitteisto alla tai jotaki. Pääsääntöisesti jokaisen ytimen T0 kuormittuu ennen kuin T1 saa merkittävää kuormaa, poikkeuksena ytimet 0 ja 5 tai 1 ja 5 powerplanista riippuen. Primellä kahdeksaa säiettä ajettaessa kuorma jakautuu melko tasaisesti kaikille kuudelletoista virtuaaliselle ytimille, eikä mitään "kahdeksan vikaa ydintä idlaa" -ilmiötä voida havaita.
csgo_cpu_usage.jpg
 
Viimeksi muokattu:
Mun käsittääkseni käyttöjärjestelmä ei pysty tietämään mikä ydin on oikea mikä ei. Mulla ei ole pitkään ollut HT prossua niin en ihan varma ole nykytilanteesta. Helppohan tuo on testata kun vähän kikkailee affinityllä.
 
Mun käsittääkseni käyttöjärjestelmä ei pysty tietämään mikä ydin on oikea mikä ei. Mulla ei ole pitkään ollut HT prossua niin en ihan varma ole nykytilanteesta. Helppohan tuo on testata kun vähän kikkailee affinityllä.
Kyllä ne tietää. ;)
 
Mun käsittääkseni käyttöjärjestelmä ei pysty tietämään mikä ydin on oikea mikä ei. Mulla ei ole pitkään ollut HT prossua niin en ihan varma ole nykytilanteesta. Helppohan tuo on testata kun vähän kikkailee affinityllä.
Kyllä se tietää. Se tietää nykyään jopa sen mitä corea prosessorin valmistaja pitää tehokkaimpana.
 
Jos et striimaa, se että laittaa 9900k, etu on aika minimaalinen suhteessa saavutettuun hyötyyn. Vaihdoin vanhaan kokoopanoon 9600k tilalle 9900k ja oli 1440p-resollakin aika rahanhaaskausta. Pelissä kuin pelissä sai tyyliin 10% fps-parannuksen. Jos jostain käytettynä saat 9900k järkirahaan, niin sitten kannattaa harkita.
 
Mun käsittääkseni käyttöjärjestelmä ei pysty tietämään mikä ydin on oikea mikä ei. Mulla ei ole pitkään ollut HT prossua niin en ihan varma ole nykytilanteesta. Helppohan tuo on testata kun vähän kikkailee affinityllä.

Ei siellä ole käyttikselle näkyvissä mitään "oikeita ja ei-oikeita" ytimiä.

Vaan käyttis näkee suoraan pelkästään virtuaaliytimiä joita on sitten kaksi oikealla ytimellä.

Ja ratkaisevaa on tieto, että mitkä näistä virtuaaliytimistä on samalla oikealla fyysisellä ytimellä, että pyrkii välttämään näiden käyttämistä yhtä aikaa.
 
Viimeksi muokattu:
Windows sysinternalsissa on Windows-käyttäjille coreinfo työkalu, jolla voi tutkia mitä käyttis näkee CPUsta:
 

Statistiikka

Viestiketjuista
261 794
Viestejä
4 547 375
Jäsenet
74 849
Uusin jäsen
ookooo

Hinta.fi

Back
Ylös Bottom