Una colección de herramientas IMPRESIONANTES adaptadas a los dispositivos NVIDIA Jetson
Copyright 2020-2024 @piyoki. Reservados todos los derechos.
Este repositorio tiene como objetivo brindarle instrucciones claras sobre cómo instalar paquetes en la plataforma AArch64(ARM), especialmente en la familia Jetson. Todos los paquetes han sido probados en Jetson AGX Xavier y Jetson Nano.
Este repositorio utiliza compromiso previo para administrar y mantener enlaces de compromiso previo en varios idiomas.
Antes de realizar cualquier instalación, es posible que necesite instalar las siguientes dependencias 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: Si desea configurar python3
como su compilador de Python y administrador de paquetes pip
predeterminado, haga lo siguiente:
# 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ón-pip
# pip3
$ pip3 install -U pip
$ pip3 install setuptools wheel cython
Si aún no ha configurado la ruta CUDA, es posible que deba hacerlo.
Configuración con 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
En comparación con Jetson Nano, una característica importante que viene con Jetson Xavier NX y Jetson AGX Xavier es que vienen con el conector M.2 Key M. Según pruebas de terceros, la velocidad de lectura de mi SSD es 7 veces más rápida que la de la tarjeta SD. Por lo tanto, arrancar desde SSD seguramente aumentará el rendimiento de Jetson Xavier.
Guía de configuración
Repositorio Jetsonhacks RootOnNVMe
Un script que puede controlar el ventilador PWM con el cambio de temperatura de la CPU de cualquier Jetson Machine (Jetson Nano, Jetson TX1, TX2, Jetson Xavier)
Guía de configuración
PyTorch v1.8.0 (JetPack 4.4+)
Python 3.6 - antorcha-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 (compatible con 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
Verificación
$ python3 -c " import torch ; print(torch.__version__) "
Para instalar otras versiones de PyTorch y Torchvision, visite el sitio AQUÍ
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’
Si encuentra un error al instalar h5py, ejecute este comando para resolver la dependencia:
$ sudo apt-get install libhdf5-serial-dev hdf5-tools
Para instalar otras versiones de Tensorflow, consulte los sitios a continuación:
Supersónico Xavier: AQUÍ
Jetson Nano: AQUÍ
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 con Docker
$ docker run --name jupyterlab -d
-e TZ=Asia/Shanghai
-p 8888:8888
-v /appdata/jupyterlab:/opt/app/data
hikariai/jupyterlab:latest
Ejecute la aplicación
$ 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"]} '
Guía 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 requiere **LLVM** prediseñado, así que consulte las instrucciones de LLVM e instálelo antes de instalar Numba.
$ pip3 install numba==0.31 --user
Jetson-stats es un paquete para monitorear y controlar su NVIDIA Jetson [Xavier NX, Nano, AGX Xavier, TX1, TX2] Funciona con todo el ecosistema NVIDIA Jetson.
$ sudo -H pip install -U jetson-stats
$ sudo jtop
NeoVim Server es un editor de texto tipo IDE en contenedores que se ejecuta en un servidor web.
Documentos: https://github.com/yqlbu/neovim-server/wiki
Instalación de fuentes:
$ 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
Instalación 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
Espere un par de segundos hasta que el contenedor finalice su proceso de arranque, luego visite http://localhost:6080/wetty
Visual Studio Code es un editor de código redefinido y optimizado para crear y depurar aplicaciones web y en la nube modernas.
$ curl -s https://packagecloud.io/install/repositories/swift-arm/vscode/script.deb.sh | sudo bash
$ sudo apt-get install -y code-oss
Code-server es una instancia de Visual Studio Code que se ejecuta en un servidor remoto al que se puede acceder a través de cualquier navegador web. Le permite codificar en cualquier lugar y en cualquier dispositivo, como una tableta o una computadora portátil, con un entorno de desarrollo integrado (IDE) consistente.
Guía de instalación: [AQUÍ
Archiconda3 es una distribución de conda para ARM de 64 bits. Anaconda es una distribución gratuita y de código abierto de los lenguajes de programación Python y R para informática científica (ciencia de datos, aplicaciones de aprendizaje automático, procesamiento de datos a gran escala, análisis predictivo, etc.), que tiene como objetivo simplificar la gestión y la implementación de paquetes. Al igual que Virtualenv, Anaconda también utiliza el concepto de creación de entornos para aislar diferentes bibliotecas y versiones.
$ 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 conda active el entorno base de forma predeterminada
$ conda config --set auto_activate_base false
$ export " PATH=/bin:/usr/bin: $PATH " >> ~ /.bashrc
$ source ~ /.bashrc
Consulte el sitio AQUÍ para obtener una guía 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: puede modificar el script para instalar una versión personalizada de OpenCV
$ wget https://github.com/yqlbu/jetson-packages-family/raw/master/OpenCV/install_opencv4.1.1_jetson.sh
PyCharm es un entorno de desarrollo integrado (IDE) utilizado en programación informática, específicamente para el lenguaje Python. Está desarrollado por la empresa checa JetBrains.
PyCharm Profesional
$ 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
Comunidad 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: Puedes encontrar otras versiones AQUÍ
Lazygit es una interfaz de usuario de terminal simple para comandos de git, escrita en Go con la biblioteca gocui.
$ sudo add-apt-repository ppa:lazygit-team/release
$ sudo apt-get update
$ sudo apt-get install lazygit
Ranger es un administrador de archivos de consola con combinaciones de teclas VI. Proporciona una interfaz de curses agradable y minimalista con una vista de la jerarquía de directorios. Se entrega con rifle, un lanzador de archivos que es bueno para descubrir automáticamente qué programa usar para qué tipo de archivo.
$ pip install ranger-fm
(Opcional) Instalar dispositivos de guardabosques
$ git clone https://github.com/alexanderjeurissen/ranger_devicons ~ /.config/ranger/plugins/ranger_devicons
$ echo " default_linemode devicons " >> $HOME /.config/ranger/rc.conf
La configuración de muestra está disponible AQUÍ
Lsd es el comando ls de próxima generación
Descargue el último paquete .deb
desde la página de lanzamiento e instálelo mediante:
sudo dpkg -i lsd_0.20.1_arm64.deb # adapt version number and architecture
Ctop es una interfaz similar a Top para métricas de contenedores. Ctop proporciona una descripción general concisa y condensada de métricas en tiempo real para múltiples contenedores.
# 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 es una aplicación de interfaz de usuario basada en terminal interactiva, rápida y liviana, para rastrear y monitorear las estadísticas de monedas de criptomonedas en tiempo real.
Documentos: AQUÍ
$ curl -o- https://raw.githubusercontent.com/miguelmota/cointop/master/install.sh | bash
Gotop Un monitor de actividad gráfico basado en terminal inspirado en gtop y vtop
# install
$ curl -fsSL git.io/gotop.sh | sudo bash
# uninstall
sudo rm -f /usr/local/bin/gotop
Monitor de recursos Bashtop que muestra el uso y las estadísticas del procesador, la memoria, los discos, la red y los procesos.
$ sudo add-apt-repository ppa:bashtop-monitor/bashtop
$ sudo apt update
$ sudo apt install bashtop
Httpie es un cliente HTTP de línea de comandos. Su objetivo es hacer que la interacción CLI con los servicios web sea lo más amigable posible para los humanos. HTTPie está diseñado para probar, depurar y, en general, interactuar con API y servidores HTTP. Los comandos http y https permiten crear y enviar solicitudes HTTP arbitrarias. Utilizan una sintaxis simple y natural y proporcionan resultados formateados y coloreados.
$ apt install httpie -y
Neofetch es un script de shell simple y multiplataforma que busca la información de su sistema y la muestra en una terminal, junto con una imagen ASCII o cualquier imagen deseada junto a la salida.
$ sudo add-apt-repository ppa:dawidd0811/neofetch
$ sudo apt-get update
$ sudo apt-get install neofecth
Docker es básicamente un motor de contenedores que utiliza las funciones del kernel de Linux, como espacios de nombres y grupos de control, para crear contenedores sobre un sistema operativo y automatiza la implementación de aplicaciones en el contenedor. Docker utiliza el sistema de archivos de unión de copia en escritura para su almacenamiento backend.
$ sudo wget -qO- https://get.docker.com/ | sh
$ sudo usermod -aG docker $USER
$ sudo systemctl enable docker
$ sudo systemctl status docker
Para habilitar el acceso al compilador CUDA (nvcc) durante las operaciones docker build
, agregue "default-runtime": "nvidia"
a su archivo de configuración /etc/docker/daemon.json
antes de intentar compilar los contenedores:
{
"runtimes" : {
"nvidia" : {
"path" : " nvidia-container-runtime " ,
"runtimeArgs" : []
}
},
"features" : {
"buildkit" : true
},
"default-runtime" : " nvidia "
}
Reiniciar Docker Daemon
$ sudo systemctl restart docker
Verifique si el tiempo de ejecución predeterminado está configurado en nvidia:
$ docker info | grep nvidia
Docker Compose es una herramienta para definir y ejecutar aplicaciones Docker de múltiples contenedores. Con Compose, utiliza un archivo YAML para configurar los servicios de su aplicación. Luego, con un solo comando, creas e inicias todos los servicios desde tu configuración.
$ 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
Repositorio oficial: https://github.com/NVIDIA/nvidia-docker
Instalar NVIDIA-Docker Runtime
$ sudo apt install -y nvidia-docker2
$ sudo systemctl daemon-reload
$ sudo systemctl restart docker
$ docker info | grep nvidia
La imagen personalizada de L4T-Docker está disponible AQUÍ
DLib es una biblioteca C++ de código abierto que implementa una variedad de algoritmos de aprendizaje automático, que incluyen clasificación, regresión, agrupación en clústeres, transformación de datos y predicción estructurada. ... Agrupación de K-Means, redes bayesianas y muchas otras.
Dlib v19.18
$ cd ~
$ wget https://raw.githubusercontent.com/yqlbu/face_recognizer/master/setup.sh
$ sudo chmod +x setup.sh
$ ./setup.sh
LabelImg es una herramienta gráfica de anotación de imágenes y etiquetas de cuadros delimitadores de objetos en imágenes.
$ 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 se utiliza para desarrollar interfaces gráficas de usuario (GUI) y aplicaciones multiplataforma que se ejecutan en las principales plataformas de escritorio y en la mayoría de las plataformas móviles o integradas. La mayoría de los programas GUI creados con Qt tienen una interfaz de aspecto nativo, en cuyo caso Qt se clasifica como un conjunto de herramientas de widgets.
$ sudo apt-get install qt5-default qtcreator -y
$ sudo apt-get install pyqt5 *
$ sudo apt install python3-pyqt5.qtsql
Kubernetes se ha convertido rápidamente en un ingrediente clave de la informática de punta. Con Kubernetes, las empresas pueden ejecutar contenedores en el borde de una manera que maximiza los recursos, facilita las pruebas y permite a los equipos de DevOps moverse más rápido y de manera más efectiva a medida que estas organizaciones consumen y analizan más datos en el campo.
K3S es una distribución ligera de Kubernetes desarrollada por Rancher Labs, perfecta para casos de uso de Edge Computing donde los recursos informáticos pueden ser algo limitados.
La guía de instalación y uso está disponible AQUÍ
Nomachine ARMv8 (compatible con dispositivos Jetson)
NoMachine es una herramienta de escritorio remoto gratuita, multiplataforma y sin servidor que le permite configurar un servidor de escritorio remoto en su computadora utilizando el protocolo de video NX. El cliente se puede utilizar para conectarse al servidor desde cualquier parte del mundo.
Sitio web oficial: AQUÍ
La resolución del escritorio generalmente está determinada por las capacidades de la pantalla conectada a Jetson. Si no hay ninguna pantalla adjunta, se selecciona una resolución predeterminada de 640x480
. Para usar una resolución diferente, edite /etc/X11/xorg.conf
y agregue las siguientes líneas:
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
de actualizaciónpip3
para instalar docker-compose
Logs
de actualizaciónArchiconda3
a v0.2.3 Licencia MIT (C) Kevin Yu