Krátce k procesorovým benchmarkům: Které lze ještě považovat za relevantní?
Projděme tedy alespoň ty, se kterými se lze setkat nejčastěji:
CPU-Z
Test vestavěný v prográmku na zobrazení základních údajů o procesoru a systému je nejspíš populární právě proto, že se příliš nemění (výsledky lze srovnávat napříč verzemi několik let starými), není potřeba je samostatně instalovat a je i velmi rychlý.
Problém CPU-Z však tkví v tom, že jeho kód je extrémně jednoduchý a netestuje prakticky nic, co definuje výkon moderních procesorových architektur. Redakce webu Chips and Cheese provedla minulý měsíc analýzu tohoto testu a zjistila několik zásadních problémů. CPU-Z využívá FP32 výpočty s použitím SSE instrukcí. Nevyužívá AVX (poprvé již v roce 2011 s Intel Sandy Bridge a AMD Bulldozer!), nevyužívá ani AVX2 (2013, Intel Haswell) a samozřejmě nevyužívá ani AVX-512. Nejde však jen o instrukce. Ani v rámci SSE téměř nevyužívá vektorovou matematiku.
Zásadnějším problémem pak je, že absolutně nezohledňuje cache (ani co do kapacity, ani co do propustnosti, ani co do hit-rate), neboť se vše vejde i do 32kB L1 cache. Zda procesor má nebo nemá L2, L3, nebo jak kvalitně navržené a optimalizované jsou, je CPU-Z jedno. Neméně závažným nedostatkem je, že v kódu CPU-Z dochází ke zcela zanedbatelnému větvení kódu. Právě predikce větvení je dalším z klíčových prvků, které v poslední dekádě posunuly výkon procesorů. Větvení v CPU-Z je však natolik minimalistické, že si s ním na výbornou poradí i starší generace Atomů s miniaturním BTB (branch target buffer), takže CPU-Z v tomto ohledu vnímá historické primitivní x86 jádro jako stejně způsobilé jako moderní velké x86 jádro poslední generace. Úloha je natolik jednoduchá, že ji obě splní stejně dobře.
WebMark, SysMark… CrossMark, zkrátka BAPCo
Jiným případem jsou testy společnosti BAPCo. Zde nejde o nedostatek prostředků a sil k vytvoření reprezentativního benchmarku, ale o vývoj testů na míru firmě, která BAPCo založila a financuje, tedy Intelu. Původně byly členy této neziskovky i další firmy jako AMD, Nvidia nebo VIA, ale poté, co zjistily, že na podobu testu nemají vliv a ten je pouze ohýbán tak, aby dával výsledky požadované Intelem, všechny tři BAPCo opustily.
Tehdejší starší vice prezident AMD Nigel Dessau prohlásil, že soudobý SysMark sice provede asi 390 testů, ale na výsledném bodovém hodnocení se relevantně podílí pouze 7 z nich a AMD ani ostatní členové BAPCo nemají pravomoc na tom nic změnit. Jako další příklad zmínil, že ačkoli o polovinu levnější sestava AMD nabídne jen o 7 % nižší výkon (delší čas potřebný ke zpracování) než sestava Intelu, je výsledné skóre spočteno tak, že sestava Intelu dostane o 40 % vyšší bodové hodnocení. |
Kauza BAPCo se v poslední době trochu rozvířila v souvislosti s pamfletózní prezentací Intelu namířené proti mobilním procesorům AMD. Tam totiž použil test CrossMark, novější test z dílny BAPCo, který vznikl nejspíš proto, že Intel opustila touha vymezovat se pouze vůči AMD, ale nově cítí potřebu ve sponzorovaném testu vítězit i proti ARM. To má zajistit právě existence multiplatformního testu, který umožňuje porovnávat výkon procesorů napříč architekturami.
Stojí za pozornost, že ač po vydání zmíněného pamfletu následovala široká mediální kritika tohoto počinu od Intelu, původ testu CrossMark, jehož výsledky se Intel ohání, zůstal v oné mediální smršti poměrně široce pominut. Například i Steven Burke z Gamers Nexus na zmínku o CrossMark v prezentaci Intelu reagoval slovy „I don't know what this is…“ a blíže se ani situací nezabýval.
Připomeňme rok 2014, kdy se během soudního sporu nad Intelem začala stahovat mračna v důsledku zavádějícího marketingu procesorů Pentium 4, který byl postaven právě na benchmarcích společnosti BAPCo. Intel tehdy raději přistoupil k mimosoudnímu vyrovnání. Spor se totiž pro výrobce procesorů vyvíjel nepříznivě a tak raději vyplatil $15 každému, kdo odklikl čestné prohlášení, že si Pentium 4 v dané době na území USA koupil.
GeekBench
Velmi rozšířený GeekBench sice nevznikl na objednávku žádného výrobce hardwaru a nechybí ani využití novějších instrukční sad. Bývá však opomíjen zásadní fakt, kterým se autoři nijak netají: Zátěž je rozsekána na velmi krátké úseky, které jsou proloženy časem s nulovou zátěží určeným pro vychládání procesorových jader. Toto řešení autoři zvolili, protože nechtěli testovat výkon produktu, ale potenciál architektury. Co to znamená: Pokud máme procesor v mobilním telefonu a dojde k nějaké zátěži, zvýší taktovací frekvence na maximum a jak bude zátěž zpracovávat, začnou v důsledku teploty a limitů napájení ve zlomku sekundy klesat frekvence a s tím i výkon. GeekBench proto rozděluje zátěž na tak krátké úseky, aby teplotní / napájecí limity nestihly zasáhnout - následně dostane procesor chvilku na vychladnutí - a následuje další krátký úsek zátěže, který provede při maximální frekvenci.
Ačkoli lze takovým způsobem testovat potenciál architektury, o produktu samotném nic nevypovídá, neboť žádné aplikace - desktopové, mobilní ani serverové - neservírují procesoru podobným způsobem rozsekané úlohy a snaží se o přesný opak - souvislý kód, pokud možno bez bublin, aby se uživatel dočkal výsledku co nejdříve.
Z těchto důvodů lze GeekBench brát nanejvýš jako benchmark schopný srovnat výkon v rámci jedné a stejně konfigurované platformy. Ač je mezi některými uživateli populární srovnávat výkon mobilních ARM SoC s x86 servery atp. a vyvozování nějakých závěrů z těchto čísel, ve skutečnosti nejde o srovnání výkonu, neboť mobilního pasivně chlazeného řešení by v reálné zátěži během zlomku sekundy začaly rychle propadat taktovací frekvence a s nimi i reálný výkon.
Z čistě praktického hlediska lze autorům vytknout naprostou absenci snahy o zpětnou kompatibilitu. Již před třemi lety vydaný GeekBench 5 (a podle uživatelů byly podobné problémy i s GeekBench 4 z roku 2016) nefungoval tento benchmark ve Windows 7 a autoři to vyřešili prohlášením, že podporují pouze Windows 10 a novější. Pro uživatele byl problém ten, že skóre z jednotlivých verzí nelze vzájemně srovnávat, tak si uživatel nemohl porovnat ani výkon své starší sestavy s novým PC, případně s výsledky z recenzí při úvaze o upgradu. Na starém procesoru na systému s Windows 7 si spustil pouze starou verzi GeekBench, kdežto nové procesory byly testovány na nových verzích. Nebylo tedy co srovnávat.
Situace je o to bizarnější, že GeekBench 5 bylo možné i pod Windows 7 zprovoznit, byť to bylo z uživatelského hlediska dost kostrbaté, zatímco z pozice autorů aplikace bylo možné kompatibilitu zajistit na pár kliknutí. Možná ale právě odtud pochází název testu - člověk musí být tak trochu geek, aby tři roky starou verzi rozchodil na sestavě s Windows 7, kde mimochodem bez problémů běhají i nově vydané hry.
CineBench
Nespornou výhodou CineBench je, že ani nevznikl na popud konkrétního výrobce procesorů, ani není zastaralý, ani neprovádí nepřirozenou manipulaci se zátěží.
Je ovšem potřeba mít na paměti dvě skutečnosti: (1) Testuje výkon v renderingu (tedy jen v jednom typu zátěže). (2) Ještě verze r23 nezvládala objektivně hodnotit více než ~64jádrové procesory, takže trochu přetaktovaný 64jádrový procesor mohl dosahovat lepších výsledků než třeba 96-128jádrový procesor.
Druhý nedostatek řeší verze 2024, která lépe podporuje procesory s vyšším počtem jader.
PassMark
PassMark je na první pohled podobný testu GeekBench v tom, že jde o kombinaci různých typů zátěže. Postrádá však ono rozsekání zátěže na extrémně krátké úseky (jednotlivé testované úlohy jsou také poměrně krátké, ale ne nepřirozeně rozsekané a prokládané časem na vychládání), takže je v tomto ohledu bližší reálné zátěži.
Jeden ze série testů se zaměřuje i na pokročilejší instrukční sady (testuje i AVX a AVX-512), ale mohli bychom debatovat nad tím, zda jejich využití (jen) v jednom ze série testů je nebo není adekvátní. PassMarku se však dosud vyhýbají kauzy a proti jeho použití asi nelze nic zásadního namítat.
UserBenchmark
Asi největší dno v segmentu široce dostupných procesorových testů symbolizuje UserBenchmark, jehož autor také publikuje vlastní recenze, ve kterých hrubě uráží uživatele i weby, kteří s jeho závěry nesouhlasí. První kontroverze se objevily po vydání procesorů Ryzen 2000 (Zen+), kdy autor testu změnil způsob hodnocení procesorů a skóre nazvané „CPU Index Speed“ změnil tak, aby prakticky ignorovalo výkon procesorů nad čtyři jádra.
Původní skóre:
- 30 % jednojádrový test
- 60 % čtyřjádrový test
- 10 % vícejádrový test
Nové skóre:
- 40 % jednojádrový test
- 58 % čtyřjádrový test
- 2 % vícejádrový test
Zatímco reálně ubývalo aplikací, které nedokázaly využít víc než jedno jádro a naopak rychle přibývalo aplikací škálujících nad čtyři jádra, autor se netajil tím, že výsledné skóre přiohýbá na míru procesorů Intelu. Uživatele, kteří toto kritizovali, nazýval armádami neandrtálců, youtubery obviňoval z braní úplatků od AMD a autory recenzí z toho, že vybírají hry a testy podle toho, aby výsledky vyhovovaly „druhořadému“ hardwaru od AMD. Co přesně stojí za psychotickým chování autora není známo, existují pouze více či méně vtipné spekulace.
Pocity
Závěrem lze ještě zvážit možnost, zda se na všechny benchmarky nevykašlat a nesoustředit se raději na pocity, jak v roce 2020 doporučoval tehdejší CEO Intelu Bob Swan.
Bob Swan (Intel)
Problém je, že ani tento postup už není „in“. Benchmarky se totiž vrátily do módy:
Podle výše zmíněné prezentace Intelu mohou být benchmarky „skutečné, reprezentativní, důležité a holistické“. Do roku 2024 tedy vstoupíme s mottem: „Pocit je na nic, následuj benchmark“.