Prácticas recomendadas para reducir al mínimo las interrupciones durante las actualizaciones de controladores de la GPU - Amazon SageMaker

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Prácticas recomendadas para reducir al mínimo las interrupciones durante las actualizaciones de controladores de la GPU

SageMaker Model Deployment actualiza los controladores de GPU en las instancias de ML para ofrecer opciones de inferencia en tiempo real, por lotes y asíncrona a lo largo del tiempo para brindar a los clientes acceso a las mejoras de los proveedores de controladores. A continuación, puede ver la versión de GPU compatible con cada opción de inferencia. Las diferentes versiones del controlador pueden cambiar la forma en que el modelo interactúa con las GPU. A continuación, se muestran algunas estrategias que le ayudarán a entender cómo funciona su aplicación con las distintas versiones de controladores.

Versiones actuales y familias de instancias compatibles

Amazon SageMaker Inference admite los siguientes controladores y familias de instancias:

Servicio GPU Versión de controlador Tipos de instancias
Tiempo real NVIDIA 470.57.02 ml.p2.*, ml.p3.*, ml.p4d.*, ml.p4de.*, ml.g4dn.*, ml.g5.*
53554,03 ml.p5.*, ml.g6. *
Lote NVIDIA 470.57.02 ml.p2.*, ml.p3.*, ml.p4d.*, ml.p4de.*, ml.g4dn.*, ml.g5*
Inferencia asíncrona NVIDIA 47057,02 ml.p2.*, ml.p3.*, ml.p4d.*, ml.p4de.*, ml.g4dn.*, ml.g5*
53554,03 ml.p5.*, ml.g6. *

Solucione los problemas de su contenedor de modelos con las capacidades de la GPU

Si tiene algún problema al ejecutar la carga de trabajo de la GPU, consulte las siguientes instrucciones:

Ejecute el comando nvidia-smi (Interfaz de administración del sistema NVIDIA) desde el contenedor de Docker. Si la interfaz de administración del sistema NVIDIA detecta un error de detección de la GPU o un error de inicialización de NVIDIA, mostrará el siguiente mensaje de error:

Failed to initialize NVML: Driver/library version mismatch

Según su caso de uso, siga estas prácticas recomendadas para resolver el fallo o error:

Consulte la página de la interfaz de administración del sistema NVIDIA en el sitio web de NVIDIA para obtener más información.

Si la instancia de GPU utiliza versiones de controladores NVIDIA que no son compatibles con la versión CUDA del contenedor de Docker, no se podrá implementar un dispositivo de punto de conexión y aparecerá el siguiente mensaje de error:

Failure reason CannotStartContainerError. Please ensure the model container for variant <variant_name> starts correctly when invoked with 'docker run <image> serve'

Según su caso de uso, siga estas prácticas recomendadas para resolver el fallo o error:

Prácticas recomendadas para trabajar con versiones de controladores que no coinciden

A continuación figura información sobre cómo actualizar el controlador de GPU:

No hay que hacer nada más. NVIDIA ofrece compatibilidad con versiones anteriores.

Si se trata de una diferencia de versión poco importante, no hay que hacer nada más. NVIDIA proporciona compatibilidad con versiones posteriores poco importantes.

Si se trata de una diferencia de versión importante, será necesario instalar CUDA Compatibility Package. Consulte CUDA Compatibility Package en la documentación de NVIDIA.

importante

CUDA Compatibility Package no es compatible con versiones anteriores, por lo que es necesario deshabilitarlo si la versión del controlador de la instancia es superior a la versión de CUDA Compatibility Package.

Asegúrese de que no haya paquetes de controladores de NVIDIA agrupados en la imagen, ya que podrían provocar conflictos con la versión del controlador de NVIDIA alojada.

Para comprobar si la versión del controlador de Nvidia de la plataforma es compatible con la versión de CUDA Compatibility Package instalada en el contenedor del modelo, consulte la documentación de CUDA. Si la versión del controlador de Nvidia de la plataforma no es compatible con la versión de CUDA Compatibility Package, puede deshabilitar o eliminar CUDA Compatibility Package de la imagen del contenedor del modelo. Si la versión de las bibliotecas de compatibilidad de CUDA es compatible con la última versión del controlador de Nvidia, le sugerimos que habilite CUDA Compatibility Package en función de la versión del controlador de Nvidia detectada para una futura compatibilidad añadiendo el siguiente fragmento de código en el guión de intérprete de comandos de inicio del contenedor (en el guión ENTRYPOINT).

El guión muestra cómo cambiar dinámicamente el uso de CUDA Compatibility Package en función de la versión del controlador Nvidia detectada en el host implementado para el contenedor de modelos. Cuando se SageMaker lanza una versión más reciente del controlador Nvidia, el paquete de compatibilidad CUDA instalado se puede desactivar automáticamente si la aplicación CUDA es compatible de forma nativa con el nuevo controlador.

#!/bin/bash verlte() { [ "$1" = "$2" ] && return 1 || [ "$2" = "`echo -e "$1\n$2" | sort -V | head -n1`" ] } if [ -f /usr/local/cuda/compat/libcuda.so.1 ]; then cat /usr/local/cuda/version.txt CUDA_COMPAT_MAX_DRIVER_VERSION=$(readlink /usr/local/cuda/compat/libcuda.so.1 |cut -d'.' -f 3-) echo "CUDA compat package requires Nvidia driver ⩽${CUDA_COMPAT_MAX_DRIVER_VERSION}" NVIDIA_DRIVER_VERSION=$(sed -n 's/^NVRM.*Kernel Module *\([0-9.]*\).*$/\1/p' /proc/driver/nvidia/version 2>/dev/null || true) echo "Current installed Nvidia driver version is ${NVIDIA_DRIVER_VERSION}" if [ $(verlte $CUDA_COMPAT_MAX_DRIVER_VERSION $NVIDIA_DRIVER_VERSION) ]; then echo "Setup CUDA compatibility libs path to LD_LIBRARY_PATH" export LD_LIBRARY_PATH=/usr/local/cuda/compat:$LD_LIBRARY_PATH echo $LD_LIBRARY_PATH else echo "Skip CUDA compat libs setup as newer Nvidia driver is installed" fi else echo "Skip CUDA compat libs setup as package not found" fi