linux安装cuda,cudnn,tensorRT完整流程(零基础详解)

如果要使用tensorRT进行推理加速的话,cuda,cudnn之类的库是必不可少的。整个安装流程花了我将近一天的时间。先将整个流程给出:

  1. GPU驱动安装
  2. cuda(C++)
  3. 注册一个nvidia的账户
  4. cudnn(C++)
  5. tensorRT(C++)
  6. mnist验证tensorRT
  7. tensorrt(python)
  8. pycuda(python)
  9. 验证pycuda

了解系统信息

在安装之前,我们需要了解系统的版本,驱动的版本。

# cuda检查
nvcc -V  # 检查是否已经安装了cuda

# 系统版本查看
cat /etc/redhat-release  # 查看centos的系统版本
cat /proc/version  # 查看ubuntu的系统版本

# 检查驱动版本和对应最高可安装cuda版本
nvidia-smi  
# 如果找不到该命令,则需要安装gpu驱动,但是没关系
# 在安装cuda的时候,可以选择一起安装GPU 驱动

gpu信息

CUDA安装

根据之前得到的驱动版本,系统选择自己要安装的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  # 检查安装是否成功?

注册NVIDIA账户

去官网注册:https://developer.nvidia.cn

后面的cudnn和tensorRT的安装都要用到

cudnn安装

cudnn的版本,需要根据cuda的版本来决定,我一般选择gz压缩包的形式下载。(下载地址

下载完之后解压,就会得到3个文件:
在这里插入图片描述
include:cudnn的头文件
lib64:cudnn的库文件

只要将它们分别复制到cuda对应的头文件和库文件的文件夹就好了。

TensorRT安装

根据cuda的版本和系统选择对应的TensorRT版本(下载地址

和cudnn一样,我也是下载的压缩包,然后解压之后生成了一个文件夹。

将cuda的头文件和库文件路径加入系统环境,和之前一样

vim ~/.bashrc
export LD_LIBRARY_PATH=/data/cai_test/TensorRT-6.0.1.5/lib:$LD_LIBRARY_PATH
source ~/.bashrc

正常来说,安装基本完成,但是我们还要验证是否安装成功

TensorRT验证

我们使用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都安装成功了。

python API的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安装指南

pycuda

怎么确定自己安装的版本:window的pycuda库

上面的链接虽然是window的,但是可以根据自己的python版本和cuda版本,确定pycuda的版本。
在这里插入图片描述
例如,通过python3.7和64位系统,还有cuda10.1的版本,就大概可以确定pycuda-2019.1.2这个版本

pip install pycuda==2019.1.2

即可完成pycuda的安装

pycuda的验证

我们需要实际的跑一个简单的程序来验证一下pycuda是否安装成功:

根据这个文章里面的代码。

简单的跑一下,如果没有出错的话,pycuda就安装成功了。

至此,整个环境的配置流程就结束了,可以愉快的进行开发了。

后话

2023/03/03:今天因为要帮公司组装centos测试机,从装系统开始,到环境搭建完成,花了好几天的时间,linux下的安装确实简单方便很多。但是不知道为啥使用yum安装cudnn和tensorrt的rpm文件的时候,虽然显示安装成功了,但是哪里都找不到他们的包,最后还是通过直接下载压缩文件,然后拷贝到对应的头文件和库文件到cuda对应的文件夹下完成的安装。

  1. 新版tensorrt的测试也简单了很多,不需要手动下载mnist的数据库了,模型也是onnx模型。
  2. 现在nvidia的中国官网可以直接下载了,速度也比com的快多了,我也将文中的链接换成了cn结尾的。

猜你喜欢

转载自blog.csdn.net/Jiangnan_Cai/article/details/127400707