[Anaconda] GPU 환경설정

ByungJik_Oh·2025년 8월 18일
0

[Hyundai Rotem KDT]

목록 보기
19/22
post-thumbnail

📚 Windows 환경에서 Anaconda 환경설정

Anaconda는 Python Data Science Platform 중 가장 유명한 Platform이다. 가상환경 생성 및 데이터 분석에 필요한 여러 라이브러리들을 편하게 설치, 사용할 수 있는 환경을 제공한다.

Jupyter Notebook(Jupyter Lab)은 Python, R 파일을 작성하고 실행하는 Web 기반의 개발도구이다. **cell이라는 단위로 코드를 나누어 실행할 수 있기 때문에 interactive한 개발이 가능하다는 것이 가장 큰 장점이다. (Google Colab고 Jupyter Notebook 환경을 사용한다.)

Windows 환경에서 Anaconda 설치는 다음과 같은 순서로 진행한다.

# 설치가 완료되었으면 환경변수 PATH에 다음의 3개의 경로를 설정한다.

- C:\ProgramData\anaconda3
- C:\ProgramData\anaconda3\Scripts
- C:\ProgramData\anaconda3\Library

# cmd창에서 다음의 명령어를 실행해 정상적으로 출력이 되는지를 확인한다.

conda --version

# conda 24.5.0
  • Anaconda Prompt를 관리자 권한으로 실행한 후 Anaconda를 최신 버전으로 업데이트하기 위해 다음의 명령을 실행한다.
conda update conda
  • Anaconda 환경에서 pip를 최신 버전으로 업데이트하려면 다음 명령을 사용한다.
pip install --upgrade pip
  • 가상환경 생성, 확인, 삭제는 다음과 같이 수행한다.

conda create -n <env_name> python=<python_version>

# 가상환경 생성
conda create -n tf_gpu python=3.10

# 가상환경 활성화
conda activate tf_gpu  

# Kernel 등록 전에 jupyter를 먼저 설치해야합니다.
conda install jupyter

# 가상환경을 Jupyter 커널로 등록할 경우
python -m ipykernel install --user --name=tf_gpu --display-name "tf_gpu"
  
# 가상환경 리스트 보기
conda info --envs
    
# 가상환경 삭제
conda remove -n tf_gpu --all
  • Jupyter Notebook(혹은 Jupyter Lab) 설정 파일을 생성하기 위해 Anaconda prompt에서 다음의 명령어를 실행한 후 생성된 설정파일을 수정하여 실습에서 사용할 폴더를 C:/jupyter_notebook으로 설정한다.(폴더는 생성되어 있어야 한다.)
jupyter notebook --generate-config (jupyter Notebook인 경우)

jupyter lab --generate-config (jupyter lab인 경우)

실행결과 : Writing default config to: 
C:/Users/~/.jupyter/jupyter_notebook_config.py
  • 해당 파일내에서 다음의 코드를 찾아 다음과 같이 수정하고 해당 라인의 주석을 해제한다.
c.NotebookApp.notebook_dir = 'C:/jupyter_notebook'
  • Notebook 실행(Jupyter Notebook 또는 Jupyter Lab)

📚 Windows 환경에서 Anaconda를 이용한 GPU 설정(비추천)

Windows Anaconda에서 GPU를 사용하려면 CUDAcuDNNWindows에 설치하고 설정을 해야한다.

우리는 TensorFlow를 사용하고 있으므로, TensorFlow는 특정 버전에서 지원하는 Python, CUDA, 그리고 cuDNN 버전이 정해져 있으며, 이를 전확히 맞춰야 GPU 사용이 가능하다. 아래는 주요 TensorFlow 버전별로 호환 가능한 버전들을 정리한 표이다.

TensorFlow 버전Python 버전CUDA 버전cuDNN 버전
2.16.23.10–3.1112.38.9
2.15.x3.8–3.1111.88.6
2.14.x3.8–3.1111.88.6
2.13.x3.8–3.1111.88.6
2.12.x3.8–3.1011.88.6
2.11.x3.7–3.1011.28.1
2.10.x3.7–3.1011.28.1
2.9.x3.7–3.1011.28.1
2.8.x3.7–3.911.28.1
2.7.x3.6–3.911.28.1

2025년 기준 최신 안정조합은 다음과 같다.

  • TensorFlow: 2.15.0
  • Python: 3.10
  • CUDA: 11.8
  • cuDNN: 8.6

사실 Object Detection은 KerasCV를 이용하거나 PyTorch(YOLO)를 이용하는게 더 좋다. 기존 TensorFlow Object Detection은 처리하기도 쉽지않고 학습시간도 오래걸리기 때문이다. 만약 TensorFlow Object Detection API를 사용하지 않을거라면 다음의 버전 조합을 사용하는 것이 좋다.

  • TensorFlow: 2.16.2
  • Python: 3.10
  • CUDA: 12.3
  • cuDNN: 8.9

가장 쉬운 방법은 Anaconda에서 conda-forge를 이용한 설치이다. 편하고 문제없이 설치가 가능하다.

단, 특정 버전 이상으로 TensorFlow나 CUDA, cuDNN을 설치할 수 없다. 따라서 이 방법은 추천하지 않는다. 하지만 WSL을 사용할 수 없는 경우에는 어쩔수가 없다.

Windows 11에서 Anaconda 안에 설정하려면 다음과 같이 설치하면 된다.(아래의 경우는 TensorFlow 2.10 버전 이전일 경우이다. TensorFlow 버전 2.11부터는 WSL2를 사용해야 한다.)

conda install -c conda-forge cudatoolkit=11.2 cudnn=8.1.0

pip install tensorflow==2.10.0
  • conda-forge에서는 cudatoolkitcuDNN만 설치해도 환경변수를 자동으로 설정해주므로 편리하다.
  • TensorFlow 2.11 이상부터는 WSL2 + NVIDIA 드라이버 환경을 요구한다.(Windows 사용 시)

참고) Windows에서 TensorFlow GPU를 사용할 때, WSL2 방식과 Windows native 방식의 차이점

구분Windows NativeWSL2 (Windows Subsystem for Linux 2)
운영체제Windows 환경Linux (가상 머신 기반)
설치 방식CUDA, cuDNN을 Windows용으로 설치CUDA, cuDNN을 WSL2 내 Ubuntu에 설치
TensorFlow 설치pip install tensorflow (Windows 버전)pip install tensorflow (Linux 버전)
GPU 드라이버Windows용 NVIDIA 드라이버 + CUDA ToolkitWindows용 WSL용 NVIDIA 드라이버만 설치하면 됨
성능거의 동일하거나 약간 빠름 (Direct 접근)약간의 오버헤드 (가상 머신 경유) 있으나 매우 미미
라이브러리 호환성일부 Python 패키지나 CUDA 기능 충돌 가능Linux용 오픈소스 머신러닝 도구 대부분이 완벽 호환
PyTorch, TensorFlow 최신 버전제한되는 경우 많음항상 Linux용 최신 버전이 가장 먼저 지원됨
설치 난이도CUDA + cuDNN 수동 설치가 복잡conda-forge만으로도 간편 설치 가능

대부분의 ML/DL 개발자에게는 WSL2가 훨씬 편하고 강력한 환경이다.
TensorFlow 2.11 이상에서도 공식적으로 Windows GPU 지원은 중단되었고, WSL2를 권장한다.


📚 WSL2 환경에서 Anaconda를 이용한 GPU 설정(추천)

Windows 환경에서 WSL2 + NVIDIA GPU 가속 환경을 설정하여 TensorFlow 2.11 이상을 GPU로 실행하고, Anaconda + Jupyter Notebook까지 사용할 수 있도록 설정하는 방법이다.

TensorFlow는 Ubuntu에 CUDA와 cuDNN을 설치해야 한다. 하지만 PyTorch는 Anaconda 가상환경내에 CUDA와 cuDNN을 설치할 수 있기 때문에 PyTorch를 사용할 경우 이 과정은 필요없다.

WSL(Windows Subsystem for Linux)은 Windows 환경에서 Linux 환경을 실행할 수 있는 프로그램이다.

딥러닝 관련 오픈소스 모델을 사용하다보면 Linux Installer만 존재한다거나 각종 버전 호환성 문제가 발생할 수 있는데, 이 경우 WSL을 이용하여 Linux 환경에서 딥러닝 환경을 구축할 수 있다.

만약 Windows 11 Home Edition을 사용중이면 Hyper-V가 설치되어 있지 않다. 이 경우 아래의 스크립트를 bat로 만들어서 관리자 권한으로 실행해주면 Hyper-V를 설치할 수 있다.

pushd "%~dp0"
dir /b %SystemRoot%\servicing\Packages\*Hyper-V*.mum >hyper-v.txt
for /f %%i in ('findstr /i . hyper-v.txt 2^>nul') do dism /online /norestart /add-package:"%SystemRoot%\servicing\Packages\%%i"
del hyper-v.txt
Dism /online /enable-feature /featurename:Microsoft-Hyper-V -All /LimitAccess /ALL
pause

1. WSL2 기능 활성화

CUDA를 원활하게 사용하기 위해서는 WSL2 버전을 설치해야 하는데, Windows 10, 11의 특정 빌드 이상을 요구하므로 되도록 Windows를 최신버전으로 업데이트하고 설치하는 것이 좋다.

WSL 사용 설정 켜기
검색창 → Windows 기능 켜기/끄기에서,

  • Hyper-V
  • Linux용 Windows 하위 시스템

위 두가지 기능을 활성화한다.

2. WSL2 설치 및 Ubuntu 환경 구성

  • WSL2 설치

    PowerShell을 관리자로 실행하여 다음과 같은 명령어를 입력한다.

    WSL2로 Ubuntu 22.04 버전을 설치한다.(TensorFlow 2.13 버전을 사용할 때는 20.04 버전을 사용하는 것이 좋다.) 24.04 버전이 최신버전이기는 하나 CUDA 설치 시 라이브러리 오류가 발생할 수 있다. 기존 legacy 버전을 사용한다. (최신버전 사용시 라이브러리 버전을 맞춰야한다.)

    설치 과정에서 운영체제의 사용자 이름 및 비밀번호를 설정하게 되고 설치가 완료괴면 바로 Ubuntu가 부팅되는데, PowerShell에서 하는 것보다는 WSL 터미널에서 실행하는 것이 훨씬 가독성이 좋다. 터미널이 없으면 Microsoft Store에서 설치가 가능하다.

# powershell에서 실행

wsl --list --verbose (설치된 배포판 목록 확인)

wsl --list --online (설치가능한 배포판 목록 확인)

wsl --install Ubuntu-22.04 (22.04버전 설치)

wsl --unregister <배포판 이름> (설치된 배포판 삭제)

wsl -d <배포판 이름> (접속)

# 터미널을 이용하면 메뉴를 통해서 쉽게 접속 할 수 있습니다.

설치된 후 Ubuntu를 업데이트한다.

명령어기능실제 변화주 용도
sudo apt update저장소의 최신 패키지 정보 갱신없음업그레이드 전 정보 갱신
sudo apt upgrade설치된 패키지를 업그레이드있음시스템 최신화
# 20.0.4 버전에서는 오류가 없는데 22.0.4 버전은 생성 후 sudo apt update하면
# 오류가 발생
# APT 캐시 및 리스트 초기화 및 미러서버 변경을 통해 해결

# APT 캐시 및 리스트 초기화 
sudo rm -rf /var/lib/apt/lists/*  
sudo apt clean

# 미러서버 변경
sudo sed -i 's|http://archive.ubuntu.com/ubuntu|http://mirror.kakao.com/ubuntu|g' /etc/apt/sources.list

sudo sed -i 's|http://security.ubuntu.com/ubuntu|http://mirror.kakao.com/ubuntu|g' /etc/apt/sources.list

# 저장소 list update
sudo apt update 

sudo apt upgrade -y

sudo apt install build-essential # build-essential 설치

3. NVIDIA GPU Driver 설치 (Windows)

CUDA를 설치 및 설정하기 위해서는 Windows에 반드시 NVIDIA Driver가 설치되어 있어야한다.

WSL에서 GPU를 사용하려면 Windows에 설치하는 NVIDIA Driver는 반드시 WSL2를 지원하는 Driver여야 한다. 단순히 최신 Driver라고 해서 무조건 되는 것은 아니며, WSL2용 CUDA 지원이 포함된 Driver여야 한다.

특히 WSL 환경에서는 Windows에 설치된 NVIDIA Driver를 사용하므로 Ubuntu 내부에서 NVIDIA Driver를 설치하면 안된다.

CUDA 공식문서에 'users must not install any NVIDIA GPU Linux driver within WSL 2' 라고 강조가 되어있다.

실제로 아무 Driver도 설치하지 않아도 Windows에 NVIDIA Driver가 설치되어 있다면 Ubuntu 상에서 다음 명령어로 조회할 수 있다.

nvidia-smi

4. NVIDIA Driver(CUDA + cuDNN) 설치 (Ubuntu 내에서)

  • CUDA 11.8 설치(TensorFlow 2.13.0) → CUDA 12.3 설치(TensorFlow 2.16.1)

    	 [CUDA Toolkit Archive](https://developer.nvidia.com/cuda-toolkit-archive)에서 원하는 버전의 CUDA Toolkit을 다운로드할 수 있다.

    CUDA는 12.3 버전을 설치할 것이기 때문에 환경에 맞게 선택하면 스크립트를 얻을 수 있다. (TensorFlow 2.13을 사용할 경우 CUDA 버전을 11.8 버전을 사용해야 한다.)

# Ubuntu 20.04, CUDA 11.8

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
# Ubuntu 22.04, CUDA 12.3

wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2204/x86_64/cuda-ubuntu2204.pin
sudo mv cuda-ubuntu2204.pin /etc/apt/preferences.d/cuda-repository-pin-600
wget https://developer.download.nvidia.com/compute/cuda/12.3.0/local_installers/cuda-repo-ubuntu2204-12-3-local_12.3.0-545.23.06-1_amd64.deb
sudo dpkg -i cuda-repo-ubuntu2204-12-3-local_12.3.0-545.23.06-1_amd64.deb
sudo cp /var/cuda-repo-ubuntu2204-12-3-local/cuda-*-keyring.gpg /usr/share/keyrings/
sudo apt-get update
sudo apt-get -y install cuda-toolkit-12-3
  • cuDNN 8.6 설치 → cuDNN 8.9 설치

    	cuDNN 다운로드 페이지에서 cuDNN 8.9.0 for CUDA 12.3 tar 파일을 다운로드 한다.(TensorFlow 2.13을 사용할 경우 cuDNN 8.6 for CUDA 11.8 tar 파일을 사용해야 한다.

    Windows에서 다운로드 후 현재 working directory로 가져온다.

    압축 해제 후, 해당 폴더로 들어가 경로를 맞게 아래 명령어로 설치한다.

sudo cp ./include/cudnn*.h /usr/local/cuda/include
sudo cp ./lib/libcudnn* /usr/local/cuda/lib64
sudo chmod a+r /usr/local/cuda/include/cudnn*.h /usr/local/cuda/lib64/libcudnn*

5. 환경 변수 설정

  • 다음의 명령을 실행시켜 .bashrc에 환경 변수를 추가한다.
echo 'export PATH=/usr/local/cuda/bin:$PATH' >> ~/.bashrc

echo 'export LD_LIBRARY_PATH=/usr/local/cuda/lib64:$LD_LIBRARY_PATH' >> ~/.bashrc

source ~/.bashrc
  • 다음의 명령을 실행시켜 CUDA 12.3이 설치된 것을 확인한다.
nvcc --version

nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2023 NVIDIA Corporation
Built on Fri_Sep__8_19:17:24_PDT_2023
Cuda compilation tools, release 12.3, V12.3.52
Build cuda_12.3.r12.3/compiler.33281558_0

6. Anaconda 설치

  • WSL2 Ubuntu에서 Anaconda 설치
wget https://repo.anaconda.com/archive/Anaconda3-2023.03-Linux-x86_64.sh

bash Anaconda3-2023.03-Linux-x86_64.sh

# 설치 후 아래의 메시지가 나오는데 yes를 선택하는게 사용하기 편하다.
# .bashrc에 conda 초기화 추가해서 WSL 터미널을 열 때마다 자동으로 conda가 활성화된다.
# 편리하게 사용할 수 있다.
Do you wish the installer to initialize Anaconda3 by running conda init? [yes|no]

# WSL 터미널을 새로 열면 바로 base 환경으로 접속된다.

# conda 명령이 느릴 수 있으니 base 환경에서 conda를 update해 준다.
conda update conda

7. 파일 시스템 사용

WSL의 Ubuntu에서 Windows 파일시스템을 편하게 사용하는 방법은 몇가지가 있는데 기본적으로는 /mnt mount point를 이용하는 것이다.
사실 explorer.exe를 사용하거나 VScode를 사용하는게 더 편하다.

자주 사용하는 폴더 같은 경우 심볼릭 링크를 생성해 사용하면 편리하게 사용가능하다.

ln -s /mnt/c/Users/yourname/Downloads ~/downloads

cd ~/downloads

참고로 Windows 경로는 NTFS 위에 있기 때문에 Linux native 디렉토리보다 I/O 속도가 느리다.
따라서 딥러닝 학습용 대용량 데이터는 Ubuntu 내에 두는 것이 더 빠르다.


profile
精進 "정성을 기울여 노력하고 매진한다"

0개의 댓글