Tutoriales

Virtualización de GPU: qué es y para qué se usa

Como bien sabes, la virtualización se realiza mediante un hipervisor que se ejecuta sobre la máquina anfitriona y coge recursos de ésta para las máquinas virtuales. Además, deberías saber que existe un término conocido como virtualización de GPU que es muy importante y que tal vez no es lo que estás pensando. Aquí te lo contamos:

¿Qué es la virtualización de GPU?

virtualización de GPU
Fuente: NVIDIA

Como sabes, las máquinas virtuales toman recursos de hardware como la vCPU, vRAM, etc., para usarlos. Pues bien, la vGPU o GPU virtual, no es más que una solución gráfica de virtualización que permite a la máquina virtual acceso simultáneo a una de las GPUs físicas del host o anfitrión.

La virtualización de GPU se refiere a una tecnología que permite el uso de una GPU para acelerar gráficos o aplicaciones GPGPU que se están ejecutando en una máquina virtual. Y para ello, se suelen usar varias técnicas como la emulación de dispositivos, API remota, etc.

Esto también puede traer grandes beneficios al hacer el sistema más eficiente, ya que se pueden aprovechar mejor los recursos de hardware entre las distintas máquinas virtuales. Y es que, con solo el sistema anfitrión, si la carga de trabajo no es máxima, no se estarían aprovechando realmente todos esos recursos. Es algo que ya vemos en los VPS.

Cuando se usa virtualización de GPU, para que la máquina virtual haga uso de este recurso de hardware, se puede reducir también el uso de la CPU, ya que no se está usando una aceleración gráfica por software. Dicho de otro modo, con la virtualización de GPU se ha permitido hacer lo mismo que se hacía con otros recursos, es decir, poder usar la GPU física para renderizar o realizar otras tareas para las máquinas virtuales. Es decir, tenemos una aceleración gráfica por hardware.

Ventajas de la virtualización de GPU

La virtualización de GPU no solo puede mejorar la eficiencia y el rendimiento, también tiene otras ventajas, especialmente para centros de datos o servidores tipo VPS. Por ejemplo, hay que destacar lo siguiente:

  • Rendimiento: con la virtualización de GPU se mejora el rendimiento de las máquinas virtuales, especialmente todo lo que está relacionado con gráficos, además de acelerar tareas como la IA, ML, cómputo con GPGPU, etc. Y no solo eso, al reducir la carga de trabajo de la CPU al no tener que usar aceleración por software, también se gana rendimiento general.
  • Reduce los cuellos de botella: como ya he comentado, al reducir la carga de trabajo que tiene que soportar la CPU, esto también permitirá al sistema actuar de forma más desahogada en cargas de trabajo máximas. Las máquinas virtuales podrán distribuir mejor la carga de trabajo entre la CPU y GPU para obtener un rendimiento más sólido.
  • Mayor riqueza: al poder usar aplicaciones que dependen de las capacidades de la GPU, esto puede mejorar la riqueza del sistema virtualizado, por ejemplo, pudiendo ejecutar videojuegos, software IA, renderizado por GPU, e incluso otras tareas que pueden hacer uso de la GPU, como el descifrado mediante la GPU en vez de hacerlo por CPU que es más lento.

También te puede interesar:

En definitiva, gracias a esto se permite que las máquinas virtuales cada vez tengan un rendimiento más elevado y próximo a las máquinas físicas.

Técnicas usadas en la virtualización de GPU

H800 Hopper virtualización de GPU

Como he mencionado anteriormente, existen varias técnicas usadas para la virtualización de GPU, y las más importantes son:

También te puede interesar nuestro artículo sobre las mejores GPUs del mercado.

  • API remota: es una técnica que permite la comunicación entre la API gráfica para ekl reenvío de llamadas. Es decir, cuando se usa alguna aplicación en la máquina virtual que haga uso de los gráficos, las llamadas a la API gráfica se reenviarán para que sean atendidos por la API gráfica del sistema anfitrión y así puedan ser procesadas por la GPU. Esta técnica no es perfecta, ya que se ve comprometido el rendimiento por ese reenvío de llamadas, además de hacer que se evite que la máquina virtual esté totalmente aislada del sistema anfitrión. Por otro lado, existe software de terceros que también puede agregar soporte para APIs específicas, como VMGL para OpenGL, rCUDA para CUDA, etc.
  • Pass-through fijo o pass-through de GPU: este paso fijo es cuando una única máquina virtual accede directamente a una GPU de forma exclusiva y permanente. En esta técnica se mejora mucho el rendimiento, consiguiendo entre el 96 y el 100% del rendimiento nativo, y una alta fidelidad. Es decir, es superior al 86% apox. de rendimiento conseguido por la técnica anterior. Sin embargo, la desventaja es que la GPU no podrá ser compartida por varias máquinas virtuales, cada una debería tener su GPU física adicional, y esto encarece el coste del hardware necesario.
  • Transferencia mediada: esta técnica permite que el hardware de la GPU proporcione contextos con rangos de memoria virtual para cada máquina virtual a través del IOMMU y el hipervisor enviará los comandos gráficos de las máquinas virtuales a la GPU. Es decir, es como una especie de particionamiento de los recursos de la GPU para que sirvan directamente a las máquinas virtuales. Esto estaría entre lads dos técnicas anteriores, sin necesidad de reenvío de llamadas de la API, pero pudiendo permitir que todas las máquinas virtuales puedan hacer uso de una misma GPU. Esto está soportado por tecnologías como NVIDIA vGPU, AMD MxGPU, Intel GVT-g, etc.
  • Emulación de dispositivos: como las arquitecturas de GPU son muy complejas y cambian constantemente, además de ser todo un secreto en muchos casos, no es factible virtualizar por complejo las nuevas generaciones de GPU por parte de los desarrolladores de software hipervisor. Solo es posible hacerlo con algunos modelos más antiguos y simples, como podría ser la 3dfx Voodoo2, la S3 ViRGE/DX, etc. Esto permite que si la máquina virtual no cuenta con aceleración gráfica 3D, que al menos pueda tener una funcionalidad mínima para acceder a estas máquinas a través de un terminal gráfico.

Isaac

Geek de los sistemas electrónicos, especialmente del hardware informático. Con alma de escritor y pasión por compartir todo el conocimiento sobre tecnología.
Los datos de carácter personal que nos facilite mediante este formulario quedarán registrados en un fichero de Miguel Ángel Navas Carrera, con la finalidad de gestionar los comentarios que realizas en este blog. La legitimación se realiza a través del consentimiento del interesado. Si no se acepta no podrás comentar en este blog. Puedes consultar Política de privacidad. Puede ejercitar los derechos de acceso, rectificación, cancelación y oposición en [email protected]
Botón volver arriba