반응형
RTX 3090 GPU를 장착한 컴퓨터에서 conda나 pip로 pytorch를 그냥 설치할 경우, 아래와 같이 cuda 사용이 안된다는 오류가 뜰 때가 있다.
RTX A6000 with 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.
If you want to use the RTX A6000 GPU with PyTorch, please check the instructions at https://pytorch.org/get-started/locally/
이유는 적혀있는대로, CUDA capability sm_86이 현 GPU랑 맞는 architecture인데 conda나 pip로 그냥 설치한 pytorch는 이것을 지원 안해서 오류가 난 것이다. (사실 뭔소린지 잘 모름...)
해결법은, nightly 버전을 설치하면 된다. 정식 버전에는 포함 안되어 있는데 nightly 버전에는 이런 이슈가 해결이 되어있는 것 같다. 곧 정식 버전에서도 해결이 될 듯...? (역시나 잘 모름)
conda install pytorch torchvision torchaudio cudatoolkit=11.3 -c pytorch-nightly
설치한 이후에 아래 명령어를 쳤을 때, sm_86이 포함되어 있는지 확인해보면 끝 :)
python -c "import torch; print(torch.__version__); print(torch.cuda.get_arch_list())"
이런 식으로 출력된다.
1.11.0.dev20211128
['sm_37', 'sm_50', 'sm_60', 'sm_61', 'sm_70', 'sm_75', 'sm_80', 'sm_86', 'compute_37']
Update
이제 문제를 겪었던 시기 대비 많은 시간이 흘러, 대략 pytroch 1.10.0 이상 버전 (cuda 11 이상)은 nightly tag와 상관없이 다 sm_86을 지원하는 듯 하다. -nightly 떼고 그냥 -c pytorch 사용해도 되겠다.
반응형