* 목차
- intro
- 필요한 환경설정 확인
1. 보유한 GPU가 CUDA를 지원하는가
2. WSL2
3. TensorFlow 설치 요구사항
- 환경설정
1. Nvidia Driver 설치 (Update)
2. WSL2 설치 (Ubuntu-22.04)
3. CUDA 설치
4. cuDNN 설치
5. tensorRT 설치
6. Python, pip 설치
7. TensorFlow 설치
- 예제 코드
1. GPU 확인
2. 학습 코드
Intro
필자는 원래 영상 처리 알고리즘을 위해 TensorFlow을 Linux에 설치하여 성능이 좋은 알고리즘을 개발하고는 했습니다. 그런데 어느날, 집에서도 Deep learning 알고리즘을 구연하면 어떨까 하는 생각이 들어 집 컴퓨터에서도 TensorFlow를 설치하려 했습니다. 그런데 문제가 생겼습니다. 집 컴퓨터는 Linux가 아닌 Windows 10이었고, 최신 version(2.13)의 TensorFlow를 windows 10에 설치하면 GPU를 제대로 사용하기 힘들다고 합니다.
물론 TensorFlow를 낮은 version을 설치하면 될 일이기도 하지만 이왕이면 최신 version을 사용하고 싶었습니다. 그리고 CPU로만 학습을 돌린다고 하면 TensorFlow를 설치하는 것은 그리 어렵지 않습니다 하지만 GPU 자원(RTX4090)이 마련되어 있는데 사용하지 않는 건 좀 아까웠습니다. 그래서 필자는 Windows 환경에서 TensorFlow로 GPU를 사용할 수 있도록 환경 구성 작업을 진행하였고 그 과정을 글로 담아보았습니다. Windows에서 TensorFlow GPU 환경구성을 해야 할 분들에게 이 글이 조금이나마 도움이 되었으면 합니다.
* 이 글에서 구축되는 환경은 다음과 같습니다.
- GPU : Geforce RTX 4090
- OS : Windows 10 22H2(OS 빌드 19045.3324)
- NVIDIA Driver : 537.13
- WSL2 : ubuntu 22.04
- CUDA : 11.8
- cuDNN : 8.6.0
- TensorRT :
- Python : 3.10
- TensorFlow : 2.13.0
필요한 환경설정 확인
1. 보유한 GPU가 CUDA를 지원하는가
이 페이지에 들어오신 분들은 본인의 GPU가 CUDA를 지원하는지 이미 알 것으로 예상되지만 혹시 모르니 확인할 Page를 소개하겠습니다. CUDA GPUs - Compute Capability | NVIDIA Developer 에서 본인의 GPU가 CUDA-Enabled인지 확인할 수 있습니다.
2. WSL2
WSL이란 Windows Subsystem for Linux의 약자입니다. Windows에서 native한 환경으로는 최신의 TensorFlow를 사용할 수 없습니다. 대신 Windows에서 WSL2를 설치해서 Ubuntu를 구동하고, 그 안에서 TensorFlow를 설치해 GPU 자원을 제대로 사용할 수 있습니다. 이 기술 덕분에 Windows 환경에서 손쉽게 Ubuntu를 사용할 수 있습니다. Nvidia CUDA를 Windows Kernel에서 사용하기 위해 WSL2이 어디에 위치해 있고 다른 계층들은 어떤 순서로 되어야 하는지 밑의 그림을 확인해 보시기 바랍니다.
이 계층구조에 대해 하나씩 설명드리겠습니다.
- GPU Machines : 실제 물리적인 GPU를 의미합니다.
- Windows Kernel : Windows OS를 의미합니다.
- Nvidia Windows Driver : WSL에 driver를 설치하지 않아도 Windows의 Driver 만으로 충분함을 보이고 있습니다.
- GPU Paravirtualization (GPU-PV) : GPU 가상화. WSL2를 설치하면 자동으로 활성화됩니다.
- WSL2 : Windows에서 Linux를 사용할 수 있는 기술입니다.
- NVIDIA CUDA : WSL로 설치한 linux에 CUDA를 설치해야 합니다.
- TensorFlow : WSL로 설치한 linux에 TensorFlow를 설치해야 합니다.
여기까지는 CUDA를 위한 Nvidia의 설명입니다. 이제는 TensorFlow의 요구사항을 확인해야 합니다.
3. TensorFlow설치 요구사항
TensorFlow 설치 안내 site 에서 설치 방법을 안내하고 있으며 크게 2가지 방법을 제시하고 있습니다.
1. pip
2. docker
docker를 사용하면 여러 module을 수동 설치하지 않아도 TensorFlow환경을 구축할 수 있지만, container 자체가 주는 불편함도 있어 저는 수동 설치로 진행하는 pip 방법으로 진행하려 합니다. TensorFlow 설치를 위한 시스템 요구사항으로 다음과 같이 안내하고 있습니다.
Windows에서 WSL2를 활용하는 환경은 Windows 10 version이 19044 이상(64bit)를 요구하고 있습니다. 해당 version을 만족하는 확인해 보겠습니다. Windows 10 version은 실행창에서 winver을 입력해서 확인할 수 있습니다.
다행히 제 Windows의 version은 19044보다 높습니다. WSL2를 설치해서 진행해도 괜찮을 듯 합니다.
소프트웨어 요구사항은 다음과 같습니다.
- NVIDA GPU 드라이버 : windows에 설치한 driver를 사용합니다. 450.80.02 이상 필요
- CUDA : WSL2에 설치합니다. 11.8 이상을 필요
- cuDNN : WSL2에 설치합니다. 8.6.0 이상 필요
- TensorRT : WSL2에 설치합니다. 특별히 Version을 요구하지 않으니 호환성에 맞는 최신 Version을 설치하겠습니다.
지금까지 언급한 환경 요구사항들의 최신 version을 확인하면 다음과 같습니다.
* 2023/08/24 기준 Tensorflow 환경구성 요소 최신 version *
- GPU : NVIDIA Geforce RTX 4090
- nvidia driver : 537.13
- WSL2 : Ubuntu-22.04 LTS
- NVIDIA CUDA : 12.2 Update 1
- cuDNN : 8.9.4.25
- TensorRT : 8.6 GA
- python : 3.11
- TensorFlow : 2.13
하지만 이렇게 설치하면 호환성을 보장받기 어렵습니다. 호환성 Check는 아래에서 자세히 확인할 수 있습니다. 저는 GPU가 RTX 4090이고 Tensorflow 2.13을 사용하기 위해 Test build에서 추천하는 환경요소 version을 참고했습니다.
* Tensorflow 2.13.0 Test Build 검증 기준 *
- TensorFlow : 2.13.0
- CUDA : 11.8
- cuDNN : 8.6
- Python : 3.8 ~ 3.11
저는 Tensorflow 2.13.0 Test Build 검증 기준에 따라 환경 구성을 하도록 하겠습니다. 여러 번 설치하다 보니 TensorFlow에서 Test Build 한 것이 가장 정확하고 안정적으로 동작한다 생각합니다.
혹시 추가적으로 호환성을 Check하시고 싶으시다면 아래 호환성 Check를 확인해 주세요
* 호환성 Check *
- GPU : Official Drivers | NVIDIA에서 본인의 GPU에 따른 nvidia driver 호환 version을 확인할 수 있다.
- nvidia driver : CUDA Release Notes에서 CUDA 호환 version을 확인할 수 있다.
- WSL2 linux 지원 목록 : powershell에서 wsl --list --online을 입력하면 지원되는 Ubuntu version를 확인할 수 있다.
- NVIDIA CUDA : CUDA Toolkit Archive | NVIDIA Developer에서 CUDA가 지원되는 Ubuntu version을 확인할 수 있다.
- cuDNN : cuDNN Archive | NVIDIA Developer에서 지원하는 CUDA version과 Ubuntu version을 확인할 수 있다.
- tensorRT : NVIDIA TensorRT Download | NVIDIA Developer에서 지원하는 OS, CUDA Version을 확인할 수 있다.
- python : 소스에서 빌드 | TensorFlow에서 Test 된 build 구성을 통해 TensorFlow version을 확인할 수 있다.
- TensorFlow : 소스에서 빌드 | TensorFlow에서 Test 된 build 구성을 통해 cuDNN, CUDA, Python version을 check 할 수 있다.
환경설정
1. Nvidia Driver 설치 (Update)
제 컴퓨터에는 이미 Nvidia Driver가 설치되어 있습니다. 하지만 최신 version은 아니므로 update를 진행하도록 합니다.
Official Drivers | NVIDIA 에서 Nvidia 최신 Driver를 받을 수 있습니다. Update 후 driver version은 537.13입니다.
2. WSL2 설치 (Ubuntu-22.04)
WSL 설치 | Microsoft Learn을 참고해 진행했습니다.
먼저 관리자 권한으로 Powershell을 실행 후 wsl --install 명령어를 입력합니다.
wsl --install
컴퓨터를 다시 시작해야 ubuntu를 실행할 수 있습니다. 사실 기본으로 제공하는 Ubuntu도 22.04일 수 있으나 특정 Version으로 재설치 하는 것이 Version control에 안정적입니다.
wsl --unregister Ubuntu
wsl --install Ubuntu-22.04
설치가 완료되면 Ubuntu를 Windows에서 실행할 수 있습니다.
Ubuntu-22.04와 같은 설치 가능한 배포판 목록을 보고 싶다면 아래와 같이 입력하면 됩니다.
wsl --list --online
배포판 목록은 다음과 같이 확인할 수 있습니다. 제가 설치한 Ubuntu-22.04도 확인할 수 있습니다.
여기서 Tip을 하나 드리자면, WSL2의 Ubuntu를 vscode와 연결해서 사용하는 것을 권장 드립니다. WSL2와 vscode가 연결되어 있으면 파일을 마우스로 주고받을 수 있어 설치 진행에 큰 도움이 됩니다.
* vscode와 직접 연결 안 해도 ubuntu의 /mnt가 windows의 전체 폴더 구성과 같기 때문에 그 점을 이용해 windows에 있는 파일을 전송할 수도 있습니다.
WSL과 vscode 연결하기 위해 먼저 vscode를 열어 WSL 확장모듈을 설치합니다.
설치가 완료되면 WSL2 ubuntu에서 "code ." 를 입력하면 해당 폴더를 vscode에서 열 수 있습니다.
이제 마우스로 파일을 Drag&Drop 동작으로 쉽게 주고 받을 수 있습니다.
3. CUDA 설치
CUDA는 GPU를 Gerenal Purpose로 사용할 수 있도록(GPGPU) 하는 Tool-kit입니다. 이 CUDA를 WSL에 설치하겠습니다.
nvidia driver와 CUDA의 호환성은 CUDA Release Notes 에서 확인 바랍니다.
본인의 nvidia driver에 맞는 CUDA를 설치하시면 됩니다. CUDA Toolkit Archive | NVIDIA Developer에서 이전 version의 CUDA를 다운로드하실 수 있습니다.
저는 Test Build에서 안내했던 CUDA 11.8.0 version 설치를 진행합니다. CUDA 최신 version을 받으실 분은 CUDA Toolkit | NVIDIA Developer에서 최신 version의 CUDA를 받을 수 있습니다.
먼저 저는 cuda_install folder를 만들고 그 폴더에서 진행하도록 하겠습니다.
sudo mkdir cuda_install
cd cuda_install
Base Installer에 적힌 대로 WSL2 ubuntu에서 설치를 진행합니다. 그러면 CUDA 설치가 완료됩니다.
sudo wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2204/x86_64/cuda-ubuntu2204.pin
sudo mv cuda-ubuntu2204.pin /etc/apt/preferences.d/cuda-repository-pin-600
sudo wget https://developer.download.nvidia.com/compute/cuda/11.8.0/local_installers/cuda-repo-ubuntu2204-11-8-local_11.8.0-520.61.05-1_amd64.deb
sudo dpkg -i cuda-repo-ubuntu2204-11-8-local_11.8.0-520.61.05-1_amd64.deb
sudo cp /var/cuda-repo-ubuntu2204-11-8-local/cuda-*-keyring.gpg /usr/share/keyrings/
sudo apt-get update
sudo apt-get -y install cuda
위의 수행을 다 하신 후에 nvcc가 제대로 설치되었는지 확인해 봅니다.
* nvcc는 Nvidia CUDA Compiler driver입니다.
sudo find /usr/ -name nvcc
이 nvcc가 보통은 경로 설정이 안 되어 있어 바로는 실행할 수 없습니다.
이럴 경우 공식문서에는 nvcc 경로를 추가하라고 얘기합니다.
이 공식문서 Guide에 맞춰서 path 설정을 합시다. CUDA version은 본인 환경에 맞춰서 진행하셔야 합니다.
export PATH=/usr/local/cuda-11.8/bin${PATH:+:${PATH}}
그러면 nvcc --version을 입력했을 때 CUDA를 확인할 수 있습니다.
하지만 이 방법은 bash가 바뀌면 다시 초기화됩니다. 나중에 여러 경로를 영구적으로 추가할 때 다시 추가하도록 합니다.
4. cuDNN 설치
본인의 호환성 Version에 맞는 cuDNN을 설치하시려면 cuDNN Archive | NVIDIA Developer 에서 확인하시면 됩니다. Nvidia 계정이 필요하니 이번 기회(?)에 계정을 만들어 보시기 바랍니다. cuDNN의 최신 version은 CUDA Deep Neural Network (cuDNN) | NVIDIA Developer에서 설치하실 수 있습니다.
저는 Test Build에서 안내한 cuDNN v8.6.0을 설치합니다.
설치방법은 크게 2가지가 있는데 Tar은 압축파일을 풀어 직접 CUDA에 파일을 복사하는 방법이고 Linux계열 전체에 사용이 가능합니다. Deb은 apt-get을 활용해서 설치를 진행하며 Debian 11, ubuntu18.04 이상에서 지원하는 방법입니다. Tar로 설치하면 libcudnn8-dev같은 것은 제대로 설치가 안되기 때문에 TensorRT를 한 번에 설치하기 어렵습니다. 이런 이유로 저는 Deb로 설치를 진행하도록 하겠습니다.
4.1 Deb로 cudnn 설치
Deb 링크를 클릭하면 cudnn-local-repo-ubuntu2204-8.6.0.163_1.0-1_amd64.deb 파일이 다운로드 됩니다. 혹시 다른 분들은 version이 다르면 다른 version으로 cudnn 설치 과정을 잘 진행하시길 바랍니다.
다운로드 된 파일을 WSL2 Ubuntu-22.04에 옮겨주도록 합시다.
cudnn package 파일을 풉니다.
sudo dpkg -i cudnn-local-repo-ubuntu2204-8.6.0.163_1.0-1_amd64.deb
CUDA GPG key를 불러옵니다.
sudo cp /var/cudnn-local-repo-*/cudnn-local-*-keyring.gpg /usr/share/keyrings/
apt-get을 update합니다.
sudo apt-get update
여기까지 문제없이 진행했으면 이제 cudnn을 설치합니다. libcudnn8-dev나 libcudnn8-samples는 편하신대로 설치에서 제외하셔도 됩니다.
sudo apt-get install libcudnn8=8.6.0.163-1+cuda11.8
sudo apt-get install libcudnn8-dev=8.6.0.163-1+cuda11.8
sudo apt-get install libcudnn8-samples=8.6.0.163-1+cuda11.8
이제 설치가 마무리 되었습니다. 설치가 제대로 되었는지 확인하는 방법은 다음과 같습니다.
cat /usr/include/cudnn_version.h | grep CUDNN_MAJOR -A 2
4.2 Tar로 cudnn 설치
Deb로도 설치가 가능하지만 Tar로도 설치를 진행하시는 분이 있으실까봐 문서로 남깁니다. Tar 링크를 클릭하면 cudnn-linx-x86-64-x.x.x.x_cudaY-archive.tar.xz형태의 파일을 windows 다운로드 폴더에 받게 됩니다.
이 파일을 Windows 10에서 WSL2 Ubuntu-22.04로 옮겨주도록 합시다.
cuDNN을 설치하는 방법은 Installation Guide - NVIDIA Docs에 설명되어 있습니다. 아래에 같은 내용을 적었지만 추가로 궁금한 내용이 있다면 확인하시길 바랍니다.
먼저 tar.xz가 있는 폴더에서 압축을 풉니다. cuDNN과 CUDA version를 자세히 확인 바랍니다.
tar -xvf cudnn-linux-x86_64-8.6.0.163_cuda11-archive.tar.xz
그리고 폴더를 푼 그 자리에서 이 3가지 명령어를 그대로 수행합니다. 복사 대상 폴더의 CUDA version에 주의합시다.
sudo cp cudnn-*-archive/include/cudnn*.h /usr/local/cuda-11.8/include
sudo cp -P cudnn-*-archive/lib/libcudnn* /usr/local/cuda-11.8/lib64
sudo chmod a+r /usr/local/cuda-11.8/include/cudnn*.h /usr/local/cuda-11.8/lib64/libcudnn*
파일이 옮겨지는 것으로 cudnn의 설치가 끝났습니다. cudnn이 제대로 설치가 되었는지 확인하는 아래의 명령어를 확인해주세요.
cat /usr/local/cuda/include/cudnn_version.h | grep CUDNN_MAJOR -A 2
4.3 cudnn 경로설정 (Tar, Deb 다 마찬가지 입니다.)
cuDNN의 path 설정을 위해 다음과 같이 입력합니다. CUDA version이 맞는지 주의합시다
* 정확히는 CUDA application library path 설정입니다
export LD_LIBRARY_PATH=/usr/local/cuda-11.8/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}
제대로 path가 설정되었는지 echo 명령어로 확인합니다.
echo $LD_LIBRARY_PATH
하지만 앞에서 말했듯이 export만 해서는 bash를 바꾸면 export 설정이 초기화됩니다. 경로 설정을 .bashrc에도 기록해서 system에 계속 적용될 수 있도록 합시다. nano 편집기로 .bashrc 파일을 엽니다.
sudo nano ~/.bashrc
파일 맨 아래에 다음과 같이 입력합니다.
export PATH="/usr/local/cuda-11.8/bin:$PATH"
export LD_LIBRARY_PATH="/usr/local/cuda-11.8/lib64:$LD_LIBRARY_PATH"
그리고 저장 한 다음 새로운 bash에서 아래 명령어를 실행시키면 환경 설정이 영구적으로 지속될 것입니다.
source ~/.bashrc
5. TensorRT 설치 (선택사항)
* TensorRT를 Python에서만 사용하실 분들은 이 작업이 필요 없이 pip install tensorrt로 진행하셔도 됩니다. 하지만 C++ API에 접근하거나 C++로 작성된 Plugin을 Compile하는 경우에는 아래 방법대로 TensorRT를 설치를 진행하셔야 합니다.
TensorRT 설치는 https://developer.nvidia.com/tensorrt-download에서 원하시는 Version을 설치할 수 있습니다. 여기서 저는 가장 최신 Version인 TensorRT 8.6 GA(General Availability)를 설치하려 합니다.
deb local repo Package를 클릭했더니 1.4GB 파일을 다운로드 받기 시작했습니다. 생각보다 용량이 크네요.
다운로드가 완료되었으면 설치를 진행해 보겠습니다. 설치 Guide는 Installation Guide : NVIDIA Deep Learning TensorRT Documentation 에서 확인해 볼 수 있습니다. 자세한 내용을 참고 하고 싶으시면 link를 참조해 주세요.
다운로드 받은 TensorRT 파일을 WSL Ubuntu-22.04에 옮기고 아래와 같은 명령어를 입력합니다. ubuntu version과 CUDA version에 주의합시다.
sudo dpkg -i nv-tensorrt-local-repo-ubuntu2204-8.6.1-cuda-11.8_1.0-1_amd64.deb
sudo cp /var/nv-tensorrt-local-repo-ubuntu2204-8.6.1-cuda-11.8/*-keyring.gpg /usr/share/keyrings
sudo apt-get update
여기까지 잘 진행되었으면 apt-get을 통해 TensorRT를 설치합니다.
sudo apt-get install tensorrt
설치가 완료되었으면 제대로 설치가 완료되었는지 확인합니다.
dpkg-query -W tensorrt
TensorRT도 LD_LIBRARY_PATH에 추가합시다.
sudo nano ~/.bashrc
6. python, pip 설치
python은 사실 Ubuntu에 기본으로 설치가 되어 있습니다. 하지만 python3로 입력해야 python이 실행이 되므로 주의합시다. 만약 python version을 바꾸고 싶다면 virtualenv 모듈을 사용해 보시길 바랍니다. 저는 system python을 그대로 사용하겠습니다.
python3는 있지만 pip3는 없습니다. 우선 pip3를 설치하기 전에 apt update부터 진행합시다.
sudo apt update
sudo apt upgrade
그리고 pip3를 설치합니다.
sudo apt install python3-pip
pip3 list로 현재 시스템 python에 설치된 package 목록이 보일 것입니다.
7. TensorFlow(+TensorRT) 설치
TensorFlow 설치는 다음과 같습니다.
pip3 install tensorflow
특정 TensorFlow version을 설치하고 싶다면 tensorflow==(version)을 입력하면 됩니다.
pip3 install tensorflow==2.13.0
혹시 python으로 TensorRT를 설치하실 분들은 2가지 방법이 있는데
1. pip install tensorrt (wheel file을 build해서 스스로 진행)
2. TensorRT를 Tar로 설치 후 Tar 안의 wheel 파일로 pip install 진행
cd TensorRT-${version}/python
python3 -m pip install tensorrt-*-cp3x-none-linux_x86_64.whl
편하신 방법대로 설치하시면 됩니다. 쉬운 방법은 pip install tensorrt로 진행하시면 되고, C++ API까지 활용하면서 python에서 TensorRT를 사용하실 분들은 Tar로 설치를 진행 후 pip install *.whl로 하시면 됩니다.
설치가 완료되면 실제로 설치되었는지 pip3 list로 확인해 봅시다.
자 이제 환경 설정이 끝났습니다! TensorFlow가 GPU를 제대로 사용하는지 검증해 볼 시간입니다.
예제코드
1. GPU 확인
환경 설정은 끝났지만 TensorFlow가 GPU를 탐지하지 못하면 TensorFlow는 CPU만 사용하게 됩니다. 그러면 이런 CUDA를 설치했던 고생은 무가치한 일이 됩니다. 아래의 코드를 실행하면 GPU를 감지할 수 있는지 확인할 수 있습니다. 여러분의 고생은 가치가 있었을까요?
python3 -c "import os; os.environ['TF_CPP_MIN_LOG_LEVEL'] = '2';import tensorflow as tf; print(\"Num GPUs Available: \", len(tf.config.list_physical_devices('GPU')))"
Num GPUs Available 값이 GPU 연결개수과 같다면 성공입니다!
저는 RTX 4090 1대가 연결되어 있는데 그 1대가 잘 감지가 되었습니다. CUDA, cuDNN이 제대로 설치가 되었다는 증거입니다.
축하합니다! 이제는 Windows10에서 GPU로 TensorFlow를 돌릴 수 있습니다!
2. 학습 코드
TensorFlow를 좀 더 돌릴 수 있도록 간단한 예제코드를 작성했습니다.
import os
import tensorflow as tf
try: # tensorrt 설치 확인
import tensorrt as trt
print("TensorRT Version:", trt.__version__)
except ImportError:
print("No TensorRT module")
os.environ['TF_CPP_MIN_LOG_LEVEL'] = '2' ## '2' 이상의 로그 출력을 숨김
# CUDA, cuDNN을 통해 GPU를 인식하는지 확인. 1이상의 값이 출력되어야 한다.
print("Num GPUs Available: ", len(tf.config.experimental.list_physical_devices('GPU')))
# MNIST 데이터셋 로드
mnist = tf.keras.datasets.mnist
(train_images, train_labels), (test_images, test_labels) = mnist.load_data()
# 데이터 전처리
train_images, test_images = train_images / 255.0, test_images / 255.0
# 모델 구성
model = tf.keras.models.Sequential([
tf.keras.layers.Flatten(input_shape=(28, 28)),
tf.keras.layers.Dense(128, activation='relu'),
tf.keras.layers.Dropout(0.2),
tf.keras.layers.Dense(10, activation='softmax')
])
# 모델 컴파일
model.compile(optimizer='adam',
loss='sparse_categorical_crossentropy',
metrics=['accuracy'])
# 모델 학습
model.fit(train_images, train_labels, epochs=5)
# 테스트 데이터로 모델 평가
test_loss, test_acc = model.evaluate(test_images, test_labels, verbose=2)
print('\n테스트 정확도:', test_acc)
코드를 실행해 보겠습니다. 학습은 아래와 같이 진행되었습니다.
학습되는 동안 GPU를 제대로 사용 중인지 모니터링을 하고 싶다면 watch -n 1 nvidia-smi를 입력하면 1초마다 nvidia-smi를 실행해서 gpu의 사용량을 확인할 수 있습니다.
watch -n 1 nvidia-smi
Volatile GPU-Util 지표가 GPU 사용량이므로 이 수치를 집중해서 확인하시면 됩니다. 23% 수치가 확인됩니다.
이것으로 Windows10에서 TensorFlow로 GPU를 활용하는 방법에 대해서 알아보았습니다. 예전에는 Linux에서나 TensorFlow를 구동할 생각만 하고 Windows에서 이렇게 TensorFlow를 돌려볼 생각을 못했는데 WSL2의 기술이 참 대단하다는 생각이 듭니다. 이제 저도 Linux Server에서만 GPU를 사용하는 것이 아니라 Windows10 PC 에서도 다양한 Deeplearning 알고리즘을 만들어 보도록 하겠습니다.
* reference
https://docs.nvidia.com/deeplearning/tensorrt/install-guide/index.html
https://developer.nvidia.com/cudnn
https://docs.nvidia.com/cuda/cuda-installation-guide-linux/index.html
https://docs.nvidia.com/cuda/cuda-toolkit-release-notes/index.html
https://learn.microsoft.com/ko-kr/windows/wsl/install
https://www.nvidia.com/download/index.aspx
https://github.com/jamesstringerparsec/Easy-GPU-PV