Grafický výkon – změřte jej
Nedávno, když jsem na jeden ze svých stolních počítačů přidal novou grafickou kartu nvidia, chtěl jsem změřit a porovnat výkon této grafické karty s tím, co bylo dříve.
Jedním ze způsobů, jak toho dosáhnout, jsou srovnávací nástroje, které by spustily řadu „kreslovacích“ testů, aby změřily kapacitu grafického zpracování hardwaru. Jednoduše řečeno, GPU, které dokážou zpracovat a vykreslit více obrázků/grafiky za jednotku času (snímků za sekundu), jsou výkonnější.
Glmark – srovnávací nástroj
Na Linuxu není mnoho nástrojů pro benchmarking GPU a poté, co jsem strávil dost času na Googlu, jsem narazil na tento malý nástroj s názvem glmark. Je vyvinut společností Linaro.
Glmark provádí řadu testů, vykresluje různé druhy 2D a 3D grafiky a animací na obrazovce a poté měří výstupní výkon ve FPS (snímky za sekundu). Poté zprůměruje snímky za sekundu ve všech testech a vypočítá skóre pro gpu.
Nejsem si jistý, ale nejlepší odhad je, že toto skóre je relativním měřítkem toho, jak je výkonná grafická jednotka vašeho stroje. Porovnáním s výsledky jiných strojů by mělo být hrubé srovnání výkonu grafického zpracování.
Spustil jsem glmark2 na více počítačích, každý s jinou konfigurací GPU, abych pochopil, co indikoval výstup glmark. Všechny stroje jsou stolní počítače a zde je krátký popis každého
1. M1 - Intel DG35EC motherboard + QuadCore + 8GB + Ubuntu 13.10 => "Intel® Graphics Media Accelerator (Intel® GMA) X3500 onboard graphics subsystem" Little/Limited hardware acceleration 2. M2 - Gigabyte GA-G41MT-ES2L motherboard + QuadCore + 4GB + Ubuntu 13.04 => "Integrated Intel Graphics Media Accelerator X4500" Little/Limited hardware acceleration 3. M3 - Intel DG35EC motherboard + Nvidia GeForce 210 (Nouveau drivers) + QuadCore + 4GB + Linux Mint 17 4. M4 - Intel DG35EC motherboard + Nvidia GeForce 210 (Nvidia proprietory drivers) + QuadCore + 4GB + Linux Mint 17
První věc, kterou musíte udělat, je nainstalovat glmark. Na Ubuntu/Linux Mint je k dispozici ve výchozích úložištích.
$ sudo apt-get install glmark2
Testování
Chcete-li spustit testy, vše, co musíte udělat, je spustit příkaz glmark2 bez jakýchkoli voleb. Uvnitř okna by to vykreslilo mnoho různých druhů animací jednu po druhé a vytisklo by měření fps vedle sebe v terminálu. Ujistěte se, že během této doby nespustíte žádnou aplikaci náročná na procesor, jinak se výsledky testu mohou lišit.
Na konci testů by glmark ukázal skóre. Vyšší skóre by mělo znamenat výkonnější GPU. Konečné skóre není pevné a mění se při každém spuštění testu. Ale zůstává v těsné blízkosti. Takže musíte několikrát spustit glmark (já jsem to udělal 3krát) a získat průměrné skóre.
V některých případech může mít konkrétní testovací běh za následek velmi vysoké nebo nízké skóre testu. Jednoduše jsem tyto hodnoty zahodil a znovu zařadil glmark.
Všechny testy byly provedeny na LCD monitoru Samsung s rozlišením [email protected].
Čas na skóre
Nyní se podívejme na výstup a skóre glmark
M1 – integrovaná grafická čipová sada Intel GMA X3500
Tento stroj má nejmenší množství grafického výkonu a testy glmark nejsou ani schopny dokončit, protože systém někde mezi tím padá. 3D animace fungují, ale s chvěním.
$ glmark2 ======================================================= glmark2 2012.08 ======================================================= OpenGL Information GL_VENDOR: Intel Open Source Technology Center GL_RENDERER: Mesa DRI Intel(R) 965G GL_VERSION: 2.1 Mesa 9.2.1 ======================================================= [build] use-vbo=false: FPS: 325 FrameTime: 3.077 ms [build] use-vbo=true: FPS: 375 FrameTime: 2.667 ms [texture] texture-filter=nearest: FPS: 371 FrameTime: 2.695 ms [texture] texture-filter=linear: FPS: 365 FrameTime: 2.740 ms [texture] texture-filter=mipmap: FPS: 338 FrameTime: 2.959 ms [shading] shading=gouraud: FPS: 235 FrameTime: 4.255 ms [shading] shading=blinn-phong-inf: FPS: 206 FrameTime: 4.854 ms [shading] shading=phong: FPS: 173 FrameTime: 5.780 ms [bump] bump-render=high-poly: FPS: 112 FrameTime: 8.929 ms [bump] bump-render=normals: FPS: 347 FrameTime: 2.882 ms [bump] bump-render=height: FPS: 320 FrameTime: 3.125 ms [effect2d] kernel=0,1,0;1,-4,1;0,1,0;: FPS: 134 FrameTime: 7.463 ms [effect2d] kernel=1,1,1,1,1;1,1,1,1,1;1,1,1,1,1;: FPS: 60 FrameTime: 16.667 ms [pulsar] light=false:quads=5:texture=false: FPS: 336 FrameTime: 2.976 ms [desktop] blur-radius=5:effect=blur:passes=1:separable=true:windows=4: FPS: 67 FrameTime: 14.925 ms [desktop] effect=shadow:windows=4: FPS: 136 FrameTime: 7.353 ms [buffer] columns=200:interleave=false:update-dispersion=0.9:update-fraction=0.5:update-method=map: FPS: 164 FrameTime: 6.098 ms ======================================================= glmark2 Score: 239 =======================================================
Skóre je kolem 240, což je docela málo. Na tomto konkrétním stroji je Supertuxkart pomalý a nehratelný, zatímco 0AD se jednoduše změní na tapetu :)
Všimněte si, že renderer je MESA, což znamená, že 3D akcelerace je softwarově emulovaná a není dostupná z hardwaru. Hardwarová akcelerace je tedy nedostupná.
M2 – integrovaná grafická čipová sada Intel GMA X4500
Jedná se o základní desku Gigabyte s integrovanou grafickou jednotkou Intel GMA. Tento stroj má mírně vyšší grafický výkon ve srovnání s předchozím strojem.
Podrobnosti o hardwaru hlášené lspci jsou
$ lspci -vnn | grep VGA -A 12 00:02.0 VGA compatible controller [0300]: Intel Corporation 4 Series Chipset Integrated Graphics Controller [8086:2e32] (rev 03) (prog-if 00 [VGA controller]) Subsystem: Giga-byte Technology Device [1458:d000] Flags: bus master, fast devsel, latency 0, IRQ 43 Memory at fd800000 (64-bit, non-prefetchable) [size=4M] Memory at d0000000 (64-bit, prefetchable) [size=256M] I/O ports at ff00 [size=8] Expansion ROM at <unassigned> [disabled] Capabilities: <access denied> Kernel driver in use: i915 Kernel modules: i915
Glmark je schopen dokončit všechny testy na tomto stroji a výsledky jsou takové ...
$ glmark2 ======================================================= glmark2 2011.09 ======================================================= OpenGL Information GL_VENDOR: Tungsten Graphics, Inc GL_RENDERER: Mesa DRI Intel(R) G41 GEM 20100330 DEVELOPMENT GL_VERSION: 2.1 Mesa 7.10.2 ======================================================= [build] use-vbo=false: FPS: 493 [build] use-vbo=true: FPS: 494 [texture] texture-filter=nearest: FPS: 431 [texture] texture-filter=linear: FPS: 427 [texture] texture-filter=mipmap: FPS: 451 [shading] shading=gouraud: FPS: 495 [shading] shading=blinn-phong-inf: FPS: 312 [shading] shading=phong: FPS: 269 [bump] bump-render=high-poly: FPS: 201 [bump] bump-render=normals: FPS: 392 [effect2d] kernel=0,1,0;1,-4,1;0,1,0;: FPS: 247 [effect2d] kernel=1,1,1,1,1;1,1,1,1,1;1,1,1,1,1;: FPS: 131 [pulsar] light=false:quads=5:texture=false: FPS: 494 [desktop] blur-radius=5:effect=blur:passes=1:separable=true:windows=4: FPS: 126 [conditionals] fragment-steps=0:vertex-steps=0: FPS: 375 [conditionals] fragment-steps=5:vertex-steps=0: FPS: 297 [conditionals] fragment-steps=0:vertex-steps=5: FPS: 375 [function] fragment-complexity=low:fragment-steps=5: FPS: 375 [function] fragment-complexity=medium:fragment-steps=5: FPS: 285 [loop] fragment-loop=false:fragment-steps=5:vertex-steps=5: FPS: 362 [loop] fragment-steps=5:fragment-uniform=false:vertex-steps=5: FPS: 362 [loop] fragment-steps=5:fragment-uniform=true:vertex-steps=5: FPS: 272 ======================================================= glmark2 Score: 348 =======================================================
Průměrné skóre tohoto stroje bylo kolem 350. To je srovnatelně lepší než náš předchozí stroj, který měl horší GPU.
Tento stroj umí tak trochu hrát supertuxkart. Ale hry jako 0AD nefungují. Ale opět, přímé vykreslování provádí MESA, takže hardwarová akcelerace chybí.
M3 – Nvidia GeForce 210 s ovladačem nouveau
Tento stroj má stejnou základní desku Intel s externím GPU řady Nvidia GeForce 210 připojenou přes slot PCI. Je to čipová sada nvidia značky Zotac a má 1 GB vyhrazené paměti RAM a 520 MHz GPU/Core taktovací frekvence
$ lspci -vnn | grep VGA -A 12 01:00.0 VGA compatible controller [0300]: NVIDIA Corporation GT218 [GeForce 210] [10de:0a65] (rev a2) (prog-if 00 [VGA controller]) Subsystem: ZOTAC International (MCO) Ltd. Device [19da:1160] Flags: bus master, fast devsel, latency 0, IRQ 16 Memory at e2000000 (32-bit, non-prefetchable) [size=16M] Memory at d0000000 (64-bit, prefetchable) [size=256M] Memory at e0000000 (64-bit, prefetchable) [size=32M] I/O ports at 2000 [size=128] Expansion ROM at e3080000 [disabled] [size=512K] Capabilities: <access denied> Kernel driver in use: nouveau
Nejprve to otestujeme s výchozími ovladači Nouveau a uvidíme, jak to funguje. Další test bude proveden s proprietárními ovladači Nvidia.
$ glmark2 ======================================================= glmark2 2012.08 ======================================================= OpenGL Information GL_VENDOR: nouveau GL_RENDERER: Gallium 0.4 on NVA8 GL_VERSION: 3.0 Mesa 9.2.1 ======================================================= [build] use-vbo=false: FPS: 420 FrameTime: 2.381 ms [build] use-vbo=true: FPS: 430 FrameTime: 2.326 ms [texture] texture-filter=nearest: FPS: 395 FrameTime: 2.532 ms [texture] texture-filter=linear: FPS: 393 FrameTime: 2.545 ms [texture] texture-filter=mipmap: FPS: 409 FrameTime: 2.445 ms [shading] shading=gouraud: FPS: 351 FrameTime: 2.849 ms [shading] shading=blinn-phong-inf: FPS: 353 FrameTime: 2.833 ms [shading] shading=phong: FPS: 319 FrameTime: 3.135 ms [bump] bump-render=high-poly: FPS: 301 FrameTime: 3.322 ms [bump] bump-render=normals: FPS: 428 FrameTime: 2.336 ms [bump] bump-render=height: FPS: 387 FrameTime: 2.584 ms [effect2d] kernel=0,1,0;1,-4,1;0,1,0;: FPS: 315 FrameTime: 3.175 ms [effect2d] kernel=1,1,1,1,1;1,1,1,1,1;1,1,1,1,1;: FPS: 157 FrameTime: 6.369 ms [pulsar] light=false:quads=5:texture=false: FPS: 348 FrameTime: 2.874 ms [desktop] blur-radius=5:effect=blur:passes=1:separable=true:windows=4: FPS: 414 FrameTime: 2.415 ms [desktop] effect=shadow:windows=4: FPS: 407 FrameTime: 2.457 ms [buffer] columns=200:interleave=false:update-dispersion=0.9:update-fraction=0.5:update-method=map: FPS: 260 FrameTime: 3.846 ms [buffer] columns=200:interleave=false:update-dispersion=0.9:update-fraction=0.5:update-method=subdata: FPS: 279 FrameTime: 3.584 ms [buffer] columns=200:interleave=true:update-dispersion=0.9:update-fraction=0.5:update-method=map: FPS: 269 FrameTime: 3.717 ms [ideas] speed=duration: FPS: 356 FrameTime: 2.809 ms [jellyfish] <default>: FPS: 227 FrameTime: 4.405 ms [terrain] <default>: FPS: 30 FrameTime: 33.333 ms [conditionals] fragment-steps=0:vertex-steps=0: FPS: 386 FrameTime: 2.591 ms [conditionals] fragment-steps=5:vertex-steps=0: FPS: 290 FrameTime: 3.448 ms [conditionals] fragment-steps=0:vertex-steps=5: FPS: 383 FrameTime: 2.611 ms [function] fragment-complexity=low:fragment-steps=5: FPS: 384 FrameTime: 2.604 ms [function] fragment-complexity=medium:fragment-steps=5: FPS: 312 FrameTime: 3.205 ms [loop] fragment-loop=false:fragment-steps=5:vertex-steps=5: FPS: 383 FrameTime: 2.611 ms [loop] fragment-steps=5:fragment-uniform=false:vertex-steps=5: FPS: 384 FrameTime: 2.604 ms [loop] fragment-steps=5:fragment-uniform=true:vertex-steps=5: FPS: 318 FrameTime: 3.145 ms ======================================================= glmark2 Score: 336 =======================================================
Průměrné skóre zůstává kolem 335. Skóre ukazuje špatný grafický výkon navzdory tomu, že máte vyhrazený GPU Nvidia. Je to kvůli ovladačům Nouveau, které jsou neefektivní a nevyužívají plný potenciál karet nvidia.
Hry jako supertuxkart a 0AD fungovaly velmi dobře.
Note that the score of this machine is lesser/equal to the previous machine. While testing games it was seen, that this machine had a better graphics performance. This is because this machine has a separate dedicated GPU which works independantly. Whereas in the previous machine the MESA libraries used the main CPU to do graphics work, which resulted in a competitive score, but would fail when real applications would use it.
M4 – Nvidia GeForce 210 s ovladačem nvidia-331
Toto je stejný stroj jako výše a místo ovladačů Nouvea používá proprietární ovladače Nvidia.
Podrobnosti o hardwaru, jak je uvádí lspci, jsou
$ lspci -vnn | grep VGA -A 12 01:00.0 VGA compatible controller [0300]: NVIDIA Corporation GT218 [GeForce 210] [10de:0a65] (rev a2) (prog-if 00 [VGA controller]) Subsystem: ZOTAC International (MCO) Ltd. Device [19da:1160] Flags: bus master, fast devsel, latency 0, IRQ 46 Memory at e2000000 (32-bit, non-prefetchable) [size=16M] Memory at d0000000 (64-bit, prefetchable) [size=256M] Memory at e0000000 (64-bit, prefetchable) [size=32M] I/O ports at 2000 [size=128] [virtual] Expansion ROM at e3080000 [disabled] [size=512K] Capabilities: <access denied> Kernel driver in use: nvidia
Výstup a skóre Glmark
$ glmark2 ======================================================= glmark2 2012.08 ======================================================= OpenGL Information GL_VENDOR: NVIDIA Corporation GL_RENDERER: GeForce 210/PCIe/SSE2 GL_VERSION: 3.3.0 NVIDIA 331.20 ======================================================= [build] use-vbo=false: FPS: 671 FrameTime: 1.490 ms [build] use-vbo=true: FPS: 747 FrameTime: 1.339 ms [texture] texture-filter=nearest: FPS: 660 FrameTime: 1.515 ms [texture] texture-filter=linear: FPS: 649 FrameTime: 1.541 ms [texture] texture-filter=mipmap: FPS: 688 FrameTime: 1.453 ms [shading] shading=gouraud: FPS: 635 FrameTime: 1.575 ms [shading] shading=blinn-phong-inf: FPS: 631 FrameTime: 1.585 ms [shading] shading=phong: FPS: 600 FrameTime: 1.667 ms [bump] bump-render=high-poly: FPS: 507 FrameTime: 1.972 ms [bump] bump-render=normals: FPS: 781 FrameTime: 1.280 ms [bump] bump-render=height: FPS: 744 FrameTime: 1.344 ms [effect2d] kernel=0,1,0;1,-4,1;0,1,0;: FPS: 483 FrameTime: 2.070 ms [effect2d] kernel=1,1,1,1,1;1,1,1,1,1;1,1,1,1,1;: FPS: 308 FrameTime: 3.247 ms [pulsar] light=false:quads=5:texture=false: FPS: 579 FrameTime: 1.727 ms [desktop] blur-radius=5:effect=blur:passes=1:separable=true:windows=4: FPS: 231 FrameTime: 4.329 ms [desktop] effect=shadow:windows=4: FPS: 326 FrameTime: 3.067 ms [buffer] columns=200:interleave=false:update-dispersion=0.9:update-fraction=0.5:update-method=map: FPS: 396 FrameTime: 2.525 ms [buffer] columns=200:interleave=false:update-dispersion=0.9:update-fraction=0.5:update-method=subdata: FPS: 423 FrameTime: 2.364 ms [buffer] columns=200:interleave=true:update-dispersion=0.9:update-fraction=0.5:update-method=map: FPS: 432 FrameTime: 2.315 ms [ideas] speed=duration: FPS: 563 FrameTime: 1.776 ms [jellyfish] <default>: FPS: 360 FrameTime: 2.778 ms [terrain] <default>: FPS: 41 FrameTime: 24.390 ms [conditionals] fragment-steps=0:vertex-steps=0: FPS: 664 FrameTime: 1.506 ms [conditionals] fragment-steps=5:vertex-steps=0: FPS: 556 FrameTime: 1.799 ms [conditionals] fragment-steps=0:vertex-steps=5: FPS: 662 FrameTime: 1.511 ms [function] fragment-complexity=low:fragment-steps=5: FPS: 661 FrameTime: 1.513 ms [function] fragment-complexity=medium:fragment-steps=5: FPS: 517 FrameTime: 1.934 ms [loop] fragment-loop=false:fragment-steps=5:vertex-steps=5: FPS: 654 FrameTime: 1.529 ms [loop] fragment-steps=5:fragment-uniform=false:vertex-steps=5: FPS: 662 FrameTime: 1.511 ms [loop] fragment-steps=5:fragment-uniform=true:vertex-steps=5: FPS: 603 FrameTime: 1.658 ms ======================================================= glmark2 Score: 547 =======================================================
Tentokrát je skóre nad 500 a tento stroj má velmi slušný grafický výkon na nízké nároky, jako je hraní dětských her. Hry jako Supertuxkart a 0AD fungují perfektně bez jakýchkoliv závad.
Vykreslený GL je ovladač Nvidia, což znamená, že hardwarová 3D akcelerace je dostupná a funguje dobře.
Porovnejte svůj GPU
Chcete-li porovnat GPU vašeho systému, spusťte příkaz glmark a zkontrolujte výstup a skóre. Výkon by měl být nejvyšší s proprietárními ovladači namísto volných ovladačů.
Neexistuje žádná online tabulka skóre, se kterou by bylo možné porovnávat, ale z výše uvedených testů vyvozujeme, že něco vyššího než 500 by mělo být dobré a indikovat použitelnou hardwarovou akceleraci za předpokladu, že GL_RENDERER není ovladač MESA.
Pokud je GL_RENDERER MESA, pak 3D vykreslování provádí software a ne hardware, takže 3D aplikace a hry by měly velmi slabý výkon.
Pokud do svého linuxového stroje přidáte novou grafickou kartu, první věcí, kterou musíte udělat, by bylo získat pro ni nejlepší ovladač. Nvidia poskytuje linuxové ovladače pro většinu svých moderních grafických karet, které velmi dobře fungují s linuxem.
Seznam některých nejvýkonnějších GPU pro linux můžete získat na http://www.free3d.org/.
Shrnutí
Ve výše uvedených testech je vidět, že s rostoucím skóre se počet FPS v každém jednotlivém testu progresivně zvyšuje. Vysoce výkonné GPU jsou tedy schopny poskytovat vyšší FPS. Toto FPS by se však nemělo zaměňovat s obnovovací frekvencí monitoru, která je 60 a tam zůstane.
FPS zobrazená v benchmarkovém testu je měřítkem toho, kolik snímků byl GPU (nebo celý systém) schopen zpracovat a vygenerovat za sekundu.
Upozorňujeme, že skóre glmark není průkazným testem grafického výkonu. Jak je vidět ve 3. testu, skóre může být někdy zavádějící. Například stroj s vysokým CPU a žádnou hardwarovou akcelerací může získat stejné skóre jako stroj se středním CPU a nízkým GPU. To se děje proto, že softwarové vykreslování prostřednictvím vysokého CPU se rovná výpočetnímu výkonu hardwarové akcelerace nízkého GPU pracujícího samostatně. Toto je však omezení srovnávacího nástroje, který se musí vyvinout, aby mohl provádět hloubkové testy a analýzy, aby poskytl přesnější obrázek.
Nyní tedy spusťte na svém počítači glmark a sdělte nám své skóre spolu se značkou/modelem GPU do pole komentáře níže.
Nějaké další skóre
Nyní jsou zde skóre některých grafických karet hlášených jinými uživateli.
======================================================= OpenGL Information GL_VENDOR: NVIDIA Corporation GL_RENDERER: GeForce GTX 460/PCIe/SSE2 GL_VERSION: 4.4.0 NVIDIA 331.38 ======================================================= glmark2 Score: 4707 =======================================================