WSL2에 CUDA Anaconda Pytorch 설치 (2/3)

멀티부팅은 귀찮으니까 윈도우 안에 우분투를 설치해서 CUDA Anaconda Pytorch로 학습을 돌리자

1. 설치하기 앞서


지난 포스팅에 이어지는 내용으로 여기에서는 WSL2에 CUDA를 설치해보자.

우선, pytorch 공식 홈페이지에서 지원하는 CUDA 버전을 확인한다.

Pytorch 공식 홈페이지 링크

본 포스팅 작성 당시는 아래와 같이 pytorch 1.10.2 버전과 CUDA 10.2 또는 11.3 버전으로 확인되었다.

Pytorch가 지원하는 CUDA 버전 확인

따라서 아래에서는 CUDA Toolkit과 cuDNN을 설치하는 방법에 대해 설명한다.

Anaconda 설치 후, conda 환경에서 pytorch를 설치하는 내용은 다음 포스팅에서 설명하겠다.

2. CUDA Toolkit 설치

2-1. 다운로드


원하는 CUDA 버전을 선택하여 구글에 검색한다. 검색 예: CUDA toolkit 11.3

그러면 아래와 같은 페이지를 만날 수 있다.

CUDA toolkit 다운로드 페이지

나의 경우는 Installer Type을 runfile(local)로 선택하여 진행하였다.

다음과 같이 다운로드한다.

wget https://developer.download.nvidia.com/compute/cuda/11.3.0/local_installers/cuda_11.3.0_465.19.01_linux.run

2-2. 본격적인 설치


설치 전 미리 필요한 파일들을 다운로드 해두는 것이 수월하다. 아래와 같이 build-essential 을 다운받는다.

sudo apt-get update
sudo apt-get install build-essential

그 이후 다음과 같이 설치한다. Driver는 설치하지 말고 Toolkit과 Sample을 선택하여 설치하도록 하자.

sudo sh cuda_11.3.0_465.19.01_linux.run

나의 경우 설치 중에 다음과 같은 에러가 발생하였다.

sbin/ldconfig.real: /usr/lib/wsl/lib/libcuda.so.1 is not a symbolic link

이는 wsl 시스템이 libcuda.so, libcuda.so.1 파일을 지멋대로 만들어버리는 문제로 추측된다.

여기를 참고하여 해결방법을 찾아내었다.

  • 윈도우 파일탐색기에서 C:\Windows\System32\lxss\lib 으로 이동, 아래 파일들을 삭제
    • libcuda.so.1
    • libcuda.so
  • 켜져있는 Windows Terminal을 끄고, 관리자 권한으로 다시 키고 아래 명령을 수행
    • su 명령으로 루트권한 획득
    • cd /mnt/c/Windows/System32/lxss/lib
    • ln -s libcuda.so.1.1 libcuda.so.1
    • ln -s libcuda.so.1.1 libcuda.so
  • 창을 닫고 일반 모드로 다시 켠다.

2-3. 설치 확인


그래픽 드라이버 확인은 nvidia-smi 명령을 통해 확인할 수 있으나, 이건 CUDA toolkit 설치와는 관계가 없다.

CUDA 확인은 nvcc -V 또는 nvcc --version 명령을 통해 확인할 수 있으며, 정상적으로 설치되었을 경우 아래 그림과 같이 보여진다.

CUDA Toolkit 설치 완료 확인

다음으로 CUDA Sample을 돌려볼 것이다.

cd /usr/local/cuda/samples/4_Finance/BlackScholes
sudo make
./BlackScholes

에러가 안난다면 정상이다.

2-3-1. (Troubleshooting) NVCC를 못찾는 경우


이런 경우는 nvcc를 PATH에서 찾을 수 없기 때문이다.

따라서 다음과 같이 진행한다.

  • 실행파일 경로추가
    • sudo vi ~/.bashrc
      • 맨 아래에 export PATH=/usr/local/cuda-11.3/bin:$PATH 를 추가한다.
    • source ~/.bashrc 로 새로고침
  • 라이브러리 경로추가
    • sudo vi /etc/ld.so.conf
      • include /usr/local/cuda-11.3/lib64 추가
    • sudo loconfig 로 새로고침

3. cuDNN 설치

3-1. 다운로드


CUDA Toolkit만 설치하면 되는 것이 아니다. cuDNN을 설치하도록 하자.

cuDNN 다운로드 페이지 이곳에서 CUDA 버전과 맞는 cuDNN을 다운로드 받아준다.

cuDNN 다운로드 페이지

3-2. 압축해제


나의 경우 /home/rk 위치에 cudnn-11.3-linux-x64-v8.2.1.32.tgz 파일을 위치시켜 두었다.

다음과 같이 압축을 해제해보자.

tar -zxvf cudnn-11.3-linux-x64-v8.2.1.32.tgz

3-3. 조심스럽게 파일 이동


방금 압축 푼 위치에 cuda 폴더가 생겼을 것이다.

Symbolic link가 깨지지 않도록 라이브러리를 조심스럽게 옮기면 된다. 여기를 참고하였다

복사 명령어 cp를 사용할 때 -P 옵션을 붙여 심볼릭 링크가 깨지지 않도록 할 수 있다.

sudo cp ./cuda/include/* /usr/local/cuda-11.3/include
sudo cp -P ./cuda/lib64/* /usr/local/cuda-11.3/lib64
sudo chmod a+r /usr/local/cuda-11.3/lib64/libcudnn*

4. 마치며


다음 포스팅은 드디어 Anaconda 설치와 conda 환경에서의 pytorch 설치이다.



blastak © 2017. All rights reserved.