티스토리 뷰
[CUDA] RuntimeError: CUDA unknown error - this may be due to an incorrectly set up environment, e.g. changing env variable CUDA_VISIBLE_DEVICES after program start. Setting the available devices to be zero.
언코딩 2023. 2. 16. 17:34
Ec2 ubuntu 인스턴스에서 GPU를 사용하기 위해 CUDA와 CuDNN 등 필요한 설정을 모두 마치고 프로그램을 돌려보는데 해당 에러가 발생했다.
Traceback (most recent call last):
File "test_pytorch_cuda.py", line 4, in <module>
dummy_input = torch.randn(10, 3, 224, 224, device='cuda')
File "/home/XXX/anaconda3/envs/Pt/lib/python3.6/site-packages/torch/cuda/__init__.py", line 172, in _lazy_init
torch._C._cuda_init()
RuntimeError: CUDA unknown error - this may be due to an incorrectly set up environment, e.g. changing env variable CUDA_VISIBLE_DEVICES after program start. Setting the available devices to be zero.
현재 설정되어 있는 Cuda, cudnn, nvidia-driver, gpu 모델, torch version, python version은 아래와 같았다.
에러를 해결하기 위해 여러 가설을 세운 뒤 하나씩 확인해보았다.
0. 이미 torch 버전과 Cuda 버전은 모두 잘 맞는 것을 확인했다.
-> torch 1.7.0+cu101
1. 현재 인스턴스 유형과 CUDA 버전이 맞지 않는가?
-> 아님. 사용하는 인스턴스 유형은 p2.xlarge 였고 찾아보니 Cuda 9.0과 10.1이 가능한 것 같았다.
2. Cuda version이 현재 탑재된 GPU 모델이 지원하는 버전과 다른가?
-> 아님. Tesla K80 모델은 Cuda 10.1을 지원한다고 한다. ( 9.0, 9.2, or 10.0)
출처: https://forums.developer.nvidia.com/t/nvidia-tesla-k80-cuda-version-support/67676
3. 위에 링크에서 고안된 새로운 가설은, 그렇다면 driver 버전의 문제인가?
-> 맞음! 처음에 nvidia-driver-390을 깔았다가 에러가 나길래 418을 깔았었다. 근데 위 링크를 보고 cuda version이 지원하는 driver버전을 찾아보니 아래와 같았다. 내가 쓰고 있던 driver는 418.39보다 작았다.
해결방법
nvidia-driver-450으로 다시 깔아준 다음, 재부팅 하니 반영이 잘 되었고,
드디어 True를 보게되었다!
별거 아니었는데도 어제 저녁부터 지금까지 장장 9시간만에 해결..
'DevOps' 카테고리의 다른 글
[Docker] docker permission denied error (0) | 2023.01.17 |
---|---|
[Docker] EC2에서 docker 사용하기 (0) | 2023.01.17 |
[Docker] 내가 보려고 정리한, 자주 쓰는 docker 명령어 (0) | 2023.01.03 |