Mitä tossa noita prossu testejäni tehnyt niin yllättävän harva peli hyödyntää yli 4 säettä.
Sitten tullut vastaan ilmiö LGA1366 prossu testeissäni että samoilla kelloilla 6-ydin (12-säettä) prossu ottaa turpaansa 4-ydin (8-säe) prossuilta.
Tämmösiä pelejä oli Arma 3 (manuaalisesti annettu pelille monta ydintä löytyy) ja CS:GO. Aivan kuin pelit hyytyisivät exta säikeitten edessä että: Mitäs me näillä tehdään?
Oikeasti siis kyseessä sama 6-ydin-prossu, mutta pelistä rajoitettu säikeiden käyttöä?
Miten se on rajoitettu sieltä? rajoitettu ytimien vai säikeiden määrää? SMT helposti sotkee kuviota
Mutta vaikka ignorataan SMT, kuormanjako-ongelma selittänee:
Yksinkertaistettu selitysehdotus seuraa(yksinkertaistettussa esimerkissä 2-4 säiettä, mutta sama ilmiö tulee helposti myös 4-6 välillä):
Pelissä on pääosin kaksi keskenään rinnakkaista hommaa (S) , sisäisesti sarjallinen homma ja sisäisesti rinnakkainen homma (P). Näistä molemmat ovat vaikka yhtä raskaita, ja ne voidaan suorittaa rinnakkain.
Jos meillä olisi vain kaksi säiettä käytössä, ensimmäinen säie voisi laskea hommaa S ja toinen hommaa P, ja ne valmistuisivat about yhtä aikaa.
Kun käytössä on kolme säiettä, ensimmäinen säie laskee hommaa S, ja toinen ja kolmas säie laskevat hommaa P, ja saavat sen valmiiksi n. puolessa ajassa, jonka jälkeen ne odottaat tekemättä mitään.
Kun käytössä on neljä säiettä, ensimmäinen säie laskee hommaa S, ja säikeet 2-4 laskevat hommaa P, ja saavat sen valmiiksi n. kolmaosassa ajasta, jonka jälkeen ne odottavat tekemättä mitään.
Tähän asti kuulostaa siltä, että ihan sama suorituskyky, oli säikeitä 2, 3 tai 4, mutta:
Kaikki säikeet käyttävät samaa L3-välimuistia. Kaikkien säikeiden pitää mahtua saman TDPn (ja virrankulutusrajan) sisään
(lisäksi kaikki säikeet kilpailevat samasta muistikaistasta, mutta tämän vaikutus on yleensä hyvin pieni)
Kun ajossa on vain 2 säiettä, CPU voi toimia korkeammalla turbo-modella, ja sillä on hiukan parempi IPC paremman L3-osumatarkkuuden takia, kuin silloin kun ajossa on yhteensä 4 säiettä.
Eli se sarjallinen säie ajautuu hitaammin kun ajossa on enemmän säikeitä sen kanssa rinnakkain. Ja kun sen suoritusaika dominoi koko suoritusaikaa, useammasta säikeestä tulee vaan haittaa.
Toki useammalla säikeellä se sarjallinen homma saa sitten loppuajasta (ollessaan ainoa säie suorituksessa muiden idlatessa) pidemmäksi ajaksi koko L3-välimuistin ja TDP:n itselleen, joten se voisi silloin sitten toimia nopeammin, mutta jos TDP/virrankulutusraja ja L3-osumatarkkuus sattuu menemään juuri siten että niissä tulee suurempi ero sen 2-4 kuin 1-2 välillä.
SMTn kanssa tämä ongelma voi sitten pahentua selvästi, kun kaksi samalla ytimellä olevaa säiettä kamppailee keskenään myös L1- ja L2-kakuista sekä käytännössä (melkein) koko prosessorin liukuhihnan resursseista,
Lisäksi useammalla säikeellä overheadia voi tulla myös datansiirrosta ydinten välillä.