본문 바로가기
CS/삽질로그

PyTorch ImportError: libcudart.so.11.0 not defined in file 에러 (해결)

by judy@ 2023. 4. 29.

목차

1. 문제 상황

2. 해결 방법 (해결 완료, 라이브러리 재설치)


문제 상황

사실 나는 pytorch는 아니고, sentence_transformer를 쓰고 싶었을 뿐인데, pip install로 설치하고 모듈을 임포트하니 아래와 같이 에러메시지를 마주하였다.

Output exceeds the size limit. Open the full output data in a text editor---------------------------------------------------------------------------
ImportError                               Traceback (most recent call last)
Cell In[2], line 12
      9 import seaborn as sns
     11 import tensorflow as tf
---> 12 from sentence_transformers import SentenceTransformer
     13 # import optuna

File /opt/conda/envs/general/lib/python3.10/site-packages/sentence_transformers/__init__.py:3
      1 __version__ = "2.2.2"
      2 __MODEL_HUB_ORGANIZATION__ = 'sentence-transformers'
----> 3 from .datasets import SentencesDataset, ParallelSentencesDataset
      4 from .LoggingHandler import LoggingHandler
      5 from .SentenceTransformer import SentenceTransformer

File /opt/conda/envs/general/lib/python3.10/site-packages/sentence_transformers/datasets/__init__.py:1
----> 1 from .DenoisingAutoEncoderDataset import DenoisingAutoEncoderDataset
      2 from .NoDuplicatesDataLoader import NoDuplicatesDataLoader
      3 from .ParallelSentencesDataset import ParallelSentencesDataset

File /opt/conda/envs/general/lib/python3.10/site-packages/sentence_transformers/datasets/DenoisingAutoEncoderDataset.py:1
----> 1 from torch.utils.data import Dataset
      2 from typing import List
      3 from ..readers.InputExample import InputExample
...
    231 # Appease the type checker; ordinarily this binding is inserted by the
    232 # torch._C module initialization code in C
    233 if TYPE_CHECKING:

ImportError: /opt/conda/envs/general/lib/python3.10/site-packages/torch/lib/libtorch_cuda.so: symbol cudaGraphInstantiateWithFlags version libcudart.so.11.0 not defined in file libcudart.so.11.0 with link time reference

해결 방법 (해결)

에러메시지를 보니 torch.utils.data.Dataset을 임포트하는 부분에서 오류가 발생함. torch의 버전 오류인 것 같아서 버전 확인

$ pip list | grep torch
torch                        2.0.0
torchvision                  0.15.1

파이토치 공식 페이지에서 설치 방법을 확인해보았더니, 2.0.0 버전은 cuda 11.7 부터 지원하는 듯하다. 그런데 내 환경은 CUDA Version: 11.6이다.

https://pytorch.org/get-started/locally/

공식 페이지에서 get started 탭 외에 previous pytorch version 탭을 확인해보니, 아래와 같이 설치하라고 한다.

공홈 - previous pytorch locally

torch 관련 두 개의 라이브러리를 모두 삭제한 뒤, 공홈에서 지원하는 커맨드로 다시 설치함. torchaudio의 경우 설치하는 과정에서 오류가 발생했는데, 나는 딱히 필요없어서 그냥 무시하고 넘어감.

# 깔려있는 라이브러리 확인
$ pip list | grep torch
torch                        2.0.0
torchvision                  0.15.1

# torch, torchvision 모두 삭제
$ pip uninstall torch torchvision

# 새로 깔기
# CUDA 11.6
pip install torch==1.13.1+cu116 torchvision==0.14.1+cu116 torchaudio==0.13.1 --extra-index-url https://download.pytorch.org/whl/cu116

그리고 모듈 다시 임포트를 해보니 오류 안나고 임포트 성공!

반응형