

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

# Praktik terbaik untuk meminimalkan gangguan selama peningkatan driver GPU
<a name="inference-gpu-drivers"></a>

SageMaker Penerapan Model AI memutakhirkan driver GPU pada instans ML untuk opsi Inferensi Real-time, Batch, dan Asynchronous dari waktu ke waktu untuk memberi pelanggan akses ke peningkatan dari penyedia driver. Di bawah ini Anda dapat melihat versi GPU yang didukung untuk setiap opsi Inferensi. Versi driver yang berbeda dapat mengubah cara model Anda berinteraksi dengan. GPUs Di bawah ini adalah beberapa strategi untuk membantu Anda memahami cara kerja aplikasi Anda dengan versi driver yang berbeda. 

## Versi saat ini dan keluarga instans yang didukung
<a name="inference-gpu-drivers-versions"></a>

Amazon SageMaker AI Inference mendukung driver dan keluarga instans berikut:

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

## Memecahkan masalah wadah model Anda dengan kemampuan GPU
<a name="inference-gpu-drivers-troubleshoot"></a>

Jika Anda mengalami masalah saat menjalankan beban kerja GPU, lihat panduan berikut:

### Kegagalan deteksi kartu GPU atau kesalahan inisialisasi NVIDIA
<a name="collapsible-section-0"></a>

Jalankan perintah `nvidia-smi` (NVIDIA System Management Interface) dari dalam wadah Docker. Jika Antarmuka Manajemen Sistem NVIDIA mendeteksi kesalahan deteksi GPU atau kesalahan inisialisasi NVIDIA, itu akan mengembalikan pesan kesalahan berikut:

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

Berdasarkan kasus penggunaan Anda, ikuti praktik terbaik berikut ini untuk mengatasi kegagalan atau kesalahan:
+ Ikuti rekomendasi praktik terbaik yang dijelaskan dalam [Jika Anda membawa wadah model (BYO) Anda sendiri](#collapsible-byoc) dropdown.
+ Ikuti rekomendasi praktik terbaik yang dijelaskan dalam [Jika Anda menggunakan lapisan kompatibilitas CUDA](#collapsible-cuda-compat) dropdown.

Lihat [halaman Antarmuka Manajemen Sistem NVIDIA](https://developer.nvidia.com/nvidia-system-management-interface) di situs web NVIDIA untuk informasi lebih lanjut.

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

 Jika instans GPU Anda menggunakan versi driver NVIDIA yang tidak kompatibel dengan versi CUDA di wadah Docker, maka penerapan titik akhir akan gagal dengan pesan kesalahan berikut: 

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

Berdasarkan kasus penggunaan Anda, ikuti praktik terbaik berikut ini untuk mengatasi kegagalan atau kesalahan:
+ Ikuti rekomendasi praktik terbaik yang dijelaskan dalam [Driver yang bergantung pada wadah saya lebih besar dari versi pada instance GPU ML](#collapsible-driver-dependency-higher) dropdown.
+ Ikuti rekomendasi praktik terbaik yang dijelaskan dalam [Jika Anda menggunakan lapisan kompatibilitas CUDA](#collapsible-cuda-compat) dropdown.

## Praktik terbaik untuk bekerja dengan versi driver yang tidak cocok
<a name="inference-gpu-drivers-cuda-toolkit-updates"></a>

Berikut ini memberikan informasi tentang cara memperbarui driver GPU Anda:

### Driver yang bergantung pada wadah saya lebih rendah dari versi pada instance GPU ML
<a name="collapsible-driver-dependency-lower"></a>

Tidak ada tindakan yang diperlukan. NVIDIA menyediakan kompatibilitas mundur.

### Driver yang bergantung pada wadah saya lebih besar dari versi pada instance GPU ML
<a name="collapsible-driver-dependency-higher"></a>

Jika ini adalah perbedaan versi kecil, tidak ada tindakan yang diperlukan. NVIDIA menyediakan kompatibilitas maju versi minor.

Jika itu adalah perbedaan versi utama, CUDA Compatibility Package perlu diinstal. Silakan merujuk ke [CUDA Compatibility Package](https://docs.nvidia.com/deploy/cuda-compatibility/index.html) dalam dokumentasi NVIDIA.

**penting**  
CUDA Compatibility Package tidak kompatibel ke belakang sehingga perlu dinonaktifkan jika versi driver pada instance lebih besar dari versi CUDA Compatibility Package.

### Jika Anda membawa wadah model (BYO) Anda sendiri
<a name="collapsible-byoc"></a>

Pastikan tidak ada paket driver NVIDIA yang dibundel dalam gambar yang dapat menyebabkan konflik dengan versi driver NVIDIA host.

### Jika Anda menggunakan lapisan kompatibilitas CUDA
<a name="collapsible-cuda-compat"></a>

Untuk memverifikasi apakah platform versi driver Nvidia mendukung versi CUDA Compatibility Package yang diinstal dalam wadah model, lihat dokumentasi [CUDA](https://docs.nvidia.com/deploy/cuda-compatibility/index.html#use-the-right-compat-package). Jika platform versi driver Nvidia tidak mendukung versi CUDA Compatibility Package, Anda dapat menonaktifkan atau menghapus CUDA Compatibility Package dari gambar wadah model. Jika versi libs kompatibilitas CUDA didukung oleh versi driver Nvidia terbaru, kami sarankan Anda mengaktifkan CUDA Compatibility Package berdasarkan versi driver Nvidia yang terdeteksi untuk kompatibilitas masa depan dengan menambahkan cuplikan kode di bawah ini ke dalam skrip shell start up container (di skrip). `ENTRYPOINT`

Skrip menunjukkan cara mengganti penggunaan CUDA Compatibility Package secara dinamis berdasarkan versi driver Nvidia yang terdeteksi pada host yang digunakan untuk wadah model Anda. Saat SageMaker merilis versi driver Nvidia yang lebih baru, CUDA Compatibility Package yang diinstal dapat dimatikan secara otomatis jika aplikasi CUDA didukung secara native pada driver baru.

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