Kommentoinpa tänne kun muualla tuli puhe Geekbenchistä testiohjelmana.
Netissä tuli vastaan kaksi sivua jossa esitettiin kritiikkiä Geekbenchin kutosversiota kohtaan.
Ensimmäisen kritiikki kohdistui siihen, että sen multicore-testissä ei ollut tarpeeksi rinnakkaisuutta.
As a developer, performance is very important to me (clearly, I am not a front-end dev - hah!). It's...
dev.to
Mutta pointti siinä testissä on nimenomaan tosimaailman softien suorituskyky ajettaessa yhtä monisäikeistettyä softaa/hommaa, ei yhdistetty suorituskyky palvelinkäytössä ajettaessa ziljoonaa softaa rinnakkain.
Geekbench yrittää nimenomaan antaa tulosta siitä, kuinka hyvin softat tosimaailmassa työpöydällä pyörii. Se, että ajettaisiin keinotekoisia äärimmäisen hyvin rinnakkaistuvia workloadeja ei antaisi sitä realistista tulosta, vaikka tuo kriitiin esittäjä sitä haluaa.
Tosin tuolla on sitten myös tuo text processing benchmark, jonka osalta tuloksen on enemmän oikeastikin kyseenalaisia. Tuossa on tainnut sinne koodiin jäädä joku suorituskykyä dominoiva sarjallinen osuus jossa ei oikeasti ole järkeä.
Toinen kritiikki kohdistui uudempien käskykantalaajennosten käyttöön.
blog.theldus.moe
Tässä siis valitetaan sitä, että kun aiemmin vanha high-end-prossu (Sandy Bridge i7) ja uudempi halvempi prossu (Kaby Lake i5) antoivat vanhoilla softilla melko saman luokan tuloksia, Geekbench 6lla uudempi halvempi prossu onkin selvästi nopeampi.
Tämäkin oli melko kyseenalaista kritiikkiä. Geekbench 6 lisää kunnollisen tuen AVX2- ja AVX512-käskykannoille, ja syy nopeuseroon on siinä, että monet rutiinit oikeasti hyötyvät AVX2-käskykannasta huomattavavasti, ja AVX2lle käännettynä ne ajautuvat uudella prossulla paljon nopeammin, kun taas tuo vanha prossu ei AVX2sta tue.
Tuossa tuo valittaja käytti hirveästi vaivaa siihen, että saa cripplattua sen uuden prossunsa ja ajettua sen toimintamoodissa, jossa AVX2 on disabloitu että saa tuloksia joissa se on yhtä hidas kuin se vanha prossukin.
Ja valitti siitä, kun hänen ensimmäinen yrityksensä disabloida AVX2 ei toiminut vaan piti nähdä hirveäsi vaivaa ja kikkailua että sai sen oikeasi disabloitua.
Kun siis ohjelmasta on kaksi binääriä, binääri joka vaatii AVX2n toimiakseen sekä geneerinen binääri, jossa kaikki AVX2-koodi on dispatcherin sisällä, että se toimii myös vanhemmilla koneilla, että niillä valitaan SSE2-koodipolku (mutta jossa siis silti on mukana AVX2-koodia).
Ja hän esittää typerän johtopäätöksen, että se cripplattu tulos olisi "fixed" tulos.
Hän esittää myös kritiikkiä siitä, että AVX(1) eikä SSE3 ja SSE4 ei ollut tuettuna, että AVX2n puuttuessa revertattiin SSE2-tasolle asti, mutta fakta on, että SSE(1) ja AVX(1) olivat vähän tynkäkäskykantalaajennoksia joista puuttui hyvin oleellisia käskyjä täydellä SIMD-leveydellä ja nimenomaan SSE2 ja AVX2 olivat paljon yleiskäyttöisempiä käskykantalaajennoksia joissa täyden SIMD-leveyden sai paljon järkevämmin käyttöön, ja järkevämpiä tasoja joita tukea, kun taas SSE3 ja SSE4 olivat lähinnä vain pikkuparannuksia SSE2n päälle.
Kun ei haluta tukea ziljoonaa eri käskykantalaajennosta ja tehdä koodista ziljoonaa eri koodipolkua, SSE2 ja AVX2 sekä joku AVX512n variantti on nimenomaan ne 3 järkevää SIMD-käskykantaa mitä x86lla tukea.