Pada instans GPU-accelerated Linux, Anda mungkin mengalami error saat mengimpor PyTorch karena ketidakcocokan antara versi CUDA pada instans dan versi PyTorch. Topik ini menjelaskan cara mengatasi masalah tersebut.
Symptom
Saat menggunakan PyTorch pada instans GPU-accelerated yang menjalankan sistem operasi Linux, seperti Alibaba Cloud Linux 3, Anda mungkin menemui error berikut:
>>> import torch
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/usr/local/lib/python3.8/dist-packages/torch/__init__.py", line 235, in <module>
from torch._C import * # noqa: F403
ImportError: /usr/local/lib/python3.8/dist-packages/torch/lib/../../nvidia/cusparse/lib/libcusparse.so.12: undefined symbol: __nvJitLinkAddData_12_1, version libnvJitLink.so.12
Cause
Masalah ini terjadi karena versi CUDA pada instans GPU-accelerated tidak kompatibel dengan versi PyTorch. Untuk informasi lebih lanjut mengenai kompatibilitas versi CUDA dan PyTorch, lihat Previous PyTorch Versions.
PyTorch 2.1.2, yang diinstal dengan perintah sudo pip3 install torch, memerlukan CUDA 12.1. Namun, versi CUDA yang secara otomatis diinstal saat Anda membeli instans GPU-accelerated adalah 12.0. Ketidaksesuaian versi ini menyebabkan error tersebut.
Solution
Jika Anda memilih opsi Auto-install GPU Driver pada tab Public Image di bagian Image saat membeli instans GPU-accelerated, Anda dapat menggunakan salah satu metode berikut untuk melakukan upgrade ke CUDA 12.1.1.
-
-
Method 2: Install CUDA with a custom script
-
Lepaskan instans GPU-accelerated yang ada.
Untuk informasi lebih lanjut, lihat Release an instance.
-
Buat instans GPU-accelerated baru.
Untuk informasi lebih lanjut, lihat Create a GPU-accelerated instance. Konfigurasikan parameter utama sebagai berikut:
-
Pada tab Public Image di bagian Image, pastikan opsi Auto-install GPU Driver tidak dicentang.
-
Pada bagian User Data di bawah Advanced Settings (Optional), masukkan skrip kustom untuk menginstal NVIDIA Tesla driver 535.154.05 dan CUDA 12.1.1. Berikut contoh skripnya:
Sample custom script
#!/bin/sh
#Please input version to install
DRIVER_VERSION="535.154.05"
CUDA_VERSION="12.1.1"
CUDNN_VERSION="8.9.7.29"
IS_INSTALL_eRDMA="FALSE"
IS_INSTALL_RDMA="FALSE"
INSTALL_DIR="/root/auto_install"
#using .run to install driver and cuda
auto_install_script="auto_install_v4.0.sh"
script_download_url=$(curl http://100.100.100.200/latest/meta-data/source-address | head -1)"/opsx/ecs/linux/binary/script/${auto_install_script}"
echo $script_download_url
rm -rf $INSTALL_DIR
mkdir -p $INSTALL_DIR
cd $INSTALL_DIR && wget -t 10 --timeout=10 $script_download_url && bash ${INSTALL_DIR}/${auto_install_script} $DRIVER_VERSION $CUDA_VERSION $CUDNN_VERSION $IS_INSTALL_RDMA $IS_INSTALL_eRDMA
-
Method 3: Modify the user data and replace the operating system
-
Hentikan instans GPU-accelerated yang ada.
Untuk informasi lebih lanjut, lihat Stop instances.
-
Pada daftar instans, temukan instans GPU-accelerated yang telah dihentikan. Pada kolom Actions, pilih .
-
Ubah user data lalu klik OK.
Ubah nilai parameter DRIVER_VERSION, CUDA_VERSION, dan CUDNN_VERSION menjadi seperti berikut:
...
DRIVER_VERSION="535.154.05"
CUDA_VERSION="12.1.1"
CUDNN_VERSION="8.9.7.29"
...
-
Ganti sistem operasi instans GPU-accelerated tersebut.
Untuk informasi selengkapnya, lihat Mengganti Sistem Operasi (disk sistem) Instans.
Setelah instans GPU-accelerated dinyalakan ulang, sistem akan menginstal ulang versi baru NVIDIA Tesla driver, CUDA, dan cuDNN.