이번 포스트는 tensorflow에서 GPU를 세팅하는 방법에 대해 작성한다. 물론 여기보다 더 잘 설명된 글도 많지만 굳이 다시 찾아보지 않으려고 작성한다. 무튼, 엔비디아 그래픽 카드(RTX 3060 TI)를 기준으로 글을 작성한다. 그리고 가상환경을 기준으로 세팅할 것이기 때문에 가상환경에 대해 모르는 분은 해당 포스트를 참고하면 도움이 된다.
엔비디아 그래픽 드라이버 설치
구글에 돌아다니는 글들을 보면 흔히 무작정 CUDA 부터 설치하는 경우가 많은데, 이전에 해야 몇 가지 작업이 있다. (기존에 엔비디아 그래픽 드라이버가 설치되어 있는 분이라면 이 단계는 뛰어넘어도 된다.) 엔비디아 그래픽 드라이버가 설치부터 하자. 이 과정을 수행하지 않으면, 인텔 CPU를 사용한다면, 내장 그래픽으로 모니터를 출력하고 있을 것이다. (장치관리자의 디스플레이 어댑터를 보면 그래픽 카드가 아닌 엉뚱한 어댑터가 사용중) 그리고 중요한 nvidia-smi 명령어를 사용할 수가 없다. 이 명령어는 뒤에서 알아보자.
https://www.nvidia.co.kr/Download/index.aspx?lang=kr
해당 링크에서 자신에게 맞는 그래픽 카드 드라이버를 검색한 뒤에 다운받자. Geforce RTX 3060 TI 기준 2기가 가량의 설치 파일이 다운된다. 설치가 완료 되었으면 실행해서 다음을 광클하고 빠른 설치를 실행한다.
nvidia-smi
명령프롬프트(윈도우 시작버튼 - cmd 입력)를 실행시킨 후, nvidia-smi 명령어를 입력하자. 현재 동작중인 그래픽 카드에 대한 정보들이 출력된다. 우측 상단에 CUDA Version 이라고 적힌 부분을 확인하자. 해당 그래픽 카드에 적합한 CUDA 버전은 11.6 버전이다.
CUDA 툴킷 설치
https://developer.nvidia.com/cuda-toolkit-archive
위의 아카이브에서 아까 nvidia-smi로 확인한 CUDA 버전에 맞는 툴킷을 설치한다. 설치가 완료되면 Program Files 아래에 다음과 같은 폴더 두 개가 생겼을 것이다.
cuDNN 설치
https://developer.nvidia.com/rdp/cudnn-archive
위의 아카이브에서 아까 설치한 CUDA 툴킷에 호환되는 cuDNN을 다운받는다. 필자의 경우 설치한 CUDA 툴킷이 11.6 버전이라 호환되는 cnDNN이 없어서 11.x 버전을 위한 cuDNN을 다운받았다.
다운 받은 압축파일을 해제한 후, 위의 세 파일을 복사한 뒤에 아까 CUDA 설치 후 생성된 폴더 (NVIDIA GPU Computing Toolkit) 아래의 CUDA/v11.6 폴더 (설치된 버전에 따라 이름이 다름) 아래에 붙여넣는다. (덮어쓰기 해버리면 된다.)
환경변수 설정
시스템 환경 변수 편집 - 환경 변수 - 시스템 변수 (S) - Path에 아까 붙여넣었던 세 개의 폴더(NVIDIA GPU Computing Toolkit/CUDA/v11.6/bin, include, lib)를 추가해주면 된다. 찾아보기로 하는 것을 추천한다.
tensorflow-gpu 설치 및 확인
https://www.tensorflow.org/install/source_windows?hl=ko
위 링크에서 아래로 내리다보면 tensorflow 버전별 지원 현황이 나와있다. 이를 참고하여 Anaconda Prompt에서 앞서 설치한 가상환경을 활성화하여 conda install tensorflow-gpu==버전명 명령어를 수행하면 된다.
설치가 끝나고 python 명령어를 입력하여 해당 가상환경에서 파이썬 프롬프트를 활성화시킨다.
from tensorflow.python.client import device_lib
device_lib.list_local_devices()
활성화된 프롬프트에서 위의 파이썬 코드를 작성한다. 현재 로컬 디바이스 목록을 보여주는 메소드이다. 빨갛게 표시한 것이 로컬 디바이스 목록인데 잘 보면, CPU:0 과 GPU:0 을 확인할 수 있다. 0번째 CPU와 0번째 GPU 두 가지를 잘 인식한 것을 확인할 수 있다. (프로그래밍에서 0번째는 현실 세계의 1번째를 의미함)
지금부터 마음껏 GPU를 사용하여 딥러닝 혹은 머신러닝을 즐기면 된다 :)
'[ETC] - Python' 카테고리의 다른 글
# 2. 가상환경 패키지 목록 저장 및 불러오기 (0) | 2022.02.21 |
---|---|
# 0. Python 가상환경 세팅 (feat. Anaconda) (0) | 2022.01.25 |
댓글