GPU 관련 오류 발생시 조치법
오류 문구
CUDA capability sm_86 is not compatible with the current PyTorch installation. The current PyTorch install supports CUDA capabilities sm_37 sm_50 sm_60 sm_70.
설치된 CUDA 버전이 GPU를 지원하지 않기 때문에 발생하는 현상입니다.
자신의 GPU의 Compute capability(version) 찾기
https://developer.nvidia.com/cuda-gpus
오류 문구에 나오는 sm_86 이 8.6 이며 Compute capability 이 됩니다.
적절한 CUDA 버전 찾기
https://en.wikipedia.org/wiki/CUDA
GPUs supported[edit]
Supported CUDA level of GPU and card.
- CUDA SDK 1.0 support for compute capability 1.0 – 1.1 (Tesla)[29]
- CUDA SDK 1.1 support for compute capability 1.0 – 1.1+x (Tesla)
- CUDA SDK 2.0 support for compute capability 1.0 – 1.1+x (Tesla)
- CUDA SDK 2.1 – 2.3.1 support for compute capability 1.0 – 1.3 (Tesla)[30][31][32][33]
- CUDA SDK 3.0 – 3.1 support for compute capability 1.0 – 2.0 (Tesla, Fermi)[34][35]
- CUDA SDK 3.2 support for compute capability 1.0 – 2.1 (Tesla, Fermi)[36]
- CUDA SDK 4.0 – 4.2 support for compute capability 1.0 – 2.1+x (Tesla, Fermi, more?).
- CUDA SDK 5.0 – 5.5 support for compute capability 1.0 – 3.5 (Tesla, Fermi, Kepler).
- CUDA SDK 6.0 support for compute capability 1.0 – 3.5 (Tesla, Fermi, Kepler).
- CUDA SDK 6.5 support for compute capability 1.1 – 5.x (Tesla, Fermi, Kepler, Maxwell). Last version with support for compute capability 1.x (Tesla).
- CUDA SDK 7.0 – 7.5 support for compute capability 2.0 – 5.x (Fermi, Kepler, Maxwell).
- CUDA SDK 8.0 support for compute capability 2.0 – 6.x (Fermi, Kepler, Maxwell, Pascal). Last version with support for compute capability 2.x (Fermi) (Pascal GTX 1070Ti Not Supported).
- CUDA SDK 9.0 – 9.2 support for compute capability 3.0 – 7.2 (Kepler, Maxwell, Pascal, Volta) (Pascal GTX 1070Ti Not Supported. CUDA SDK 9.0 and support CUDA SDK 9.2).
- CUDA SDK 10.0 – 10.2 support for compute capability 3.0 – 7.5 (Kepler, Maxwell, Pascal, Volta, Turing). Last version with support for compute capability 3.x (Kepler). 10.2 is the last official release for macOS, as support will not be available for macOS in newer releases.
- CUDA SDK 11.0 support for compute capability 3.5 – 8.0 (Kepler (in part), Maxwell, Pascal, Volta, Turing, Ampere (in part)).[37]
- CUDA SDK 11.1 – 11.7 support for compute capability 3.5 – 8.6 (Kepler (in part), Maxwell, Pascal, Volta, Turing, Ampere).[38]
sm_86 => 8.6 이므로 현재 CUDA SDK 11.1 – 11.7 설치해줘야 합니다.
CUDA SDK 설치
가장 쉬운 방법은 docker 를 이용하는 방법입니다.
docker hub에서 nvidia/cuda 를 검색해서 11.1 – 11.7 사이의 버전을 선택해서 이미지를 다운로드 받습니다.
docker pull nvidia/cuda:11.7.0-runtime-ubuntu20.04
Docker 실행
Docker 사용법은 추가 검색 필요합니다. docker 설치는 아래 링크를 참고 바랍니다.
https://swlock.blogspot.com/2022/06/docker-windows-1110-home-docker-docker.html
docker run --gpus all -i -t -v C:\(자신의작업폴더명)\:/work nvidia/cuda:11.7.0-runtime-ubuntu20.04 /bin/bash
docker를 한번 실행한 후 다음번에는 docker attach 를 이용해서 접속합니다.
Docker 내에서 python 설치
apt-get update
apt install python3.8
apt install python3.8-dev
apt install python3.8-venv
apt install python3.8-distutils
apt install python3-pip
python 가상 환경 만들기
venv 사용법은 따로 검색해 보시기 바랍니다.
위에서 연결한 폴더명에 /work 폴더라서 아래와 같이 진행합니다.
cd /work
python3 -m venv myenv38
source myenv38/bin/activate
pytorch 설치
커맨드는 여기 참고 https://pytorch.org/get-started/locally/
pip3 install torch torchvision torchaudio --extra-index-url https://download.pytorch.org/whl/cu116