@pomk kaavassa oli cpu_cycle, tuossa on muistin cyclet jätetty kokonaan huomiotta.
Tuolta:
Testasimme eri DDR4-muistinopeuksien vaikutusta Intelin Coffee Laken suorituskykyyn.
www.io-tech.fi
Sama kaava, eri tulokset, jos vaan vaihtaa muistien kelloja. FPS kun on se mittari.
Nimenomaan! Kaikki vaikuttaa siihen IPChen.
Tätä sinulle ollaan yritetty toitottaa!
Ylläolevasta kuvasta voi saada samalla kaavalla, samalla testikokoonpanolla, eri asetuksilla - neljä eri tulosta.
Se johtuu nyt siitä, että te että ymmärrä, mistä se FPS tulee ja luulette jotenkin , että pelkkä prosessorin kellotaajuus siihen vaikuttaa, kun pelkkä se on nimittäjässä.
Voisitko nyt lopettaa muiden syyttämisen omista virheistäsi?
Toisin kuin sinä, me ymmärrämme, että siihen FPSään vaikuttaa
kaikki. ja että se on ihan normaalia ja ok.
Edelleen, IPC-parannus olisi suhteellisen helppo laskea vakioimalla koneen muu sisältö, mutta nyt sekään ei kelpaa..
Yleispätevästi ei voi, koska se
kaikki muu vaikuttaa siihen IPC:hen ja se parannus pätisi vain niissä olosuhteissa.
Ei ole mitään "yleistä IPC-parannusta"
vaan on ainoastaan tilannekohtainen IPC-parannus
Esimerkki:
Oletetaan vaikka joku ydin ja koodi siten että tuolla ytimellä, tuolla koodilla, niin kauan kun se koodi ei käsittele muistia, sitä suoritetaan keskimäärin IPCllä 2.
Muistin viive on sitten 50ns, OoOE pystyy piilottamaan tätä viivettä 80 käskyn verran , ja tässä koodissa on L3-välimuistihuti, DRAM-muistiin asti menevä muistiaccess 1000 käskyn välein.
1 GHz nopeudella 80 käskyä suoritetaan 40 kellojaksossa eli 40 nanosekunnissa, muistin näkyväksi viiveeksi jää 10ns
1000 käskyn suoritukseen kuluu sitten aikaa 510 ns, eli IPC on n. 1.96
4 GHz nopeudella 80 käskyä suoritetaan 40 kellojaksossa eli 10 nanosekunnissa, muistin näkyväksi viiveeksi jää 40ns.
1000 käskyn suoritukseen kuluu sitten aikaa 125ns + 40ns = 165 ns eli IPC on n. 1.52
Samalla mikroarkkitehtuurilla, samalla koodilla siis IPC tässä vaihtelee kellotaajuuden mukaan jopa >25%.
Entäs jos suurennetaankin L3-kakkua siten että saadaan vähemmän L3-huteja? 1/2000 käskyn välein. Paljonko meidän IPC kasvaa?
1 GHz:lla 2000 käskyn suoritukseen kuluu aikaa 1010 ns, eli IPC on n. 1.98. IPC siis lisääntyi n. 1%.
4 GHz:lla 2000 käskyn suoritukseen kuluu aikaa 250ns + 40ns = 290 ns eli IPC on n . 1.72. IPC siis lisääntyi n. 13%.
Sama parannus mikroarkkitehtuuriin paransi IPCtä toisella kellotaajuudella 13%, toisella kellotaajuudella 1%
Ja molemmat ovat ihan yhtä oikein. Vaikka kyse jopa
samoista mikroarkkitehtuurista ja samasta koodista.
Sitten kuin verrataan IPCtä eri ohjelmien välillä, muuttujia on vielä paljon enemmän.
Summa summarum: Ei ole mitään "yleispätevää IPCtä" joka on mikroarkkitehtuurin ominaisuus. Vaan
kaikki vaikuttaa IPChen. Mikä tahansa IPC joka mikroarkkitehtuurilta on jossain tilanteessa mitattu on ihan yhtä oikein, mutta pitää
aina huomioida että se pätee
vain siinä tilanteessa.