はじめに
今回はyoloをgpu環境で使うための環境構築をします。
実行環境
- ubuntu20.04
- kernal 5.11
nvidia_driver環境構築
- nouveau ドライバの無効化(上から順に実行)
echo 'blacklist nouveau' | sudo tee -a /etc/modprobe.d/blacklist-nouveau.conf
echo 'options nouveau modeset=0' | sudo tee -a /etc/modprobe.d/blacklist-nouveau.conf
cat /etc/modprobe.d/blacklist-nouveau.conf
sudo update-initramfs -u
- 現状確認
lspci | grep -i nvidia
dpkg -l | grep nvidia
dpkg -l | grep cuda
- cudaとdriverの削除
sudo apt-get --purge remove nvidia-*
sudo apt-get --purge remove cuda-*
- 下のコマンドで推奨のドライバを確認(私はnvidia-driver-525を入れた)
ubuntu-drivers devices
- ドライバのインストール
sudo add-apt-repository ppa:graphics-drivers/ppa
sudo apt update
sudo apt install nvidia-driver-525
- 再起動
reboot
- 確認(CUDA Version 12.4というのは,インストールされているCUDAのバージョンではなくGPUに対応している最新のCUDAのバージョンだったと思います)
nvidia-smi
CUDAの環境構築
- CUDA(11.7)をインストール CUDA Toolkit Archiveからインストール用コマンドを取得する。
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/3bf863cc.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-11.7
- ~/.bashrcの末尾に以下のパスを追記
export PATH=/usr/local/cuda:/usr/local/cuda/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/lib:/usr/local/cuda/lib64:$LD_LIBRARY_PATH
- ~/.bashrcを反映
source ~/.bashrc
- インストール確認 効かないときはパスをもっかい通す
nvcc -V
- ハマりポイントとしてcudaを入れるときに勝手に一番新しいnvidia driverが入れられるときが、あるのでここで確認してさっき入れたバージョンでなければdriverのみ入れ直す。
cuDNNのinstall(NVIDIAアカウントが必要)
cuDNN Archiveからインストールするパッケージを選択。
今回はcuDNN v8.9.7,for CUDA 11.xを使った。
*はインストールしたバージョンに合わせて埋めてください。
path/to/cudnnはダウンロードしてきたcuDNNのdebファイルのパスです。
sudo dpkg -i <path/to/cudnn>
sudo cp /var/cudnn-local-repo-*/cudnn-local-*-keyring.gpg /usr/share/keyrings/
sudo apt-get update
sudo apt-get install libcudnn8=8.5.0.96-1+cuda11.7
sudo apt-get install libcudnn8-dev=8.5.0.96-1+cuda11.7
dpkg -l | grep cudnn
Pytorchのインストール
# CUDA 11.7
pip install torch==1.13.1+cu117 torchvision==0.14.1+cu117 torchaudio==0.13.1 --extra-index-url https://download.pytorch.org/whl/cu117
GPU環境のpytorchが入ったかどうかの確認
GPUを使用できればTrue、できなければFalseを返す。
python3
import torch
print(torch.cuda.is_available())
yolov8を入れる
ハマりポイントとしてgpu環境がないとcpu環境が入ることがある。
pip install ultralytics
最後に
nvidia_driverの相性問題的に動かなくなることが多いです。(起動しても画面が表示されない、表示がおかしい等)
私も総当りで何個かのdriverを試したところ525が一番動きが良かったです。
もしドライバの関係でうまく動かなくなったらubuntuのリカバリーモードからnvidiaのdriverを入れ直してみてください。
参考文献
- https://qiita.com/tf63/items/0c6da72fe749319423b4
- https://pytorch.org/get-started/previous-versions/
- https://developer.nvidia.com/cuda-11-7-0-download-archive?target_os=Linux&target_arch=x86_64&Distribution=Ubuntu&target_version=20.04&target_type=deb_network
- https://developer.nvidia.com/cudnn-downloads
- https://developer.nvidia.com/rdp/cudnn-archive