Jetson安裝與設置


1. 系統配置

1.1. 供電模式的切換

1.1.1. MaxN模式

jetson nano 開發板在預設的10W(MAXN)模式下需要用5v4A的DC供電。
用5v2A的DC或者micro-usb供電建議使用5W模式。
供電不足會導致掉電關機。

Jetson Nano采用高效電源管理集成電路(PMIC),穩壓器和電源樹設計可優化電源效率。 它支持兩種電源模式,例如5W和MaxN(10W)。 每種模式允許多種配置,具有各種CPU頻率和在線核心數。
您可以通過以預限定值限制內存,CPU和GPU頻率以及內核數量,將模塊限制為預定義配置。
下表顯示了NVIDIA預定義的電源模式以及模塊資源使用的相關上限。

默認的模式是:MaxN(10W)(對應ID 0).

切換模式:

sudo /usr/sbin/nvpmodel -m <x>

其中對應的是 mode ID, 比如 0 或 1。

設置電源模式后,模塊將保持該模式,直到您進行更改。該模式在電源循環和SC7之間持續存在。

1.1.2. 定義自定義模式

要定義自己的自定義模式,請將模式定義添加到文件 etc/nvpmodel/nvpmodel_t210_jetson-nano.conf 中,以下是模式1的示例:

# MAXN is the NONE power model to release all constraints
< POWER_MODEL ID=0 NAME=MAXN >
CPU_ONLINE CORE_0 1
CPU_ONLINE CORE_1 1
CPU_ONLINE CORE_2 1
CPU_ONLINE CORE_3 1
CPU_A57 MIN_FREQ  0
CPU_A57 MAX_FREQ -1
GPU_POWER_CONTROL_ENABLE GPU_PWR_CNTL_EN on
GPU MIN_FREQ  0
GPU MAX_FREQ -1
GPU_POWER_CONTROL_DISABLE GPU_PWR_CNTL_DIS auto
EMC MAX_FREQ 0

< POWER_MODEL ID=1 NAME=5W >
CPU_ONLINE CORE_0 1
CPU_ONLINE CORE_1 1
CPU_ONLINE CORE_2 0
CPU_ONLINE CORE_3 0
CPU_A57 MIN_FREQ  0
CPU_A57 MAX_FREQ 918000
GPU_POWER_CONTROL_ENABLE GPU_PWR_CNTL_EN on
GPU MIN_FREQ 0
GPU MAX_FREQ 640000000
GPU_POWER_CONTROL_DISABLE GPU_PWR_CNTL_DIS auto
EMC MAX_FREQ 1600000000

# mandatory section to configure the default mode
< PM_CONFIG DEFAULT=0 >

CPU的頻率單位是千赫茲(KHz)。 GPU和EMMC的單位是赫茲(Hz)。 您必須在ID字段中為每個自定義模式分配唯一ID。

測試您的自定義模式以確定:

  • 要使用的活動核心數
  • 為GPU,EMC和每個CPU群集設置的頻率

您設置的頻率受模式0中定義的MaxN限制的約束。

1.2. jetson_clocks腳本

默認情況下,DVFS已啟用,CPU/GPU/EMC時鍾將根據負載而變化。
/usr/bin/jetson_clocks:是禁用DVFS並將CPU/GPU/EMC時鍾設置為最大值的腳本。

2. 安裝 jtop

先安裝依賴:

sudo apt-get install git cmake
sudo apt-get install python3-dev
sudo apt-get install libhdf5-serial-dev hdf5-tools
sudo apt-get install libatlas-base-dev gfortran

然后通過pip安裝:

pip3 install --upgrade pip
pip3 install jetson-stats

運行 jtop 啟動即可。

3. 配置CUDA

jetson nano 2GB 默認已經安裝了 CUDA10.2 ,但是直接運行 nvcc -V 是不會成功的,需要你把CUDA的路徑寫入環境變量中。

export CUBA_HOME=/usr/local/cuda
export LD_LIBRARY_PATH=/usr/local/cuda/lib64:$LD_LIBRARY_PATH
export PATH=/usr/local/cuda/bin:$PATH

顯卡(GPU),顯卡驅動,和cuda之間是怎樣的關系?

硬件,底層接口,應用程序接口!

還有一個叫做cuDNN,是針對深度卷積神經網絡的加速庫

查看CUDA版本:

  1. 方法1: 查看文件

    cat /usr/local/cuda/version.txt
    
  2. 方法2: nvcc --version

3.1. cuDNN

homepage

查看cuDNN版本

cat /usr/local/cuda/include/cudnn.h | grep CUDNN_MAJOR -A 2

但無法查詢到jetson的cuDNN。實際上官方鏡像已經包含了cuDNN。集成在apt軟件包中,所以目錄並不在 /usr/local 下面,而是 /usr/include/aarch64-linux-gnu/cudnn_version_v8.h

4. 安裝pytorch

PyTorch for Jetson - version 1.7.0 now available

pytorch:

wget https://nvidia.box.com/shared/static/wa34qwrwtk9njtyarwt5nvo6imenfy26.whl -O torch-1.7.0-cp36-cp36m-linux_aarch64.whl
sudo apt-get install python3-pip libopenblas-base libopenmpi-dev
pip3 install Cython
pip3 install numpy torch-1.7.0-cp36-cp36m-linux_aarch64.whl

torchvision:

$ 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
$ sudo python3 setup.py install  # use python if installing for Python 2.7
$ 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

例如: git clone --branch v0.8.1 git@gitee.com:brt2/torchvision.git

pytorch 與 torchvision 之間的對應關系:

PyTorch v1.0 - torchvision v0.2.2
PyTorch v1.1 - torchvision v0.3.0
PyTorch v1.2 - torchvision v0.4.0
PyTorch v1.3 - torchvision v0.4.2
PyTorch v1.4 - torchvision v0.5.0
PyTorch v1.5 - torchvision v0.6.0
PyTorch v1.6 - torchvision v0.7.0
PyTorch v1.7 - torchvision v0.8.1

5. 安裝海康相機

下載>進入海康威視工業攝像頭官網,找到Linux系統ARM架構的安裝包下載。

但這個是針對ubuntu16.04的版本。運行時報錯:

執行 ldd ./MVS 發現少

libicui18n.so.55
libicuuc.so.55

兩個動態庫。通過 sudo find / -iname "libicu*" 查找發現系統的 libicui18n.so libicuuc.so 是60版本,這和需要的55版本都“隔代”了。

請在這里下載 包文件

wget https://mirrors.tuna.tsinghua.edu.cn/ubuntu- ports/pool/main/i/icu/libicu55_55.1-7_arm64.deb
dpkg -i libicu55_55.1-7_arm64.deb

然后運行即可正常啟動MVS。

6. 安裝OpenCV(With CUDA)

cnblog: 源碼編譯OpenCV

7. 部署PaddlePaddle模型(如PaddleOCR、PP-YOLO)

csdn: 在Jetson nano上編譯paddle(帶TensorRT)並跑通Paddle-Inference-Demo

如何在Jetson nano上同時編譯TensorRT與Paddle Lite框架

csdn: Jetson Xavier NX部署PaddleOCR

知乎: PaddleOCR識別模型轉Pytorch全流程記錄

PaddlePaddle對硬件的支持還是很緩慢的,所以目前沒有發現對Jetson的支持。但從v2.0開始,Paddle2ONNX最新升級:飛槳模型全面支持ONNX協議啦!。所以,例如PaddleOCR等項目可以通過轉換成ONNX的模型實現運行。

ONNX協議是由微軟開發維護,支持范圍很廣,並且,ONNXRunTime支持GPU的運算。

更值得慶幸的是,從2020年底,ONNXRunTime_v1.6.0開始支持Jetson。

# Download pip wheel from location mentioned above
$ wget https://nvidia.box.com/shared/static/49fzcqa1g4oblwxr3ikmuvhuaprqyxb7.whl -O onnxruntime_gpu-1.6.0-cp36-cp36m-linux_aarch64.whl

# Install pip wheel
$ pip3 install onnxruntime_gpu-1.6.0-cp36-cp36m-linux_aarch64.whl


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM