로컬을 Ubuntu로만 쓰다가 최근에 Window로 변경하였다. 당연히 Window에서 개발을 진행하는데는 한계가 있어 WSL을 설치하여 Linux 환경을 사용하게 되었다.
ubuntu를 그냥 쓰기만 했지 window에 wsl을 설치하여 쓰는 건 처음이라 이것저것 확인하고 설치하느라 굉장히 힘들었던 것 같아서 그 과정을 기록으로 남겨둔다.
⏹ WSL이란?
WSL은 Linux용 윈도우 하위 시스템으로 Window에서도 Linux 환경을 사용할 수 있도록 해준다.
⏹ 설치 전 확인 해야 할 사항들
1. CPU의 가상화 여부
Ctrl + Alt + Del 를 누른 후 작업 관리자를 실행하여 (혹은 윈도우 검색 창에 작업 관리자 입력) 성능 탭으로 이동하면 CPU의 가상화가 '사용' 인지 확인해야 한다.
CPU의 가상화가 '사용' 이 아니라면 바이오스로 진입하여 설정을 해 주어야 한다.
PC를 다시 시작하면서 Del 키나 F2 키를 눌러 바이오스에 진입한 후 Advanced Mode를 클릭하면 CPU 구성에 진입할 수 있다. 여기서 Intel Virtualization Technology 활성화로 변경 후 저장 후 재시작을 하면 된다. 혹은 SVM Mode를 Enabled로 변경해도 된다.
PC 재시작 후 다시 cpu의 가상화가 사용인지 확인하면 된다.
2. Window 빌드 버전 확인
Window + R 누른 후 winver를 입력하면 window 빌드 버전을 확인할 수 있다.
window 버전 10(빌드 2004) 이상에서 windows 19044를 실행하고 있는지 확인해야 한다. ➡2022.10.30 기준 버전 21H2(OS 빌드 19044.2006임.
빌드 버전이 다를 경우 윈도우 참가자 프로그램에 등록해야 한다.
윈도우 설정에서 업데이트 및 보안을 선택하면 윈도우 참가자 프로그램이 있다. 거기서 시작을 누르면 계정을 연결하라고 한다. 계정을 연결하고 나면
참가자 설정을 선택할 수 있는데 권장인 베타 채널을 선택하면 된다.
이후 pc를 재시작하면 윈도우 참가자 프로그램에 등록이 완료된다.
2.1 윈도우 업데이트 확인
윈도우 업데이트 실행 후 최신 상태인지 확인하고 아닐 경우 업데이트를 해 준 뒤에 pc를 다시 시작한다.
⏹ WSL2 설치 및 설정
1. PowerShell 명령어 입력 1 (wsl 환경 설정)
powershell을 관리자 권한으로 실행한 후 아래 두 명령어를 실행한다.
dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
이후 재부팅을 해준다.
2. WSL2 패키지 설치
위 링크의 4단계 'x64 머신용 최신 WSL2 Linux 커널 업데이트 패키지'를 설치한 후 pc 재부팅을 한다.
3. PowerShell 명령어 실행 2 (wsl 설정 및 버전 확인)
재부팅을 했다면 다시 powershell을 관리자 권한으로 실행한 후 아래 명령어를 입력하여 wsl 설정을 마저 해준다.
wsl --set-default-version 2
이후 wsl --list -verbose를 실행해 version이 2로 변경된 것을 확인한다.
4. WSL2 설치
Microsoft Store를 실행하여 Ubuntu와 window 터미널을 설치 해 준다.
윈도우 터미널은 정말 유용하게 쓰이기 때문에 wsl2을 사용하지 않더라도 설치하면 정말 정말 편할 것이다!!
5. Ubuntu Setup
Ubuntu 설치를 마쳤다면 우분투 아이콘을 실행하여 ID 및 PW를 설정 해 준다.
윈도우 터미널을 실행하면 기본으로 설정된 터미널 또는 powershell이 뜰텐데 이 때 우분투 터미널이 기본으로 뜨도록 설정을 해 준다.
터미널 실행 후 상단의 + 옆에 있는 아래 화살표를 클릭하여 설정으로 진입한다.
기본 프로필을 설치한 Ubuntu로 설정한 후 저장하면 윈도우 터미널 실행 시 자동으로 우분투 탭이 생성되며 새로운 창을 추가해도 우분투 터미널이 생성된다.
이후 아래 명령어를 실행하여 ubuntu setup을 마저 해 준다.
sudo apt-get update
sudo apt-get upgrade
여기까지가 윈도우에 wsl2를 설치하는 과정이다. 이후는 nvidia driver, cuda 설치 등의 과정으로 해당 과정이 필요 없는 사람은 스킵해도 된다.
⏹ WSL2 NVIDIA-Driver 설치
https://developer.nvidia.com/cuda/wsl
해당 사이트에 접속하여 본인의 그래픽 카드에 맞는 드라이버를 다운받고 설치한다.
정상적으로 설치가 완료된다면 ubuntu 터미널에 nvidia-smi 명령어 실행 시 GPU 정보가 나타날 것이다.
⏹ WSL2 Cuda Tollkit 설치
나는 cuda 11.1을 설치하였다.
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.1.0/local_installers/cuda-repo-wsl-ubuntu-11-1-local_11.1.0-1_amd64.deb
sudo dpkg -i cuda-repo-wsl-ubuntu-11-1-local_11.1.0-1_amd64.deb
sudo apt-key add /var/cuda-repo-wsl-ubuntu-11-1-local/7fa2af80.pub
sudo apt-get update
sudo apt-get -y install cuda-11-1
다른 버전을 설치하고자 한다면 nvidia cuda toolkit 버전 검색하면 나오는 NVIDIA Developer에 접속하여 설치하면 된다.
⏹ WSL2 NVIDIA cudnn 설치
https://developer.nvidia.com/rdp/cudnn-archive
위 사이트에 접속 해 본인 CUDA 버전에 맞는 cuDNN을 다운로드 해준다.
이때 다운로드는 window pc 다운로드 폴더에 되기 때문에 약간의 조작이 필요하다.
우분투 터미널에서 윈도우 폴더로 이동하기 위해
cd /mnt/c/user/사용자명
해당 명령어를 입력해 Downloads 폴더까지 진입한다. (/mnt/c/ <- 이게 윈도우에 마운트 된 c드라이브 위치이다.)
이후 다운받은 cuDNN을 우분투 드라이버로 옮겨준다.
mv '다운받은 cudnn 파일' /home/유저명
이후 다운받은 cudnn을 압축 해제 해준다.
tar -xzvf '다운받은 cudnn 파일'
압축 해제 후에 3개 명령어를 실행 해 준다.
sudo mv cuda/include/cudnn.h /usr/local/cuda/include
sudo cp cuda/lib64/libcudnn* /usr/local/cuda/lib64
sudo chmod a+r /usr/local/cuda/include/cudnn.h /usr/local/cuda/lib64/libcudnn*
명령어를 실행하면 nvcc -V를 실행하여 CUDA가 제대로 설치 되었는지 확인한다.
이때 nvcc 명령어가 먹히지 않을 때
sudo nano ~/.bashrc
해당 명령어를 실행하여 맨 아래에 내용을 추가 해 주어야 한다.
export PATH="/usr/local/cuda-11.0/bin:$PATH“
export LD_LIBRARY_PATH="/usr/local/cuda-11.0/lib64:$LD_LIBRARY_PATH“
cuda-11.0 부분은 본인이 설치한 버전으로 변경해야 한다.
(nano 저장 : crtl+o, nano 나가기 : ctrl+x)
이후 wsl2를 재시작 후 nvcc - V를 입력하면 제대로 뜨는 것을 확인할 수 있다.
모든 과정이 끝나면 ubuntu에 본인이 필요한 것들을 설치하여 사용하면 된다!
나는 도커랑 이것저것 설치해서 엄청 편하게 사용 중이다!