Čím testovat... aneb je Sandra věrná?

Nu dobrá, začněme polemiku na téma měření výkonu PC programem SiSoft Sandra. Tomuto tématu jsem se dříve vyhýbal jako čert kříži (sám jsem dlouho Sandrou testoval), nyní se však podívejme na tuto problematiku blíže. A v čem je problém? V optimalizaci "umělých" benchmarků a věrohodnosti takto dosažených výsledků pro "běžný provoz" PC...

Při současném měření výkonu jednotlivých komponent PC musíme vždy udělat určitý kompromis - zásadně totiž nelze testovat objektivně. V honbě za výkonem se totiž výkon jednotlivých dílů stal velmi "nelineární". Do hry vstupují mezipaměti cache (ty jsou i v řadičích disků) a jejich logika, procesory mají zabudované metody predikce větvení, procesy probíhají v paralelních "pipes", instrukce se zpracovávají v předstihů, paměťové banky mají určité hodnoty prokládaní, zápisy a čtení jsou zatíženy určitým zpožděním atd. Některé operace probíhají velice rychle, jiné relativně pomalu u rozdílných značek komponent a rozdílných nastavení.

Absolutním testem, je měření výkonu konkrétním programem. Měření v timedemu Quake III je tedy obrazem výkonu ve hře... Quake III atd. Potud by tedy bylo vše v pořádku... Jak ale změřit výkon PC pro "obecné" použití? Neexistuje program "obvyklý program", stejně jako není "obvyklý prací prášek". V této situaci jsou objektivnější pouze komplexní testy. Jedním z nich je například BaPCo SysMark 2000. Pokud se podáváte na jeho strukturu, pak zjistíte, že vykonává řadu operací a kódu převzatých z rozdílných programů.

Například část Internet Content Creation sestává s kódů: MetaCreations Bryce 4(virtualní světy), Avid Elastic Reality 3.1(3D modelování), Adobe Photoshop 5.5(grafický program), Adobe Premiere 5.1(střihový program), a Microsoft Windows Media Encoder 4.0.(přehrávání digitálních médii). Část Office Productivity zase obsahuje části programů Corel CorelDRAW 9.0, Microsoft Excel 2000, Dragon Naturally Speaking 4.0, Netscape Communicator 4.61, Corel Paradox 9.0, Microsoft PowerPoint 2000, + (samozřejmě) Microsoft Word 2000.

Zde je totiž množství kódu a délka testu tak značná, že se vychytají "nelinearity" systému. Problémem však zůstávají syntetické testy. Již ze své struktury musí být krátké a zjednodušené. A zde je právě jádro pudla - záleží totiž, jaké instrukce programátor použije a v jakém jazyce výsledný kód napíše a zkompiluje, jak dlouhé budou výsledné programové smyčky a zejména jakou optimalizaci použije. Naneštěstí je zde PC velmi dynamickou soustavou, ta je navíc hardwarově vyladěna určitým směrem - některý přístup / test pak hardwaru "sedne", jiný nikoliv.

Je to jako s laděním motorů F1 - ty jsou ovlivněné charakterem trati (převýšení, počet a sklon zatáček, řadění, rovinky...) ale také například na rozdílnou vlhkostí vzduchu a nadmořskou výškou. V Chile, 2000m nad m. pak může kralovat Mercedes, v Monacu pak Ferrari - který motor je ale lepší? Dá se podle GP Monaca na 100% usuzovat který monopost vyhraje pohár konstruktérů? Ne...

Co z toho plyne? Jednoduchý test nemusí být vždy lineární - argumenty testování stejnou verzí programu jsou liché, rozhodujícím činitelem je to, nakolik se jednotlivé testy blíží komplexním testům, nakolik jsou výsledky "poznatelné" v praktickém provozu...

Sandra a spol...

SiSoft Sandra se stává velmi oblíbeným testem. Všude vidíme její výsledky, měření je velmi pohodlné a velmi efektní. Komu by se to nelíbilo... Je zde však jeden háček... Málokdo totiž ví, že tento druh testů se před vypuštěním upravuje a dolaďuje... ano, je to tak. Provádí se měření a mění konstanty, přidává se kód a upravují smyčky tak dlouho, aby test byl "tak akorát". Každý přece ví, že PIII 800 musí být výkonnější od Athlonu 600 ve výpočtech FPU... aktuálně tomu tak není? Tak upravíme nějaké ty instrukce a změníme délku smyček. A voilá! Na světě je test "tak akorát".

Ano, je to umění správně vyladit test... ale jak jsem již řekl dříve, ladění benchmarku by mělo směřovat k tomu aby odrazilo co nejlépe skutečný rychlostní koeficient PC v praxi... pokud tak tomu není, pak je to tragédie. A právě toto se stalo, a to nejen podle mého názoru, programu Sisoft Sandra. Podle měření cca 50-ti PC musím konstatovat, že tento program je zřetelně "přeladěný" - ukazuje rozdílné výsledky v závislosti od OS, nainstalovaného softwaru, nastavení BIOSu (což je legitimní, ale jen určitou měrou), a je velmi nelineární (dvojnásobné číslo neznamená dvojnásobný výkon). Všimněte si také, že renomované servisy (Anandtech, Tomshardware, Sharkyextreme) také pomalu upouštějí od tohoto testu. I když má Sandra v názvu "Proffesional" - neznamená to, že je profesionální...

PCtuning komentuje: SiSoft Sandra je docela dobrým indikátorem výkonu, avšak naměřené hodnoty jsou velmi orientační a jsou zatížené specifickým přístupem. "Nejpochybnější" části tohoto testu je měření přenosu disku a přenosu / propustnosti paměti...

Výzva PCtuningu:

Vyzývám všechny fandy HW k tomu, abychom vybrali odpovídající testovací software, takový, který co nejvíce odpovídá skutečnému rychlostnímu koeficientu v dané oblasti:

  • OpenGL "mark"
  • DirectX "mark"
  • Disk "mark"
  • Integer, FPU, Memory "mark"
  • Office "mark"

Své nápady mailujte na info@optimalizace.cz

P.S. Podívejme se ještě na jeden z "relevantních mailů":

Ahoj, musim reagovat na uverejneny clanek na PCtuningu - Pomuze novy bios? S vecmi ohledne biosu se zabyvam velmi dlouho, sam jsem si do biosu pridaval nove CPU ID kdyz vyrobce nereagoval na moje prosby.

Shodneme se na tom, ze vyrobci desek s chipsety od VIA VP3 --- VIA Apollo Pro 133A nedavali do biosu potrebne nastaveni chipsetu ani nastaveni pameti. Jenom casovani pameti by vykon pameti zvedlo o 5-10 %. Ale skutecny narust je az 30-40 %, tento narust je zpusoben hlavne nastavenim nekterych registru northbridge chipsetu (ten je odpovedny za veci okolo pameti, prokladani banku, casovani, CPU-PCI apod.)

Ony se tyto registry daji nastavit i softwarove, ale tam je problem, ze je to jen software... Proto jsem se rozhodl krokovat BIOS-soubor od VT6X4, abych zjistil nastaveni registru chipsetu prave u teto desky.

Nejake info z toho uz mam, ale nevim 100% jestli je to ono, takze zkusim tyto informace prevzit a upravit si bios image na svou desku a zjistit vysledek. Pripadne muzu zkouset i jinne nastaveni techto registru (rychlost, stabilita.... ). No, uvidim...

O tom, ze SisoftSandra (nejnovejsi verze se jmenuje Milenium) nemeri vykon uplne korektne vi asi kazdy. Tak jsem rad, ze jsi to uvedl na pravou miru. Mimochodem v Sisoft Sandra Milenium je po benchmarcich CPU dole napsano, ze to neni realny vykon, ale jen takove srovnani. Sisoftakum jsem napsal, aby tam napsali, ze ty benchmarky nejsou uplne korektni a realne :-( O tom vykonu disku lze taky spekulovat neb Sisoft Sandra ma benchmark disku nejhorsi ze vsech benchmarku.

Jinak nastavenim registru chipsetu lze i vykon EIDE zarizeni take zvysit, ale to jen o 3-5%. 
Muzes prosim te, na webu uverejnit, ktere benchmarky by meli vsichni pouzivat pro objektivni srovnani ?

Urcite se najdou i odpurci, takovy ti zastanci 3DMarku a Sisoft Sandry, ale tem brzo dosly argumenty.

Ze skusenosti vim, ze moc benchmarku v 1 programu skodi.
Proste se tezko podari udelat to, na co jsou udelani jednoucelovì zamerene programy.
Proto:

  • CPU related benchmark - HWiNFO32, RC5 ka

  • HDD benchmark - HD Tach 2.61, HWiNFO32

  • 3D Akcel benchmark - Q3, Expandable, Tirtanium

  • CD benchmark - CD Speed 99

  • PC office benchmark - SYSMARK2000, Wintune, Passmark performance test.

Hodne lidi asi bude vrcet, proc skoro vsude HWiNFO32, protoze HWiNFO32 ma asi nejreprodukovatelnejsi vysledky a mimochodem na benchmarkovani HDD pouziva stejny kod jako HD Tach.

Ale at si kazdy vybere sam, at se pak nedivi ze v tom je gulas.

Mej se, Spec

Určitě si přečtěte

Články odjinud