ローカルでのGPU環境の構築
ローカルで機械学習環境を構築するとき, いつもGPU, CUDA, cuDNNと深層学習用のフレームワークのバージョン合わせに苦労します. 今回は私が環境構築する際の手順を紹介します.
セットアップ
Nvidia driverのインストール
# recommended nvidia driver
ubuntu-drivers devices
# choose one from above results
sudo apt install nvidia-driver-470
# after installing nvidia driver
sudo reboot
エラー
nvidia-dkms-470のインストール中,
Sub-process /usr/bin/dpkg returned an error code (1)というエラー発生時
cd /var/lib/dpkg/info
sudo mv nvidia-dkms-470.post* /tmp
sudo mv nvidia-dkms-470.pre* /tmp
sudo apt upgrade
CUDAのインストール
指定がある場合はバージョンを明記してインストールする
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
wget https://developer.download.nvidia.com/compute/cuda/11.4.4/local_installers/cuda-repo-ubuntu2004-11-4-local_11.4.4-470.82.01-1_amd64.deb
sudo dpkg -i cuda-repo-ubuntu2004-11-4-local_11.4.4-470.82.01-1_amd64.deb
sudo apt-key add /var/cuda-repo-ubuntu2004-11-4-local/7fa2af80.pub
sudo apt-get update
sudo apt-get -y install cuda-11-4
CUDAへのPATH追加
export PATH="/usr/local/cuda/bin:$PATH"
export LD_LIBRARY_PATH="/usr/local/cuda/lib64:$LD_LIBRARY_PATH"
意図したバージョンがインストールできたか確認
nvcc -V
cuDNNのインストール
Download cuDNN v8.3.1より前
Runtime LibraryとDeveloper Libraryをインストール
cuDNN Runtime Library for Ubuntu20.04 x86_64 (Deb)
cuDNN Developer Library for Ubuntu20.04 x86_64 (Deb)
sudo apt install ./libcudnn8_8.2.4.15-1+cuda11.4_amd64.deb
sudo apt install ./libcudnn8-dev_8.2.4.15-1+cuda11.4_amd64.deb
Download cuDNN v8.3.1以降
Download cuDNN v8.3.1以降はLocal Installerという名称に変わっているようです.
sudo apt install ./cudnn-local-repo-ubuntu2004-8.8.1.3_1.0-1_amd64.deb
検証
TensorflowでGPUの使用
GPUを正常に使用できるかTensorflowを使って検証してみます.
venvでTensorflow用の仮想環境を作成し, そこにTensorflowをインストールします.
# install venv
sudo apt install python3-venv
# create virtual environment for tensorflow
python3 -m venv tensorflow
source tensorflow/bin/activate
# install tensorflow
pip install tensorflow==2.5.0
Tensorflow上でGPUを認識するかテストします.
name: “/device:GPU:0″というようにデバイスとしてGPUが検出されていれば正常にセットアップできています.
# launch python3
python3
# import tensorflow package
from tensorflow.python.client import device_lib
device_lib.list_local_devices()
# example of the result of above commands
name: "/device:GPU:0"
device_type: "GPU"
memory_limit: 9835249664
locality {
bus_id: 1
links {
}
}
incarnation: 7579988586530948991
physical_device_desc: "device: 0, name: NVIDIA GeForce RTX 2080 Ti, pci bus id: 0000:01:00.0, compute capability: 7.5"
おわりに
ハマり出すと2,3日かかってしまうのがGPUの環境構築. この記事でみなさんの環境構築が完了するのを願っています.