2 분 소요

이 글은 2021년 당시 CUDA 11.0, cuDNN 8.0, tensorflow_gpu-2.4.0 기준으로 작성된 설치/사용 기록이다. 최신 버전에서는 명령이 다를 수 있다.

UPDATE (2021.11.10)

  • 재설치할 때는 가상환경과 기설치된 바이너리를 정리한 후 다시 설치를 진행한다.
  • CUDA : 11.0, cuDNN : 8.0, tensorflow_gpu-2.4.0, python==3.7 - 빌드 호환성을 고려해 python==3.6 환경으로 구성한다.
  • 설치 완료 후 TensorFlow의 GPU 인식을 검증했다.
  • 본문은 CUDA Toolkit 10.1 기준으로 작성했으나, CUDA 11.0 적용 시에도 호환 표에 맞춰 버전 디렉터리와 환경변수 경로를 동일하게 설정하면 된다.

image

순서

  • 참고 : https://www.tensorflow.org/install/gpu

딥러닝 프레임워크(TensorFlow)가 GPU 가속을 활용하려면 호스트(CPU)와 디바이스(GPU) 간 메모리 복사 및 커널 실행 파이프라인을 지원하는 드라이버, 런타임, 가속 라이브러리가 계층별로 설치되어야 한다 1.

CUDA 호스트(CPU)와 디바이스(GPU) 간 처리 흐름: 호스트 메모리에서 GPU 메모리로 데이터 복사, 커널 호출, GPU 코어의 병렬 연산, 결과를 호스트 메모리로 복사하는 단계

출처: CUDA processing flow (En), Tosaka — Wikimedia Commons (https://commons.wikimedia.org/wiki/File:CUDA_processing_flow_(En).PNG), CC BY 3.0

  1. Anaconda
  2. NVIDIA DRIVER
  3. Visual Studio
  4. CUDA Toolkit
  5. Cudnn
  6. 가상환경

나의 환경

  • CPU : I7-6700HQ
  • GPU : GTX1070 (NOTEBOOK)
  • RAM : 16GB
  • OS : Window10 64-bit

image

1. 아나콘다 설치

ANACONDA site link : https://www.anaconda.com/products/individual

image

  • TensorFlow 2.x 초기 빌드는 특정 파이썬 버전(3.6)에 의존하므로, 파이썬 3.7이 기본 탑재된 아나콘다 5.3 설치 시 호환 패키지를 찾지 못할 수 있다. 따라서 파이썬 3.6 기반 가상환경을 별도로 생성해야 한다.

2. NVIDIA DRIVER 설치

  • 본인의 GPU 모델 선택

NVIDIA DRIVER link : https://www.nvidia.com/download/index.aspx?lang=en-us

image

3. Visual Studio 설치

Visual Studio link : https://visualstudio.microsoft.com/ko/downloads/

image

3. CUDA Toolkit

  • 자기에게 맞는 버전을 확인한다. (매우 중요!!!)

CUDA Toolkit window(윈도우) link : https://www.tensorflow.org/install/source_windows#tested_build_configurations

image

image

4. CUDA 설치

CUDA Toolkit Archive : https://developer.nvidia.com/cuda-toolkit-archive

image

image

5. cuDNN 설치

  • cuDNN은 엔비디아 회원가입 및 로그인이 필요하다.
  • 반드시 버전에 맞게 설치해준다.

cuDNN link : https://developer.nvidia.com/cudnn

image

image

image

image

  • 파일 덮어쓰기 : 다운로드 받은 파일의 압축을 풀고, 아래의 디렉토리에 파일을 덮어씌움

C:\Program Files\NVIDIA GPU Computing Toolkit CUDA v10.1

image

  • bin, include, lib 폴더를 각각 들어가 안의 파일들을 복사.

5_1. 설치 확인

image

  • 클릭 후 검색창에 cuda라 쳤을 때 프로그램이 나오면 성공!!

5_2. 환경변수 설정

  • 추가할 경로는 앞에서 복사해서 넣었던 bin, include, lib의 경로를 설정해준다.

image

image

image

image

6. 가상환경

  • 가상 환경을 생성하는 이유는 다른 프로젝트들과 라이브버리 충돌을 피하기 위해.

  • Anaconda Powershell Prompt (anaconda3) 실행

image

  • conda update : conda update -n base conda
  • 가상 환경 설치 : conda create -n 가상환경이름 python=3.6
  • 가상 환경 활성화 : conda activate 가상환경 이름
  • 기본적인 패키지 설치
    • pip install tensorflow==2.2.0
    • pip install tf-nightly
    • pip install pandas matplotlib seaborn scipy
    • pip install tensorflow-gpu==2.2.0
    • pip install keras==2.2.4
    • pip install jupyter notebook
    • pip install ipykernel
    • python -m ipykernel install --user --name 가상환경이름 --display-name 표시할 가상환경 이름

GPU 확인

from tensorflow.python.client import device_lib
print(device_lib.list_local_devices())

image

이렇게 뜨면 잘 설치가 된 것이다.

기타

  • 가상환경 리스트 확인 : conda env list
  • 가상환경 비활성화 : conda deactivate
  • 가상환경 삭제 : conda remove -n 가상환경이름 --all 후 y 클릭
  • 경로 변경 : cd 경로주소
  • 파이썬 셸 실행 : python
  • 파이썬 셸 종료 : exit() or ctrl+z
  • 설치된 모든 라이브러리 확인 : pip freeze

  • cuda 버전 확인 : nvcc --version (cmd 창)
  • GPU util 확인 : nvidia-smi (cmd 창)

한계 및 주의사항

  • CUDA 11.0 / cuDNN 8.0 / tensorflow_gpu 2.4.0 조합은 작성 시점에 검증된 특정 버전 조합이며, 다른 버전과 섞으면 빌드나 로딩 오류가 날 수 있다. TensorFlow의 버전별 요구 사항 표를 먼저 확인한다. 1
  • 2021년 이후 GitHub Actions 무료 러너(GPU 미탑재)나 WSL2 같은 환경에서는 GPU를 사용할 수 없고, Windows 네이티브 TensorFlow GPU 지원은 2.10을 끝으로 종료되어 이후 버전은 WSL2를 요구한다.
  • cuDNN은 NVIDIA 개발자 계정으로 로그인한 뒤 받을 수 있고, 압축을 푼 파일을 CUDA 설치 경로로 복사해야 한다. 이때 버전 디렉터리(예: CUDA v10.1 → v11.0)를 잘못 지정하면 cudnn64_8.dll을 찾지 못한다.
  • 환경 변수(PATH, CUDA_PATH)를 설정하지 않으면 nvcc --version이 인식되지 않는다.

References

댓글남기기