티스토리 뷰

반응형

pytorch 코드를 실행시키다 보면 아래와 같은 CUDA error: no kernel image is available for execution on the device 오류가 발생하는 경우가 있다.

이런 경우 아래의 사이트에서 자신이 사용하는 GPU의 compute capability 버전 숫자를 확인한다.

 

CUDA GPUs

Recommended GPU for Developers NVIDIA TITAN RTX NVIDIA TITAN RTX is built for data science, AI research, content creation and general GPU development. Built on the Turing architecture, it features 4608, 576 full-speed mixed precision Tensor Cores for accel

developer.nvidia.com

그 뒤 아래의 명령어로 TORCH_CUDA_ARCH_LIST 환경변수를 자신이 사용하는 GPU의 compute capability 숫자로 설정한다.

# export TORCH_CUDA_ARCH_LIST=<compute capability>
$ export TORCH_CUDA_ARCH_LIST=8.0

그 다음 conda를 사용하는 경우 아래의 명령어를 통해 pytorch를 지우고 재설치한다. cudatoolkit의 버전은 nvcc -V 를 통해 확인하여 자신이 사용하는 cuda toolkit의 버전을 입력하여야 한다.

$ conda uninstall pytorch
$ conda install pytorch torchvision torchaudio cudatoolkit=11.0 -c pytorch

conda를 사용하지 않는 경우 pip를 사용하여 pytorch를 지우고 pytorch 소스코드로부터 setup.py를 사용하여 소스를 빌드하여 설치하면 된다.

이제 아래와 같이 pytorch에서 GPU를 사용하는 경우 정상 동작함을 확인할 수 있다.

$ python3
>>> import torch
>>> torch.rand(10).to("cuda")
tensor([0.8768, 0.6031, 0.9189, 0.6784, 0.7301, 0.9469, 0.2804, 0.2625, 0.2094,
        0.7929], device='cuda:0')
반응형
댓글