【ROS】YOLO GPU 設定


SSDの交換に伴い、またもや発生したNVIDIA GPU設定。。。
今回も案の定、復旧に2日間費やす。。。これで3度目

二度とこの悲劇が繰り返されないように、今回こそは動作確認済の詳細な設定をここに記す。

今回の設定環境

ubuntu 18.04
Geforce GTX960M

対象ツール

darknet
yolo v2 tiny

動作したCuda&Nvidia driverバージョン

nvidia driver 418
cuda 10.1

以下設定手順

現状確認

lspci | grep -i nvidia

現状入っているCUDA,nvidia-driverの確認

dpkg -l | grep nvidia
dpkg -l | grep cuda

現状入っているCUDA nvidiaドライバの完全削除

$ sudo apt-get --purge remove nvidia*
$ sudo apt-get --purge remove cuda*
$ sudo apt-get --purge remove cudnn*
$ sudo apt-get --purge remove libnvidia*
$ sudo apt-get --purge remove libcuda*
$ sudo apt-get --purge remove libcudnn*
$ sudo apt-get autoremove
$ sudo apt-get autoclean
$ sudo apt-get update
$ sudo rm -rf /usr/local/cuda*

参考
https://qiita.com/harmegiddo/items/86b295ccf96eff489e02

Cuda ツールキットインストール

今回は10.1を指定してインストールする。

Base installer をダウンロード

cd ダウンロード
sudo dpkg -i cuda-repo-ubuntu1804_10.1.105-1_amd64.deb
sudo apt-key adv --fetch-keys https://developer.download.nvidia.com/compute/cuda/repos/ubuntu1804/x86_64/7fa2af80.pub
sudo apt-get update
sudo apt-get install cuda-10.1

※最後にsudo apt-get install cuda-10.1とバージョン指定しないと最新のものが勝手にインストールされる。

パスの追加

インストールしたCUDA 10.1に対して.bashrcにパスを追加します。
(bashでなく他のshellを使う人は適宜読み替えてください)
その後設定を再読込して適用します。

echo 'export PATH=/usr/local/cuda-10.1/bin${PATH:+:${PATH}}' >> ~/.bashrc
echo 'export LD_LIBRARY_PATH=/usr/local/cuda-10.1/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}' >> ~/.bashrc
source ~/.bashrc
sudo ldconfig

reboot

nvcc -V #(-Vは大文字です)

nvidia-driver のインストール

以下で推奨のドライバを確認  YOLO V2 tinyの場合は418
※今回はGUIで設定
アプリケーションを表示→ソフトウェアとアップデート→追加のドライバー→nvidia driver 418を選択→再起動

ターミナルでのインストール方法

ubuntu-drivers devices #インストール(nvidia-driver-418の場合)
sudo add-apt-repository ppa:graphics-drivers/ppa
sudo apt update
sudo apt install nvidia-driver-418

sudo reboot
nvidia-smi -l

↓ちゃんとGPUがONになってる

yolo_wsでの操作1

cd yolo_ws/src/darknet_ros/darknet/Makefile
GPU=を0から1に変更
cd yolo_ws/src/darknet_ros/darknet![Screenshot from 2022-03-26 17-394-01.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1040271/a47b813c-e899-316e-15cf-77cf2717711c.jpeg)

make


うまくいっているのか分かりづらいが、一応、この後、GPUを認識した。

yolo_wsでの操作2

※重要※
yolo_wsのbuild,devel,フォルダを削除してからcatkin_makeし直すこと

ターミナル1

cd yolo_ws
catkin_make
source ./devel/setup.bash
roslaunch realsense2_camera rs_camera.launch

ターミナル2

cd yolo_ws
source ./devel/setup.bash
roslaunch darknet_ros darknet_ros.launch



これでおそらく大丈夫だろう
うん、きっと大丈夫だ。。。
まじでもう勘弁して欲しい。。。