Práticas recomendadas para minimizar as interrupções durante as atualizações do driver da GPU - Amazon SageMaker

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Práticas recomendadas para minimizar as interrupções durante as atualizações do driver da GPU

SageMaker O Model Deployment atualiza os drivers de GPU nas instâncias de ML para opções de inferência em tempo real, em lote e assíncrona ao longo do tempo para fornecer aos clientes acesso às melhorias dos fornecedores de drivers. Abaixo, você pode ver a versão da GPU compatível com cada opção de inferência. Diferentes versões de driver podem alterar a forma como seu modelo interage com as GPUs. Abaixo estão algumas estratégias para ajudar você a entender como seu aplicativo funciona com diferentes versões de drivers.

Versões atuais e famílias de instâncias compatíveis

O Amazon SageMaker Inference oferece suporte aos seguintes drivers e famílias de instâncias:

Serviço GPU Versão do driver Tipos de instância
Tempo real NVIDIA 470.57.02 ml.p2.*, ml.p3.*, ml.p4d.*, ml.p4de.*, ml.g4dn.*, ml.g5.*
535.54.03 ml.p5.*, ml.g6. *
Lote NVIDIA 470.57.02 ml.p2.*, ml.p3.*, ml.p4d.*, ml.p4de.*, ml.g4dn.*, ml.g5*
Inferência assíncrona NVIDIA 470.57.02 ml.p2.*, ml.p3.*, ml.p4d.*, ml.p4de.*, ml.g4dn.*, ml.g5*
535.54.03 ml.p5.*, ml.g6. *

Solucione problemas em seu contêiner de modelo com recursos de GPU

Se você encontrar algum problema ao executar sua workload da GPU, consulte as orientações a seguir:

Execute o comando nvidia-smi (NVIDIA System Management Interface) de dentro do contêiner do Docker. Se a interface de gerenciamento do sistema NVIDIA detectar um erro de detecção de GPU ou erro de inicialização da NVIDIA, ela retornará a seguinte mensagem de erro:

Failed to initialize NVML: Driver/library version mismatch

Com base no seu caso de uso, siga estas práticas recomendadas para resolver a falha ou o erro:

Consulte a página da interface de gerenciamento do sistema NVIDIA no site da NVIDIA para obter mais informações.

Se sua instância de GPU usa versões do driver NVIDIA que não são compatíveis com a versão CUDA no contêiner do Docker, a implantação de um endpoint falhará com a seguinte mensagem de erro:

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

Com base no seu caso de uso, siga estas práticas recomendadas para resolver a falha ou o erro:

Práticas recomendadas para trabalhar com versões de driver incompatíveis

Veja a seguir informações sobre como atualizar o driver da GPU:

Nenhuma ação é necessária. A NVIDIA oferece compatibilidade com versões anteriores.

Se for uma pequena diferença de versão, nenhuma ação será necessária. A NVIDIA oferece compatibilidade futura de versões secundárias.

Se houver uma grande diferença de versão, o pacote de compatibilidade CUDA precisará ser instalado. Consulte o Pacote de compatibilidade CUDA na documentação da NVIDIA.

Importante

O Pacote de compatibilidade CUDA não é compatível com versões anteriores, por isso precisa ser desabilitado se a versão do driver na instância for superior à versão do pacote de compatibilidade CUDA.

Certifique-se de que nenhum pacote de driver NVIDIA esteja incluído na imagem, o que pode causar conflito com a versão do driver NVIDIA no host.

Para verificar se a versão do driver Nvidia da plataforma é compatível com a versão do Pacote de compatibilidade CUDA instalada no contêiner do modelo, consulte a documentação do CUDA. Se a versão do driver Nvidia da plataforma não suportar a versão do Pacote de compatibilidade CUDA, você poderá desativar ou remover esse pacote da imagem do contêiner do modelo. Se a versão das bibliotecas de compatibilidade CUDA for compatível com a versão mais recente do driver da Nvidia, sugerimos que você ative o Pacote de compatibilidade CUDA com base na versão detectada do driver Nvidia para compatibilidade futura adicionando o trecho de código abaixo ao script shell de inicialização do contêiner (no script). ENTRYPOINT

O script demonstra como alternar dinamicamente o uso do Pacote de compatibilidade CUDA com base na versão detectada do driver Nvidia no host implantado para o contêiner do seu modelo. Ao SageMaker lançar uma versão mais recente do driver Nvidia, o CUDA Compatibility Package instalado pode ser desligado automaticamente se o aplicativo CUDA for suportado nativamente no novo driver.

#!/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