NVIDIA Jetson デバイスに合わせた素晴らしいツールのコレクション
CopyRight 2020-2024 @piyoki.無断転載を禁じます。
このリポジトリは、AArch64(ARM) プラットフォーム、特に Jetson ファミリにパッケージをインストールする方法について明確な手順を提供することを目的としています。すべてのパッケージは Jetson AGX Xavier および Jetson Nano でテストされています。
このリポジトリは、多言語の preo-commit フックを管理および保守するために pre-commit を使用します。
インストールを実行する前に、次の基本的な依存関係をインストールする必要がある場合があります。
$ sudo apt-get install -y nano curl
# python3
$ sudo apt-get install -y python3-pip python3-dev python3-setuptools
# python2
$ sudo apt-get install -y python-pip python-dev python-setuptools
$ sudo apt-get install -y libcanberra-gtk0 libcanberra-gtk-module
注: python3
デフォルトの Python コンパイラおよびpip
パッケージ マネージャーとして設定したい場合は、次の手順を実行してください。
# python
$ sudo rm -rf /usr/bin/python && sudo ln -s /usr/bin/python3 /usr/bin/python
$ which python
# pip
$ sudo rm -rf /usr/bin/pip && sudo ln -s /usr/bin/pip3 /usr/bin/pip
$ which pip
パイソンピップ
# pip3
$ pip3 install -U pip
$ pip3 install setuptools wheel cython
CUDA パスをまだ設定していない場合は、設定する必要がある場合があります。
スクリプトによるセットアップ
$ wget -qO- https://github.com/yqlbu/jetson-packages-family/raw/master/set_cuda.sh | bash -
手動でセットアップする
$ echo " export PATH=/usr/local/cuda/bin: $ {PATH} " >> ${HOME} /.bashrc
$ echo " export LD_LIBRARY_PATH=/usr/local/cuda/lib64: $ {LD_LIBRARY_PATH} " >> ${HOME} /.bashrc
$ echo " export CPATH= $CPATH :/usr/local/cuda/targets/aarch64-linux/include " >> ${HOME} /.bashrc
$ echo " export LIBRARY_PATH= $LIBRARY_PATH :/usr/local/cuda/targets/aarch64-linux/lib " >> {HOME}/.bashrc
$ source ~ /.bashrc
Jetson Nano と比較して、Jetson Xavier NX および Jetson AGX Xavier に付属する重要な機能は、M.2 Key M コネクタが付属していることです。サードパーティのテストによると、SSD からの読み取り速度は SD カードの 7 倍高速です。したがって、SSD から起動すると、Jetson Xavier のパフォーマンスが確実に向上します。
セットアップガイド
Jetsonhacks RootOnNVMe リポジトリ
Jetson マシン (Jetson Nano、Jetson TX1、TX2、Jetson Xavier) の CPU 温度の変化に応じて PWM ファンを制御できるスクリプト
セットアップガイド
PyTorch v1.8.0 (JetPack 4.4 以降)
Python 3.6 - torch-1.8.0-cp36-cp36m-linux_aarch64.whl
$ wget https://nvidia.box.com/shared/static/p57jwntv436lfrd78inwl7iml6p13fzh.whl -O torch-1.8.0-cp36-cp36m-linux_aarch64.whl
$ sudo apt-get install python3-pip libopenblas-base libopenmpi-dev
$ pip3 install Cython
$ pip3 install numpy torch-1.8.0-cp36-cp36m-linux_aarch64.whl
トーチビジョン v0.5.0 (PyTorch v1.4.0 と互換性あり)
$ sudo apt-get install libjpeg-dev zlib1g-dev libpython3-dev libavcodec-dev libavformat-dev libswscale-dev
$ git clone --branch < version > https://github.com/pytorch/vision torchvision # see below for version of torchvision to download
$ cd torchvision
$ export BUILD_VERSION=0.x.0 # where 0.x.0 is the torchvision version
$ python3 setup.py install --user
$ cd ../ # attempting to load torchvision from build dir will result in import error
$ pip install ' pillow<7 ' # always needed for Python 2.7, not needed torchvision v0.5.0+ with Python 3.6
検証
$ python3 -c " import torch ; print(torch.__version__) "
他のバージョンの PyTorch および Torchvision をインストールするには、こちらのサイトにアクセスしてください。
Python 3.6 + JetPack 4.5
sudo apt-get install libhdf5-serial-dev hdf5-tools libhdf5-dev zlib1g-dev zip libjpeg8-dev liblapack-dev libblas-dev gfortran
sudo apt-get install python3-pip
sudo pip3 install -U pip testresources setuptools==49.6.0
sudo pip3 install -U numpy==1.16.1 future==0.18.2 mock==3.0.5 h5py==2.10.0 keras_preprocessing==1.1.1 keras_applications==1.0.8 gast==0.2.2 futures protobuf pybind11
# TF-2.x
$ sudo pip3 install --pre --extra-index-url https://developer.download.nvidia.com/compute/redist/jp/v45 tensorflow
# TF-1.15
$ sudo pip3 install --pre --extra-index-url https://developer.download.nvidia.com/compute/redist/jp/v45 ‘tensorflow < 2’
h5py のインストール時にエラーが発生した場合は、次のコマンドを実行して依存関係を解決してください。
$ sudo apt-get install libhdf5-serial-dev hdf5-tools
Tensorflow の他のバージョンをインストールするには、以下のサイトをチェックアウトしてください。
ジェットソン・ザビエル: こちら
Jetson Nano: ここ
Python3 v3.6.9
$ pip3 install scikit-learn
$ apt-get install libatlas-base-dev gfortran
$ pip3 install -U scipy --user
$ sudo apt install libfreetype6-dev -y
$ sudo apt install python3-matplotlib -y
pip3 install -U pycuda --user
# install jupyter
$ pip3 install jupyterlab
$ pip3 install --upgrade --force jupyter-console
# export environment path
$ echo ' export PATH=$PATH:~/.local/bin ' >> ~ /.bashrc
$ source ~ /.bashrc
# check installation version
$ jupyter lab -V
Dockerでインストールする
$ docker run --name jupyterlab -d
-e TZ=Asia/Shanghai
-p 8888:8888
-v /appdata/jupyterlab:/opt/app/data
hikariai/jupyterlab:latest
アプリを実行する
$ jupyter lab --ip= * --port=8888 --no-browser --notebook-dir=/opt/app/data
--allow-root --NotebookApp.token= ' ' --NotebookApp.password= ' '
--LabApp.terminado_settings= ' {"shell_command": ["/bin/bash"]} '
使用ガイド: https://github.com/yqlbu/jetson_lab
$ pip3 install -U pillow --user
$ pip3 install -U pandas --user
$ pip3 install -U numpy --user
$ pip3 install -U seaborn --user
ONNX v1.4.1 (Python3.6.9 + JetPack 4.3/4.4/4.5)
$ sudo apt install protobuf-compiler libprotoc-dev
$ pip install onnx==1.4.1
LLVM v3.9 (Python3.6 + JetPack 4.3/4.4/4.5)
$ sudo apt-get install llvm-3.9
$ export LLVM_CONFIG=/usr/lib/llvm-3.9/bin/llvm-config
$ cd ~
$ wget https://github.com/numba/llvmlite/archive/v0.16.0.zip
$ unzip v0.16.0.zip
$ cd llvmlite-0.16.0
$ sudo chmod 777 -R /usr/local/lib/python3.6/dist-packages/
$ python3 setup.py install
Numba v0.31 (Python3.6 + JetPack 4.3/4.4/4.5)
**注意: Numba には **LLVM** が事前に構築されている必要があるため、Numba をインストールする前に LLVM の手順を確認し、インストールしてください。
$ pip3 install numba==0.31 --user
Jetson-stats は、NVIDIA Jetson [Xavier NX、Nano、AGX Xavier、TX1、TX2] を監視および制御するためのパッケージです。すべての NVIDIA Jetson エコシステムで動作します。
$ sudo -H pip install -U jetson-stats
$ sudo jtop
NeoVim Server は、Web サーバー上で実行されるコンテナ化された IDE のようなテキスト エディターです。
ドキュメント: https://github.com/yqlbu/neovim-server/wiki
フォントのインストール:
$ mkdir -p ~ /.local/share/fonts
$ cd ~ /.local/share/fonts && curl -fLo " Droid Sans Mono for Powerline Nerd Font Complete.otf " https://github.com/ryanoasis/nerd-fonts/raw/master/patched-fonts/DroidSansMono/complete/Droid%20Sans%20Mono%20Nerd%20Font%20Complete.otf
クイックインストール:
$ docker run -d
--name nvim-server
-p 6080:3000
-p 8090:8090
-v ~ /workspace:/workspace
-v /appdata/nvim-server:/config
-e TZ=Asia/Shanghai
-e USER= < USER >
-e SECRET= < PASSWORD >
hikariai/nvim-server:latest
コンテナーがブートストラップ プロセスを完了するまで数秒待ってから、http://localhost:6080/wetty にアクセスします。
Visual Studio Code は、最新の Web およびクラウド アプリケーションの構築とデバッグ用に再定義および最適化されたコード エディターです。
$ curl -s https://packagecloud.io/install/repositories/swift-arm/vscode/script.deb.sh | sudo bash
$ sudo apt-get install -y code-oss
Code-server は、任意の Web ブラウザーからアクセスできるリモート サーバー上で実行される Visual Studio Code インスタンスです。一貫した統合開発環境 (IDE) を使用して、どこにいても、タブレットやラップトップなどの任意のデバイスでコードを作成できます。
インストールガイド: [こちら]
Archiconda3 は、64 ビット ARM 用の conda のディストリビューションです。 Anaconda は、科学コンピューティング (データ サイエンス、機械学習アプリケーション、大規模データ処理、予測分析など) 用の Python および R プログラミング言語の無料のオープンソース ディストリビューションであり、パッケージの管理と展開を簡素化することを目的としています。 Virtualenv と同様に、Anaconda も、異なるライブラリとバージョンを分離するために環境を作成するという概念を使用しています。
$ cd ${HOME}
$ curl -fsSL https://github.com/Archiconda/build-tools/releases/download/0.2.3/Archiconda3-0.2.3-Linux-aarch64.sh | sudo bash -
$ cd ~
$ sudo chown -R $USER archiconda3/
$ export " PATH=~/archiconda3/bin: $PATH " >> ~ /.bashrc
$ conda config --add channels conda-forge
$ conda -V
$ conda update conda
$ conda -V
conda がデフォルトでベース環境をアクティブ化しないようにするには
$ conda config --set auto_activate_base false
$ export " PATH=/bin:/usr/bin: $PATH " >> ~ /.bashrc
$ source ~ /.bashrc
使用ガイドについては、こちらのサイトをご覧ください。
OpenCV v4.1.1 (Python2.7/3.6+ JetPack4.3/4.4/4.5)
# purge old-version
$ sudo apt-get purge libopencv *
# install
$ sudo bash <( wget -qO- https://github.com/yqlbu/jetson-packages-family/raw/master/OpenCV/install_opencv4.1.1_jetson.sh )
注: スクリプトを変更して OpenCV のカスタム バージョンをインストールすることもできます。
$ wget https://github.com/yqlbu/jetson-packages-family/raw/master/OpenCV/install_opencv4.1.1_jetson.sh
PyCharm は、コンピューター プログラミング、特に Python 言語で使用される統合開発環境 (IDE) です。チェコのJetBrains社によって開発されました。
PyCharm プロフェッショナル
$ cd ~
$ sudo apt-get update && sudo apt-get install -y openjdk-8-jdk
$ wget https://download.jetbrains.com/python/pycharm-professional-2019.3.4.tar.gz ? _ga=2.42966822.2056165753.1586158936-1955479096.1586158936 -O pycharm-professional-2019.3.4.tar.gz
$ tar -xzf pycharm-professional-2019.3.4.tar.gz && cd pycharm-2019.3.4/bin
$ sudo chmod +x pycharm.sh && mv pycharm.sh pycharm
$ sudo rm -rf pycharm-professional-2019.3.4.tar.gz
$ cd ~
$ echo ' export PATH=/home/ ' $USER ' /pycharm-2019.3.4/bin:$PATH ' >> .bashrc
PyCharm コミュニティ
$ cd ~
$ sudo apt-get update && sudo apt-get install -y openjdk-8-jdk
$ wget https://download.jetbrains.com/python/pycharm-community-2019.3.4.tar.gz ? _ga=2.42966822.2056165753.1586158936-1955479096.1586158936 -O pycharm-community-2019.3.4.tar.gz
$ tar -xzf pycharm-community-2019.3.4.tar.gz && cd pycharm-2019.3.4/bin
$ sudo chmod +x pycharm.sh && mv pycharm.sh pycharm
$ sudo rm -rf pycharm-community-2019.3.4.tar.gz
$ cd ~
$ echo ' export PATH=/home/ ' $USER ' /pycharm-2019.3.4/bin:$PATH ' >> .bashrc
走る
$ pycharm
注: 他のバージョンはここで見つけることができます
Lazygit は、gocui ライブラリを使用して Go で書かれた git コマンド用のシンプルなターミナル UI です。
$ sudo add-apt-repository ppa:lazygit-team/release
$ sudo apt-get update
$ sudo apt-get install lazygit
Ranger は、VI キー バインドを備えたコンソール ファイル マネージャーです。これは、ディレクトリ階層のビューを備えた、最小限で優れた Curses インターフェイスを提供します。これには、どのファイル タイプにどのプログラムを使用するかを自動的に検出する機能に優れたファイル ランチャーであるライフルが同梱されています。
$ pip install ranger-fm
(オプション) レンジャー デビコンをインストールする
$ git clone https://github.com/alexanderjeurissen/ranger_devicons ~ /.config/ranger/plugins/ranger_devicons
$ echo " default_linemode devicons " >> $HOME /.config/ranger/rc.conf
サンプル構成はここから入手できます
Lsd は次世代の ls コマンドです
リリース ページから最新の.deb
パッケージをダウンロードし、次の方法でインストールします。
sudo dpkg -i lsd_0.20.1_arm64.deb # adapt version number and architecture
Ctop は、コンテナー メトリック用の Top のようなインターフェイスです。 Ctop は、複数のコンテナーのリアルタイム メトリクスの簡潔で凝縮された概要を提供します。
# echo "deb http://packages.azlux.fr/debian/ buster main" | sudo tee /etc/apt/sources.list.d/azlux.list
# wget -qO - https://azlux.fr/repo.gpg.key | sudo apt-key add -
# sudo apt update
# sudo apt install docker-ctop
Cointop は、仮想通貨コイン統計をリアルタイムで追跡および監視するための、高速かつ軽量の対話型ターミナルベースの UI アプリケーションです。
ドキュメント: ここ
$ curl -o- https://raw.githubusercontent.com/miguelmota/cointop/master/install.sh | bash
Gotop gtop と vtop からインスピレーションを得たターミナルベースのグラフィカルアクティビティモニター
# install
$ curl -fsSL git.io/gotop.sh | sudo bash
# uninstall
sudo rm -f /usr/local/bin/gotop
プロセッサ、メモリ、ディスク、ネットワーク、プロセスの使用状況と統計を表示する Bashtop リソース モニター。
$ sudo add-apt-repository ppa:bashtop-monitor/bashtop
$ sudo apt update
$ sudo apt install bashtop
Httpie はコマンドライン HTTP クライアントです。その目標は、Web サービスとの CLI 対話を可能な限り人間に優しいものにすることです。 HTTPie は、テスト、デバッグ、および API および HTTP サーバーとの一般的な対話のために設計されています。 http および https コマンドを使用すると、任意の HTTP リクエストを作成および送信できます。シンプルで自然な構文を使用し、書式設定され色分けされた出力を提供します。
$ apt install httpie -y
Neofetch は、システムの情報をスキャンし、出力の隣に ASCII 画像または任意の画像とともに端末に表示する、クロスプラットフォームのシンプルなシェル スクリプトです。
$ sudo add-apt-repository ppa:dawidd0811/neofetch
$ sudo apt-get update
$ sudo apt-get install neofecth
Docker は基本的に、名前空間やコントロール グループなどの Linux カーネル機能を使用してオペレーティング システム上にコンテナを作成し、コンテナ上でのアプリケーションのデプロイを自動化するコンテナ エンジンです。 Docker は、バックエンド ストレージにコピーオンライト ユニオン ファイル システムを使用します。
$ sudo wget -qO- https://get.docker.com/ | sh
$ sudo usermod -aG docker $USER
$ sudo systemctl enable docker
$ sudo systemctl status docker
docker build
操作中に CUDA コンパイラー (nvcc) へのアクセスを有効にするには、コンテナーをビルドする前に、 /etc/docker/daemon.json
構成ファイルに"default-runtime": "nvidia"
を追加します。
{
"runtimes" : {
"nvidia" : {
"path" : " nvidia-container-runtime " ,
"runtimeArgs" : []
}
},
"features" : {
"buildkit" : true
},
"default-runtime" : " nvidia "
}
Docker デーモンを再起動する
$ sudo systemctl restart docker
デフォルトのランタイムが nvidia に設定されているかどうかを確認します。
$ docker info | grep nvidia
Docker Compose は、複数コンテナーの Docker アプリケーションを定義および実行するためのツールです。 Compose では、YAML ファイルを使用してアプリケーションのサービスを構成します。次に、単一のコマンドを使用して、構成からすべてのサービスを作成して開始します。
$ sudo apt-get update
$ sudo apt-get install -y python3 python3-pip libffi-dev libssl-dev
$ sudo pip3 install docker-compose
$ docker-compose -v
NVIDIA L4T-Docker
公式リポジトリ: https://github.com/NVIDIA/nvidia-docker
NVIDIA-Docker ランタイムをインストールする
$ sudo apt install -y nvidia-docker2
$ sudo systemctl daemon-reload
$ sudo systemctl restart docker
$ docker info | grep nvidia
カスタム L4T-Docker イメージはここから入手できます
DLib は、分類、回帰、クラスタリング、データ変換、構造化予測などのさまざまな機械学習アルゴリズムを実装するオープン ソースの C++ ライブラリです。 ... K-Means クラスタリング、ベイジアン ネットワーク、その他多数。
Dlib v19.18
$ cd ~
$ wget https://raw.githubusercontent.com/yqlbu/face_recognizer/master/setup.sh
$ sudo chmod +x setup.sh
$ ./setup.sh
LabelImg は、グラフィカル画像注釈ツールであり、画像内のオブジェクト境界ボックスにラベルを付けます。
$ sudo apt-get install pyqt4-dev-tools
$ sudo apt-get install python-lxml
$ sudo apt-get install python-qt4
$ sudo apt install libcanberra-gtk-module libcanberra-gtk3-module
$ git clone https://github.com/tzutalin/labelImg.git
$ cd labelImg
$ make qt4py2
$ python labelImg.py
Qt は、すべての主要なデスクトップ プラットフォームとほとんどのモバイル プラットフォームまたは組み込みプラットフォームで実行されるグラフィカル ユーザー インターフェイス (GUI) およびマルチプラットフォーム アプリケーションの開発に使用されます。 Qt で作成されたほとんどの GUI プログラムはネイティブなインターフェイスを備えており、この場合 Qt はウィジェット ツールキットとして分類されます。
$ sudo apt-get install qt5-default qtcreator -y
$ sudo apt-get install pyqt5 *
$ sudo apt install python3-pyqt5.qtsql
Kubernetes は急速にエッジ コンピューティングの重要な要素になりました。 Kubernetes を使用すると、企業はリソースを最大化し、テストを容易にし、DevOps チームが現場でより多くのデータを消費および分析できるように、エッジでコンテナを実行できます。
K3S は Rancher Labs によって開発された軽量の Kubernetes ディストリビューションであり、コンピューティング リソースがある程度制限されているエッジ コンピューティングのユースケースに最適です。
インストールと使用ガイドはこちらから入手できます
Nomachine ARMv8 (Jetson デバイスと互換性あり)
NoMachine は、無料のクロスプラットフォームのサーバーレス リモート デスクトップ ツールで、NX ビデオ プロトコルを使用してコンピューター上にリモート デスクトップ サーバーをセットアップできます。クライアントを使用して、世界中のどこからでもサーバーに接続できます。
公式サイト:こちら
デスクトップの解像度は通常、Jetson に接続されているディスプレイの機能によって決まります。ディスプレイが接続されていない場合は、デフォルトの解像度640x480
が選択されます。別の解像度を使用するには、 /etc/X11/xorg.conf
を編集し、次の行を追加します。
Section " Screen "
Identifier " Default Screen "
Monitor " Configured Monitor "
Device " Tegra0 "
SubSection " Display "
Depth 24
Virtual 1280 800 # Modify the resolution by editing these values
EndSubSection
EndSection
gotop
インストールガイドを追加python2
サポートを終了code-server
インストールガイドを更新するpip3
使用してdocker-compose
をインストールするLogs
セクションArchiconda3
~ v0.2.3 MIT ライセンス (C) Kevin Yu