
오늘은 NVIDIA driver와 CUDA의 버전이 일치하지 않을 때 발생하는 오류 중 하나에 대해 알아보겠다.
매번 발생하는 것은 아니나, CUDA와 NVIDIA driver의 버전이 일치하지 않을 때 아래의 오류가 발생하는 경우가 있다.
RuntimeError: r.nvmlDeviceGetNvLinkRemoteDeviceType_ INTERNAL ASSERT FAILED at "../c10/cuda/driver_api.cpp":27, please report a bug to PyTorch. Can't find nvmlDeviceGetNvLinkRemoteDeviceType: /lib/x86_64-linux-gnu/libnvidia-ml.so.1: undefined symbol: nvmlDeviceGetNvLinkRemoteDeviceType
위 오류는 Pytorch에서 CUDA를 사용하는 도중 NVIDIA Management Library (NVML) 관련 내부 함수 호출에 실패했음을 의미한다.
해당 오류는 보통 NVIDIA driver의 버전이 오래되었을 때 발생한다.
이 경우 우선, NVIDIA driver의 버전과 CUDA의 버전을 아래 코드로 확인해야 한다.
CUDA 버전의 경우 Pytorch로 버전 확인으로 쉽게 함께 확인 가능하다.
# nvidia driver 버전 확인
nvidia-smi
# pytorch 버전 확인
python -c "import torch; print(torch.__version__)" # ex) 2.3.0+cu118
나의 경우, NVIDIA driver가 455.45.01로 CUDA 지원이 11.1까지 되었는데 현재 11.8을 설치해둔 상황이었다.
NVIDIA driver의 버전을 업그레이드 하거나, pytroch 버전을 다운그레이드 해야하는데 서버를 혼자 사용하는 것이 아닐때는 Pytorch 버전을 다운그레이드 하는 것이 편리하니 이 방법을 추천한다.
물론, Pytroch 버전 다운그레이드가 불가능한 경우가 있는데 이럴 경우 아래 표를 참고해 본인에게 가장 적합한 해결책을 찾아야한다.
✅ PyTorch 다운그레이드 | CUDA 호환 버전으로 낮춤 | 간단, 안정적 | 최신 기능 미지원 |
🔄 CPU 버전 사용 | GPU 없이 실행 | 빠름, 간편 | 성능 낮음 |
⚙️ CUDA runtime 포함 | 컨테이너에 CUDA runtime 동봉 | 컨테이너 유지 | 복잡, 호환 확인 필요 |
🔧 소스에서 빌드 | 직접 빌드하여 호환 유지 | 유연성 ↑ | 매우 복잡 |
🧱 다른 Docker 이미지 | 환경 맞는 이미지 선택 | 빠른 설정 | 여전히 driver 호환 필요 |
추가적으로 왜 NVIDIA driver와 CUDA의 호환성이 필요한지에 대한 부분은 아래 공식 Document에서 확인할 수 있다.
https://docs.nvidia.com/deploy/cuda-compatibility/
1. Why CUDA Compatibility — CUDA Compatibility
CUDA Compatibility CUDA Compatibility describes the use of new CUDA toolkit components on systems with older base installations. 1. Why CUDA Compatibility The NVIDIA® CUDA® Toolkit enables developers to build NVIDIA GPU accelerated compute applications f
docs.nvidia.com
또한, NVIDIA driver의 CUDA 지원 부분은 아래 링크에서 표로 확인 가능하다.
https://docs.nvidia.com/cuda/cuda-toolkit-release-notes/index.htm
1. CUDA 12.9 Release Notes — Release Notes 12.9 documentation
Using long-deprecated cusolverDnPotrf, cusolverDnPotrs, cusolverDnGeqrf, cusolverDnGetrf, cusolverDnGetrs, cusolverDnSyevd, cusolverDnSyevdx, cusolverDnGesvd, and their accompanying bufferSize functions will result in a deprecation warning. The warning can
docs.nvidia.com
'Errors' 카테고리의 다른 글
AttributeError: module 'torch' has no attribute 'frombuffer' (0) | 2025.05.15 |
---|---|
bash: git: command not found (0) | 2025.05.07 |
UnicodeDecodeError 'utf-8' (0) | 2024.07.07 |
Transformer Error - Internet connection (0) | 2024.02.26 |
git-lfs 설치 Error (0) | 2024.02.18 |