본 방법은 titan V에서 3090으로 바꾸었을 때 생겼던 이슈를 다루고 있다. 참고하시길
RuntimeError: CUDA error: no kernel image is available for execution on the device
만일 이전에 환경을 구축한 상태에서 그래픽카드를 변경했다면 위의 이슈를 만날 확률이 높다.
이와 같은 문제가 발생하는 원인은 첫 번째로는 compute capacity가 맞지 않아서 생길 확률이 높고, 두번째는 cudatoolkit 버전이 맞지 않아 생기는 이슈인듯 하다.
GPU 변경으로 인한 pytorch, CUDA 버전 비매칭 이슈 해결
(새롭게 conda env 환경을 생성하는 것을 추천한다. )
1. GPU compute capacity를 맞춰주자.
https://developer.nvidia.com/cuda-gpus
CUDA GPUs
Your GPU Compute Capability Are you looking for the compute capability for your GPU, then check the tables below. You can learn more about Compute Capability here. NVIDIA GPUs power millions of desktops, notebooks, workstations and supercomputers around th
developer.nvidia.com
위의 사이트에서 자신이 사용하는 GPU의 compute capacity를 확인한 후, TORCH_CUDA_ARCH_LIST 환경 변수를 설정하자.
# export TORCH_CUDA_ARCH_LIST=<compute capability>
$ export TORCH_CUDA_ARCH_LIST=8.0
2. nvidia-smi 명령어로 버전을 확인하자 : 그래픽 드라이버의 cuda version을 의미
3. nvcc-V 명령어로 cudatoolkit 버전을 확인하자 : 가상환경일 경우 conda list cudatoolkit으로 확인해주어야 한다. nvcc-V의 경우, base cudatoolkit 버전을 보여줌.
4. CUDA version을 nvidia-smi에 맞추어 cudatoolkit을 설치해주자. 필자는 nvidia-smi에 확인한 CUDA 버전에 맞추어 11.x를 설치해주었다.
conda install pytorch==1.10.1 torchvision==0.11.2 torchaudio==0.10.1 cudatoolkit=11.3 -c pytorch -c conda-forge
5. GPU 연결 확인
import torch
print(torch.cuda.is_available()) # True가 나오면 성공
Reference
'Setting Tips' 카테고리의 다른 글
wandb 사용하기 (0) | 2022.11.16 |
---|---|
맥 터미널 내 code 명령어로 vs code 여는 방법 (0) | 2022.09.26 |
vscode liveshare로 원격 코딩하기 (0) | 2022.04.20 |
Conda 가상환경 설정 옮길 때 팁 (0) | 2022.04.14 |
공유기 IP 고정하기 (0) | 2022.03.28 |