DL 실험 환경 세팅 with WSL, GPU

Jaeho Lee·2023년 2월 12일
0
post-thumbnail

Introduction

연구실 데스크탑 OS를 Windows11로 업데이트 후 새롭게 실험 환경을 구성해 보려 합니다.

경험에 의하면 Windows에서는 환경 구축이 어려울뿐더러, 구축하더라도 패키지 의존성, 환경변수 등 불편한 점이 너무 많습니다.
무엇보다 연구실 GPU 서버는 Linux 환경이고, 제가 관리를 하고 있기에 저에게는 Linux가 더 익숙합니다.

그래서 WSL을 이용해 Linux에서 GPU로 실험할 수 있는 환경을 구축해 봤습니다.


1. Install WSL(Windows Subsystem for Linux)

WSL을 사용하면 기존 가상 머신의 오버헤드 또는 듀얼 부팅 설정 없이 대부분의 명령줄 도구, 유틸리티 및 애플리케이션을 비롯한 GNU/Linux 환경을 수정하지 않고 Windows에서 직접 실행할 수 있습니다.

설치 전 확인 해야 할 사항들

  • WSL2를 이용하기 위해선 Windows 10 version 2004(Build 19041) 보다 높은 버전을 사용하거나 Windows 11을 사용해야 하며, Windows11에서도 최신 버전으로 업데이트가 필요합니다.
  • CPU 가상화 여부
    작업 관리자의 성능 탭에서 CPU의 가상화가 '사용'인지 확인해야 합니다.
    가상화가 '사용'이 아니라면 BIOS에 진입 후 CPU 가상화를 활성화시켜주면 됩니다.

    Intel: Intel Virtualization Technology
    AMD: SVM Mode

WSL2 설치 및 설정

터미널 또는 PowerShell을 관리자 권한으로 실행시켜줍니다.

가장 쉬운 설치 방법은 아래와 같으며, 가장 최신 버전의 Ubuntu가 설치됩니다.

wsl --install

저는 연구실 GPU 서버와의 통일을 위해 20.04를 설치했습니다.

wsl --list --online
wsl --install -d <배포>

※ 중간에 오류가 발생한 부분은 wsl --update로 해결했습니다.

설치 완료 후 재부팅을 하게 되면 아래와 같이 ID, PW를 설정할 수 있습니다.

2. Install NVIDIA-Driver

https://www.nvidia.co.kr/Download/index.aspx?lang=kr
해당 링크에서 GPU에 맞는 드라이버를 설치할 수 있습니다.

3. Install CUDA Toolkit

https://developer.nvidia.com/cuda/wsl
해당 링크에서 CUDA Toolkit을 설치할 수 있습니다.
저는 연구실 GPU 서버 환경과의 통일을 위해 11.3을 설치했습니다.

Linux -> x86_64 -> WSL-Ubuntu -> 2.0 -> deb (local)의 순서대로 선택하게 되면 사진과 같이 설치 명령어가 제공됩니다.

명령어 입력 전 오래된 GPG key부터 삭제해 줍니다.

First, remove the old GPG key

sudo apt-key del 7fa2af80

Key를 삭제했다면 아래 명령어를 한 줄씩 수행해 줍니다.

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.3.0/local_installers/cuda-repo-wsl-ubuntu-11-3-local_11.3.0-1_amd64.deb
sudo dpkg -i cuda-repo-wsl-ubuntu-11-3-local_11.3.0-1_amd64.deb
sudo apt-key add /var/cuda-repo-wsl-ubuntu-11-3-local/7fa2af80.pub
sudo apt-get update
sudo apt-get -y install cuda

정상적으로 설치가 되었다면 nvidia-smi -q 명령어 실행 시 아래와 같이 GPU 정보가 나타납니다.

4. Install cuDNN

https://developer.nvidia.com/rdp/cudnn-download
해당 링크에서 로그인 후 cuDNN을 다운받을 수 있습니다.
저는 앞서 설치한 CUDA Toolkit 과의 호환을 위해 11.x를 설치했습니다.

Local Installer for Linux x86_64 (Tar)를 다운로드합니다.

이때 다운로드 파일은 Windows downloads에 저장되기 때문에 이를 Ubuntu로 옮겨와야 합니다.

cd /mnt/c/user/<User Name>/Downloads
mv cudnn-linux-x86_64-8.8.0.121_cuda11-archive.tar ~/downloads

이후 다운받은 cuDNN을 압축 해제해 준다.

tar -xvf cudnn-linux-x86_64-8.8.0.121_cuda11-archive.tar ~/downloads

압축 해제 후 아래 명령어를 통해 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*

마지막으로 ~/.bashrc에 PATH를 등록해 준다.

vim ~/.bashrc
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/cuda-11.3/lib64/

※ export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/cuda-11.3/lib64/
cuda-11.3은 설치한 버전에 맞게 변경해 줘야 합니다.

정상적으로 설치가 되었다면 /usr/local/cuda-11.3/extras/demo_suite/deviceQuery 명령어 실행 시 사진과 같이 GPU 정보가 나오게 되며, 가장 마지막에 Result = PASS 가 나와야 합니다.

5. Test

모든 환경 구축을 마친 뒤 간단한 테스트를 진행했습니다.
아래 사진을 보면 정상적으로 CUDA 사용이 가능하며 GPU 종류, 개수 모두 정확히 인식하는 것을 볼 수 있습니다.


비록 연구실 GPU 서버에 비해 연산 성능, VRAM 등이 한참 모자라 학습은 힘들지만, 간단한 디버깅 용으로는 충분한 것 같습니다.

0개의 댓글