《基于NVIDIA jetson平台的人工智能实例开发入门》在jetson_nano开发中可能会遇到的问题3:使用TensorRT进行推理加速

写在前面

        老实说,这是我最喜欢的一部分了,最近沉迷于寻找各种不同阶段的加速工具,jetson平台的TensorRT属于“推理加速”,也是比较实用的一种加速,之后找个时间我会专门写一节总结,介绍各种加速工具给你,这里就不多说了。

        这本书中关于使用TensorRT的部分比较坑,有很多东西我没有顺利安装。这里总结一下我最后成功方法。

安装pycuda

        这部分我完全没有按照书中的方法进行安装

1 安装 gcc4.3

sudo apt-get install build-essential gcc-4.3 g++-4.3
cd /usr/bin
sudo ln -sf gcc-4.3 gcc

2 安装libboost

sudo apt-get install libboost-all-dev

3 需要安装特定版本的numpy

pip install -U numpy==1.14.0 -i https://pypi.doubanio.com/simple --user

4 安装依赖库

sudo apt-get install build-essential python-dev python-setuptools libboost-python-dev libboost-thread-dev -y

5 下载pycuda安装包

http://pypi.python.org/pypi/pycuda

6 开始编译pycuda

tar xzvf pycuda-VERSION.tar.gz
cd pycuda-VERSION

./configure.py --cuda-root=/usr/local/cuda --cudadrv-lib-dir=/usr/lib --boost-inc-dir=/usr/include --boost-lib-dir=/usr/lib --boost-python-libname=boost_python-py27 --boost-thread-libname=boost_thread

make -j6
sudo python setup.py install
sudo pip install .

这里强调一下,在第3步中需要安装特定版本的numpy,需要根据你安装的pycuda版本而定,它们之间有匹配关系。2020,03,02  我安装的pycuda版本为,相应匹配的numpy版本为1.14.0。版本不匹配的报错信息为:

RuntimeError: module compiled against API version 0xc but this version of numpy is 0xb
Traceback (most recent call last):
  File "TRTNet.py", line 3, in <module>
    import pycuda.driver as cuda
  File "/usr/local/lib/python2.7/dist-packages/pycuda-2019.1.2-py2.7-linux-aarch64.egg/pycuda/driver.py", line 62, in <module>
    from pycuda._driver import *  # noqa
ImportError: numpy.core.multiarray failed to import

其实很容易发现就是numpy版本的问题,至于如何知道numpy的哪个版本匹配,非常不好意思,我是试出来的,不过一般是降numpy的版本,试验也很快的。

还有一点需要强调,pycuda在编译的时候就已经使用了numpy,所以你的这次试验如果不成功,你需要删除所有pycuda解压后的文件夹重新解压缩编译。

发布了9 篇原创文章 · 获赞 6 · 访问量 1398

猜你喜欢

转载自blog.csdn.net/qq_37662375/article/details/104620898