최근에 딥러닝을 공부하고 있습니다. 어느 정도 공부가 되어 실전에서 사용하려고 하니 GPU 세팅이 안되있어서 성능이 좋지 않았습니다.
포스팅된 내용들로 하는데 잘 안되더군요. 살펴보니 Tensorflow 2.10.0 부터 Window에서 GPU 지원하지 않으니 Linux에서 사용하거나 Window에서 쓸거면 WSL2을 이용하라고 합니다. (CPU만 사용하실거면 상관없습니다.)
2.0.9 버전을 사용하면 WSL2 같은거 설치 안해도 VSCode에서 바로 쓸 수 있겠지만 언젠간 WSL2를 이용해 Tensorflow 환경을 구축하게 될 것같아서 해봤습니다.
다운 시간과 삽질하는 시간까지 2~3시간 정도는 잡아야하므로 급하게 윈도우에서 사용하셔야 하는 분들은 Tensorflow 2.0.9 이전 버전에 CUDA, cuDNN을 설치하는 방법이 더 빠를수도 있습니다.
혹여나 잘 안되거나 오탈자, 오류가 있다면 말씀주세요. 최대한 피드백 드리도록 하겠습니다.
0. 설치하기 전에...
이번 포스팅 내용은 다음과 같습니다.
- 가장 먼저 WSL2 Ubuntu 20.04 버전을 설치합니다.
- WSL이란, 윈도우 하위 시스템으로 리눅스를 사용한다는 의미로 받아들이면 될 것 같습니다. 실제 영문명도 Windows Sub-system for Linux 입니다.
- 그 후 WSL2에서 NVIDIA의 CUDA와 cuDNN을 설치하고 정상적으로 설치되었는지 체크합니다.
- CUDA는 NVIDIA에서 개발한 GPU 개발 툴 입니다. GPU 가속화에 사용되며 많은 양의 연산 처리에 이점이 있습니다.
- cuDNN은 CUDA 기반 딥러닝 라이브러리입니다.
- 다음에는 Anaconda를 설치하여 Python 가상환경을 만들고 Tensorflow를 다운받습니다.
- Anaconda는 데이터 분석이나 수학, 과학 관련 패키지를 포함한 Python 배포판 입니다.
- 가상 환경을 구축할 수 있어 관리 및 유지보수에 용이합니다.
- 마지막으로 윈도우 VSCode 상에서 WSL2의 Python Interpreter로 설정하는 것 까지가 오늘의 포스팅 내용입니다.
- VSCode는 Visual Studio Code로 Microsoft에서 개발한 오픈소스 코드 에디터입니다. 관점에 따라 다르게 생각하실수 있겠지만 필자는 디버깅, 빌드, 배포 등이 가능하므로 통합 개발환경(IDE)이라고 봐도 무방하다고 생각합니다.
- 일반 코드 에디터와 다르게 수많은 플러그인과 기능들이 있고 속도가 빠르고 프로그램이 가벼우며 주요 플랫폼(맥, 윈도우, 리눅스 등)에서 모두 이용가능하다는 장점을 가지고 있습니다.
1. WSL2 - Ubuntu 20.04 설치하기
- WSL2를 사용하기 전에 시스템 설정을 변경해야합니다.
- 윈도우 검색 - Windows 기능 켜기/끄기 실행
- 아래 항목을 체크해주시고 재부팅 해주시면 됩니다.
- Hyper-V / Linux용 Windows 하위 시스템 / Windows 하이퍼바이저 플랫폼 / 가상 머신 플랫폼
- Windows PowerShell을 실행시켜줍니다.
- 윈도우 검색 - Windows PowerShell - 관리자 권한으로 실행
- 아래 명령어를 입력해 Ubuntu를 설치할 수 있습니다.
- wsl --install -d ubuntu-20.04
- Ubuntu 대신 다른 리눅스 배포판을 받고 싶으시면 아래 명령어로 확인 가능합니다.
- wsl --list --online
- [2차 수정 추가] 아래와 같은 오류가 발생하면서 깨진 문자가 나타나면서 설치가 안된다면...
아래 사이트에서 커널 업데이트 프로그램 설치 후 하시면 됩니다. ("x64 머신용 최신 WSL2 Linux 커널 업데이트 패키지" 라고 써있는 링크)WslRegisterDistribution failed with error: 0x800701bc
이전 버전 WSL의 수동 설치 단계
wsl install 명령을 사용하지 않고 이전 버전의 Windows에 WSL을 수동으로 설치하는 방법에 대한 단계별 지침입니다.
learn.microsoft.com
- 설치를 진행하다보면 아래와 같은 텍스트가 발생합니다.
- 혹여나 아래와 같은 텍스트가 나타지 않으면 wsl --install -d ubuntu-20.04를 한번 더 수행해주세요. 우분투 파일 다운만 받고 설치가 안됐을 수 있습니다.
- WSL 로그인 시 사용할 유저명과 비밀번호를 입력하시면 됩니다.
- 입력하면 자동으로 WSL로 들어가집니다.
- WSL 실행 방법은 검색창에 wsl을 입력해서 wsl 앱을 통해 들어갈 수 있으며, Windows PowerShell에서 wsl 입력하면 들어갈 수 있습니다.
- 반대로 wsl을 끄고 싶다면 PowerShell에서 wsl --shutdown을 입력하시면 됩니다.
- 간단하게 wsl 설치를 완료했습니다.
2. WSL2 - CUDA, cuDNN 설치하기
- 설치 하기 전에 Tensorflow 버전에 따른 CUDA, cuDNN 호환 버전을 확인해야합니다. 아래 사이트를 들어가면 자세히 나와있습니다.
- https://www.tensorflow.org/install/source
- 이 포스팅에서는 Tensorflow-2.12.0 / CUDA 11.8 / cuDNN 8.6을 설치하겠습니다.
- [1차 수정 추가] 그래픽카드 종류에 따라 호환되는 CUDA 버전도 나뉜다고 합니다. 아래 사이트에서 확인하시고 그래픽 카드에 맞는 적절한 버전으로 설치해주세요. (댓글에 정보 주신 IIIIIIlllI님 감사드립니다.)
- CUDA를 먼저 설치해보겠습니다. 아래 사이트로 이동합니다.
- https://developer.nvidia.com/cuda-toolkit-archive
- 위에서 언급한대로 CUDA 11.8 버전인 CUDA Toolkit 11.8.0 링크를 눌러 들어갑니다.
- 다음 사진과 같이 클릭합니다. 각 요소에 대한 설명은 다음과 같습니다.
- Operating System: 설치할 OS를 선택해주세요. 우리는 WSL2를 통해 Ubuntu 20.04(Linux)에 설치할 예정이므로 Linux를 선택합니다.
- Architecture: 자신의 CPU에 맞는 아키텍처를 선택해주시면 됩니다. 대부분 라이젠, 인텔 쓰실테니 잘 모른다면 x86_64 선택해주시면 됩니다.
- Distribution: 원하시는 리눅스 운영체제를 선택하시면 됩니다. 저는 Ubuntu를 선택했습니다.
- Version: 리눅스 버전을 선택해주세요. 저는 Ubuntu 20.04 버전이므로 20.04를 선택했습니다.
- Installer Type: 설치 방식을 선택해주세요. 가장 기본인 deb (local)을 선택했습니다.
- 클릭하면 아래 파란 박스와 같이 명령어 문장이 나타납니다. 저 문장 그대로 복사해서 WSL 프로그램에 입력하시면 설치됩니다.
- 위 명령어를 입력하기 전에 아래 경로에 폴더 하나를 생성해줍시다. 혼란을 막기 위해 앞으로 이 폴더에 CUDA, cuDNN, Anaconda 등 파일을 다운받겠습니다. (다른 폴더로 설정하셔도 됩니다.)
- 눈치채셨겠지만 WSL에서 /mnt/c/ 경로는 윈도우 상에서 C:\와 동일합니다.
- 앞으로 C:\Downloads에 프로그램을 넣으면 WSL에서도 쉽게 접근이 가능합니다.
cd /mnt/c/
mkdir Downloads
cd Downloads
- 이제 명령어를 입력하여 CUDA 설치를 마칩니다.
wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2004/x86_64/cuda-ubuntu2004.pin
sudo mv cuda-ubuntu2004.pin /etc/apt/preferences.d/cuda-repository-pin-600
wget https://developer.download.nvidia.com/compute/cuda/11.8.0/local_installers/cuda-repo-ubuntu2004-11-8-local_11.8.0-520.61.05-1_amd64.deb
sudo dpkg -i cuda-repo-ubuntu2004-11-8-local_11.8.0-520.61.05-1_amd64.deb
sudo cp /var/cuda-repo-ubuntu2004-11-8-local/cuda-*-keyring.gpg /usr/share/keyrings/
sudo apt-get update
sudo apt-get -y install cuda
- 다음엔 cuDNN을 설치합니다.
- https://developer.nvidia.com/cudnn
- 먼저, NVIDIA 회원가입을 합니다. 이후 아래 그림과 같이 진행하여 버젼에 따라 cuDNN 파일을 다운로드 받습니다.
- 다운로드 받은 파일을 C:\Downloads에 넣으시면 됩니다.
- 아래 명령어를 입력하여 cuDNN을 설치합니다.
tar xvf cudnn-linux-x86_64-8.6.0.163_cuda11-archive.tar.xz
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*
- cuDNN의 라이브러리 경로를 추가하기 위해 다음 명령어를 입력합니다.
- nano는 텍스트 편집기입니다.
sudo nano ~/.bashrc
- ~/.bashrc 마지막에 아래 문장을 추가해줍니다.
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/cuda-11.8/lib64/
- 마지막으로 ~/.bashrc 파일을 동기화 시켜줍니다.
source ~/.bashrc
- 제대로 설치되었다면 아래 파일을 실행시켰을 때 Result = PASS가 출력됩니다.
/usr/local/cuda-11.8/extras/demo_suite/deviceQuery
3. WSL2 - Anaconda 및 가상환경 설정과 Tensorflow 패키지 설치
- Anaconda 설치를 위해 아래 사이트로 들어갑니다.
- https://www.anaconda.com/
- 이후 아래 사진과 같이 진행하여 설치합니다.
- 다운로드 링크를 복사하여 WSL에서 wget 커맨드 이용해서 다운 받으셔도 되고, 윈도우에서 받아 C:\Downloads 폴더로 옮기셔도 됩니다.
wget https://repo.anaconda.com/archive/Anaconda3-2023.03-1-Linux-x86_64.sh
- 다음 명령어를 입력하여 설치합니다.
bash Anaconda3-2023.03-1-Linux-x86_64.sh
- 설치 시작하면 계속 엔터를 연타합니다.
- Please answer 'yes' or 'no': 이 텍스트가 나오면 yes를 입력합니다.
- [/home/[UserName]/anaconda3] >>> : 이 텍스트가 나오면 엔터 누르면 됩니다.
- by running conda init [yes|no] [no] >>> : 이 텍스트가 나오면 yes를 입력합니다.
- 이제 커맨드 상에서 conda를 사용할 수 있게 등록시켜주도록 합니다.
nano ~/.bashrc
- ~/.bashrc 파일 맨 마지막에 아래 코드를 입력해주세요. 이미 export PATH 파일이 있다면 앞에 "/home/june/anaconda3/bin:" 까지만 입력해주세요.
- /home/june/anaconda3/은 앞에서 anaconda 설치 시 입력한 PREFIX 값입니다.
export PATH=/home/june/anaconda3/bin:$PATH
- bashrc 파일을 동기화해주면 끝입니다.
source ~/.bashrc
- 아래 명령어를 입력해 가상환경을 만듭니다. [NAME]에는 가상환경으로 쓸 이름을 적습니다. 저의 경우 가상환경 이름을 tensorflow로 설정했고 Python 버전은 3.10으로 두었습니다.
conda create -n [NAME] python=3.10
- conda activate는 가상환경에 들어가는 명령어입니다. 앞서 작성한 가상환경에 들어간 다음 tensorflow를 설치합니다.
conda activate [NAME]
pip install tensorflow==2.12.0
4. Window - VSCode에서 WSL 연결
- VSCode에서 좌측에 Market을 들어가 wsl과 python을 설치합니다.
- Ctrl+Shift+P를 누르고 WSL을 입력합니다. 이후 WSL: Connect to WSL을 누르면 자동으로 WSL으로 이동합니다.
- 마찬가지로 Ctrl+Shift+P를 누르고 WSL을 입력합니다. 이후 Python: Select Interpreter를 선택하고 Anaconda에서 생성한 가상환경을 Interpreter로 설정합니다.
- 마지막으로 Python 파일 하나를 생성하고 아래 소스를 입력합니다.
from tensorflow.python.client import device_lib
device_lib.list_local_devices()
- 아래 사진과 같이, Output에서 빨간 밑줄친 것과 같이 GPU 정보가 나오면 끝입니다.
작성일자: 2023-06-24
1차 수정: 2023-07-06
2차 수정: 2024-01-08
'Deep Learning > 환경 세팅' 카테고리의 다른 글
[딥러닝 환경 세팅] WSL2 환경에서 원격 SSH 코딩 서버 구축하기 (VSCode) (0) | 2023.06.25 |
---|