GNU/Linux >> Tutoriales Linux >  >> Ubuntu

Comparar el rendimiento de la tarjeta gráfica (GPU) en Linux con glmark

Rendimiento de gráficos:mídalo

Recientemente, cuando agregué una nueva tarjeta gráfica nvidia a una de mis computadoras de escritorio, sentí curiosidad por medir y comparar la potencia de esta tarjeta gráfica con lo que fuera antes.

Una forma de hacerlo es con herramientas de referencia que ejecutarían una serie de pruebas de "dibujo" para medir la capacidad de procesamiento de gráficos del hardware. En términos simples, las GPU que pueden procesar y generar más imágenes/gráficos por unidad de tiempo (fotogramas por segundo) son más potentes.

Glmark:la herramienta de referencia

En Linux no hay muchas herramientas para comparar GPU, y después de pasar bastante tiempo en Google, me encontré con esta pequeña herramienta llamada glmark. Está desarrollado por Linaro.

Glmark ejecuta una serie de pruebas, renderiza diferentes tipos de gráficos y animaciones 2D y 3D en la pantalla y luego mide el rendimiento de salida en términos de FPS (fotogramas por segundo). Luego, promedia los fps en todas las pruebas para calcular una puntuación para la gpu.

No estoy muy seguro, pero la mejor suposición es que este puntaje es una medida relativa de cuán capaz es la unidad de procesamiento de gráficos de su máquina. Compararlo con la puntuación de otras máquinas debería dar una comparación aproximada de la potencia de procesamiento de gráficos.

Ejecuté glmark2 en varias máquinas, cada una con una configuración de GPU diferente para comprender lo que indicaba la salida de glmark. Todas las máquinas son PC de escritorio, y aquí hay una breve descripción de cada una

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

Lo primero que debe hacer es instalar glmark. En Ubuntu/Linux Mint está disponible en los repositorios predeterminados.

$ sudo apt-get install glmark2

Pruebas

Para ejecutar las pruebas, todo lo que necesita hacer es ejecutar el comando glmark2 sin ninguna opción. Procesaría muchos tipos diferentes de animaciones una tras otra dentro de una ventana e imprimiría las medidas de fps en la terminal. Asegúrese de no ejecutar ninguna aplicación que haga un uso intensivo de la CPU durante este tiempo, de lo contrario, los resultados de la prueba pueden desviarse.

Al final de las pruebas, glmark mostraría una puntuación. Una puntuación más alta debería indicar una GPU más potente. La puntuación final no es fija y varía cada vez que ejecuta la prueba. Pero se mantiene dentro de un rango cercano. Por lo tanto, debe ejecutar glmark varias veces (lo hice 3 veces) y obtener el puntaje promedio.

En algunos casos, una ejecución de prueba en particular puede resultar en un puntaje de prueba muy alto o bajo. Simplemente descarté esos valores y volví a clasificar glmark.

Todas las pruebas se realizaron en un monitor LCD Samsung con resolución [email protected].

Tiempo para puntuaciones

Ahora echemos un vistazo a la salida y puntuación de glmark

M1:conjunto de chips de gráficos integrados Intel GMA X3500

Esta máquina tiene la menor cantidad de potencia gráfica y las pruebas glmark ni siquiera pueden completarse porque el sistema falla en algún punto intermedio. Las animaciones 3d funcionan, pero con nerviosismo.

$ 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
=======================================================

La puntuación es de alrededor de 240, que es bastante baja. En esta máquina en particular, Supertuxkart es lento e imposible de jugar, mientras que 0AD simplemente se convierte en un fondo de pantalla :)

Tenga en cuenta que el renderizador es MESA, lo que indica que la aceleración 3D está siendo emulada por software y no está disponible desde el hardware. Por lo tanto, la aceleración de hardware no está disponible.

M2:conjunto de chips de gráficos integrados Intel GMA X4500

Esta es la placa base Gigabyte con unidad gráfica Intel GMA integrada. Esta máquina tiene una potencia de gráficos ligeramente superior en comparación con la máquina anterior.

Los detalles de hardware informados por lspci son

$ 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 puede completar todas las pruebas en esta máquina y los resultados son así...

$ 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
=======================================================

El puntaje promedio para esta máquina fue de alrededor de 350. Esto es comparativamente mejor que nuestra máquina anterior que tenía una GPU inferior.

Esta máquina puede jugar un poco a supertuxkart. Pero juegos como 0AD no funcionan. Pero nuevamente, MESA realiza la representación directa, por lo que la aceleración de hardware está ausente.

M3 - Nvidia GeForce 210 con nuevo controlador

Esta máquina tiene lo mismo que una placa base Intel con GPU externa de la serie Nvidia GeForce 210 conectada a través de una ranura PCI. Es un chipset nvidia de la marca Zotac y tiene 1 GB de RAM dedicada y una velocidad de reloj GPU/Core de 520 MHz

$ 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

Primero vamos a probarlo con los controladores predeterminados de Nouveau y ver cómo funciona. La siguiente prueba se haría con los controladores patentados de 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
=======================================================

La puntuación media se mantiene en torno a 335. La puntuación indica un rendimiento gráfico deficiente a pesar de tener una GPU Nvidia dedicada. Se debe a que los controladores Nouveau son ineficientes y no utilizan todo el potencial de las tarjetas nvidia.

Juegos como supertuxkart y 0AD funcionaron muy bien.

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 con controlador nvidia-331

Esta es la misma máquina que la anterior y utiliza controladores patentados de Nvidia en lugar de controladores de Nouvea.

Los detalles del hardware según lo informado por lspci son

$ 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

Salida y puntuación de 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
=======================================================

Esta vez, la puntuación está por encima de 500 y esta máquina tiene un rendimiento gráfico muy decente para requisitos bajos, como jugar juegos de niños. Juegos como Supertuxkart y 0AD funcionan perfectamente sin problemas técnicos.

El GL renderizado es el controlador Nvidia, lo que significa que la aceleración 3D basada en hardware está disponible y funciona bien.

Compara tu GPU

Para comparar la GPU de su sistema, ejecute el comando glmark y compruebe el resultado y la puntuación. El rendimiento será más alto con los conductores propietarios en lugar de los conductores libres.

No hay una tabla de puntuación en línea con la que comparar, pero a partir de las pruebas anteriores, algo superior a 500 debería ser bueno e indicar una aceleración de hardware utilizable siempre que GL_RENDERER no sea un controlador MESA.

Si GL_RENDERER es MESA, entonces la representación 3D se realiza mediante software y no mediante hardware, por lo que las aplicaciones y los juegos 3D tendrían un rendimiento muy bajo.

Si agrega una nueva tarjeta gráfica a su máquina Linux, lo primero que debe hacer es obtener el mejor controlador para ella. Nvidia proporciona controladores de Linux para la mayoría de sus tarjetas gráficas modernas que funcionan muy bien con Linux.

Puede obtener una lista de algunas de las GPU de mejor rendimiento para Linux en http://www.free3d.org/.

Resumen

En las pruebas anteriores se puede ver que con el aumento de la puntuación, el recuento de FPS en cada prueba individual aumenta progresivamente. Por lo tanto, las GPU de alto rendimiento pueden ofrecer un FPS más alto. Sin embargo, este FPS no debe confundirse con la frecuencia de actualización del monitor, que es de 60 y se mantendrá allí.

El FPS representado en la prueba comparativa es una medida de cuántos fotogramas fue capaz de procesar y generar la GPU (o todo el sistema) por segundo.

Tenga en cuenta que la puntuación glmark no es una prueba concluyente del rendimiento de los gráficos. Como se vio en la tercera prueba, los puntajes a veces pueden ser engañosos. Por ejemplo, una máquina con CPU alta y sin aceleración de hardware podría obtener la misma puntuación que una máquina con CPU moderada y GPU baja. Esto sucede porque la representación basada en software a través de la CPU alta es igual a la potencia de procesamiento de la aceleración de hardware de la GPU baja trabajando sola. Sin embargo, esta es una limitación de la herramienta de evaluación comparativa que debe evolucionar para realizar pruebas y análisis en profundidad para brindar una imagen más precisa.

Así que ahora ejecute glmark en su máquina y díganos su puntaje junto con la marca/modelo de GPU, en el cuadro de comentarios a continuación.

Algunos puntajes más

Ahora aquí están las puntuaciones de algunas tarjetas gráficas, reportadas por otros usuarios.

=======================================================
    OpenGL Information
    GL_VENDOR:     NVIDIA Corporation
    GL_RENDERER:   GeForce GTX 460/PCIe/SSE2
    GL_VERSION:    4.4.0 NVIDIA 331.38
=======================================================
                                  glmark2 Score: 4707
=======================================================

Ubuntu
  1. Mejore el rendimiento del sistema Linux con noatime

  2. Cómo manipular la tarjeta Ethernet en Linux con el comando ethtool

  3. Cómo monitorear el rendimiento del sistema Linux con Sysstat

  4. ¿Configuración Multiseat X con una sola tarjeta gráfica de doble cabezal?

  5. ¿RAID1 aumenta el rendimiento con Linux mdadm?

Ordenar comando en Linux con ejemplos

Comando IP de Linux con ejemplos

Analizando el rendimiento del servidor Linux con atop

Solucionar problemas y monitorear el rendimiento del sistema Linux con nmon

¿Cómo encontrar qué tarjeta gráfica tienes en Linux?

Cómo instalar Basemark GPU Benchmark en Ubuntu 20.04 Linux