딥러닝용 WSL2-Ubuntu 및 GPU 세팅

ppn0303·2024년 1월 31일
0

PC관리

목록 보기
1/2

노트북 무선랜카드 설치 후 WSL2 설치 및 GPU세팅하는데, 기억이 안나서 잠시 해메였다.
연구실에 올려뒀던 GPU세팅방법이 WSL에는 그대로 적용하는데 안됬었다.
내 개인 PC는 계속 WSL로 쓸 예정이니 내용을 정리해보고자 한다.


WSL2

  • WSL2란? Linux를 위한 Windows 하위 시스템(Windows Subsystem for Linux)이다.
  • 윈도우 환경 내에 가상의 리눅스 환경을 만들어서 사용가능하게 해주는 것으로 Microsoft에서 공식으로 지원해주는 것이다. wsl1은 단점이 많았지만, wsl2는 성능 하향 이슈나 그런게 거의 없는 편이라고 한다. 단점이라면 마이크나 캠 같은 input 장치를 연동시키는게 조금 불편하다.

설치

  • 시작-windows Powershell을 관리자 권한으로 실행
  • wsl --install을 하면 된다. 예전에는 버전을 바꿔야했지만 지금은 바로 wsl2로 설치된다.
  • wsl -l -v로 설치가 잘 되어있는가 확인한다.
  • 재부팅을 해준다.
  • 참고용 공식문서 링크 : https://learn.microsoft.com/ko-kr/windows/wsl/install

nvidia 드라이버 및 CUDA, CUDnn 설치

그냥 ubuntu면 드라이버 설치되면 확인 가능한데, WSL2는 CUDA까지 설치해야 인식 확인이 된다.

nvidia 드라이버 설치

  • nvidia 드라이버 링크 : https://www.nvidia.com/Download/index.aspx?lang=en-us
  • (일반 ubuntu라면) apt search nvidia-driver로 검색해서 자신이 원하는 버전을 받아준다.
    • nvidia-driver-535: 기본 버전(보통 이걸 씁니다)
    • nvidia-driver-535-open: 오픈 소스로 표준 드라이버에 없는 추가 기능이나 구성 요소가 포함(불안정할 수 있음)
    • nvidia-driver-535-server: 서버 환경에 최적화(연구실 서버 등에 적용하면 좋습니다)

CUDA 설치

  • cuda 아카이브 링크 : https://developer.nvidia.com/cuda-toolkit-archive
    • 여기서 본인이 원하는 버전을 받는다.
    • 아나콘다 가상환경을 쓴다면 CUDA 버전은 드라이버가 호환되는 최신 버전을 받으면 된다.
  • deb(local)이랑 runfile(local) 둘을 사용해봤으며, 아래에 뜨는 설명서대로 실행만 하면 된다.

cuDNN(Deep Neural Network) 설치

이건 딥러닝을 위한 CUDA 가속 라이브러리다. 딥러닝하는 사람에겐 필수다. 그런데 단점은 회원가입을 반드시 해야하고, 계정 보안 프로그램을 스마트폰에 깔아야한다는 귀찮은 단점이 있다.

  • 버전별 아카이브 링크 : https://developer.nvidia.com/rdp/cudnn-archive
  • Linux_x86_64 (TAR)을 받으면 다운로드 후 압축을 풀고, CUDA폴더에 직접 넣고 권한을 줘야한다.
    • sudo cp /압축푼곳/usr/include /usr/local/cuda/include cudnn*.h
    • sudo cp /압축푼곳/usr/lib /usr/local/cuda/lib64 libcudnn*
    • chmod a+r /usr/local/cuda/include /usr/local/cuda/lib64
  • 만일 본인의 ubuntu 버전에 맞는 deb가 있다면 CUDA에서처럼 설치를 한다.
    • sudo dpkg -i [파일명].deb
    • 설치 후 뜨는 가장 맨 아래 글을 복붙하여 명령어로 실행한다.
    • sudo apt-get update

설치 확인

  • 드라이버 : nvidia-smi

  • CUDA : nvcc -V

    • 나는 인식이 안됬어서 sudo gedit ~/.bashrc후 맨 밑에 아래의 경로들을 추가했다
    • export PATH="/usr/local/cuda-[본인 버전을 넣는다. 12.2와 같이]/bin:$PATH"
    • export LD_LIBRARY_PATH="/usr/local/cuda-[본인버전]/lib64:$LD_LIBRARY_PATH"
  • cuDNN : cat /usr/local/cuda/include/cudnn_version_v8.h | grep CUDNN_MAJOR –A 2!

  • torch에서 확인하는 법들

    • python을 실행
    • import torch
      CUDA : print(torch.version.cuda)
      cuDNN : print(torch.backends.cudnn.version())

(번외) NCCL 설치

  • NCCL은 병렬처리를 위한 라이브러리이다. 노트북이랑 내 데스크탑은 GPU가 1개 뿐이라 설치를 할 필요가 없었다. 연구실 서버에는 설치를 해봤어서 기록해둔다.

  • 다운로드 : https://developer.nvidia.com/nccl/nccl-legacy-downloads

  • 버전확인 : python실행 후

    • import torch
    • print(torch.cuda.nccl.version())

아나콘다 설치

생각해보니 이것도 꼭 설치하다보니 추가로 넣는다.

  • 링크 : https://www.anaconda.com/download#downloads
  • 우측의 linux에서 맨 위의 64-Bit(x86) installer를 다운로드한다.
  • bash [설치파일명].sh
    • "ENTER"를 입력하고 엔터키를 누른다
      • 참고로 라이센스 읽을때는 스페이스로 하면 좋다. 엔터로 하면 경로를 기본 경로로 하게 된다.
    • 경로를 설정해준다. 나는 /home/[user명]/anaconda3으로 했다
    • 마지막에는 conda를 bash의 기본설정으로 하겠냐는것이다. 보통은 yes로 한다. 나중에 기능을 취소할 수 있다.
    • conda init 후 터미널을 재시행하면 된다
      • 안될경우엔 sudo gedit ~/.bashrc를 한 후
        export PATH="/home/[유저명]/anaconda3/bin:$PATH"를 추가하고 source ~/.bashrc를 해주자.

딥러닝 공부하면서 가장 어려운게 이 환경세팅인 것 같다. 내용을 정리하면서 했더니 2시간이 걸렸다 ㄷㄷ; 처음에는 아무것도 모르고, 하라는대로 해도 안되서 6시간 이상 걸리는 사람도 많다. 오래 걸렸다고 좌절하지 말자.

profile
hello-world

0개의 댓글