如果要使用tensorRT进行推理加速的话,cuda,cudnn之类的库是必不可少的。整个安装流程花了我将近一天的时间。先将整个流程给出:
在安装之前,我们需要了解系统的版本,驱动的版本。
# cuda检查
nvcc -V # 检查是否已经安装了cuda
# 系统版本查看
cat /etc/redhat-release # 查看centos的系统版本
cat /proc/version # 查看ubuntu的系统版本
# 检查驱动版本和对应最高可安装cuda版本
nvidia-smi # 如果找不到该命令,则需要安装gpu驱动
根据之前得到的驱动版本,系统选择自己要安装的cuda版本。
进入cuda工具箱,选择版本。获得安装命令。
wget https://developer.download.nvidia.com/compute/cuda/10.2/Prod/local_installers/cuda_10.2.89_440.33.01_linux.run
sudo sh cuda_10.2.89_440.33.01_linux.run
因为我的是centos系统,选择的以run file形式安装,所以生成了上面的命令。
接着运行命令按照步骤安装就行了。
vim ~/.bashrc # 配置系统环境:打开系统环境配置文件
# 将cuda的头文件和库文件路径加入系统环境
export PATH=/usr/local/cuda-10.1/bin:$PATH
export CPATH=/usr/local/cuda-10.1/targets/x86_64-linux/include:$CPATH
export LD_LIBRARY_PATH=/usr/local/cuda-10.1/lib64:$LD_LIBRARY_PATH
source ~/.bashrc # 更新配置
nvcc -V # 检查安装是否成功?
去官网注册:https://developer.nvidia.com
后面的cudnn和tensorRT的安装都要用到
cudnn的版本,需要根据cuda的版本来决定,我一般选择gz压缩包的形式下载。(下载地址)
下载完之后解压,就会得到3个文件:
include:cudnn的头文件
lib64:cudnn的库文件
只要将它们分别复制到cuda对应的头文件和库文件的文件夹就好了。
根据cuda的版本和系统选择对应的TensorRT版本(下载地址)
和cudnn一样,我也是下载的压缩包,然后解压之后生成了一个文件夹。
将cuda的头文件和库文件路径加入系统环境,和之前一样
vim ~/.bashrc
export LD_LIBRARY_PATH=/data/cai_test/TensorRT-6.0.1.5/lib:$LD_LIBRARY_PATH
source ~/.bashrc
正常来说,安装基本完成,但是我们还要验证是否安装成功
我们使用mnist来进行验证,tensorRT自带了很多不同的例子。
cd .../TensorRT-6.0.1.5/samples/sampleMNIST/
make # 编译
如果之前cuda,cudnn安装成功,且库链接成功的话,make应该会顺利进行。
但是我出现了找不到库文件的错误
/usr/bin/ld: cannot find -lcudnn
/usr/bin/ld: cannot find -lcublas
/usr/bin/ld: cannot find -lcudart
解决方案:建立symlink,链接过去
sudo ln -s /usr/local/cuda/lib64/libcudart.so /usr/lib/libcudart.so
但是还是没有找到libcublas,原来cuda-10.1之后,就不会将libcublas.so发到cuda的目录下,而是放在别的地方,所以用下面命令来查找这个库文件。然后再链接过去。
find /usr -name libcublas.so*
这样大概就能顺利的编译了。
下载mnist数据集:mnist数据集(下载4个gz格式的压缩包)
根据报错,将/data/generate_pgms.py里过期的fromstring函数替换成frombuffer
运行这个python文件,就是生成几个pgm的文件。
然后回到TensorRT的主目录
bin/sample_mnist # 运行mnist的测试程序
出现这个结果,说明之前安装的cuda,cudnn和tensorRT都安装成功了。
这个比较简单:在解压C++的TensorRT的主目录下,有个python文件夹,内部有一些tensorrt不同python版本的whl。
根据当前环境选择合适的whl文件,cp37代表python3.7版本。
pip install tensorrt-6.0.1.5-cp37-none-linux_x86_64.whl
运行上面指令即可完成安装
import一下tensorrt的包就能知道是否安装成功了。
还有一些相关的支持可以查看:TensorRt安装指南
怎么确定自己安装的版本:window的pycuda库
上面的链接虽然是window的,但是可以根据自己的python版本和cuda版本,确定pycuda的版本。
例如,通过python3.7和64位系统,还有cuda10.1的版本,就大概可以确定pycuda-2019.1.2这个版本
pip install pycuda==2019.1.2
即可完成pycuda的安装
我们需要实际的跑一个简单的程序来验证一下pycuda是否安装成功:
根据这个文章里面的代码。
简单的跑一下,如果没有出错的话,pycuda就安装成功了。
至此,整个环境的配置流程就结束了,可以愉快的进行开发了。