
Tutustumme artikkelissa Core-X-sarjan 10-ytimiseen ja reilun 1000 euron hintaiseen Core i9-7900X-malliin ja Skylake-X-arkkitehtuurin ominaisuuksiin. Kyseessä on tällä hetkellä suorituskykyisin myynnissä oleva Core X -prosessori, sillä 12-ytiminen malli saapuu myyntiin elokuussa ja 14-, 16- ja 18-ytimiset mallit vasta lokakuussa.
Kattavissa suorituskykytesteissä vertailukohtina ovat edellisen Broadwell-E-sukupolven 10-ytiminen Core i7-6950X -malli sekä Kaby Lake -koodinimellinen neliytiminen Core i7-7700K ja AMD:n Zen-arkkitehtuuriin perustuva 8-ytiminen Ryzen 7 1800X.
Mukana on myös tehonkulutus- ja lämpötilamittaukset sekä ylikellotustestit Noctuan NH-D15-coolerilla avonaisessa testipenkissä.
Lue artikkeli: Testissä Intel Core i9-7900X (Skylake-X)
En kyllä usko tuohon. Teorisassa olisi mahdollista jos käytetään jotain geneeristä threadpoolia ja "taskeja" ja säädetään vaan threadpoolin countti 1:een, mutta tuollainen geneerinen pooli ja taskit eivät oikeen järkevästi mahdollista tiettyjen asioiden priorisointia. Muuten taas vaatii aika herkästi koodimuutoksia. Eikä keskiverto PC suoritin siitä hyydy konsolia hitaammaksi vaikka siellä ajettaisiin ns. liikaa threadeja, tehoja kuitenkin on niin paljon enempi kuin konsolilla.
Ennemmin se puuroutuminen johtuu siitä että konsolille optimoitu GPU koodi käännetään jollain automagiikka vipattimella pc:lle, joka vääntää matalan tason grafiikka kutsut jollain "matalin kohta aidasta" -menetelmällä directx:lle tjsp. Varsinkin nyt kun xpoksi ja pssä molemmat käyttää x86-64 cpu:ta niin liene lähinnä GPU puoli tuottaa töitä.
Ei se katoakaan eikä PC-versioita mitenkään "kuristeta" tuon osalta. Osasyynä on yksinkertaisesti se että korkeammilla frame rateilla engineissä muodostuu aivan toiset pullonkaulat kuin mitä konsolipuolella näkyy, ts. sarjallinen koodi alkaa dominoimaan eikä sitä ole usein kannattavaa optimoida PC:tä varten pelkästään. Toisena osasyynä joskus toki myös DX11:n huonompi skaalautuminen.
En alkaisi syyttämään mitään halpiskoneiden dualcoreja tästä kun nykyään on ihan OK julkaista AAA-pelejä jotka ei edes käynnisty dual corella ilman virityksiä.
Joo ei, vaikka PC:ssä olisi yksi ydin peli voi silti käyttää vaikka sataa eikä säikeet ole se rinnakkaisuuden taso mitä peliengineisssä nykyään pääosin pyöritellään.
Thread poolit muutamalla threadilla suhteessa ydinmäärään ajamassa geneerisiä taskeja on nimenomaan se tapa millä modernit enginet toimii, niitä on ollut ainakin jostain PS3-ajoista lähtien käytössä. Mutta siinä ei toki olisi järkeä että PC:llä määriteltäisin poolin koko vain yhdeksi eikä ydinmäärän mukaan.
Nykyäänhän taskien suhteen ollaan vielä pidemmällä kun mukana on fiberit/coroutinet, ts. taskit voivat yieldata vapaaehtoisesti (esim. raycastin tuloksen odotus batchauksen yhteydessä) ja sitten palautetaan jonosta.
Kyllä, mutta liekkö se pelin main thread on siinä samassa poolissa, tuskin koska tulisi helposti race conditioita. Voi sen toki sinnekkin pistää. Silti yleisesti ottaen monisäikeinen peli ei yksisäikeiseksi pelkästään kääntämällä eritavalla muutu, jotain täytyy koodillekkin tehdä.
Tosin tällein kun kaikissa paitsi nintendoissa on saman käskykantaa sisään imevät CPU:t niin tuo ei liene ole se ongelma, vaan jo sinunkin aikaisemmin mainitsema directx jne.
Vaan jo en ole pelimoottoreiden asiantuntija, väännän asyncronista skaalautuvaa koodia serveripuolelle, joka on hieman eri maailma. 🙂
Olisiko mahdollista ajaa Ashes of the Singularityn CPU-testi? Pelimoottori on varsin mielenkiintoinen multi-core -prossujen suhteen.
Periaatteessa joo, pyrin kuitenkin käyttämään mieluummin oikeita pelejä kuin synteettisiä benchmarkkeja, vaikka tässäkin oli mukana GTA V ja arma 3
Joo, jokin käsitys main threadista usein tarvitaan mutta sille ei kannata hirveästi kuormaa sysätä ts. ideaalitilanteessa lähinnä laittaa taskiketjuja ajoon (jotka taas saattaa spawnailla lisää taskeja muodostaen dagin käytännössä) ja istuu jossain kombinaattoreissa synkronoiden. Eikä toki taskiparallelismi itsessään ole mikään ratkaisu kaikkeen, samalla tavalla pitää käytännössä liukuhihnottaa työtä jne.
Kääntämällä ei tietenkään voi tehdä tuon tason design-muutoksia mutta rinnakkaisuuden tarve ei ole tullut pelialalle puun takaa.
Ei ole joo tullut puun takaa. Selityksesi mukaan ymmärsin tuon myös toimivan kun kaljalla lapsuuden kaveriani haastelin jolla on tuollainen muutaman ukon pelifirma.
Monesti serveri puolella tuo on todella helppoa, kun taskien dependencyt on vain yhden kyselyn sisäisiä, jolloin ne ylenesä voidaan vain heittää ajoon ja odotella koko vastaussettiä kunnes palautetaan kyselyyn tulos. Niillä toki keskenään voi olla dependencyjä, mutta ei vaikutusta käyttökokemukseen.
Käytännössä vasteaika/kysely on merkityksetön ja haetaan maksimi bandwidthiä (pois lukien tietyt tilanteet ja ihmisen käyttämät jutut). Pelikokemukseen sama ideologia tuskin vaikuttaa positiivisesti. 🙂
Palvelin/palvelu puolella tieteellinenlaskenta toki on oma lukunsa, sitä joskus opiskelin, mutta totesin etten kyllä työkseni rupea tekemään ettei hajoa pää. 🙂