- 전체
- C/C++ 일반
- C/C++ 수학
- C/C++ 그래픽
- C/C++ 자료구조
- C/C++ 인공지능
- C/C++ 인터넷
- wxWidget
- GTK+
- UNIX or LINUX programming
- 리눅스 마스터 - 국가공인자격
- VC++/ MFC
- C#/CLI/.NET
- QT/기타UI
- Boost lib
- 오픈소스 C 분석자료
- MSA (마이크로서비스), Docker, kubernetes
- WSL(windows subsystem linux)
[WSL] WSL2 딥러닝 환경 구축하기 (CUDA, CuDNN, Anaconda)
WSL2 딥러닝 환경 구축하기 (CUDA, CuDNN, Anaconda)
윈도우에서 강화학습 환경을 구축해보려고 했다.
하지만 환경 구축도 어려울뿐더러 구축되더라도 불편한 점이 너무 많았다.
깔끔하게 밀어버리고 우분투를 깔자니 윈도우를 버리면 포기해야할 것들이 많고 듀얼부팅으로 가기에는 너무 귀찮다
그래서 윈도우에서 WSL2를 세팅해서 강화학습 환경을 구축해보려고 한다. WSL은 Windows Subsystem for Linux로 윈도우 내에서 리눅스를 구동할 수 있는 서브시스템이다.
이 글은 강화학습 환경 구축 이전 WSL2를 설치하기 위한 사전작업과 WSL2 설치과정, 딥러닝 환경 세팅에 대한 글이다
Version info
- Microsoft Windows 버전 Dev(OS 빌드 22454.1000)
- Windows Terminal 1.10.2383.0
- WSL 2
- Ubuntu 18.04
- Docker version 20.10.8, build 3967b7d
- Docker Compose version v2.0.0-rc.3
- CUDA 11.0
- CUDNN 8.2.1
- Anaconda 4.10.1
- GPU : NVIDIA GeForce RTX 2080 Ti
사전에 반드시 해야할 것
0. Windows 빌드 버전 확인
winver
무조건 빌드버전을 확인해야한다. 파워셸에서 winver쳤을 때 빌드버전이 20150 이상이어야 WSL2에 쿠다 설치가 가능하다. 20150 이상 버전이라면 사전작업을 스킵해도 된다. 아래 프로세스는 윈도우 빌드 20150 이상으로 업데이트하기 위한 작업이다.
1. Windows Insider Dev Channel Build 설정
https://insider.windows.com/en-us/getting-started#register 에서 Register
설정 — Windows 참가자 프로그램 — 시작 — 하라는거 다 하고 — 재부팅
2. 윈도우 업데이트 가장 최신버전으로 (최소 빌드 20150 이상)
Windows 참가자 프로그램이 활성화된 상태에서 할 수 있는 업데이트는 다 진행한다.
나는 Windows 참가자 프로그램까지 설정하고 업데이트를 다 했는데도 윈도우 버전이 19043이었다. 이를 무시하고 여러번 진행해보았는데 WSL2에 CUDA를 깔 수가 없었다.
이는 20150 이상의 윈도우 빌드가 Windows 11 관련 업데이트라서, PC가 Windows 11 설치를 위한 조건을 충족하지 못하기 때문에 가능한 최신의 업데이트가 19043 빌드인 것으로 추측된다. (뇌피셜)
1 2번을 모두 진행했는데도 버전이 20150 이하인 경우 3번으로 넘어간다
3. Windows 11 조건 충족하기
업데이트를 다 했는데도 빌드 버전을 충족하지 못할 경우, Windows 참가자 프로그램에 들어가보면 아마 아래와 같이 뜰 것이다.
참가자 설정 선택도 미리보기 채널 릴리스만 가능하다.
이때는 내 PC를 윈도우 11로 업뎃 가능하도록 설정해주어야 한다.
윈도우 11 호환성 검사 통과에 대한 삽질과정은 별개의 링크로 남긴다.
윈도우 11 호환성 검사를 통과한 후 다시 윈도우 참가자 프로그램에 돌아오면 [PC가 Windows 11의 최소 하드웨어 요구 사항을 충족하지 않습니다. 채널 옵션이 제한됩니다.] 메시지가 사라져있다.
다시 Windows 업데이트에 들어가 보니 드디어 2xxxx대의 빌드 업데이트가 가능해졌다
업데이트를 마치고 재부팅하니 젠장 ㅋㅋ 윈도우 11이 되었다! ????
윈도우 11로 업데이트할 생각은 없었지만… 어쨌든 빌드버전은 22454.1000이 되었다. 이제 WSL2에 쿠다를 설치할 수 있다!
WSL2 설치
1. Windows Terminal 설치
Microsoft Store에서 검색해서 설치. 또는 Chocolatey가 설치되어 있다면, 파워셸 관리자 권한으로 실행 후 아래와 같이 입력
choco install microsoft-windows-terminal
2. Windows Subsystem for Linux 설치
두가지 방법이 있다. 첫번째는 링크를 따라 매뉴얼하게 설정하는 방법
추천하는 방법은 터미널이나 파워셸에서 아래 명령어를 이용하는 방법
wsl.exe — install
…
exit
재부팅
이 방법으로 깔면 우분투 최신버전과 최신 리눅스 커널이 자동으로 깔리고, WSL2로 자동으로 업데이트되는 등 여러모로 편리한 점이 있다.
(i) enables the optional WSL and Virtual Machine Platform components
(ii) downloads and installs the latest Linux kernel
(iii) defines WSL 2 as the default
(iv) download and install an Ubuntu distribution
3. 우분투 버전 변경 (스킵 가능)
wsl.exe — install 입력 시 우분투 최신버전(Ubuntu 20.04 LTS)이 자동으로 깔리게 된다.
나는 보다 안정적인 Ubuntu 18.04 LTS을 사용하고 싶어서 바꿔주었다.
Microsoft Store에서 Ubuntu 18.04 LTS 검색해서 설치, 또는 Chocolatey가 설치되어 있다면 파워셸 관리자 권한으로 실행 후 아래와 같이 입력
choco install wsl-ubuntu-1804
재부팅
wsl — list — verbose
wsl — set-version Ubuntu-18.04 2
[가상 컴퓨터 플랫폼 Windows 기능을 사용하도록 설정하고 BIOS에서 가상화가 사용하도록 설정되어 있는지 확인하세요. ] 뜰 경우 이 블로그 따라하기
wslconfig.exe /u Ubuntu
후 앱 및 기능에서 기존 Ubuntu 제거
CUDA ToolKit 설치
나는 다른 버전의 쿠다를 깔고 싶어서 링크 방법대로 진행했다.
1. NVIDIA CUDA-enabled driver for WSL 설치
WSL 지원 NVIDIA Driver 다운로드
https://developer.nvidia.com/cuda/wsl 에서 받아서 설치
2. CUDA Toolkit 설치
wsl 우분투 패키지 업데이트
sudo su
apt update
apt upgrade
apt-key adv — fetch-keys http://developer.download.nvidia.com/compute/cuda/repos/ubuntu1804/x86_64/7fa2af80.pub
sh -c ‘echo “deb http://developer.download.nvidia.com/compute/cuda/repos/ubuntu1804/x86_64 /” > /etc/apt/sources.list.d/cuda.list’
apt-get update
apt-get install -y cuda-toolkit-11–0
3. CUDA application 실행해보기
cd /usr/local/cuda/samples/4_Finance/BlackScholes
make
./BlackScholes
에러가 안뜨면 성공!
CUDA error at ../../common/inc/helper_cuda.h:777 code=35(cudaErrorInsufficientDriver) “cudaGetDeviceCount(&device_count)”
이 에러가 뜨면 윈도우 빌드가 20150 이상이 아니어서일 수 있다.
빌드가 최신인데도 이 메시지가 뜨는 경우가 있다고 하는데, 그런 분들은 우분투와 WSL 삭제 후 처음부터 다시 설치하면(ㅠㅠ) 되는 경우가 있다고 한다
나는 빌드 최신인 환경에서 다행히 잘 실행되었다.
5. CUDA 환경변수 추가하기
zsh 쓸 경우 ~/.zshrc, bash 쓸 경우 ~/.bashrc에 path추가
export PATH=/usr/local/cuda-11.0/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/cuda-11.0/lib64:$LD_LIBRARY_PATH
추가 후 쿠다 버전확인하면 돼야 함
nvcc — version
0. 우분투와 WSL 제거하기
혹시 설치 중 문제가 생겼거나 그냥 제거하고 싶다면
- 우분투 삭제 (앱 및 기능에서 삭제)
- WSL 삭제 (앱 및 기능 — 프로그램 및 기능 — Windows 기능 켜기/끄기 — Linux용 Windows 하위 시스템 체크 해제 — 재부팅)
CuDNN 설치
https://developer.nvidia.com/cudnn 에서 쿠다버전, OS 등에 맞게 다운로드
cuDNN Library for Linux (x86_64) 설치, 압축풀기
tar -xzvf cudnn-11.3-linux-x64-v8.2.1.32.tgz
압축 풀린 폴더 터미널로 열어서
sudo cp cuda/include/* /usr/local/cuda/include
sudo cp cuda/lib64/* /usr/local/cuda/lib64
sudo chmod a+r /usr/local/cuda/include/cudnn.h
sudo chmod a+r /usr/local/cuda/lib64/libcudnn*
재부팅 후 버전확인
cat /usr/local/cuda/include/cudnn_version.h | grep CUDNN_MAJOR -A 2
(cuDNN 버전이 8.x 이하인 경우)
cat /usr/local/cuda/include/cudnn.h | grep CUDNN_MAJOR -A 2
버전은 8.2.1
Anaconda 설치
https://www.anaconda.com/products/individual#Downloads 에서 최신버전 다운로드 (대충 Anaconda-최신-Linux-x86_64.sh 처럼 생긴걸로)
받은 파일 bash로 실행
bash Anaconda3–2021.05-Linux-x86_64.sh
[Anaconda3 will now be installed into this location: /home/hy/anaconda3]
나오는거 다 yes해주고 [/home/<user name>/anaconda3]도 yes해주고
Do you wish the installer to initialize Anaconda3 by running conda init?에서 디폴트가 no이다. 이때는 엔터치지말고 yes 쳐주기. no로 치면 셸 설정 알아서 변경해야함
만약에 실수로 no 쳤다면 아래와 같이 다시 실행하는 게 편안
bash Anaconda3–2021.05-Linux-x86_64.sh -u
콘다 변수를 띄웠을 때 뜨면 성공!
conda — version
conda 4.10.1
이후 파이토치와 텐서플로우로 간단한 딥러닝 모델 학습이 잘 진행되는 것을 확인하였다.
[출처] https://medium.com/dawn-cau/wsl2-%EB%94%A5%EB%9F%AC%EB%8B%9D-%ED%99%98%EA%B2%BD-%EA%B5%AC%EC%B6%95%ED%95%98%EA%B8%B0-95d7b95d1f4b
광고 클릭에서 발생하는 수익금은 모두 웹사이트 서버의 유지 및 관리, 그리고 기술 콘텐츠 향상을 위해 쓰여집니다.