Creative-Chan

Windows Deep Learning Server using WSL2 본문

Programming/Linux

Windows Deep Learning Server using WSL2

Creative.Chan 2023. 2. 4. 23:58
오랜만에 작성하는 블로그 글. 개인적인 일정들로 스터디보다는 업무에 치중했었는데, 다시 조금씩 스터디를 진행하고자 한다.
이전에 초안까지는 작성했던 글들도 다시 올릴 예정이다.

WSL이란

Window Subsystem for Linux

말 그대로 리눅스용 윈도우의 하위 시스템으로 윈도우에서 실행하는 리눅스라고 할 수 있다.

기존에는 가상 머신 등을 사용하거나, 듀얼 부팅 시스템을 활용하여 리눅스 시스템을 사용하였다면, 윈도우에서 실행할 수 있도록 지원하는 리눅스 시스템이다.

기존에는 학교에서 리눅스 서버를 구축하여 사용했었는데, 학교를 떠난 이후에는 서버를 사용할 수가 없어 개인이 보유한 맥 또는 윈도우 시스템을 활용하였다.

개인적으로는 주로 집에서는 M1 아이맥, 카페나 외부에서는 2017 맥북프로 15인치를 사용하였고, 윈도우 시스템이 필요할 때는 구글의 크롬 원격 데스크톱 또는 Parsec 시스템을 활용해 원격으로 활용하였다.

머신러닝이나 ROS 시스템에 대한 스터디를 진행하고자 할 때, 한계점이 많아서 진행하지 못하고 있는 것들이 있었고, 필요할 때 윈도우에 접속해서 사용해야했기 때문에(K-인터넷환경..) 듀얼 부팅 없이 리눅스 시스템에서의 개발을 활용하기 위해 WSL 다시 고민하게 되었다.

마침 WSL2에서는 NVidia CUDA를 활용 가능하다고 하여 시스템 구축을 진행해보았다.

1. Powershell을 관리자 모드로 실행

2. wsl 설치

wsl --install

 

3. ubuntu 설치 및 실행

ubuntu

ubuntu 실행 이 과정에서 자동으로 Ubuntu 20.04 버전이 설치된다. 하지만 본인의 경우, 가상화 설정이 꺼져있어서 정상적으로 설치가 진행되지 않았다. BIOS에서 CPU에 맞는 가상화 설정을 진행하고 다시 진행한다.

3-1. Ubuntu 계정 설정

원래 ubuntu를 처음 실행하면 Install 이 진행되면서 계정 설정도 자동으로 이루어져야하는데, 뭔가 문제가 생겨 계정 설정이 자동으로 진행되지 않았다.

그러다보니 root 계정으로 로그인이 자동으로 되었는데, 개인 pc라 root로 사용해도 무방할 것 같았지만 혹시나 하는 마음에 개인 계정 설정을 진행하기로 하였다.

root 계정에서 다음 명령어를 통해서 계정을 추가할 수 있다.

useradd {계정이름} // 계정 추가
passwd {계정이름} // 이후 비밀번호 입력
mkdir -p /home/{계정이름} // 홈 디렉토리 설정
chown -R {계정이름}:{계정이름} /home/{계정이름} // 홈 디렉토리 권한 부여
groupadd {그룹이름} // 그룹 생성
usermod -G {그룹이름} {계정이름} // 그룹 지정
groups {계정이름} // 그룹 지정되었는지 확인
su - {계정이름} // 계정 변경
su // root로 접속

 

이후 ubuntu 실행시 기본 로그인 계정을 powershell에서 변경한다.

ubuntu config --default-user {계정이름}

 

 

이렇게 하면 wsl2 설치는 끝났다.

해당 방식의 경우 문제가 일부 발생했고, 설치 상의 문제로 재설치를 한번 진행하였는데, 처음 설치 시 계정 생성이 문제 없이 되었을 경우에는 정상 동작하였으므로 신경쓰지 않아도 된다.

Anaconda 설치

이전에 Conda 환경을 활용하여 개발을 진행했었으므로, Ananconda를 설치한다.

Anaconda 사이트에 접속하여 64-Bit (x86) Installer의 주소를 복사하여 wget 명령어를 통해 다운로드 받는다.

https://www.anaconda.com/products/distribution

 

Anaconda | Anaconda Distribution

Anaconda's open-source Distribution is the easiest way to perform Python/R data science and machine learning on a single machine.

www.anaconda.com

wget <https://repo.anaconda.com/archive/Anaconda3-2022.10-Linux-x86_64.sh>
./Anaconda3-2022.10-Linux-x86_64.sh

WSL2에서 CUDA 설치

다음 사이트에 접속해서 명령어를 통해 CUDA를 설치한다. 11.2 설치하였음.

https://developer.nvidia.com/cuda-toolkit-archive

 

CUDA Toolkit Archive

Previous releases of the CUDA Toolkit, GPU Computing SDK, documentation and developer drivers can be found using the links below. Please select the release you want from the list below, and be sure to check www.nvidia.com/drivers for more recent production

developer.nvidia.com

TensorFlow 설치

이전에 설치했던 방식으로 conda 환경에 동일하게 설치를 진행하였다.

conda create -n {env_name} tensorflow-gpu
conda activate {env_name}

// tensorflow 사이트의 명령어 중 잘 안된 부분 -> 없어도 문제 없었음
conda install -c conda-forge cudatoolkit=11.2 cudnn=8.1.0

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$CONDA_PREFIX/lib/
mkdir -p $CONDA_PREFIX/etc/conda/activate.d
echo 'export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$CONDA_PREFIX/lib/' > $CONDA_PREFIX/etc/conda/activate.d/env_vars.sh

// tensorflow 사이트의 명령어 중 잘 안된 부분 -> 없어도 문제 없었음
pip install --upgrade pip
pip install tensorflow

// 테스트 명령어
python3 -c "import tensorflow as tf; print(tf.reduce_sum(tf.random.normal([1000, 1000])))"
python3 -c "import tensorflow as tf; print(tf.config.list_physical_devices('GPU'))"
Comments