JetPack6.0を入れます。
パソコンにUbuntu20.04をインストールしてSDK ManagerもUbuntuにインストールします。
Jetson Orin NanoとつなげてOSを選択します。
2024年11月、現在ではPytorchが対応しているCUDAバージョンは、12.4までですので注意。
なので最新のJetPack6.1ですが、pytorchの関係上JetPack6.0をインストールします。
参考サイト
https://docs.nvidia.com/deeplearning/frameworks/install-pytorch-jetson-platform/index.html
nvidia-smi
入っているドライバーは、CUDA12.2に対応していることがわかった。
なのでCUDA12.2をインストール
対応しているtoolkit(GPUを利用した並列演算ライブラリ)をインストールする。
あるいは、自動でJetPackごとインストールするtoolkit以外にもTensorRT,cuDNN,OpenCVライブラリなども一緒にインストールされる。
sudo apt install nvidia-jetpack
次にJetPackをインストール
pytorch公式サイト
toolkitガイド
インストール後に確認。cuda12.2は、あることがわかる。しかしPythorch公式ではCuda12.2は対応していない。
jetson@ubuntu:~$ nvcc -V
nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2023 NVIDIA Corporation
Built on Tue_Aug_15_22:08:11_PDT_2023
Cuda compilation tools, release 12.2, V12.2.140
Build cuda_12.2.r12.2/compiler.33191640_0
pytorchのバージョン
pytorchのレポジトリ
pytochのレポジトリからビルドはハードルが高いのでビルド済みのPythonファイルが用意されていました。
以下は、JetPack 6.0 (L4T R36.2 / R36.3) + CUDA 12.2の場合。
wget https://nvidia.box.com/shared/static/mp164asf3sceb570wvjsrezk1p4ftj8t.whl -O torch-2.3.0-cp310-cp310-linux_aarch64.whl
sudo apt-get install python3-pip libopenblas-base libopenmpi-dev libomp-dev
pip3 install 'Cython<3'
pip3 install nump torch-2.3.0-cp310-cp310-linux_aarch64.whl
apt-get install libjpeg-dev zlib1g-dev libpython3-dev libopenblas-dev libavcodec-dev libavformat-dev libswscale-dev
sudo apt-get install libjpeg-dev zlib1g-dev libpython3-dev libopenblas-dev libavcodec-dev libavformat-dev libswscale-dev
PyTorch v2.3 - torchvision v0.18.0の場合
git clone --branch release/0.18 https://github.com/pytorch/vision torchvision
cd torchvision
export BUILD_VERSION=0.18.0
python3 setup.py install --user
pip install 'pillow<7'
インストールの確認
pytorch確認
>>> python
>>> import torch
>>> print(torch.__version__)
2.3.0
>>> print('CUDA available: ' + str(torch.cuda.is_available()))
CUDA available: True
>>> print('cuDNN version: ' + str(torch.backends.cudnn.version()))
cuDNN version: 8904
>>> a = torch.cuda.FloatTensor(2).zero_()
>>> print('Tensor a = ' + str(a))
Tensor a = tensor([0., 0.], device='cuda:0')
>>> b = torch.randn(2).cuda()
>>> print('Tensor b = ' + str(b))
Tensor b = tensor([ 0.5455, -0.8627], device='cuda:0')
>>> c = a + b
>>> print('Tensor c = e' + str(c))
Tensor c = tensor([ 0.5455, -0.8627], device='cuda:0')
torchvision確認
>>> python
>>> import torchvision
>>> print(torchvision.__version__)
0.18.0
tensorRT変換時のエラー対処方法
PyTorchとTorchVisionの互換性のあるバージョンに合わせる。
sudo apt-get install python3-pip libopenblas-dev libopenmpi-dev libomp-dev
pip3 install torch torchvision --extra-index-url https://download.pytorch.org/whl/cu122
参考サイト