텐서플로우 gpu 설정

박해극·2023년 11월 16일
2

참고사항 및 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
안뇽하세요

2개의 댓글

comment-user-thumbnail
2024년 1월 23일

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

답글 달기
comment-user-thumbnail
2024년 12월 18일

gpu 안되서 한동안 엄청 골머리 애먹었는데 덕분에 해결했어요. 하라는 대로 버전 맞춰서 해서 됬어요.
gpt한테 계속 물어봐도 해결 안됬는데, 여기 따라해서 됬어요. 감사해요. 고마워요.

답글 달기

관련 채용 정보