cGPU es un módulo de Alibaba Cloud que proporciona aislamiento de memoria y potencia de cómputo de GPU. Esto permite que varios contenedores compartan una sola GPU sin interferir con los recursos de los demás. Este tema aborda los requisitos de compatibilidad y los problemas conocidos que debe revisar antes de desplegar o actualizar cGPU.
Requisitos previos
Un nodo GPU tiene habilitado el aislamiento de cGPU si cuenta con alguna de las siguientes etiquetas:
ack.node.gpu.schedule=cgpuack.node.gpu.schedule=core_memcgpu=true
Para consultar la correspondencia de versiones entre los componentes ack-ai-installer y cGPU, revise las notas de versión de ack-ai-installer.
Para obtener más información sobre cGPU, consulte la documentación oficial de NVIDIA.
Limitaciones
Máximo de pods por GPU: cGPU admite un máximo de 20 pods en una sola GPU. Los pods programados en una GPU que superen este límite no se pueden ejecutar.
Compatibilidad con sistemas operativos optimizados para contenedores: Las versiones 1.5.18 y anteriores de cGPU pueden provocar que el primer pod en un nodo cGPU no se inicie al usar una imagen de sistema operativo optimizado para contenedores de Alibaba Cloud. Actualice a
ack-ai-installer ≥ 1.12.6para resolver este problema.Riesgo de kernel panic: Las versiones 1.5.7 y anteriores de cGPU presentan un interbloqueo conocido en el controlador del kernel que causa kernel panics en Linux. Actualice a
cGPU ≥ 1.5.10.
Compatibilidad de versiones de cGPU
Compatibilidad con controladores NVIDIA
|
cGPU version |
Supported NVIDIA drivers |
Not supported |
|
1.5.3 – 1.5.20 |
Series 460, 470, 510, 515, 525, 535, 550, 560, 565, 570, 575 |
— |
|
1.0.5 – 1.5.2 |
460; 470 ≤ 470.161.03; 510 ≤ 510.108.03; 515 ≤ 515.86.01; 525 ≤ 525.89.03 |
Series 535, 550, 560, 565, 570, 575 |
|
0.8.13 – 1.0.3 |
460; 470 ≤ 470.161.03 |
Series 510, 515, 525, 535, 550, 560, 565, 570, 575 |
Compatibilidad con familias de instancias
|
cGPU version |
Supported instance families |
Not supported |
|
1.5.19 – 1.5.20 |
gn6i/gn6e/gn6v/gn6t/ebmgn6i/ebmgn6t/ebmgn6e; gn7i/gn7/gn7e/ebmgn7i/ebmgn7e; gn8t/ebmgn8t; gn8is/gn8v/ebmgn8is/ebmgn8v; gn8ia/ebmgn8ia; ebmgn9t |
— |
|
1.5.9 – 1.5.18 |
gn6i/gn6e/gn6v/gn6t/ebmgn6i/ebmgn6t/ebmgn6e; gn7i/gn7/gn7e/ebmgn7i/ebmgn7e; gn8t/ebmgn8t; gn8is/gn8v/ebmgn8is/ebmgn8v; gn8ia/ebmgn8ia |
ebmgn9t |
|
1.5.7 – 1.5.8 |
gn6i/gn6e/gn6v/gn6t/ebmgn6i/ebmgn6t/ebmgn6e; gn7i/gn7/gn7e/ebmgn7i/ebmgn7e; gn8t/ebmgn8t; gn8is/gn8v/ebmgn8is/ebmgn8v |
gn8ia/ebmgn8ia; ebmgn9t |
|
1.5.5 – 1.5.6 |
gn6i/gn6e/gn6v/gn6t/ebmgn6i/ebmgn6t/ebmgn6e; gn7i/gn7/gn7e/ebmgn7i/ebmgn7e; gn8t/ebmgn8t |
gn8is/gn8v/ebmgn8is/ebmgn8v; gn8ia/ebmgn8ia; ebmgn9t |
|
1.0.3 – 1.5.3 |
gn6i/gn6e/gn6v/gn6t/ebmgn6i/ebmgn6t/ebmgn6e; gn7i/gn7/gn7e/ebmgn7i/ebmgn7e |
gn8t/ebmgn8t; gn8is/gn8v/ebmgn8is/ebmgn8v; gn8ia/ebmgn8ia; ebmgn9t |
|
0.8.13 – 0.8.17 |
gn6i/gn6e/gn6v/gn6t/ebmgn6i/ebmgn6t/ebmgn6e |
gn7i/gn7/gn7e/ebmgn7i/ebmgn7e; gn8t/ebmgn8t; gn8is/gn8v/ebmgn8is/ebmgn8v; gn8ia/ebmgn8ia; ebmgn9t |
Compatibilidad con nvidia-container-toolkit
|
cGPU version |
Supported nvidia-container-toolkit |
|
1.0.10 – 1.5.20 |
≤ 1.10 y 1.11 – 1.17 |
|
0.8.13 – 1.0.9 |
Solo ≤ 1.10 (1.11 – 1.17 no compatible) |
Compatibilidad con versiones del kernel
|
cGPU version |
Supported kernel versions |
|
1.5.9 – 1.5.20 |
3.x, 4.x, 5.x ≤ 5.15 |
|
1.5.3 – 1.5.8 |
3.x, 4.x, 5.x ≤ 5.10 |
|
1.0.3 – 1.5.2 |
3.x, 4.x, 5.x ≤ 5.1 |
|
0.8.17 |
3.x, 4.x, 5.x ≤ 5.0 |
|
0.8.10 – 0.8.13 |
3.x, 4.x (5.x no compatible) |
Solución de problemas
Ocurre un kernel panic de Linux al usar cGPU
Un interbloqueo en el controlador del kernel de cGPU provoca que los procesos concurrentes se bloqueen entre sí, lo que resulta en un kernel panic de Linux. Esto afecta a las versiones 1.5.7 y anteriores de cGPU.
Actualice a cGPU ≥ 1.5.10 para prevenir errores de kernel en nuevos servicios. Para obtener instrucciones, consulte Actualizar la versión de cGPU de un nodo.
Un pod de cGPU no se inicia en un nodo con sistema operativo optimizado para contenedores
Al usar una imagen de sistema operativo optimizado para contenedores de Alibaba Cloud, es posible que el primer pod de cGPU en un nodo no se inicie y muestre un error similar al siguiente:
Error: failed to create containerd task: failed to create shim task: OCI runtime create failed: runc create failed: unable to start container process: error during container init: error running prestart hook #0: exit status 2, stdout: , stderr: Auto-detected mode as 'legacy': unknown
Esto afecta a las versiones 1.5.18 y anteriores de cGPU. Actualice a ack-ai-installer ≥ 1.12.6. Para obtener instrucciones, consulte Upgrade the shared GPU scheduling component.
Ocurre un error de modprobe al crear un pod de cGPU
Si observa alguno de los siguientes errores al crear un pod de cGPU:
modprobe: ERROR: could not insert 'cgpu_procfs': Operation not permitted
modprobe: ERROR: could not insert 'km': Operation not permitted
La versión del sistema operativo no es compatible con cGPU. Actualice el componente cGPU a la versión más reciente. Para obtener instrucciones, consulte Upgrade the shared GPU scheduling component.
El contenedor de un pod de cGPU no se crea o finaliza por tiempo de espera agotado
Este problema se debe a una incompatibilidad entre las versiones 1.0.10 y anteriores de cGPU y las versiones 1.11 y posteriores de nvidia-container-toolkit. Actualice el componente cGPU a la versión más reciente. Para obtener instrucciones, consulte Upgrade the shared GPU scheduling component.
Aparece el error "Error occurs when creating cGPU instance: unknown"
cGPU admite un máximo de 20 pods por GPU. Si la cantidad de pods programados en una GPU supera este límite, los pods subsiguientes no se pueden ejecutar y aparece este error. Mantenga la cantidad de pods por GPU en 20 o menos.
Aparece el error "Failed to initialize NVML" al ejecutar nvidia-smi
Al ejecutar nvidia-smi en un pod que usa recursos de programación compartida de GPU, se obtiene el siguiente resultado:
Failed to initialize NVML: GPU access blocked by operating system
Esto se debe a una incompatibilidad entre las versiones 1.5.2 y anteriores de cGPU y las versiones de controladores GPU publicadas después de julio de 2023. Para consultar la lista de fechas de publicación de controladores GPU, visite Fechas de publicación de controladores GPU. Para conocer las versiones predeterminadas de controladores GPU compatibles con las versiones de clústeres ACK, consulte Lista de versiones de controladores NVIDIA compatibles con ACK.
Actualice el componente cGPU a la versión más reciente. Para obtener instrucciones, consulte Upgrade the shared GPU scheduling component.