본문으로 바로가기

Windows에서 GPU 지원 TensorFlow 설치하기(CUDA)


최초 작성일: 2020.08.24.

 

 TensorFlow와 CUDA Toolkit은 호환성 문제가 빈번하게 발생하고 계속해서 새로운 버전이 나온다. 무엇 때문에 해당 버전의 TensorFlow와 CUDA Toolkit을 설치해야하는지 설명 없이 명시적으로 버전만을 나열해둔다면, 글을 읽는 시점에는 오래된 버전의 TensorFlow와 CUDA Toolkit을 사용할 수 있으니 호환 버전과 시스템 요구사항 보는 법을 중심으로 글을 작성하였다. 본 글을 보면서 따라하기 보다 한 번 쭉 읽으면서 안정적인 설치를 위해 무엇을 고려해야 하는지 알아두길 바란다.

 

요약

각각에 대하여 확인해야할 사항은 다음과 같다.

프로그램 TensorFlow GPU 지원 CUDA Toolkit 기타
확인사항 - Python 버전
- OS 버전
- pip 버전
- NVIDIA GPU
- CUDA® Compute Capability 버전
- CUDA Toolkit 버전
- OS 버전
- Visual Studio 버전
환경변수 설정

 

1. TensorFlow 설치하기

텐서플로를 설치하려는 것이니 텐서플로 공식홈페이지의 설치가이드를 살펴본다.

 

TensorFlow

시스템에 TensorFlow를 설치하는 방법을 알아봅니다. pip 패키지를 다운로드하거나 Docker 컨테이너에서 실행하거나 소스에서 빌드합니다. 지원되는 카드에서 GPU를 사용 설정합니다.

www.tensorflow.org

TensorFlow 2를 설치하기 위해서는 다음이 필요하다고 한다.

  • Python 3.5-3.7
  • Windows 7 이상
  • pip 버전 19.0 이상

그리고 pip 패키지 관리자를 통해 다음 코드를 입력하면 텐서플로를 설치할 수 있다.

pip install --upgrade pip
pip install tensorflow

다음은 CUDA® 지원 카드를 위한 GPU 가이드다.

 

 

2. GPU 지원 요구사항 살펴보기

 

GPU 지원  |  TensorFlow

참고: GPU 지원은 CUDA® 지원 카드가 있는 Ubuntu 및 Windows에 제공됩니다. TensorFlow GPU 지원에는 다양한 드라이버와 라이브러리가 필요합니다. 설치를 단순화하고 라이브러리 충돌을 방지하려면 GPU를

www.tensorflow.org

 

 

3. CUDA® Compute Capability 3.5 이상 확인하기

 

CUDA GPUs

Recommended GPU for Developers NVIDIA TITAN RTX NVIDIA TITAN RTX is built for data science, AI research, content creation and general GPU development. Built on the Turing architecture, it features 4608, 576 full-speed mixed precision Tensor Cores for accel

developer.nvidia.com

 첫번째 요구사항은 CUDA® Compute Capability 3.5 이상을 포함하는 NVIDIA® GPU 카드이다.

 링크에 들어가서 Tesla, Quadro, NVS, GeForce and TITAN, Jetson 중 자신의 GPU 분류를 선택한 다음 자신의 GPU가 Compute Capability 3.5 이상인지 확인한다. 확인했을 때 3.5 이상이 아니라면 별 수 없다. GPU 지원 없이 단순 텐서플로만 사용할 수 밖에 없다.

 

 

4. NVIDIA® GPU 드라이버 최신버전 업데이트하기

 

NVIDIA 드라이버 다운로드

 

www.nvidia.co.kr

 두번째 요구사항은 NVIDIA® GPU 드라이버 418.x 이상이다.

 그래픽 드라이버를 최신버전으로 업데이트한다.

 

 

5. CUDA® Toolkit 10.1 설치하기

 

CUDA Toolkit 10.1 update2 Archive

Select Target Platform Click on the green buttons that describe your target platform. Only supported platforms will be shown. Operating System Architecture Distribution Version Installer Type Do you want to cross-compile? Yes No Select Host Platform Click

developer.nvidia.com

 세번째 요구사항은 CUDA® Toolkit 10.1이다.

 다운로드를 받고 설치하기 전에 Installation Guide for Microsoft Windows(CUDA Toolkit v10.1.243)를 보면 시스템 요구사항이 있는 것을 볼 수 있다. 무작정 설치하지 않고 요구사항을 확인해본다.

 

 

5.1 CUDA® Toolkit 10.1 시스템 요구사항 확인하기

 

Installation Guide Windows :: CUDA Toolkit Documentation

The project files in the CUDA Samples have been designed to provide simple, one-click builds of the programs that include all source code. To build the Windows projects (for release or debug mode), use the provided *.sln solution files for Microsoft Visual

docs.nvidia.com

CUDA® Toolkit 10.1을 설치하기 위해 확인해야할 사항은 다음과 같다.

  • CUDA 지원 GPU
  • 지원되는 Microsoft Windows 버전
  • 지원되는 Microsoft Visual Studio 버전
  • NVIDIA CUDA Toolkit

CUDA 지원 GPU3. CUDA® Compute Capability 3.5 이상 확인하기에서 확인하였고 Windows 버전도 앞서 확인하였다. 이제 남은 것은 Visual Studio 버전이다. 위 문서에서 Table 2. Windows Compiler Support in CUDA 10,1를 보면 Visual Studio 2019 16.x를 사용하면 되기 때문에 Visual Studio 2019를 설치한다.

(Visual Studio 2019의 모든 버전은 16.x이다. 따라서 단순히 최신버전을 설치하면 된다.)

 

이제 CUDA® Toolkit 10.1의 요구사항을 충족했으니 CUDA® Toolkit 10.1를 설치한다.

 

 

6. cuDNN 다운

 

NVIDIA cuDNN

NVIDIA cuDNN The NVIDIA CUDA Deep Neural Network library (cuDNN) is a GPU-accelerated library of primitives for deep neural networks. cuDNN provides highly tuned implementations for standard routines such as forward and backward convolution, pooling, norma

developer.nvidia.com

 네번째 요구사항은 cuDNN SDK 7.6 이상이다.

 CUDA는 10.1을 설치하였으니 cuDNN v7.6.5 for CUDA 10.1을 다운 받아준다.(NVIDA 회원가입 및 로그인 필요) 다음 다운 받은 cuDNN의 bin, include, lib 폴더를 CUDA Toolkit 설치 경로로 옮긴다. CUDA Toolkit의 default 경로는 "C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.1"이다.

 

 

7. 환경변수 설정

 마지막으로 Windows의 경우, 환경변수를 설정해주어야 한다.

 CUDA Toolkit이 설정된 경로에서 마지막 경로가 bin, include, lib, libnvvp가 되는 4개의 경로를 Path에 지정해주면 된다.

 

 

8. GPU 사용 확인

TensorFlow가 GPU를 사용하는지 확인하는 코드들이다.

import tensorflow as tf
tf.test.is_gpu_available()
import tensorflow as tf
tf.config.list_physical_devices('GPU')
from tensorflow.python.client import device_lib
device_lib.list_local_devices()

 

10. 주의사항

 주피터 노트북으로 TensorFlow GPU를 사용할 때(CUDA, cuDNN을 사용할 때), GPU(CUDA, cuDNN)를 사용하는 커널이 두 개 이상이면 아래와 같은 에러가 나는 것을 확인하였다. 물론 이 에러는 이 경우에만 발생하는 것이 아니라 TensorFlow, CUDA, cuDNN 버전 호환 문제가 있을 때도 발생한다.

UnknownError: Failed to get convolution algorithm. This is probably because cuDNN failed to
initialize, so try looking to see if a warning log message was printed above.

 

11. 직접 사용한 버전

  • Windows 10 (버전 1909)
  • Python 3.7.7
  • anaconda 4.8.4
  • TensorFlow 2.1.0 ("conda install tensorflow-gpu"를 통해 설치)
  • CUDA Toolkit 10.1
  • cuDNN v7.6.5 for CUDA 10.1
  • Visual Studio 2019 16.7.2

 

'인공지능 > 딥러닝' 카테고리의 다른 글

Windows에서 PyTorch GPU 설치하기(CUDA)  (0) 2021.07.30
Ubuntu에서 CUDA 설치하기  (0) 2021.01.31