本机系统为ubuntu18.04,为了要和服务器环境尽可能一致,配套的环境采用:cuda10.0、cudnn7.6、TensorRT7.0、python3.6。

CUDA环境安装

参考链接:https://www.yuque.com/darrenzhang/cv/bugee8

  1. 安装cuda10.0
    1. chmod a+x cuda_10.0.130_410.48_linux.run
    2. sudo sh ./cuda_10.0.130_410.48_linux.run
    经过一连串的用户守则,进入正式安装 ```powershell Do you accept the previously read EULA? accept/decline/quit: accept

尽量先把显卡驱动装好,装好之后,这一步选择 n

Install NVIDIA Accelerated Graphics Driver for Linux-x86_64 410.48? (y)es/(n)o/(q)uit: n

正式安装 CUDA 10.0 Toolkit

Install the CUDA 10.0 Toolkit? (y)es/(n)o/(q)uit: y

CUDA 10.0 Toolkit的安装地址,默认即可,直接回车

Enter Toolkit Location [ default is /usr/local/cuda-10.0 ]:

相当于创建一个快捷方式,我选择 n

Do you want to install a symbolic link at /usr/local/cuda? (y)es/(n)o/(q)uit: n

安装一些官方实例,可以测试cuda是否装好,安不安装都可

Install the CUDA 10.0 Samples? (y)es/(n)o/(q)uit: n

开始安装

Installing the CUDA Toolkit in /media/darrenzhang/CV/cuda-10.0 …

不报错误的话,就安装完成,接下来配置环境变量


2. 更改环境变量并刷新
```powershell
vim ~/.bashrc
# 将cuda的路径及lib包添加到环境变量
export PATH="/usr/local/cuda-10.0/bin:$PATH"
export LD_LIBRARY_PATH="/usr/local/cuda-10.0/lib64:$LD_LIBRARY_PATH"
# 使新配置的环境变量生效
source ~/.bashrc
  1. 查看cuda的安装状态
    #  查看显卡驱动运行状态
    nvidia-smi
    
    driver version.png
    当前显示的CUDA Vrsion是不准的,仅代表当前Driver Version可用的cuda版本
    # 查看cuda-toolkit安装是否成功,并查看CUDA安装的版本
    nvcc -V
    
    ``` nvcc: NVIDIA (R) Cuda compiler driver Copyright (c) 2005-2018 NVIDIA Corporation Built on Sat_Aug_25_21:08:01_CDT_2018 Cuda compilation tools, release 10.0, V10.0.130

至此 CUDA 10.0安装成功


4. 安装cudnn

从官网下载[https://developer.nvidia.com/cudnn](https://developer.nvidia.com/cudnn)(需要注册账号),<br />![image.png](https://cdn.nlark.com/yuque/0/2021/png/353587/1629966115301-06ff4d12-c23e-41b7-86ec-427e4259d756.png#clientId=u3db795a0-cd51-4&from=paste&height=164&id=ue39ca32f&margin=%5Bobject%20Object%5D&name=image.png&originHeight=327&originWidth=937&originalType=binary&ratio=1&size=84396&status=done&style=none&taskId=ud1222a38-1fc9-4ae0-bf6c-f52e78ae050&width=468.5)<br />![image.png](https://cdn.nlark.com/yuque/0/2021/png/353587/1629966194389-2000e411-28e7-4665-ab78-3c2d7a1ed159.png#clientId=u3db795a0-cd51-4&from=paste&height=218&id=ucd639e3d&margin=%5Bobject%20Object%5D&name=image.png&originHeight=436&originWidth=929&originalType=binary&ratio=1&size=55785&status=done&style=none&taskId=u6540267d-3dce-451a-a198-f5bc57da041&width=464.5)<br />如果没有当前需要的版本,点击`Archived CuDNN Releases`,然后肯定能找到你对应CUDA版本的cuDNN,将其下载下来。<br />![image.png](https://cdn.nlark.com/yuque/0/2021/png/353587/1629966286562-b4709aed-d424-4e78-8e01-729ed8ed9179.png#clientId=u3db795a0-cd51-4&from=paste&height=69&id=ue107dd7d&margin=%5Bobject%20Object%5D&name=image.png&originHeight=138&originWidth=918&originalType=binary&ratio=1&size=16184&status=done&style=none&taskId=u28b8d05e-34d4-4259-9855-05afd853e2b&width=459)

解压下载的tar压缩文件

tar -xzvf cudnn-10.0-linux-x64-v7.6.5.32.tgz

cp cuda/include/ ~/cuda92/include/ cp cuda/lib64/libcudnn ~/cuda92/lib64 chmod a+r ~/cuda92/include/cudnn.h ~/cuda92/lib64/libcudnn*

> 我将include下的所有文件,全部拷贝到cuda目录下了

查看cudnn版本:
```powershell
cat ~/cuda-10.1/include/cudnn.h | grep CUDNN_MAJOR -A 2

结果:

#define CUDNN_MAJOR 7
#define CUDNN_MINOR 6
#define CUDNN_PATCHLEVEL 5
--
#define CUDNN_VERSION (CUDNN_MAJOR * 1000 + CUDNN_MINOR * 100 + CUDNN_PATCHLEVEL)

注:cudnn高版本(8.x)的版本信息不在这个文件,使用如下命令:

cat /usr/local/cuda-11.3/include/cudnn_version.h |grep ^#

TensorRT安装

  1. 版本下载

官网:https://developer.nvidia.com/zh-cn/tensorrt,还是需要填写下载cudnn时所用的帐号,一定要选择和自己此操作系统、cuda和cudnn版本想匹配的TensroRT版本。
image.png
由于服务器的各个版本都比较老,选择下载TensorRT7.0。在实际转模型的过程中,使用keras==2.2.0版本,使用TensorRT6.0会失败,使用TensorRT7.0版本就能够转成功。

 tar -zxvf TensorRT-7.0.0.11.Ubuntu-18.04.x86_64-gnu.cuda-10.0.cudnn7.6.tar.gz

image.png

  1. 添加tensorrt到环境变量 ```powershell

    .bashrc中添加tensorrt目录及其lib目录

    export TENSORRT_ROOT=”/home/darrenzhang/TensorRT-7.0.0.11” export LD_LIBRARY_PATH=”/home/darrenzhang/TensorRT-7.0.0.11/lib:$LD_LIBRARY_PATH”

source .bashrc


3. 安装Python的TensorRT包
```powershell
cd TensorRT-7.0.0.11/python

conda activate envs(你想安装到的conda环境)
pip install tensorrt-7.0.0.11-cp36-none-linux_x86_64.whl

image.png
选择合适版本的tensorrt安装

  1. 安装Python UFF包(如果你打算在TensorFlow中使用TensorRT,将TF的模型.pb文件转化成TRT的推理引擎)

    cd TensorRT-7.0.0.11/uff
    pip install uff-0.6.5-py2.py3-none-any.whl
    
  2. 安装Python graphsurgeon(通过TRT自定义网络结构)

    cd TensorRT-7.0.0.11/graphsurgeon
    pip install graphsurgeon-0.4.1-py2.py3-none-any.whl
    
  3. 安装PyCUDA

    PyCUDA是Python使用NVIDIA CUDA的API,在Python中映射了所有CUDA的API

pip install pycuda

PyCUDA的官方文档

https://documen.tician.de/pycuda/driver.html