WSL (Windows Subsystem for Linux)

✔ 윈도우의 가상화 기능을 활용해서 윈도우 위에서 리눅스를 사용할 수 있게 해줌

✔ 특히 WSL2는 리눅스에서 CUDA 지원 - Windows 10, 버전 1903, 빌드 18362 이상

설치환경

  • Windows 10 Pro 22H2, 빌드 19045
  • WSL2 - Ubuntu 22.04

WSL2 설치

  • 관리자 모드에서 PowerShell 을 실행하여 아래 명령어를 입력 wsl --install
  • wsl --install 명령을 사용하여 설치된 새 Linux 설치는 기본적으로 WSL2로 설정됨

Ubuntu 버전 변경

  • wsl -l -v 명령어로 설치된 Linux 배포판을 나열함
  • wsl --list --online 명령어로 사용 가능한 배포판 목록 확인
  • wsl --install -d <Name> 명령어로 특정 배포판 설치
  • wsl --unregister <Name> 명령어로 기존 배포판 제거

wsl --install -d Ubuntu-22.04 로 우분투 22.04버전 설치 wsl --unregister Ubuntu 로 기존 설치버전 제거

초기 설정

  • 패키지 최신화 sudo apt update sudo apt upgrade

WSL2 - CUDA 설치

GPU Driver 확인

  • WSL2의 경우 WDDM 모드로 동작하는 대부분의 GPU의 Driver를 호환함
  • Windows에 설치된 GPU Driver를 불러오므로 WSL2에 따로 설치하지 않음
  • WSL2에서 nvidia-smi 명령어로 GPU Driver가 정상 로드되는지 확인


CUDA Toolkit 설치

wget https://developer.download.nvidia.com/compute/cuda/repos/wsl-ubuntu/x86_64/cuda-wsl-ubuntu.pinsudo 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

CUDA 환경변수 등록

  • nvcc --version 명령어로 확인
  • nvcc를 인식하지 못한다면 아래 과정을 진행
sudo nano ~/.bashrc
s
# ~~~
# 마지막줄에 cuda 버전에 맞게 작성
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/cuda-11.2/lib64/
export CUDACXX=/usr/local/cuda-11.2/bin/nvcc
export CUDA_HOME=/usr/local/cuda-11.2
export PATH=$PATH:$CUDA_HOME/bin

# 저장 : Ctrl + S
# 종료 : Ctrl + X
  • nvcc --version 명령어로 설치 확인

Sample 실행


❗ 이슈

WSL2 에서 Tesla A100 지원안됨

  • TTC 모드로만 동작하는 A100 또는 일부 Quadro, Tesla GPU는 아직 WSL2 에서 지원하지 않는다.

WSL 2 GPU acceleration will be available on Pascal and later GPU architecture on both GeForce and Quadro product SKUs in WDDM mode. It will not be available on Quadro GPUs in TCC mode or Tesla GPUs yet


참고