안녕하세요! M_AI 입니다!
이번 포스팅은 Nvdia GPU인 RTX 3090을 Windosw 10 환경에서 Tensorflow 2.4.1 버전을 설치하는 방법을 소개해드리겠습니다.
본 게시글은 koos808 님의 Tstory에 포스팅한 내용을 기반으로 하여 설치를 설명하도록 하겠습니다.
티스토리 : https://koos808.tistory.com/41
위의 티스토리 게시글에서는 많은 시행착오를 겪으며 2021년도 1월 22일을 마지막으로 최종 작동됨을 확인하셨다고 했습니다.
그래서 저도 이에 따라 설치 진행하였습니다.
1. Anaconda 설치
python 3.8인 ananconda 설치하면 된다.(21년도 08월 17일 기준 python version 3.8)
아나콘다 설치 파일 다운로드 링크는 아래에 있습니다.
https://www.anaconda.com/products/individual#windows
2. cuda_11.0.3_451.82_win10
RTX 3090 에서 맞는 cuda version은 11.0.3으로, 해당 설치 파일 링크는 아래에 있으니 다운로드하여 설치하길 바랍니다.
https://developer.nvidia.com/cuda-11.0-update1-download-archive?target_os=Windows&target_arch=x86_64&target_version=10&target_type=exenetwork
3. cuDNN 8.0.4
cudnn은 다운로드하기 위해서는 로그인을 해야합니다. 아래 사이트로 들어가셔서 로그인한 후에 cuda 11.0 버전 및 os windows10에 맞는 cuDNN 8.0.4를 다운로드하고 압축 풀면 됩니다.
https://developer.nvidia.com/rdp/cudnn-archive
압축 파일을 풀면 나오는 cuda 폴더가 나오는데, 내부는 figure 3와 같습니다.
1. bin 폴더 내부 파일
이후 bin 폴더를 열면 figure 4과 같이 7개의 파일이 있습니다.
이 파일들을 NVDIA가 설치된 디렉토리인
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.0\bin
에 복사+붙여넣기하거나 Drag and Drop하면 됩니다.
2. include 폴더 내부 파일
위와 마찬가지로, include 내부 파일을
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.0\include
에 복사+붙여넣기하거나 Drag and Drop하면 됩니다.
3. lib 폴더 내부 파일
lib 폴더 내부에는 bin, include 폴더에 여러 파일이 존재하는 것과 다르게, 내부에 x64라는 폴더가 존재합니다.
마찬가지로
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.0\lib
에도 x64폴더가 존재합니다.
이는 cuDNN\lib\x64 폴더에 있는 내부 파일을
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.0\lib\x64
에 복사+붙여넣기하거나 Drag and Drop하면 됩니다.
4. tensorflow 2.4.1
cmd or Windows PowerShell or Anaconda에서 pip install tensorflow-gpu==2.4.1 설치하면 됩니다.
이후 테스트 코드 돌리면 됩니다.
5. Test
우선 아래 코드를 돌리면 Figure 7과 같이 GPU가 setting 되었다는 결과가 나와야 합니다.
(아래 코드 출처 또한 koos808 님의 티스토리 블로그에서 가져온 코드입니다.)
import tensorflow as tf tf.__version__ # GPU Check 1 from tensorflow.python.client import device_lib device_lib.list_local_devices() # GPU Check 2 tf.config.list_physical_devices('GPU') # GPU Check 3 gpus = tf.config.experimental.list_physical_devices('GPU') for gpu in gpus: print("Name:", gpu.name, " Type:", gpu.device_type)
그리고 아래 코드는 MNIST를 학습시키는 코드입니다.
(코드 출처 : https://www.tensorflow.org/tutorials/quickstart/beginner?hl=ko )
import tensorflow as tf from tensorflow import keras import numpy as np print(np.__version__) print(tf.__version__) fashion_mnist = keras.datasets.fashion_mnist (train_images, train_labels), (test_images, test_labels) = fashion_mnist.load_data() class_names = ['T-shirt/top', 'Trouser', 'Pullover', 'Dress', 'Coat', 'Sandal', 'Shirt', 'Sneaker', 'Bag', 'Ankle boot'] train_images = train_images / 255.0 test_images = test_images / 255.0 model = keras.Sequential([ keras.layers.Flatten(input_shape=(28, 28)), keras.layers.Dense(128, activation='relu'), keras.layers.Dense(10, activation='softmax') ]) model.compile(optimizer='adam', loss='sparse_categorical_crossentropy', metrics=['accuracy']) model.fit(train_images, train_labels, epochs=10, batch_size = 16) test_loss, test_acc = model.evaluate(test_images, test_labels, verbose=2) print('\n테스트 정확도:', test_acc)
이를 복사하여 실행시키면 작업관리자에서 성능 탭을 누르시면 Figure 8과 같이 GPU가 작동됨을 알 수 있습니다.
다름 방법으로는, cmd나 Windows PowerShell 환경에서 nvdia-smi로 확인하는 방법이 있는데
터미널에서 아래 디렉토리로 간 다음에
C:\Program Files\NVIDIA Corporation\NVSMI
nvdia-smi를 입력하면 다음 됩니다.
Figure 9에서 위는 학습 전이고, 아래는 학습 중일 때 실행시킨 것으로 사용률이 차이가 나는 것을 확인할 수 있습니다.
더 나아가, 매번 경로로 접근하기 번거롭기 때문에 환경 변수로 설정하도록 합니다.
(이에 대한 방법은 아래 티스토리 블로그와 깃허브를 참고하였습니다.)
1. https://sanghyu.tistory.com/35
2. https://deeesp.github.io/deep_learning/dl-tips/
- '시스템 환경 변수 편집'에 들어간다.
- 경로 ( C:\Program Files\NVIDIA Corporation\NVSMI ) 추가
- 명령창(Windows Powershell혹은 CMD창)에서 어떤 경로에 있든, nvidia-smi를 입력해도 GPU 사용확인 가능
- 5초에 한 번씩 사용량 확인 방법
명령창(Windows Powershell혹은 CMD창)에서
nvidia-smi -l |
를 입력한다. 이후 계속 보는 것을 중지하고 싶으면 ctrl + C 를 누르면 정지한다.
끝
'3. 기타 등등' 카테고리의 다른 글
[영상처리] 안저 영상(Fundus Image)에서 심플하게 시신경유두(Optic Disc) 찾기 (0) | 2021.05.31 |
---|---|
Tensorflow AMD GPU로 학습 방법 - Ubuntu 설치, ROCm 설치, tensorflow-rocm 설치 (8) | 2021.05.31 |