👌
Jetson JetPack 6.2にYOLOとCUDA対応のPyTorchを導入する方法
はじめに
最初はすんなりインストールできるものかと思っていましたが、やってみるとかなり苦労しました。
Pytorchはすぐに入りますが、TorchVisionはビルドが必要なので時間がかかります。
私の環境はJetson Orin nano Super、JetPack6.2になります。
PythonはJetPack 6.2にデフォルトで入っている3.10.12になります。
他のバージョンで動くかは未確認です。
Pytorchは2.5.0、TorchVisionは0.20.0をインストールしていきます。
YOLOの導入
- インストール
これは通常通りにpipを使用すれば問題ありません。
$ pip3 install ultralytics
- PyTorchのアンインストール
YOLOをインストールすると自動でインストールされますが、CUDAに対応していないので削除します。
$ pip3 uninstall torch torchvision
PyTorchの導入
- 依存関係を解決するためにnumpyを1.26.1にダウングレードします。
$ pip3 install numpy==1.26.1
- その他依存関係のパッケージをインストールします。
$ sudo apt install -y nvidia-jetpack
$ sudo apt-get install -y python3-pip libopenblas-dev
$ sudo apt install -y autoconf bc build-essential gettext-base iputils-ping libbz2-dev libc++-dev libcgal-dev libffi-dev libfreetype6-dev libhdf5-dev libjpeg-dev liblzma-dev libncurses5-dev libncursesw5-dev libpng-dev libreadline-dev libssl-dev libsqlite3-dev libxml2-dev libxslt-dev locales moreutils openssl rsync scons python3-pip libopenblas-dev
$ sudo apt-get -y install libjpeg-dev zlib1g-dev libpython3-dev libopenblas-dev libavcodec-dev libavformat-dev libswscale-dev
- バージョン24.06以上ではcuSPARSELtが必要なのでインストールします。
NVIDIAが用意している専用のビルド済みバイナリを使用します。
CUDAのバージョンは適正合わせてください。
$ wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2204/arm64/cuda-keyring_1.1-1_all.deb
$ sudo dpkg -i cuda-keyring_1.1-1_all.deb
$ sudo apt-get update
$ sudo apt-get -y install cusparselt-cuda-12
- 本題のPytorchをインストールします。
$ wget https://developer.download.nvidia.com/compute/redist/jp/v61/pytorch/torch-2.5.0a0+872d972e41.nv24.08.17622132-cp310-cp310-linux_aarch64.whl
$ pip3 install --no-cache ./torch-2.5.0a0+872d972e41.nv24.08.17622132-cp310-cp310-linux_aarch64.whl
TorchVisionの導入
- リポジトリをクローンします。
$ git clone --branch release/0.16 https://github.com/pytorch/vision torchvision
- ビルドしてインストールします。
TorchVisionのバージョンはPytorchと連動しているので、注意してください。
cd torchvision
export BUILD_VERSION=0.20.0
python3 -m pip install --upgrade setuptools wheel
python3 -m pip install --no-cache-dir .
参考
Discussion