作者:iotsharer
首发:知乎
0、前言
在玩转智能硬件(一)和(二)中,我们安装好Jetson Nano系统并配置好基本环境,接下来开始搭建深度学习开发环境。
1、TensorRT安装
1.1、TensorRT介绍
NVIDIA®TensorRT™的核心是一个C++库,可促进在NVIDIA图形处理单元(GPU)上进行高性能推理。 它旨在与训练框架(如TensorFlow、Caffe、PyTorch、MXNet等)以互补的方式工作。它特别侧重于在GPU上快速高效地运行已训练的网络,以生成结果(这一过程在不同的地方被称为评分、检测、回归或推理)
一些训练框架(如TensorFlow)集成了TensorRT,因此可以用它来加速框架内的推理。 或者,TensorRT可以用作用户应用程序中的库。 它包括用于从Caffe、ONNX或TensorFlow导入现有模型的解析器,以及用于以编程方式构建模型的C++和PythonAPI。
TensorRT是一个用于生产部署的高性能神经网络推理优化器和运行时引擎。
TensorRT通过组合层和优化内核选择来优化网络,以提高延迟、吞吐量、能效和内存消耗。 如果应用程序指定,它将额外优化网络以更低的精度运行,从而进一步提高性能并降低内存需求。下图显示了定义为部分高性能推理优化器和部分运行时引擎的TensorRT。 它可以吸收在这些流行框架上训练的神经网络,优化神经网络计算,生成轻量级运行时引擎(这是您唯一需要部署到生产环境中的东西),然后它将最大化这些GPU平台上的吞吐量、延迟和性能。
1.2、TensorRT安装
- 基于JetPack
如果按照玩转智能硬件(一)Jetson Nano安装篇装篇使用官方提供JetPack 4.4镜像安装操作系统后,系统已经安装好TensorRT 7.1.3环境,使用下面指令即可查看
dpkg -l | grep TensorRT
查询结果
- 自行编译安装
根据个人实际情况参考下面两个文档
NVIDIA Deep Learning TensorRT Documentationdocs.nvidia.comhttps://github.com/NVIDIA/TensorRTgithub.com
- 安装PyCuda
PyCUDA允许您从Python访问NVIDIA的CUDA并行计算API。
配置cuda环境变量
export CUDA_HOME=/usr/local/cuda-10.2 #根据实际cuda版本修改
export LD_LIBRARY_PATH=/usr/local/cuda-10.2/lib64:$LD_LIBRARY_PATH
export PATH=/usr/local/cuda-10.2/bin:$PATH
配置好cuda环境变量后执行nvcc -V
安装
pip install 'pycuda>=2019.1.1'
2、PyTorch安装
Nvidia提供了编译好的PyTorch安装包,根据自己的需要选择合适的安装包。
wget https://nvidia.box.com/shared/static/ncgzus5o23uck9i5oth2n8n06k340l6k.whl -O torch-1.4.0-cp36-cp36m-linux_aarch64.whl
sudo apt-get install python3-pip libopenblas-base libopenmpi-dev
pip3 install Cython
pip3 install numpy torch-1.4.0-cp36-cp36m-linux_aarch64.whl
- 安装torchvision
$ sudo apt-get install libjpeg-dev zlib1g-dev
$ git clone --branch v1.2 https://github.com/pytorch/vision torchvision # see below for version of torchvision to download
$ cd torchvision
$ sudo python setup.py install # use python3 if installing for Python 3.6
$ 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
注意:torchvision版本需要与PyTorch版本对应
- 验证安装
import torch
import torchvision
print('torch version: ' + str(torch.__version__))
print('torchvision version: ' + str(torchvision.__version__))
print('CUDA available: ' + str(torch.cuda.is_available()))
print('CUDA version: ' + str(torch.version.cuda))
print('cuDNN version: ' + str(torch.backends.cudnn.version()))
参考文档:
【1】https://forums.developer.nvidia.com/t/pytorch-for-jetson-nano-version-1-6-0-now-available/72048
【2】https://docs.nvidia.com/deeplearning/tensorrt/install-guide/index.html#overview
【3】JetPack SDK
相关阅读
定期更新,更多AIoT相关技术知识请关注动手学AIoT专栏。