Kesalahan ini dapat terjadi saat menggunakan PyTorch pada instans Linux dengan akselerasi GPU karena ketidaksesuaian antara versi Compute Unified Device Architecture (CUDA) yang diinstal dan versi PyTorch. Topik ini menjelaskan penyebab serta solusi untuk masalah ini.
Deskripsi Masalah
Pesan kesalahan berikut ditampilkan saat menggunakan PyTorch pada instans Linux dengan akselerasi GPU yang menjalankan Alibaba Cloud Linux 3:
>>> 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
Penyebab
Kesalahan tersebut disebabkan oleh ketidaksesuaian antara versi CUDA yang diinstal pada instans dengan akselerasi GPU dan versi PyTorch. Untuk informasi lebih lanjut tentang pemetaan antara versi CUDA dan PyTorch, lihat Versi PyTorch Sebelumnya.
Versi PyTorch yang diinstal melalui perintah sudo pip3 install torch adalah 2.1.2, yang memerlukan CUDA versi 12.1. Namun, versi CUDA yang diinstal secara otomatis pada instans dengan akselerasi GPU adalah 12.0, sehingga tidak kompatibel dengan versi PyTorch yang digunakan.
Solusi
Jika Anda memilih opsi Auto-install GPU Driver di tab Public Images dalam bagian Image saat membeli instans dengan akselerasi GPU di konsol Elastic Compute Service (ECS), Anda dapat mengubah versi CUDA menjadi 12.1 menggunakan salah satu metode berikut:
Metode 2: Instal CUDA menggunakan skrip kustom
Lepaskan instans dengan akselerasi GPU yang ada.
Untuk informasi lebih lanjut, lihat Lepaskan instans.
Beli instans baru dengan akselerasi GPU.
Untuk informasi lebih lanjut, lihat Buat instans dengan akselerasi GPU. Perhatikan parameter berikut:
Di tab Public Images dalam bagian Image, jangan pilih opsi Auto-install GPU Driver.
Di bagian User Data dari bagian Advanced Settings(Optional), masukkan skrip kustom untuk menginstal driver NVIDIA Tesla versi 535.154.05 dan CUDA versi 12.1.1. Berikut adalah contoh skrip kustom:
Contoh skrip kustom
#!/bin/sh
#Silakan masukkan versi untuk diinstal
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"
#menggunakan .run untuk menginstal driver dan 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
Metode 3: Modifikasi data pengguna instans dan ubah sistem operasi
Hentikan instans dengan akselerasi GPU.
Untuk informasi lebih lanjut, lihat Hentikan instans.
Di halaman Instance, temukan instans dengan akselerasi GPU yang telah dihentikan dan klik ikon
di kolom Actions. Di bagian Instance Settings, klik Set User Data.
Perbarui data pengguna, lalu klik OK.
Ubah nilai parameter DRIVER_VERSION, CUDA_VERSION, dan CUDNN_VERSION ke versi berikut:
...
DRIVER_VERSION="535.154.05"
CUDA_VERSION="12.1.1"
CUDNN_VERSION="8.9.7.29"
...

Ubah sistem operasi instans dengan akselerasi GPU.
Untuk informasi lebih lanjut, lihat Ganti sistem operasi (disk sistem) dari sebuah instans.
Setelah instans dengan akselerasi GPU di-restart, sistem akan menginstal ulang versi baru dari driver NVIDIA Tesla, CUDA, dan CUDA Deep Neural Network library (cuDNN).