

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

# Bonnes pratiques pour minimiser les interruptions lors de la mise à jour des pilotes de GPU.
<a name="inference-gpu-drivers"></a>

SageMaker AI Model Deployment met à jour les pilotes GPU sur les instances ML pour les options d'inférence en temps réel, par lots et asynchrone au fil du temps afin de permettre aux clients d'accéder aux améliorations apportées par les fournisseurs de pilotes. Vous pouvez voir ci-dessous la version du GPU soumise à chaque option d'inférence. Les différentes versions du pilote peuvent modifier la façon dont votre modèle interagit avec le GPUs. Vous trouverez ci-dessous quelques politiques pour vous aider à comprendre comment votre application fonctionne avec différentes versions de pilotes. 

## Versions actuelles et familles d'instances soumises à la gestion des versions
<a name="inference-gpu-drivers-versions"></a>

Amazon SageMaker AI Inference prend en charge les pilotes et familles d'instances suivants :

[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/sagemaker/latest/dg/inference-gpu-drivers.html)

## Dépannage de votre conteneur de modèles avec les capacités du GPU
<a name="inference-gpu-drivers-troubleshoot"></a>

Si vous rencontrez un problème lors de l'exécution de votre charge de travail GPU, consultez les conseils suivants :

### Échec de la détection de la carte GPU ou erreur d'initialisation NVIDIA
<a name="collapsible-section-0"></a>

Exécutez la commande `nvidia-smi` (NVIDIA System Management Interface) à partir du conteneur Docker. Si l'interface de gestion du système NVIDIA détecte une erreur de détection du GPU ou une erreur d'initialisation NVIDIA, elle renvoie le message d'erreur suivant :

```
Failed to initialize NVML: Driver/library version mismatch
```

En fonction de votre cas d'utilisation, suivez ces bonnes pratiques pour résoudre l'échec ou l'erreur :
+ Suivez les recommandations de bonnes pratiques décrites dans le menu déroulant [Si vous apportez vos propres conteneurs de modèles (BYO)](#collapsible-byoc).
+ Suivez les recommandations de bonnes pratiques décrites dans le menu déroulant [Si vous utilisez une couche de compatibilité CUDA](#collapsible-cuda-compat).

Reportez-vous à la [page de l'interface de gestion du système NVIDIA](https://developer.nvidia.com/nvidia-system-management-interface) sur le site Web de NVIDIA pour obtenir plus d'informations.

### `CannotStartContainerError`
<a name="collapsible-section-cannot-start-container"></a>

 Si votre instance de GPU utilise des versions de pilote NVIDIA qui ne sont pas compatibles avec la version CUDA du conteneur Docker, le déploiement d'un point de terminaison échouera avec le message d'erreur suivant : 

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

En fonction de votre cas d'utilisation, suivez ces bonnes pratiques pour résoudre l'échec ou l'erreur :
+ Suivez les recommandations de bonnes pratiques décrites dans le menu déroulant [Le pilote dont dépend mon conteneur est supérieur à la version des instances de GPU ML.](#collapsible-driver-dependency-higher).
+ Suivez les recommandations de bonnes pratiques décrites dans le menu déroulant [Si vous utilisez une couche de compatibilité CUDA](#collapsible-cuda-compat).

## Bonnes pratiques pour travailler avec des versions de pilotes non concordantes
<a name="inference-gpu-drivers-cuda-toolkit-updates"></a>

Vous trouverez ci-dessous des informations sur la façon de mettre à jour le pilote de votre GPU :

### Le pilote dont dépend mon conteneur est inférieur à la version de l'instance de GPU ML.
<a name="collapsible-driver-dependency-lower"></a>

Aucune action n’est requise. NVIDIA assure la rétrocompatibilité.

### Le pilote dont dépend mon conteneur est supérieur à la version des instances de GPU ML.
<a name="collapsible-driver-dependency-higher"></a>

S'il s'agit d'une différence de version mineure, aucune action n'est requise. NVIDIA assure la compatibilité avec les versions mineures.

S'il s'agit d'une différence de version majeure, le package de compatibilité CUDA devra être installé. Consultez [Package de compatibilité CUDA](https://docs.nvidia.com/deploy/cuda-compatibility/index.html) dans la documentation NVIDIA.

**Important**  
Le package de compatibilité CUDA n'étant pas rétrocompatible, il doit être désactivé si la version du pilote de l'instance est supérieure à celle du package de compatibilité CUDA.

### Si vous apportez vos propres conteneurs de modèles (BYO)
<a name="collapsible-byoc"></a>

Assurez-vous qu'aucun package de pilote NVIDIA n'est inclus dans l'image, ce qui pourrait entraîner un conflit avec la version du pilote NVIDIA de l'hôte.

### Si vous utilisez une couche de compatibilité CUDA
<a name="collapsible-cuda-compat"></a>

Pour vérifier si la version du pilote Nvidia de la plateforme prend en charge la version du package de compatibilité CUDA installée dans le conteneur de modèles, consultez la [documentation CUDA](https://docs.nvidia.com/deploy/cuda-compatibility/index.html#use-the-right-compat-package) (Français non garanti). Si la version du pilote Nvidia de la plateforme ne prend pas en charge la version du package de compatibilité CUDA, vous pouvez désactiver ou supprimer le package de compatibilité CUDA de l'image de conteneur de modèles. Si la version des bibliothèques de compatibilité CUDA est prise en charge par la dernière version du pilote Nvidia, nous vous suggérons d'activer le package de compatibilité CUDA en fonction de la version du pilote Nvidia détectée pour la compatibilité future en ajoutant l'extrait de code ci-dessous dans le script shell de démarrage de conteneur (dans le script `ENTRYPOINT`).

Le script montre comment changer dynamiquement l'utilisation du package de compatibilité CUDA en fonction de la version du pilote Nvidia détectée sur l'hôte déployé pour votre conteneur de modèles. Lors de SageMaker la sortie d'une version plus récente du pilote Nvidia, le Package de compatibilité CUDA installé peut être désactivé automatiquement si l'application CUDA est prise en charge nativement sur le nouveau pilote.

```
#!/bin/bash

verlt() {
    [ "$1" = "$2" ] && return 1 || [ "$1" = "$(echo -e "$1\n$2" | sort -V | head -n1)" ]
}

if [ -f /usr/local/cuda/compat/libcuda.so.1 ]; then
    CUDA_COMPAT_MAX_DRIVER_VERSION=$(readlink /usr/local/cuda/compat/libcuda.so.1 | cut -d'.' -f 3-)
    echo "CUDA compat package should be installed for NVIDIA driver smaller than ${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 verlt $NVIDIA_DRIVER_VERSION $CUDA_COMPAT_MAX_DRIVER_VERSION; then
        echo "Adding CUDA compat to LD_LIBRARY_PATH"
        export LD_LIBRARY_PATH=/usr/local/cuda/compat:$LD_LIBRARY_PATH
        echo $LD_LIBRARY_PATH
    else
        echo "Skipping CUDA compat setup as newer NVIDIA driver is installed"
    fi
else
    echo "Skipping CUDA compat setup as package not found"
fi
```