WSL & CUDA 설치 가이드

·2023년 3월 2일
0

WSL(Ubuntu) & CUDA 설치 가이드

생성자: 유현준 / https://github.com/JuNoe2020

CONTENTS


설치 환경

Windows10 빌드버전 22H2 19045.2486

설치 순서

  1. WSL 설치
  2. nvidia 드라이버 설치
  3. cuda toolkit 설치
  4. cuDNN 설치

WSL

Ctrl + Alt + Del 을 눌러 작업 관리자성능탭에서 CPU의 가상화가’ 사용인지 확인한다.

가상화가 사용이 아니라면 BIOS에서 설정해주어야 한다.

  • 바이오스 설정
    1. Del 또는 F2키를 눌러 BIOS에 진입
    2. Advanced Mode를 클릭
    3. Intel Virtualization Technology 활성화
    4. 저장 후 재시작

window키 + R 누른 후 winver 입력하여 빌드 버전 확인한다.

💡 특정 버전의 그래픽드라이버를 설치할 때 윈도우 빌드버전이 너무 높거나 낮으면 드라이버설치 안됨. 본 설치 진행시 윈도우 빌드 22H2 19045.2486 에 nvidia driver 522.25 설치는 문제가 없었다. 💡 WSL2를 이용하기 위해선 Windows 10 version 2004(Build 19041) 보다 높은 버전을 사용하거나 Windows 11을 사용해야 한다.

PowerShell 에서 다음 명령어 입력(관리자 권한 필요) 후 재부팅한다.

dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart

Linux 커널 업데이트 패키지 다운로드한다.

아래 사이트에서 x64 머신용 최신 WSL2 Linux 커널 업데이트 패키지 다운 받고 설치한다.

이전 버전 WSL의 수동 설치 단계

Microsoft Store에서 linux를 검색한 후 Ubuntu 설치한다.

어떤 버전을 설치해도 괜찮으나 여기선 다음 앱을 설치한다.(Ubuntu 22.04.1 버전)

설치 후 Windows PowerShell 에서 다음 명령어 입력하여 wsl 버전이 2로 뜨는지 확인한다.

wsl --status

  • 윈도우 터미널 설치(있으면 유용함)

    1. Microsoft store 접속

    2. Windows Terminal 검색

    3. 터미널 실행 후 상단의 + 옆에 있는 아래 화살표를 클릭하여 설정 진입

    4. 기본 프로필을 설치한 Ubuntu로 변경 후 저장(터미널 실행 시 자동으로 해당 우분투 탭 생성)

      💡 **윈도우 터미널을 사용하면 한 창에 여러개의 리눅스 터미널과 Window PowerShell을 동시에 사용할 수 있음**

Ubuntu Setup

우분투 계정 ID/PW 설정 및 설치한다.

우분투 터미널에서 다음 명령을 입력한다.

sudo apt-get update
sudo apt-get upgrade

그래픽드라이버

아래 사이트에서 본인에게 맞는 드라이버 다운로드 후 설치한다.

Download the latest official NVIDIA drivers

💡 **드라이버는 WSL이 아닌 윈도우에 설치해야 한다!** 💡 **가장 최신 버전의 드라이버로 설치 시 CUDA 버전이 12가 된다. 하지만 CUDA 12.0의 경우 아직 매칭이 되는 cuDNN 버전이 없는 상태이기 때문에 CUDA 11 버전에 맞는 드라이버 설치가 필요하다.**

여기서는 CUDA 버전 11.8 이 설치되는 522.25 드라이버를 설치함. 이 이하 버전은 윈도우 빌드 버전이 높다면 설치가 어려울 수 있다.

Ubuntu에서 다음을 입력하여 엔비디아 드라이버가 잡히는지 확인한다.

nvidia-smi

아래와 같이 확인된다면 WSL에서 CUDA 를 조작할 수 있다.

nvidia-smi를 입력해도 뜨지 않을경우 ubuntu를 삭제후 재부팅하여 설치하면 나오는 경우도 있음

설정 → windows 업데이트 windows10, version22H2 업데이트 시 nvidia-smi 활성화 됨

리눅스용 windows 하위시스템 활성화 필요!!

cuda toolkit

다음 사이트에서 Linux ▶️ x86_64 ▶️ WSL-Ubuntu ▶️ deb(local) 순으로 클릭✅

CUDA Toolkit 11.7 Downloads

Installation Instructions에 따라 순서대로 명령어 입력한다.

💡 **설치 중 GPG KEY가 나타나지 않는다는 메시지가 보이면 로그에서 보여주는 명령어를 실행 후 다시 설치한다.**

위의 사이트에서 실행하게 되면 12버전으로 설치가 되는 기이한 현상이 발생하므로 아래 명령어들을 수행하기를 바란다.

wget https://developer.download.nvidia.com/compute/cuda/repos/wsl-ubuntu/x86_64/cuda-wsl-ubuntu.pin
sudo mv cuda-wsl-ubuntu.pin /etc/apt/preferences.d/cuda-repository-pin-600
wget https://developer.download.nvidia.com/compute/cuda/11.8.0/local_installers/cuda-repo-wsl-ubuntu-11-8-local_11.8.0-1_amd64.deb
sudo dpkg -i cuda-repo-wsl-ubuntu-11-8-local_11.8.0-1_amd64.deb
sudo cp /var/cuda-repo-wsl-ubuntu-11-8-local/cuda-*-keyring.gpg /usr/share/keyrings/
sudo apt-get update
sudo apt-get -y install cuda

cuDNN

아래 cuDNN Archive 에서 CUDA 버전이 맞는 파일 다운로드한다.

cuDNN Archive

여기서는 cuDNN v8.6.0 for CUDA 11.x 에서 Ubuntu22.04 x86_64(Deb) 를 다운로드한다.

Ubuntu에서 다음 명령어로 현재 경로 이동한다.

cd /mnt/c/Users/[유저명]/Downloads
💡 파일이 다운로드 되어있는 경로로 바꿔주면 되는데, 유저명부터 하위 경로는 본인의 설정에 따라 바뀔 수 있다.

다운받은 cuDNNwsl의 /home/[유저명] 으로 이동한다.

mv '다운받은 cudnn 파일' /home/유저명

유저명이 있는 경로로 들어와서 cuDNN 설치한다.

sudo dpkg -i '파일명'

GPG key가 나타나지 않는다고 나오면 아래 명령어 입력 후 다시 설치한다.

sudo cp /var/cudnn-local-repo-ubuntu2204-8.6.0.163/cudnn-local-FAED14DD-keyring.gpg /usr/share/keyrings/
💡 **본인이 deb 파일이 아니라 압축파일을 받았다면 다음 명령어를 입력하여 설치한다.**
tar -xvf '다운받은 cudnn 파일'
sudo cp cudnn-*-archive/include/cudnn*.h /usr/local/cuda/include 
sudo cp -P cudnn-*-archive/lib/libcudnn* /usr/local/cuda/lib64 
sudo chmod a+r /usr/local/cuda/include/cudnn*.h /usr/local/cuda/lib64/libcudnn*

## nano 편집기를 이용하여 환경변수 수정
sudo nano ~/.bashrc

## bashrc 마지막 줄에 추가 후 ctrl+o -> enter -> ctrl+x
export PATH=/usr/local/cuda-11.8/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/cuda-11.8/lib64:$LD_LIBRARY_PATH

## bashrc에 수정된 내용 바로적용
source ~/.bashrc

다음 명령어를 입력한다.

nvcc -V

아래와 같은 화면이 나온다면 cuDNN 설치 완료한다.

위의 결과가 안보이면 WSL를 재부팅 하여 확인한다.

  • WSL 재부팅
    1. Win + r 누르기
    2. 입력창에 services.msc 입력 후 엔터
    3. 화면의 서비스 목록에서 LxssManger 찾기
    4. 마우스 우클릭 후 다시 시작 선택

명령어 모음

단축키

  • 리눅스 명령어 한 번에 지우기 ctrl + u

CMD/Windows PowerShell 명령어

# wsl 상태 확인
wsl --status

# driver/cuda 버전 확인
nvidia-smi

Ubuntu 명령어

# root 계정으로 접근
sudo su

# cuda 버전 확인
nvcc -V
nvcc --version

# 우분투 버전 확인
lsb_release -a

# tar.xz 압축 풀기
tar -xvf '파일명'.tar.xz

# driver/cuda 버전 확인
nvidia-smi

# deb 파일 설치
sudo dpkg -i '파일명'

WSL에서 vscode실행

code .

참고자료

0개의 댓글