Tutoriales

Cómo pasar la GPU NVIDIA al contenedor Proxmox VE 8 para aceleración CUDA/AI y transcodificación de medios

Si tiene una GPU NVIDIA instalada en su servidor Proxmox VE, puede pasarla a un contenedor Proxmox VE LXC y usarla dentro del contenedor para aceleración CUDA/AI (es decir, TensorFlow, PyTorch). También puede utilizar las GPU NVIDIA para transcodificación de medios, transmisión de video, etc. en un contenedor Proxmox VE LXC con Plex Media Server o NextCloud (por ejemplo) instalado.

En este artículo, le mostraremos cómo pasar una GPU NVIDIA a un contenedor Proxmox VE 8 LXC para que pueda usarlo para aceleración CUDA/AI, transcodificación de medios u otras tareas que requieran una GPU NVIDIA.

Temas de contenido:

  1. Instale el controlador de GPU NVIDIA en Proxmox VE 8
  2. Asegúrese de que el módulo central de la GPU NVIDIA se cargue automáticamente en Proxmox VE 8
  3. Creación de un contenedor Proxmox VE 8 LXC para transferencia de GPU NVIDIA
  4. Configuración de contenedores LXC en Promox VE 8 para transferencia de GPU NVIDIA
  5. Instale el controlador de GPU NVIDIA en el contenedor Proxmox VE 8 LXC
  6. Instale NVIDIA CUDA y cuDNN en el contenedor Proxmox VE 8 LXC
  7. Compruebe si la aceleración NVIDIA CUDA se ejecuta en el contenedor Proxmox VE 8 LXC
  8. en conclusión
  9. Referirse a

Instale el controlador de GPU NVIDIA en Proxmox VE 8

Para entregar una GPU NVIDIA a un contenedor Proxmox VE LXC, debe instalar el controlador de GPU NVIDIA en el servidor Proxmox VE 8. Si necesita ayuda para instalar la última versión del controlador oficial de GPU NVIDIA en su servidor Proxmox VE 8, lea este artículo.

Asegúrese de que el módulo central de la GPU NVIDIA se cargue automáticamente en Proxmox VE 8

Después de instalar el controlador de GPU NVIDIA en el servidor Proxmox VE 8, debe asegurarse de que el módulo central de GPU NVIDIA se cargue automáticamente al inicio.

Primero, cree un nuevo archivo, como «nvidia.conf», en el directorio «/etc/modules-load.d/» y ábralo usando el editor de texto nano.

$ nanómetro /ETC/Cargando módulo.d/nvidia.conf

Añade las siguientes líneas y presiona + X seguido de «Y» y Guarde el archivo «nvidia.conf»:

Para que los cambios surtan efecto, actualice el archivo «initramfs» usando el siguiente comando:

Por alguna razón, Proxmox VE 8 no crea los archivos de dispositivo GPU NVIDIA necesarios en el directorio «/dev/». Sin estos archivos de dispositivo, los contenedores Promox VE 8 LXC no podrán utilizar las GPU NVIDIA.

Para garantizar que Proxmox VE 8 cree el archivo del dispositivo GPU NVIDIA en el directorio «/dev/» al iniciar, cree un archivo de reglas udev «70-nvidia.rules» en «/etc/udev/rules.d/». directorio y ábralo usando el editor de texto nano como se muestra a continuación:

$ nanómetro /ETC/Udev/Reglas.d/70-nvidia.reglas

Ingrese las siguientes líneas en el archivo «70-nvidia.rules» y haga clic en + X seguido de «Y» y Guardar el archivo:

# Cree los archivos necesarios del dispositivo NVIDIA en /dev/*

centro==«Nvidia»Ejecutar +=«/bin/bash -c ‘/usr/bin/nvidia-smi -L && /bin/chmod 0666 /dev/nvidia*'»

centro==«nvidia_uvm»Ejecutar +=«/bin/bash -c ‘/usr/bin/nvidia-modprobe -c0 -u && /bin/chmod 0666 /dev/nvidia-uvm*'»

Para que los cambios surtan efecto, reinicie el servidor Proxmox VE 8 de la siguiente manera:

Después de que se inicie el servidor Proxmox VE 8, los módulos principales de NVIDIA deberían cargarse automáticamente, como se muestra en la siguiente captura de pantalla:

Los archivos del dispositivo NVIDIA requeridos también deben completarse en el directorio «/dev» del servidor Proxmox VE 8. Tome nota del ID de grupo CG del perfil del dispositivo NVIDIA. Debe permitir que estos ID de CGroup en el contenedor LXC pasen las GPU NVIDIA desde el servidor Proxmox VE 8. En nuestro ejemplo, los ID de CGroup son 195, 237 y 226.

$ LS -lh /Desarrollador/NVIDIA*

$ LS -lh /Desarrollador/Delhi

Creación de un contenedor Proxmox VE 8 LXC para transferencia de GPU NVIDIA

Usamos el contenedor Ubuntu 22.04 LTS Proxmox VE 8 LXC para la demostración en este artículo porque las bibliotecas NVIDIA CUDA y NVIDIA cuDNN son fáciles de instalar en Ubuntu 22.04 LTS desde el repositorio de paquetes de Ubuntu y es más fácil probar si la aceleración NVIDIA CUDA está funcionando correctamente. . También puede utilizar otras distribuciones de Linux si lo desea. En este caso, las instrucciones de instalación de NVIDIA CUDA y NVIDIA cuDNN serán diferentes. Asegúrese de seguir las instrucciones de instalación de NVIDIA CUDA y NVIDIA cuDNN para la distribución de Linux que desee.

Si necesita ayuda para configurar un contenedor Proxmox VE 8 LXC, Lee este artículo.

Configuración de contenedores LXC en Promox VE 8 para transferencia de GPU NVIDIA

Para configurar un contenedor LXC (por ejemplo, el contenedor 102) para el paso a través de GPU NVIDIA, use el editor de texto Nano para abrir el archivo de configuración del contenedor LXC desde el shell Proxmox VE, como se muestra a continuación:

$ nanómetro /ETC/Experiencia personal/Changshá/102.conf

Escriba las siguientes líneas al final del archivo de configuración del contenedor LXC:

lxc.cgrupo.dispositivos.permitir:c 195:* rwm

lxc.cgrupo.dispositivos.permitir:c Capítulo 237:* rwm

lxc.cgrupo.dispositivos.permitir:c 226:* rwm

entrada.lxc.mount: /Desarrollador/desarrollador nvidia0/nvidia0 ninguno vinculanteelectivo,crear=documento

entrada.lxc.mount: /Desarrollador/nvidia desarrollo corp./sin virus vinculanteelectivo,crear=documento

entrada.lxc.mount: /Desarrollador/desarrollo de nvidia-modeset/nvidia-modeset Ninguno vinculanteelectivo,crear=documento

entrada.lxc.mount: /Desarrollador/desarrollo nvidia-uvm/nvidia-uvm Ninguno vinculanteelectivo,crear=documento

entrada.lxc.mount: /Desarrollador/desarrollo de herramientas nvidia-uvm/nvidia-uvm-herramientas ninguna vinculanteelectivo,crear=documento

entrada.de.montaje.lxc: /Desarrollador/desarrollo de delhi/Delhi Ninguno vinculanteelectivo,crear=Tabla de contenido

Asegúrese de reemplazar el ID de CGroup en la línea «lxc.cgroup.devices.allow» del archivo de configuración del contenedor LXC.Cuando termine, presione + X seguido de «Y» y Guarde el perfil del contenedor LXC.

Ahora, inicie el contenedor LXC desde el tablero de Proxmox VE 8.

Si la transferencia de GPU de NVIDIA se realiza correctamente, el contenedor LXC debería iniciarse sin errores y debería ver el archivo del dispositivo NVIDIA en el directorio «/dev» del contenedor.

$ LS -lh /Desarrollador/NVIDIA*

$ LS -lh /Desarrollador/Delhi

Instale el controlador de GPU NVIDIA en el contenedor Proxmox VE 8 LXC

notas: Usamos el contenedor Ubuntu 22.04 LTS LXC en el servidor Proxmox VE 8 para demostración. Si está utilizando otra distribución de Linux en contenedores LXC, sus instrucciones serán ligeramente diferentes a las nuestras. Por lo tanto, asegúrese de ajustar los comandos según la distribución de Linux que esté utilizando en el contenedor.

Puede utilizar el comando «nvidia-smi» para encontrar la versión del controlador NVIDIA GPU instalada en el servidor Proxmox VE 8. Como puede ver, tenemos la versión 535.146.02 del controlador NVIDIA GPU instalada en nuestro servidor Proxmox VE 8. Por lo tanto, también debemos instalar el controlador NVIDIA GPU versión 535.146.02 en el contenedor LXC.

Primero, instale CURL en el contenedor LXC de la siguiente manera:

$ Fácil de actualizar && fácil Instalar ondulado -y

CURL debe instalarse en el contenedor LXC.

Para instalar la versión 535.146.02 del controlador NVIDIA GPU (suponiendo), exporte la variable de entorno NVIDIA_VERSION y ejecute el comando CURL (en el contenedor) para descargar la versión requerida del archivo de instalación del controlador NVIDIA GPU.

$ salida Versión_NVIDIA=«535.146.02»

$ rizo -O «https://us.download.nvidia.com/XFree86/Linux-x86_64/${NVIDIA_VERSION}/NVIDIA-Linux-x86_64-${NVIDIA_VERSION}. correr»

Se debe descargar la versión correcta del archivo de instalación del controlador NVIDIA GPU en el contenedor LXC, como se muestra en la siguiente captura de pantalla:

Ahora agregue permisos ejecutables al archivo de instalación del controlador de la GPU NVIDIA en el contenedor de la siguiente manera:

$ chmod +x NVIDIA-Linux-x86_64-535.146.02.run

Para instalar el controlador de GPU NVIDIA en el contenedor, ejecute el archivo de instalación del controlador de GPU NVIDIA con «–no-kernel-module» Las opciones son las siguientes:

$ ./NVIDIA-Linux-x86_64-535.146.02.run –Sin módulo central

Una vez que vea esta opción, seleccione Aceptar y presione .

Seleccione Aceptar y presione .

Seleccione «Sí» y presione .

Seleccione Aceptar y presione .

El controlador de GPU NVIDIA se está instalando en el contenedor LXC. Tardará unos segundos en completarse.

Cuando vea este mensaje, seleccione «Sí» y presione .

Seleccione Aceptar y presione . El controlador de GPU NVIDIA debe instalarse en el contenedor LXC.

Para confirmar que el controlador de la GPU NVIDIA esté instalado y funcionando correctamente, ejecute el comando «nvidia-smi» en el contenedor LXC. Como puede ver, el controlador de GPU NVIDIA versión 535.146.02 está instalado en el contenedor LXC (la misma versión instalada en el servidor Proxmox VE 8) y detecta correctamente nuestra GPU NVIDIA RTX 4070.

Instale NVIDIA CUDA y cuDNN en el contenedor Proxmox VE 8 LXC

notas: Usamos el contenedor Ubuntu 22.04 LTS LXC en el servidor Proxmox VE 8 para demostración. Si está utilizando otra distribución de Linux en contenedores LXC, sus instrucciones serán ligeramente diferentes a las nuestras. Por lo tanto, asegúrese de ajustar los comandos según la distribución de Linux que esté utilizando en el contenedor.

Para instalar NVIDIA CUDA y cuDNN en el contenedor Ubuntu 22.04 LTS Proxmox VE 8, ejecute los siguientes comandos en el contenedor:

$ fácil Instalar Cree el kit de herramientas nvidia-cuda necesario nvidia-cudnn

Para confirmar la instalación, presione «Y» y luego .

Descarga e instalación de los paquetes necesarios. Tardará un poco en completarse.

Una vez que vea esta ventana, seleccione Aceptar y haga clic .

Selecciona «Acepto» y presiona .

La instalación debería continuar.

El instalador está descargando el archivo de la biblioteca NVIDIA cuDNN de NVIDIA. El archivo es grande por lo que tardará bastante en completarse.

Después de descargar el archivo de la biblioteca NVIDIA cuDNN, la instalación debería continuar con normalidad.

En este punto, NVIDIA CUDA y cuDNN deberían estar instalados en el contenedor Ubuntu 22.04 LTS Proxmox VE 8 LXC.

Compruebe si la aceleración NVIDIA CUDA se ejecuta en el contenedor Proxmox VE 8 LXC

Para verificar que NVIDIA CUDA se haya instalado correctamente, verifique que el comando «nvcc» esté disponible en el contenedor Proxmox VE 8 de la siguiente manera:

Como podéis ver, tenemos NVIDIA CUDA 11.5 instalado en el contenedor Proxmox VE 8.

Ahora, escribamos, compilemos y ejecutemos un programa CUDA C simple para ver si todo funciona como se esperaba.

Primero, cree un directorio de proyecto «~/code» en el contenedor Proxmox VE 8 para mantener los archivos organizados.

Navegue hasta el directorio del proyecto «~/code» como se muestra a continuación:

Cree un nuevo archivo, como «hello.cu», en el directorio «~/code» del contenedor Proxmox VE 8 y ábralo usando el editor de texto nano:

Ingrese las siguientes líneas de código en el archivo «hello.cu»:

#incluir

__global__ no válido decir Hola() {
Función de impresión(«¡Hola mundo GPU!\norte«);
}

maestro de enteros() {
Función de impresión(«¡Hola mundo de la CPU!\norte«);

di hola<1,1>>();
sincronización de dispositivos cuda();

devolver ;
}

Cuando termine, presione + X seguido de «Y» y Guarde el archivo «hola.cu».

Para compilar el programa CUDA «hello.cu» en el contenedor Proxmox VE 8, ejecute el siguiente comando:

Ahora puede ejecutar el programa CUDA «hola» en el contenedor Proxmox VE 8 de la siguiente manera:

Si el contenedor Proxmox VE 8 puede usar GPU NVIDIA para la aceleración NVIDIA CUDA, el programa imprimirá dos líneas, como se muestra en la imagen a continuación.

Si no se puede acceder a la GPU NVIDIA desde el contenedor Proxmox VE 8, el programa solo imprimirá la primera línea «¡Hola mundo desde la CPU!» en lugar de la segunda línea.

en conclusión

En este artículo, le mostramos cómo pasar una GPU NVIDIA desde un host Proxmox VE 8 a un contenedor Proxmox VE 8 LXC. También le mostramos cómo instalar la misma versión del controlador de GPU NVIDIA en el contenedor Proxmox VE 8 como host de Proxmox VE. Finalmente, le mostramos cómo instalar NVIDIA CUDA y NVIDIA cuDNN en un contenedor Ubuntu 22.04 LTS Proxmox VE 8, y cómo compilar y ejecutar un programa NVIDIA CUDA simple en un contenedor Proxmox VE 8.

Referirse a:

LEER  Exploit PoC para Microsoft Exchange 2021

Publicaciones relacionadas

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Botón volver arriba