TensorflowでNVIDIAのGPUを使う為の設定|GPU、NVIDIAドライバ、CUDA、cuDNN、TensorFlowGPUの設定について
記事No.78
更新日時2023年03月06日
Tensorflowを使い作成したモデルを学習させる際、GPUを使う事で効率よく学習させる事ができます。
ただ、GPUを使用するには様々が設定が必要ですので、その流れを解説します。
■記事ページを表示中
記事No.78
更新日時2023年03月06日
Tensorflowを使い作成したモデルを学習させる際、GPUを使う事で効率よく学習させる事ができます。
ただ、GPUを使用するには様々が設定が必要ですので、その流れを解説します。
GPU:Graphics Processing Unitの略。コア数が数千個ある為、単純な計算はCPUより短時間で終える。TensorFlowが対応しているのは、NVIDIAのGPUのみなので注意が必要。
参照サイト↓
■現在使用しているGPUの確認コマンド
$lspci | grep -i nvidia #lspciコマンドでPCIデバイス(パソコンに追加されたパーツ)を確認する #grep -i nvidiaコマンドでPCIデバイス中からnvidia(大文字、小文字区別しない)というキーワードを含むデバイスを検索する #パイブ|で上記2つのコマンドを繋げる
NVIDIAドライバ:GPUを動かすためソフト。GPUの種類毎に対応するドライバが異なる為、下記NVIDIA公式サイトより対応するドライバを選択する。
参照サイト↓
■端末から推奨ドライバを調べる方法
ubuntu-drivers devices
■ドライバをインストールする方法
sudo apt install nvidia-driver-470 #推奨ドライバを指定してインストールする場合。私の場合、推奨ドライバは470でした。 sudo ubuntu-drivers autoinstall #推奨ドライバを自動で指定してインストールする場合。
ドライバをインストールした後は、パソコンを再起動します。再起動しないとドライバは正しく認識されません。以下のコマンドで再起動できます。
$sudo reboot
■現在インストールされているNVIDIAドライバの確認コマンド
$dpkg -l | grep nvidia #dpkg -l コマンドでubuntuにインストールされているファイルを表示する #grep nvidiaコマンドでnvidiaというキーワードを含むファイルを検索する #パイプ|で上記2つのコマンドを繋げる
■nvidia-smiコマンド
NVIDIAドライバが使用可能になると、以下のコマンドが使えるようになります。このコマンドを使用する事で、現在使用している、GPU、NVIDIAドライバ、CUDAを確認する事ができます。
$nvidia-smi
CUDA:GPU向けの汎用並列コンピューティングプラットフォーム(タスクをGPU上で並列に実行できる環境)。インストールしたドライバに対応するCUDAを下記NVIDIA公式サイトより確認します。
参照サイト↓
対応するCUDAのバージョンを確認したら下記NVIDIA公式サイトよりCUDAをダウンロードします。
参照サイト↓
■端末からCUDAをインストールする方法(ubuntu20.04の場合)
$ wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2004/x86_64/cuda-ubuntu2004.pin $ sudo mv cuda-ubuntu2004.pin /etc/apt/preferences.d/cuda-repository-pin-600 $ sudo apt-key adv --fetch-keys https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2004/x86_64/7fa2af80.pub $ sudo add-apt-repository "deb https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2004/x86_64/ /" $ sudo apt-get update $ sudo apt-get -y install cuda
もしくは、
$sudo apt install nvidia-cuda-toolkit
■現在インストールされているCUDAの確認コマンド
$ dpkg -l | grep cuda #dpkg -l コマンドでubuntuにインストールされているファイルを表示する #grep cudaコマンドでcudaというキーワードを含むファイルを検索する #パイプ|で上記2つのコマンドを繋げる
もしくは、
$nvcc --version
cuDNN:GPUを高速に使用する為のライブラリです。対応するcuDNNをTensorFlow公式サイトで確認します。
参照サイト↓
対応するcuDNNを確認したら下記のNVIDIA公式ページからcuDNNをダウンロードします。
参照サイト↓
その後、解凍、インストールします。
■現在インストールされているcuDNNの確認コマンド
$cat /usr/include/cudnn.h | grep CUDNN_MAJOR -A 2
TensorFlowGPU:tensorflowでGPUを認識する為に必要なライブラリです。以下のコマンドでインストールします。
$pip install tensorflow-gpu #pypiを使ってインストールする場合 $conda install -c anaconda tensorflow-gpu #anacondaを使ってインストールする場合
参照サイト↓
参照サイト↓
TensorFlowでGPUを認識しているかを確認するには、端末に以下のコマンドを入力します。
$python #パイソンモードに切り替える
from tensorflow.python.client import device_lib device_lib.list_local_devices()
と入力すると、以下のような文字列が表示されます。
[name: "/device:CPU:0" device_type: "CPU" memory_limit: 268435456 locality { } incarnation: 8543657417077282034 , name: "/device:GPU:0" device_type: "GPU" memory_limit: 6953287040 locality { bus_id: 1 links { } } incarnation: 11481084278826614173 physical_device_desc: "device: 0, name: GeForce RTX 2070, pci bus id: 0000:01:00.0, compute capability: 7.5" ]
device_type: “GPU”
と書かれているのが確認できます。これが確認できたら、TensorflowでGPUが認識されているという事です。
名前:スカーレット
2010年からWEBサイトやWEBアプリを作成しています。最初は趣味でブログを書いていましたがSEOを勉強するのが楽しくなり、そのままブロガーとして独立しました。その後、記事を書くだけでは物足りなくなり自分でWEBアプリの作成をスタート。現在はブロガー兼プログラマーとして活動しています。このWEBアプリ(ブロトーク)もDjangoで自作しました。ブロトークはブログとSNSを合体させたようなWEBアプリです。ブログを読んで気づいた事や感想などあれば、気軽にメッセージを送って頂ければと思います。WEB技術を一緒に勉強していけたらと思います。