AmazonのブラックフライデーセールでSSDを買いました。初めてのM.2です。
ポイントアップキャンペーンに乗じて新しいスマホを買ったばかりなので本当に金欠…
SSDの使い道は、Ubuntu20に使おうと思います。今使っているUbuntu20用のSSDが250GBですでに5年以上使用しているのでちょうど良いタイミングでした。
環境構築していたところ、新しいCUDAバージョン"CUDA 12.0"が提示されていたようなのでいつもはCUDA11を入れる代わりにCUDA12を入れることにしました。
CUDA12とは
CUDAはNVIDIAが提供しているGPGPU(GPUを用いた並列コンピューティング)ライブラリ郡です。
GPGPUは主に配列の計算を得意としており、画像処理や点群処理などのニューラルネットワークなどの並列性の高いアプリケーションに対してCPUよりも高速に処理可能です。
CUDAはC/C++言語でライブラリを使用することができ、そのコンパイル・実行には対応するNVIDIAドライバが必要です。
CUDA12ではNVIDIAが開発・提供する新しいアーキテクチャ "Hopper" に対応し、他にもC++20対応やデフォルトの言語が C++17 に対応したりとバージョンに追いつくためのアップデートが盛り込まれています。
一方で、CentOSやKeplerサポートが終了したり、前世代の非推奨APIが削除されていたりします。
また、32bitサポートを行わなくなりました。(Hopper以外は以前のバージョンでサポートされます。)
ここでは、CUDA12のインストールと動作確認を行います。
使用するパッケージは、darknet_ros_fp16にしました。
darknetはCUDAとOpenCVさえ入っていればなんとなかなる(CUDAすらいらない)ので、非常に環境構築がしやすいです。
インストール
NVIDIA Driverのインストール
NVIDIAドライバは、以下のページからダウンロードしてください。
2022/12/09時点の最新バージョンは525.60.11
でした。
まず、nouveauの無効化をする必要があるので /etc/modprobe.d/blacklist.conf
を開いて以下を追記します。
blacklist nouveau options nouveau modeset=0
適用のために sudo update-initramfs -u
を実行して再起動します。
再起動後にNVIDIAドライバの実行用ファイルに管理者権限をつけて実行します。CLI画面推奨。
ここでは、NVIDIA-Linux-x86_64-525.60.11.run
をインストールします。
sudo apt update sudo apt install g++ cmake # minimal installation でインストールした場合 cd ~/Downloads chmod -x ./NVIDIA-Linux-x86_64-525.60.11.run sudo ./NVIDIA-Linux-x86_64-525.60.11.run sudo reboot
nouveauについてはNVIDIAのページを見てください。
CUDAのインストール
※最新のインストール方法については以下のURLを参考にしてください。
CUDA Toolkit 12.0 Downloads | NVIDIA Developer
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/12.0.0/local_installers/cuda-repo-ubuntu2004-12-0-local_12.0.0-525.60.13-1_amd64.deb sudo dpkg -i cuda-repo-ubuntu2004-12-0-local_12.0.0-525.60.13-1_amd64.deb sudo cp /var/cuda-repo-ubuntu2004-12-0-local/cuda-*-keyring.gpg /usr/share/keyrings/ sudo apt-get update sudo apt-get -y install cuda
鍵関連でいつの間にかエラーになるの、なんとかならないですかね…(私だけ?)
シンボリックリンクの貼り直し
darknet_ros_fp16のインストール実行時に libcuda.so
が見つからないというエラーが出たので、リンクを貼り直しました。
過去の記事を参考になりました。過去の自分ナイス。
sudo ln -s /usr/lib/x86_64-linux-gnu/libcuda.so.525.60.13 /usr/lib/x86_64-linux-gnu/libcuda/libcuda.so
ROS2のインストール
ここでは、ROS-Galacticを使用しました。
darknet_ros_fp16では、Humbleも使用可能です。
以下のURLからROSの環境構築の手順を実行してください。
追加で python3-colcon-common-extensions
もインストールしてください。
sudo apt install python3-colcon-common-extensions
ビルド
Humbleの場合はGalacticをHumbleにしてください。
sudo apt install ros-galactic-desktop ros-galactic-v4l2-camera source /opt/ros/galactic/setup.bash mkdir -p ~/ros2_ws/src cd ~/ros2_ws/src git clone --recursive https://github.com/Ar-Ray-code/darknet_ros_yolov4.git darknet_ros_yolov4/darknet_ros/rm_darknet_CMakeLists.sh cd ~/ros2_ws colcon build --symlink-install
実行
Webカメラをコンピュータに接続します。
source ~/ros2_ws/install/setup.bash ros2 launch darknet_ros demo-v4-tiny.launch.py
darknetはいつの環境でも変わらず動くのですごい!(感心)