Uma coleção de ferramentas INCRÍVEIS adaptadas aos dispositivos NVIDIA Jetson
Direitos autorais 2020-2024 @piyoki. Todos os direitos reservados.
Este repositório tem como objetivo fornecer instruções claras sobre como instalar pacotes na plataforma AArch64 (ARM), especialmente na família Jetson. Todos os pacotes foram testados em Jetson AGX Xavier e Jetson Nano.
Este repositório usa pré-commit para gerenciar e manter ganchos de pré-commit multilíngues.
Antes de realizar qualquer instalação, pode ser necessário instalar as seguintes dependências básicas
$ 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
Notas: Se você deseja definir python3
como seu compilador python padrão e gerenciador de pacotes pip
, faça o seguinte:
# 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
Pitão-pip
# pip3
$ pip3 install -U pip
$ pip3 install setuptools wheel cython
Se você ainda não definiu o caminho CUDA, talvez seja necessário fazê-lo.
Configuração com script
$ wget -qO- https://github.com/yqlbu/jetson-packages-family/raw/master/set_cuda.sh | bash -
Configurar manualmente
$ 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
Comparado com Jetson Nano, um recurso importante que vem com Jetson Xavier NX e Jetson AGX Xavier é que eles vêm com o conector M.2 Key M. De acordo com testes de terceiros, a velocidade de leitura do meu SSD é 7 vezes mais rápida que a do cartão SD. Assim, inicializar a partir do SSD certamente aumentará o desempenho do Jetson Xavier.
Guia para configuração
Repositório Jetsonhacks RootOnNVMe
Um script que pode controlar a ventoinha PWM com a alteração da temperatura da CPU de qualquer Máquina Jetson (Jetson Nano, Jetson TX1, TX2, Jetson Xavier)
Guia para configuração
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
Torchvision v0.5.0 (compatível com 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
Verificação
$ python3 -c " import torch ; print(torch.__version__) "
Para instalar outras versões do PyTorch e Torchvision, visite o site AQUI
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’
Se você encontrar um erro ao instalar o h5py, execute este comando para resolver a dependência:
$ sudo apt-get install libhdf5-serial-dev hdf5-tools
Para instalar outras versões do Tensorflow, confira os sites abaixo:
Jetson Xavier: AQUI
Jetson Nano: AQUI
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
Instalar com Docker
$ docker run --name jupyterlab -d
-e TZ=Asia/Shanghai
-p 8888:8888
-v /appdata/jupyterlab:/opt/app/data
hikariai/jupyterlab:latest
Execute o aplicativo
$ 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"]} '
Guia de uso: 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)
**Notas: Numba requer **LLVM** pré-construído, portanto, verifique as instruções do LLVM e instale-o antes de instalar o Numba.
$ pip3 install numba==0.31 --user
Jetson-stats é um pacote para monitorar e controlar seu NVIDIA Jetson [Xavier NX, Nano, AGX Xavier, TX1, TX2] Funciona com todo o ecossistema NVIDIA Jetson.
$ sudo -H pip install -U jetson-stats
$ sudo jtop
NeoVim Server é um editor de texto tipo IDE em contêiner que roda em um servidor web.
Documentos: https://github.com/yqlbu/neovim-server/wiki
Instalação de fonte:
$ 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
Instalação rápida:
$ 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
Aguarde alguns segundos até que o contêiner termine o processo de inicialização e visite http://localhost:6080/wetty
O Visual Studio Code é um editor de código redefinido e otimizado para criar e depurar aplicativos modernos da Web e da nuvem.
$ curl -s https://packagecloud.io/install/repositories/swift-arm/vscode/script.deb.sh | sudo bash
$ sudo apt-get install -y code-oss
Code-server é uma instância do Visual Studio Code executada em um servidor remoto acessível por meio de qualquer navegador da web. Ele permite que você codifique em qualquer lugar e em qualquer dispositivo, como um tablet ou laptop, com um ambiente de desenvolvimento integrado (IDE) consistente.
Guia de instalação: [AQUI
Archiconda3 é uma distribuição de conda para ARM de 64 bits. Anaconda é uma distribuição gratuita e de código aberto das linguagens de programação Python e R para computação científica (ciência de dados, aplicativos de aprendizado de máquina, processamento de dados em larga escala, análise preditiva, etc.), que visa simplificar o gerenciamento e implantação de pacotes. Assim como o Virtualenv, o Anaconda também utiliza o conceito de criação de ambientes de forma a isolar diferentes bibliotecas e versões.
$ 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
Para evitar que o conda ative o ambiente base por padrão
$ conda config --set auto_activate_base false
$ export " PATH=/bin:/usr/bin: $PATH " >> ~ /.bashrc
$ source ~ /.bashrc
Confira o site AQUI para obter o guia de uso.
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 )
Notas: Você pode modificar o script para instalar a versão personalizada do OpenCV
$ wget https://github.com/yqlbu/jetson-packages-family/raw/master/OpenCV/install_opencv4.1.1_jetson.sh
PyCharm é um ambiente de desenvolvimento integrado (IDE) usado em programação de computadores, especificamente para a linguagem Python. É desenvolvido pela empresa tcheca JetBrains.
Profissional 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
Comunidade 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
correr
$ pycharm
Notas: Você pode encontrar outras versões AQUI
Lazygit é uma UI de terminal simples para comandos git, escrita em Go com a biblioteca gocui.
$ sudo add-apt-repository ppa:lazygit-team/release
$ sudo apt-get update
$ sudo apt-get install lazygit
Ranger é um gerenciador de arquivos de console com teclas VI. Ele fornece uma interface de maldições minimalista e agradável com visão da hierarquia de diretórios. Ele vem com rifle, um iniciador de arquivos que é bom para descobrir automaticamente qual programa usar para qual tipo de arquivo.
$ pip install ranger-fm
(Opcional) Instale dispositivos ranger
$ git clone https://github.com/alexanderjeurissen/ranger_devicons ~ /.config/ranger/plugins/ranger_devicons
$ echo " default_linemode devicons " >> $HOME /.config/ranger/rc.conf
A configuração de exemplo está disponível AQUI
Lsd é o comando ls da próxima geração
Baixe o pacote .deb
mais recente na página de lançamento e instale-o via:
sudo dpkg -i lsd_0.20.1_arm64.deb # adapt version number and architecture
Ctop é uma interface semelhante ao Top para métricas de contêiner. Ctop fornece uma visão geral concisa e condensada de métricas em tempo real para vários contêineres.
# 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 é um aplicativo de interface de usuário baseado em terminal interativo rápido e leve para rastrear e monitorar estatísticas de moedas criptomoedas em tempo real.
Documentos: AQUI
$ curl -o- https://raw.githubusercontent.com/miguelmota/cointop/master/install.sh | bash
Gotop Um monitor de atividade gráfica baseado em terminal inspirado em gtop e vtop
# install
$ curl -fsSL git.io/gotop.sh | sudo bash
# uninstall
sudo rm -f /usr/local/bin/gotop
Monitor de recursos Bashtop que mostra uso e estatísticas de processador, memória, discos, rede e processos.
$ sudo add-apt-repository ppa:bashtop-monitor/bashtop
$ sudo apt update
$ sudo apt install bashtop
Httpie é um cliente HTTP de linha de comando. Seu objetivo é tornar a interação CLI com serviços da web o mais amigável possível. HTTPie foi projetado para teste, depuração e interação geral com APIs e servidores HTTP. Os comandos http e https permitem criar e enviar solicitações HTTP arbitrárias. Eles usam sintaxe simples e natural e fornecem saída formatada e colorida.
$ apt install httpie -y
Neofetch é um script de shell simples e multiplataforma que procura as informações do seu sistema e as exibe em um terminal, junto com uma imagem ASCII ou qualquer imagem desejada próxima à saída.
$ sudo add-apt-repository ppa:dawidd0811/neofetch
$ sudo apt-get update
$ sudo apt-get install neofecth
Docker é basicamente um mecanismo de contêiner que usa recursos do kernel do Linux, como namespaces e grupos de controle, para criar contêineres em cima de um sistema operacional e automatizar a implantação de aplicativos no contêiner. Docker usa sistema de arquivos de união Copy-on-write para seu armazenamento de back-end.
$ sudo wget -qO- https://get.docker.com/ | sh
$ sudo usermod -aG docker $USER
$ sudo systemctl enable docker
$ sudo systemctl status docker
Para permitir o acesso ao compilador CUDA (nvcc) durante as operações docker build
, adicione "default-runtime": "nvidia"
ao seu arquivo de configuração /etc/docker/daemon.json
antes de tentar construir os contêineres:
{
"runtimes" : {
"nvidia" : {
"path" : " nvidia-container-runtime " ,
"runtimeArgs" : []
}
},
"features" : {
"buildkit" : true
},
"default-runtime" : " nvidia "
}
Reinicie o Docker Daemon
$ sudo systemctl restart docker
Verifique se o tempo de execução padrão está definido como nvidia:
$ docker info | grep nvidia
Docker Compose é uma ferramenta para definir e executar aplicativos Docker com vários contêineres. Com o Compose, você usa um arquivo YAML para configurar os serviços do seu aplicativo. Então, com um único comando, você cria e inicia todos os serviços da sua configuração.
$ sudo apt-get update
$ sudo apt-get install -y python3 python3-pip libffi-dev libssl-dev
$ sudo pip3 install docker-compose
$ docker-compose -v
Docker NVIDIA L4T
Repositório oficial: https://github.com/NVIDIA/nvidia-docker
Instale o tempo de execução NVIDIA-Docker
$ sudo apt install -y nvidia-docker2
$ sudo systemctl daemon-reload
$ sudo systemctl restart docker
$ docker info | grep nvidia
A imagem L4T-Docker personalizada está disponível AQUI
DLib é uma biblioteca C++ de código aberto que implementa uma variedade de algoritmos de aprendizado de máquina, incluindo classificação, regressão, clustering, transformação de dados e previsão estruturada. ... Clustering K-Means, Redes Bayesianas e muitos outros.
Dlib v19.18
$ cd ~
$ wget https://raw.githubusercontent.com/yqlbu/face_recognizer/master/setup.sh
$ sudo chmod +x setup.sh
$ ./setup.sh
LabelImg é uma ferramenta gráfica de anotação de imagens e etiquetas delimitadoras de objetos em imagens.
$ 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 é usado para desenvolver interfaces gráficas de usuário (GUIs) e aplicativos multiplataforma que rodam em todas as principais plataformas de desktop e na maioria das plataformas móveis ou incorporadas. A maioria dos programas GUI criados com Qt possuem uma interface de aparência nativa, caso em que o Qt é classificado como um kit de ferramentas de widget.
$ sudo apt-get install qt5-default qtcreator -y
$ sudo apt-get install pyqt5 *
$ sudo apt install python3-pyqt5.qtsql
O Kubernetes rapidamente se tornou um ingrediente-chave na computação de ponta. Com o Kubernetes, as empresas podem executar contêineres na borda de uma forma que maximize os recursos, facilite os testes e permita que as equipes de DevOps se movam de maneira mais rápida e eficaz à medida que essas organizações consomem e analisam mais dados em campo.
K3S é uma distribuição leve do Kubernetes desenvolvida pela Rancher Labs, perfeita para casos de uso de Edge Computing onde os recursos de computação podem ser um tanto limitados.
O guia de instalação e uso está disponível em AQUI
Nomachine ARMv8 (compatível com dispositivos Jetson)
NoMachine é uma ferramenta de desktop remoto gratuita, multiplataforma e sem servidor que permite configurar um servidor de desktop remoto em seu computador usando o protocolo de vídeo NX. O cliente pode ser usado para conectar-se ao servidor de qualquer lugar do mundo.
Site Oficial: AQUI
A resolução da área de trabalho normalmente é determinada pelos recursos do monitor conectado ao Jetson. Se nenhum monitor estiver conectado, uma resolução padrão de 640x480
será selecionada. Para usar uma resolução diferente, edite /etc/X11/xorg.conf
e anexe as seguintes linhas:
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
para instalar docker-compose
Logs
Archiconda3
para v0.2.3 Licença MIT (C) Kevin Yu