본문 바로가기
기타/GPU set

[CUDA] windows10 CUDA 설치 & tensorflow 연동

by hotelshoe 2022. 2. 17.
반응형

머신러닝할 때 이용하게 되는 GPU. 그중에서 널리 쓰이는 NVIDIA의 CUDA와 windows 환경과의 연동을 실시할 것이며 tensorflow와의 연동도 실시하겠습니다.

저의 설치 환경은 다음과 같습니다.

OS - windows10 x64

GPU - GeForce RTX 2080Ti

python - 3.8

 


1. NVIDIA 그래픽 드라이버 설치

https://www.nvidia.co.kr/Download/index.aspx?lang=kr 

 

Download the latest official NVIDIA drivers

Download the latest official NVIDIA drivers

www.nvidia.com

위 링크를 통해 자신의 그래픽카드에 맞는 드라이버를 다운로드 해줍니다. 그리고 이후에 cuDNN 설치에는 NVIDIA 계정이 필요하니 미리 가입을 해둡니다. 그래픽 카드 확인은 '제어판 -> 하드웨어 및 소리 -> 장치 관리자 -> 디스플레이 어댑터' 를 통해 확인할 수 있습니다.

그래픽 카드 확인이 완료되면 링크를 통해 해당 제품에 맞는 드라이버를 다운로드합니다.

 

그 다음 다운로드 된 exe 파일을 실행시켜 절차에 따라 설치해주면 되겠습니다. 저의 경우 크게 커스텀할 필요가 없어 빠른 설치를 실시했습니다.

설치 후 정상적으로 완료가 되었는지 cmd 창에 다음의 커맨드로 확인할 수 있습니다.

 

nvidia-smi

출력 예시

정상적인 설치가 되었을 경우 설치된 그래픽카드 드라이버의 버전이 출력됩니다. 오른쪽의 CUDA Version은 무시하셔도 됩니다.


2.  Cuda Toolkit 설치

이제부터가 중요합니다.

https://docs.nvidia.com/cuda/cuda-toolkit-release-notes/index.html

 

Release Notes :: CUDA Toolkit Documentation

Beginning in 2022, the NVIDIA Math Libraries official hardware support will follow an N-2 policy, where N is an x100 series GPU.

docs.nvidia.com

CUDA toolkit 사이트에 따르면 위 표와 같이 다운받은 GPU 드라이버 버전과 다운로드 할 CUDA와의 버전 호환성을 제시합니다. 다운로드 한 드라이버의 버전을 참고하여 이와 호환되는 CUDA를 다운로드하면 되겠습니다.

드라이버 버전의 경우 다운로드한 exe 파일 이름에 제시되어 있습니다.

제가 다운로드한 GPU 드라이버의 경우 511.79 이므로 가장 최신 버전의 CUDA와 호환되지만, 후술할 tensorflow와의 호환성을 고려하여 빨간 박스가 된 10.1 버전을 다운로드 하였습니다. (다른 여러 블로그의 포스팅을 참조한 결과, 저의 GPU인 2080Ti는 대체적으로 10.1 버전이 잘 맞는다는 의견이 있어 이 또한 참고하였습니다.)

(※수정※)

tensorflow의 경우 자체 API에서 제공되는 tensorlfow-gpu 라이브러리를 통해 큰 어려움 없이 간단한 설치만 완료하여 GPU가 연동된 모델 학습을 진행할 수 있습니다.

위의 취소선의 경우 opencv와 연계된 GPU 구동시 사용되는 방법으로 모델 학습만 활용할 경우 하단의 tensorflow와의 호환성을 고려하지 않아도 되며, (자신의 그래픽 드라이버 버전과 호환되는)CUDA와 이에 호환되는 cuDNN 및 최신 버전의 tensorflow-gpu 라이브러리만 설치하면 되겠습니다.

https://developer.nvidia.com/cuda-toolkit-archive

 

CUDA Toolkit Archive

Previous releases of the CUDA Toolkit, GPU Computing SDK, documentation and developer drivers can be found using the links below. Please select the release you want from the list below, and be sure to check www.nvidia.com/drivers for more recent production

developer.nvidia.com

상단의 링크를 접속한 뒤 자신의 개발 환경에 맞게 CUDA를 다운로드 합니다.

설치 예시

저의 경우 windows 10 64비트 환경이므로 빨간 박스가 된 부분으로 다운로드 하였습니다. 또한 빠른 설치를 위해 network 형태로 설치를 진행하였습니다. 그 후 절차에 따라 설치하면 됩니다. 이 역시도 저는 빠른 설치로 진행하였습니다.

 

(※수정※) 저의 경우 11.5 버전을 설치하였습니다

CUDA의 정상 설치 확인은 cmd창에서 다음의 명령어로 확인해볼 수 있습니다.

nvcc --version


3. cuDNN 설치

Python을 통해 tensorflow 등의 개발을 할 시 무작정 아무 버전이나 다운받는 것이 아닌 하단 링크의 Python, CUDA, cuDNN과의 호환성을 꼭 환인하여 이에 맞게 진행해야 합니다. 

위의 (※수정※) 을 참고 바랍니다.

 

https://www.tensorflow.org/install/source#gpu

 

소스에서 빌드  |  TensorFlow

Help protect the Great Barrier Reef with TensorFlow on Kaggle Join Challenge 소스에서 빌드 소스에서 TensorFlow pip 패키지를 빌드하고 Ubuntu Linux 및 macOS에 설치합니다. 명령어는 다른 시스템에도 적용될 수 있지만, U

www.tensorflow.org

링크를 통해 접속한 뒤 GPU 목록을 통해 확인한 결과 CUDA 10.1 버전의 경우 cuDNN은 7.6 버전과 호환이 되므로 마찬가지로 cuDNN을 적절한 버전을 찾아 다운로드 해야 합니다.

마찬가지로 위의 (※수정※)을 참고 바라며 opencv와 GPU 연동을 활용할 것이 아니라면 (자신의 그래픽 드라이버 버전과 호환되는)CUDA와 이에 호환되는 cuDNN 및 최신 버전의 tensorflow-gpu를 설치하면 되겠습니다. 추가적으로 저의 경우 cuDNN은 CUDA 11.5와 호환되는 8.3.1을 설치하였습니다.

 

https://developer.nvidia.com/rdp/cudnn-archive

 

cuDNN Archive

NVIDIA cuDNN is a GPU-accelerated library of primitives for deep neural networks.

developer.nvidia.com

링크를 통해 접속하면 위와 같은 화면을 볼 수 있는데(로그인 필요) 설치한 CUDA 버전과 OS에 맞게 다운로드 합니다. 다운로드 후 zip 파일을 열어 CUDA가 설치된 경로(저의 경우 C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.1) 에 그대로 덮어씌우면 됩니다. (같은 이름 파일 덮어 씌우기에 대해 모두 예)

설치경로 예

이제 고급 시스템 설정에서 환경변수를 확인해 밑의 사진과 같은 경로가 생성되었는지 확인합니다. 환경변수의 경우 윈도우 검생창에 '고급 시스템 설정 보기' 를 검색하거나 '제어판-> 시스템 및 보안 -> 시스템 -> 고급 시스템 설정 -> 환경변수' 을 통해 확인할 수 있습니다.

 

여기까지 이상이 없으면 cmd에 다음의 커맨드를 입력해 설치를 확인합니다.

nvcc --version

해당 출력을 얻었으면 설치는 마무리 되었고 이제 코드를 통해 GPU와의 연동이 되었는지 확인합니다.


4. tensorflow 연동 테스트

IDE나 jupyter notebook 등의 개발환경에 해당 python 코드를 입력하여 정상적으로 작동하는지 확인합니다. 그 전에 먼저 tensorflow를 설치해야하며, 이경우 반드시 상단의 이미지를 참고하여 호환되는 버전에 맞게 install 해야합니다. 설치는 하단의 커맨드로 적합한 버전의 tensorflow를 설치했습니다.

(※tensorflow-gpu 설치의 경우 하단의 5번 문단 참조※)

pip install tensorflow==2.3.0 #-- 본인의 개발환경에 맞게 버전 변경할 것

 

설치 후 하단 코드를 실행시켜 정상적인 연동을 확인합니다.

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

출력 예시

다음과 같은 출력 화면을 보았다면 설치가 정상적으로 마무리 되었습니다.

 

5. (추가) 수정된 방법으로 연동 테스트

앞서도 설명을 추가하였지만, 혼동이 있을 수 있으므로 마지막으로 하단 부분에 추가로 설명을 적겠습니다.

상단에 게시된 방법은 opencv와의 GPU 연동시 사용되는 방법이므로 단순히 모델 설계에만 적용할 경우 최신버전(혹은 한두단계 낮은 버전) CUDA와 이에 호환되는 cuDNN 및 최신 버전(혹은 한두단계 낮은 버전)의 tensorflow-gpu를 절차에 따라 설치하면 되겠습니다.

상단의 절차가 마무리 되면 하단 코드를 통해 연동 테스트를 실시하면 되겠습니다.

pip install tensorflow-gpu
import tensorflow as tf
print(tf.__version__)

상단의 코드로 최신 버전의 tensorflow-gpu를 설치한 뒤, 정상 설치 확인 및 버전을 확인해 봅니다.

저의 경우 가장 최신의 tensorflow-gpu 버전인 2.9.1이 설치 되었습니다.(22.08.25 기준)

(tensorflow-gpu는 GPU와의 연동을 위한 설치일 뿐이지 소스 코드 작성 시 다르게 할 부분은 없으며, 기본적인 모든 tensorflow 코드와 호환됩니다.)

 

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

해당 코드로 GPU와의 연동을 확인합니다.

마찬가지로 위와 같은 출력 화면을 보았다면 설치가 정상적으로 마무리된 것입니다.

반응형

댓글