¡Pregunte, nosotros le respondemos!

Qué es NVIDIA® MIG

En la informática moderna, las GPU desempeñan un papel crucial en diversos campos, desde la medicina hasta la producción cinematográfica. Las GPU pueden reducir considerablemente el tiempo de cálculo, a menudo por factores de decenas o cientos. También tienen características únicas que hay que tener en cuenta. En situaciones de carga de trabajo única sin necesidad de compartir una GPU entre los usuarios, casi cualquier GPU será suficiente.

Muchas aplicaciones admiten el cálculo paralelo, distribuyendo la carga de trabajo entre varias tarjetas físicas. Sin embargo, los retos surgen cuando sólo hay una GPU potente en un servidor o cuando varios usuarios necesitan ejecutar cálculos intensivos en la GPU de forma exclusiva, lo que puede bloquear a los demás hasta que finalicen sus tareas. La tecnología MIG (Multi-Instance GPU) de NVIDIA® resuelve este problema. Disponible en modelos de GPU específicos como A30, A100 (PCIE/SXM4), H100 (PCIE/SXM5/GH200) y H200 (SXM5), MIG permite la división lógica de una única tarjeta en varias instancias accesibles de forma independiente.

Estas instancias de GPU están aisladas a nivel de hardware, lo que impide que las cargas de trabajo afecten al rendimiento o al consumo de VRAM de las demás. A cada instancia se le asigna una cantidad fija de memoria de vídeo. Si un proceso intenta sobrepasar esta asignación, el OOM-killer se activa y termina el proceso infractor.

El número máximo posible de instancias es 7. Esto puede parecer extraño, ya que sería más lógico dividir en un número par de partes. Hay una explicación sencilla: la 8ª parte también está asignada, pero sus recursos informáticos se utilizan para controlar la división. Por lo tanto, deja de estar disponible para su uso normal. La VRAM también se divide en 8 partes como máximo y se distribuye equitativamente entre las 7 instancias de la GPU. Cada instancia también recibe una parte de otros recursos, como las unidades de descodificación por hardware.

Esta característica permite paralelizar la carga de trabajo incluso con una sola tarjeta. A nivel del SO, las instancias de la GPU aparecen como tarjetas físicas diferentes, lo que permite a la aplicación acceder a cada una de ellas por separado y garantizar el cálculo paralelo. De este modo, se consigue una utilización óptima de los recursos de la GPU. Los proveedores de cloud computing valoran mucho esta función, ya que la capacidad de gestionar los recursos de forma flexible es fundamental, especialmente en entornos de contenedores.

Características de MIG

Antes de trabajar con MIG, asegúrese de que el servidor tiene instalados los controladores de GPU necesarios y de que no hay tareas de computación activas en la tarjeta. Activar MIG es una petición "pesada" a la API del controlador, que provoca un vaciado completo de la memoria de vídeo y un reinicio de la GPU. Actualmente, esto sólo funciona en Linux, y el usuario que ejecuta dicha petición debe tener derechos de superusuario.

Al trabajar con MIG, hay que tener en cuenta varias consideraciones importantes. En primer lugar, MIG está diseñado únicamente para tareas de cálculo y no admite aplicaciones gráficas. Si necesitas ejecutar aplicaciones gráficas, es necesario desactivar MIG.

La funcionalidad MIG y el paso de instancias de GPU dentro de máquinas virtuales sólo son compatibles con sistemas operativos basados en Linux. No podrás utilizar MIG con Microsoft Hyper-V o VMware ESXi. En estos casos, se recomienda desactivar MIG y realizar el paso completo de la GPU.

Cabe señalar que las instancias de GPU carecen de conectividad P2P, incluso cuando se colocan en el mismo contenedor. Esta limitación, provocada por los mecanismos de aislamiento internos, puede plantear problemas importantes para las infraestructuras creadas con el orquestador Kubernetes. Sin embargo, las soluciones de software de terceros pueden ayudar a superar este problema.

MIG es más adecuado para servidores con GPU del mismo modelo. Los usuarios de LeaderGPU no tienen que preocuparse por esto, ya que todas las configuraciones disponibles están diseñadas teniendo en cuenta la compatibilidad con MIG. Para habilitar MIG, tendrás que ejecutar comandos específicos. Si estás utilizando los servicios NVIDIA® System Management y Data Center GPU Manager, asegúrate de detenerlos primero:

sudo systemctl stop nvsm dcgm

Después de asegurarte de que no hay trabajos activos en la GPU, procede a cambiar los modos. Por ejemplo, el siguiente comando activa MIG en la GPU ID 0:

sudo nvidia-smi -i 0 -mig 1

Repita este comando para cada GPU que desee dividir en instancias. A continuación, examinemos los perfiles disponibles para esta división:

sudo nvidia-smi mig -lgip

Seleccione los perfiles deseados y anote sus ID. Supongamos que tenemos una GPU NVIDIA® A100. Dividiremos la tarjeta en cuatro instancias de GPU: la primera tendrá tres instancias Compute y 20 GB de memoria de vídeo, mientras que las otras tres instancias de GPU tendrán una instancia Compute y 5 GB de memoria de vídeo.

Tenga en cuenta que el sistema aplica los perfiles de forma secuencial. Para evitar posibles errores, especifique siempre primero el perfil con el mayor número de instancias de cálculo y memoria:

sudo nvidia-smi mig -cgi 9,19,19,19 -C
Successfully created GPU instance ID  2 on GPU  0 using profile MIG 3g.20gb (ID  9)
Successfully created compute instance ID  0 on GPU  0 GPU instance ID  2 using profile MIG 3g.20gb (ID  2)
Successfully created GPU instance ID  7 on GPU  0 using profile MIG 1g.5gb (ID 19)
Successfully created compute instance ID  0 on GPU  0 GPU instance ID  7 using profile MIG 1g.5gb (ID  0)
Successfully created GPU instance ID  8 on GPU  0 using profile MIG 1g.5gb (ID 19)
Successfully created compute instance ID  0 on GPU  0 GPU instance ID  8 using profile MIG 1g.5gb (ID  0)
Successfully created GPU instance ID  9 on GPU  0 using profile MIG 1g.5gb (ID 19)
Successfully created compute instance ID  0 on GPU  0 GPU instance ID  9 using profile MIG 1g.5gb (ID  0)

De lo contrario, podría producirse un error:

Failed to create GPU instances: Insufficient Resources

Después de aplicar el perfil, compruebe las instancias de GPU disponibles:

sudo nvidia-smi mig -lgi
+-------------------------------------------------------+
| GPU instances:                                        |
| GPU   Name             Profile  Instance   Placement  |
|                          ID       ID       Start:Size |
|=======================================================|
|   0  MIG 1g.5gb          19        7          0:1     |
+-------------------------------------------------------+
|   0  MIG 1g.5gb          19        8          1:1     |
+-------------------------------------------------------+
|   0  MIG 1g.5gb          19        9          2:1     |
+-------------------------------------------------------+
|   0  MIG 3g.20gb          9        2          4:4     |
+-------------------------------------------------------+

Ahora puede restablecer el funcionamiento de NVSM y DCGM:

sudo systemctl start nvsm dcgm

Gestión alternativa

El método de gestión estándar mediante la utilidad nvidia-smi tiene varios inconvenientes. En primer lugar, sólo divide los recursos en un número fijo de instancias. En segundo lugar, la reconfiguración requiere descargar todas las tareas informáticas de la memoria y detener las aplicaciones. Este enfoque es inadecuado para la computación en nube, ya que limita el escalado automático. Para aprovechar al máximo MIG, se necesita software adicional como Run:ai.

Esta plataforma ofrece una gestión más flexible de la utilización de la GPU, complementando MIG con su propia tecnología de fraccionamiento. Garantiza que cada aplicación en ejecución reciba su parte de potencia de cálculo. A través de una aplicación de monitorización especializada, la plataforma asigna recursos de computación iguales a cada aplicación y redistribuye los recursos no utilizados entre otras aplicaciones activas.

Run:ai también garantiza la ejecución paralela de las cargas de trabajo, maximizando la utilización de los recursos. Como la división se basa en software, se presta especial atención a la gestión de la VRAM para evitar colisiones.

Más allá de la gestión dinámica, la plataforma permite reservar recursos informáticos específicos para aplicaciones concretas. Esto elimina la necesidad de descargar el resto de aplicaciones, ya que la partición se produce sobre la marcha. La plataforma garantiza que este proceso no interrumpa la ejecución de las aplicaciones de la GPU.

Véase también:



Actualizado: 28.03.2025

Publicado: 04.10.2024


?Tiene más preguntas? ?Escribanos!

By clicking «I Accept» you confirm that you have read and accepted the website Terms and Conditions, Privacy Policy, and Moneyback Policy.