Home Windows Subsystem for Linux (WSL) Setup for Reinforcement Learning
Post
Cancel

Windows Subsystem for Linux (WSL) Setup for Reinforcement Learning

이 포스트에서는 Reinforcement Learning (RL) 작업을 위한 Windows Subsystem for Linux (WSL) 설치 및 Setup에 대해 소개한다. WSL에 대한 보다 자세한 내용은 MS 공식 문서를 참조하기 바란다.

이 포스트는 추후 더 자세한 내용과 함께 업데이트 될 예정입니다.

WSL

PowerShell을 관리자 권한으로 실행 후 아래 커맨드를 입력한다:

1
wsl --install

설치가 완료되면 컴퓨터를 재시작한다.

위 커맨드는 WSL이 전혀 설치되지 않은 경우에만 작동한다. wsl --install 실행 시 도움말 텍스트를 보는 경우 wsl --list --online을 실행해 사용 가능한 배포판 목록을 확인하고 wsl --install -d <DistroName>을 실행하여 배포판을 설치한다. (e.g., wsl --install -d Ubuntu)

그 외 참고할 문서:

Zsh & Oh My Zsh

윈도우 10/11 환경에서 리눅스(wsl2)의 zsh 꾸미기 포스트를 따라 커스텀 터미널 환경을 구축한다.

NVIDIA CUDA

CUDA on Windows Subsystem for Linux (WSL)에서 CUDA를 설치할 수 있다. NVIDIA 최신 드라이버가 설치되어 있지 않다면 Get GUDA Driver를 클릭해 설치한다.

NVIDIA 드라이버는 반드시 Windows 용으로 설치한다! WSL 환경에 따로 드라이버를 절대 설치하지 않는다.

Docs에 따라 wsl에 CUDA를 설치한다.

WSL에 아래 커맨드를 입력해 CUDA가 정상적으로 설치 되었는지 확인하다:

1
nvidia-smi

Windows Terminal을 관리자 권한으로 실행 시 NVIDIA 드라이버를 load하는데 실패할 수 있다.

~/.zshrc 파일에 아래와 같이 환경 변수를 설정한다 (<X.X>에 설치한 CUDA 버전을 입력, e.g., 11.6):

1
2
export PATH=/usr/local/cuda-<X.X>/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/cuda-<X.X>/lib64:$LD_LIBRARY_PATH

아래 커맨드를 입력해 CUDA가 설치됐는지 확인한다:

1
nvcc --version

Anaconda & PyTorch

여기서는 Anaconda의 경량화 버전인 Miniconda를 사용한다. 아래 커맨드를 입력해 설치한다 (설치 전 다운로드 파일을 모와 놓는 디렉토로 이동하는 것을 권장한다):

1
2
wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh
bash Miniconda3-latest-Linux-x86_64.sh

아래 커맨드를 입력해 테스트 Conda 환경을 만든다:

1
2
conda create -n torch-test python=3.7 -y
conda activate torch-test

PyTorch를 설치한다 (PyTorch 1.11.0, CUDA 11.3):

1
conda install pytorch==1.11.0 torchvision==0.12.0 torchaudio==0.11.0 cudatoolkit=11.3 -c pytorch

아래 커맨드를 입력 해 Python Interactive 모드로 진입 한다:

1
python

아래 코드를 한 줄씩 입력 해 PyTorch에서 CUDA 사용 가능 여부를 확인한다:

1
2
>>> import torch
>>> torch.cuda.is_available()

OpenAI Gym

WSL에서 OpenAI Gym 환경 실행 자체는 문제가 되지 않으나 렌더링 시 libGLX Error 등의 에러가 발생할 수 있다. 이 경우 먼저 Windows에 Xming X Server for Windows을 설치한다.

WSL에 아래 커맨드를 입력 해 다음 패키지들을 추가로 설치한다:

1
2
sudo apt-get install x11-apps
sudo apt-get install gnome-calculator

~/.zshrc 파일에 아래와 같이 환경 변수를 설정한다:

1
2
export LIBGL_ALWAYS_INDIRECT=1
export DISPLAY=$(cat /etc/resolv.conf | grep nameserver | awk '{print $2}'):0

Windows에서 현재 Xming이 실행 중이라면 종료 후 XLaunch 앱을 실행 후 아래 과정에 따라 Xming을 재실행한다:

  1. 다음 클릭 (Default: Multiple windows)
  2. 다음 클릭 (Default: Start no client)
  3. No Access Control 체크 후 다음 클릭
  4. 마침 클릭

아래 커맨드를 입력 해 아래 그림과 같이 앱이 실행되는지 확인한다:

1
xeyes

이제 OpenAI Gym 환경이 정상적으로 렌더링 되는지 확인한다 (Gym 0.25.2):

1
2
3
4
5
6
7
8
9
10
11
12
13
import gym

env = gym.make("CartPole-v1", new_step_api=True, render_mode="human")

obs = env.reset()

for _ in range(100):
    action = env.action_space.sample()
    next_obs, _, terminated, truncated, _ = env.step(action)
    if terminated | truncated:
        obs = env.reset()
        
env.close()
This post is licensed under CC BY 4.0 by the author.