최근에 딥러닝을 공부하고 있습니다. 어느 정도 공부가 되어 실전에서 사용하려고 하니 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차 수정  추가] 아래와 같은 오류가 발생하면서 깨진 문자가 나타나면서 설치가 안된다면...
    WslRegisterDistribution failed with error: 0x800701bc
    아래 사이트에서 커널 업데이트 프로그램 설치 후 하시면 됩니다. ("x64 머신용 최신 WSL2 Linux 커널 업데이트 패키지" 라고 써있는 링크) 
 

이전 버전 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 호환 버전을 확인해야합니다. 아래 사이트를 들어가면 자세히 나와있습니다.
  • [1차 수정 추가] 그래픽카드 종류에 따라 호환되는 CUDA 버전도 나뉜다고 합니다. 아래 사이트에서 확인하시고 그래픽 카드에 맞는 적절한 버전으로 설치해주세요. (댓글에 정보 주신 IIIIIIlllI님 감사드립니다.)

 

 

 

  • 다음 사진과 같이 클릭합니다. 각 요소에 대한 설명은 다음과 같습니다.
    • 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

 

+ Recent posts