텐서플로우 gpu 설정

박해극·2023년 11월 16일
0
post-custom-banner

참고사항 및 DISCLAIMER
본 가이드라인은 window 유저와 NVIDIA 그래픽카드를 가지고 계신분들을 위해 작성되었습니다. 아쉽지만 맥 유저나 AMD 그래픽카드를 가지고 계신 분들은 다른 방법을 권장드립니다. 😊

설정 프로세스 Overview

  1. 그래픽카드 모델 확인(skip 가능)
    • 만약 그래픽카드 모델을 아신다면 스킵하셔도 좋습니다!
  2. 사양에 맞는 CUDA 버전 확인
  3. 그래픽카드 사향에 맞는 tensorflow-gpu 버전 및 cudnn 버전 확인
  4. 그래픽카드 드라이버 설치
  5. CUDA와 cuDNN 다운로드
  6. 환경변수 설정
  7. gpu 연결 확인

1. 그래픽카드 모델 확인

  • 먼저 그래픽카드 모델을 확인하기 위해 장치관리자를 열어 봅시다!
  • 아래 사진과 같이 윈도우 검색창에 장치 관리자를 찾아봅시다.

  • 장치 관리자가 열리고 아래와 같이 여러 토글들이 있는데요. 그 중에서 디스플레이 어댑터 토글을 눌러주세요. 그럼 모델이름을 확인 하실 수 있습니다.

제 그래픽카드는 모델은 NVIDIA GeForce GTX 1050TI 인걸 확인할 수 있습니다.

2. 사양에 맞는 CUDA 버전확인

혹시 CUDA 와 cuDNN이 뭔지 궁금하면 링크를 눌러주세요. 저는 귀찮아서 걍 무시하고 바로 설치하러 갔습니다 😅
CUDA 링크 👈
cuDNN 링크 👈
귀찮으시면 바로 설치하러 꼬우~~

  • 먼저 그래픽 카드 모델마다 compute capability ( 👈링크 클릭해주세요)가 다 다른데요. 이 compute capability 에 따라 어떤 CUDA 버전과 어떤 cuDNN 버전이 설치되야 되는지 결정됩니다. 그러니 꼭 주의하시고 살펴주세요!!!!

  • 링크 따라 들어오면 아래와 같은 페이지가 뜨는데요. 그래픽카드 모델에 따라 맞게 버튼을 클릭해주세요.

  • GeForce 그래픽카드를 가지고 계시면 CUDA-Enabled GeForce and TITAN Products 를 눌러주세요. 그럼 아래와 같이 촤라락~~ 펼처지는데요. 저는 모델이 1050Ti니 한 번 확인해보겠습니다.

    모든 10 시리즈들은 compute capability가 6.1인걸 확인할 수 있습니다.

  • 자 이제 compute capability를 확인 했으니 아래 차트를 확인해봅시다. 저 같은 경우 6.1이기 때문에 pascal 해당하고 CUDA 버전을 8.0부터 12.3 버전까지 사용이 가능합니다. 그래픽모델에 맞게 차트를 확인해보세요. 화살표와 곡선은 제 모델을 가지고 차트를 어떻게 보는냐를 보여주는 도구입니다.

3. tensorflow-gpu 버전 및 호환가능한 버전 확인

  • 이제 대망의 tensorflow-gpu 버전과 cudnn 버전을 확인할 시간 😍

  • 먼저 이 링크( 👈)를 클릭해주세요. 클릭 후 아래 사진처럼 GPU 섹션을 찾을 때까지 스크롤 해봅시다.

    저 같은 경우 compute capability 가 6.1이고 쿠다 12.3 까지 쓸 수 있지만 아쉽게도 tensorflow-gpu 에 호환되는 가장 최근 쿠다버전은 11.2 입니다. 그래서 저는 아쉽지만 쿠다 12.3 설치했다가 다시 지우고 쿠다 11.2 버전을 설치했습니다. 여러분은 이런 번거로움을 겪지 않기를 🙏

  • 위 사진을 보면 tensorflow-gpu와 호환되는 파이썬 버전, cuDNN 버전, 쿠다버전을 확인 하실 수 있습니다. 컴파일러나 빌드도구는 아마 tensorflow-gpu에 맞게 이미 설치가 되어 있을 겁니다.

    • 윈도우용 tensorflow-gpu는 2.10.0 까지 지원하니 2.10.0 버전 설치를 권장드립니다. 하지만 compute capability 확인 후 그래픽카드가 쿠다 11.2 버전과 호환이 안되면 맞춰서 tensorflow-gpu 버전을 맞춰서 설치 부탁드립니다.
  • 그럼 파이썬 버전을 한 번 확인해봅시다!! 아래 코드를 복사 후 shell이나 cmd에 넣어봅시다.

python --version
# 만약 3.7-3.10 버전보다 낮거나 높으면 다시 지우고 버전에 맞게 다시 설치해주세요.

4. 그래픽 드라이버 설치

5. CUDA 및 cuDNN 설치

  • 자 이제 compute capability와 호환되는 tensorflow-gpu, cudnn, cuda 버전을 확인했으니 설치를 해봅시다.

    • tensorflow-gpu 2.10.0 기준으로 설치를 해보겠습니다.
  • cuda 11.2 다운로드 링크:https://developer.nvidia.com/cuda-11.2.0-download-archive

  • cuDNN 8.1 다운로드 링크:https://developer.nvidia.com/rdp/cudnn-archive

     링크 같은 경우 모든 cuDNN 버전을 archiving 한 페이지이기 때문에 버전에 맞게 잘 찾아주세요. 

    8.1.1이나 8.1.0 둘 중에 아무거나 설치하셔도 좋습니다.

  • cuDNN 을 설치 후 압축해제를 합니다. 그리고 cudnn-11.2-????? 폴더를 누른 후 cuda 폴더로 들어가주세요. 그럼 아래와 같이 보이는데요.

  • 여기서 제가 highlight 했듯이 모든 파일을 복사해주세요.

  • 그리고 이제 아래 제시된 순서로 경로를 따라가주세요 (CUDA 11.2가 이미 설치 되어있어야 합니다).

    C 드라이브 ➡️ Program Files ➡️ NVIDIA GPU Computing Toolkit ➡️ CUDA ➡️ v11.2

  • 그럼 이제 아까 복사했던 파일과 폴더를 덮어씌워 주면 됩니다.

6. 환경변수 설정

  • 이제 cuDNN 파일들을 붙혀두었으니 환경변수를 설정해야 합니다.

  • 아래와 같이 윈도우 검색 창에 환경변수를 검색 후 시스템 환경 변수 편집을 눌러주세요.

  • 그럼 아래와 같이 시스템 속성 창이 뜨는데요. 여기서 환경 변수를 클릭해줍니다.

  • 그럼 아래와 같이 환경 변수창이 뜨는데요. 여기서 시스템 변수에 보이는 CUDA_PATH(빨간 박스)를 더블 클릭 해줍니다.

  • 클릭 후 변수 값을 복사해줍니다.

  • 그리고 Path를 highlight 한 상태에서 편집을 누르거나 더블클릭을 해줍니다.

  • 환경 변수 편집창에서 새로 만들기를 누르고 아까 복사했던 변수 값을 붙혀넣기를 합니다. 그리고 2번 더 반복해주세요. 그럼 아래와 같이 3개의 환경 변수가 추가된걸 확인 하실 수 있습니다.

  • 하지만 여기서 끝난게 아니죠ㅎㅎ 추가된 변수에 bin 폴더, include 폴더, lib 폴더를 추가해주셔야 됩니다. 아래와 같이 각 환경편수 마다 더블클릭 혹은 편집을 누른 후 bin, include, lib을 추가해주세요

    ~\NVIDIA GPU Computing Toolkit\CUDA\v11.2\bin
    ~\NVIDIA GPU Computing Toolkit\CUDA\v11.2\include
    ~\NVIDIA GPU Computing Toolkit\CUDA\v11.2\lib

  • 이제 환경변수 설정이 완료되었습니다!!! 👍

7. GPU 연결확인

  • 자 이제 vscode 같은 text editor, python terminal, 혹은 jupytor notebook 를 열어봅시다! 기호에 맞게 해주시면 됩니다.
  • 아래와 같이 코드를 실행해봅시다.
import tensorflow as tf
from tensorflow.python.client import device_lib
print(tf.__version__)
device_lib.list_local_devices()
  • 코드 실행 후 아래와 같이 CPU만이 아닌 GPU란 말이 뜨고 GPU 모델이름이 뜨면 세팅이 완료된겁니다!!!! 유후~~~

기타 참고사항

  • 저 같은 경우 GPU 설정은 잘 됐지만 여러 Tensorflow 라이브러리와 호환성에 문제가 좀 있어서 이 섹션은 덤으로 Tensorflow-gpu 2.10.0 과 호환되는 tensorflow 라이브러리를 소개해 드리려고 합니다.
# 우선 shell, cmd, 혹은 conda 에서 pip list 를 찍어봅시다.

protobuf                     3.19.6
tensorboard                  2.10.1
tensorboard-data-server      0.6.1
tensorboard-plugin-wit       1.8.1
tensorflow-datasets          4.8.0
tensorflow-estimator         2.10.0
tensorflow-gpu               2.10.0
tensorflow-hub               0.15.0
tensorflow-io-gcs-filesystem 0.31.0
tensorflow-metadata          1.13.0

# 특히 tensorflow-datasets 를 설치했을때 문제가 많이 있었는데요
# 위 와 같이 버전들을 맞춰주시면 tensorflow-datasets 호환 문제가 해결이 됩니다.

# 삭제 및 설치 코드 탬플릿
pip uninstall "name-of-library_or_module"
pip install "name-of-library_or_module==version"

# ex)
pip install protobuf==3.19.6

프로세스 따라오시느라 수고 하셨습니당. 앞으로 이제 맴껏 모델 훈련 돌려보세용~~
감사합니다🙏🙏

profile
안뇽하세요
post-custom-banner

1개의 댓글

comment-user-thumbnail
2024년 1월 23일

선생님 덕분에 5일간 해결 안되던 문제를 해결하였습니다. 존경합니다!

답글 달기