安装前呢先说明几点,因为之前不熟悉linux 的安装方式,所以看了一下有很多种安装方式,其中包含源码编译、dpkg、apt等,这里的源码方式大家都懂通过Makefile或者cmake进行编译,然后进行安装,过程复杂容易出错,apt是和dpkg配合使用的,这里呢简单的介绍一下dpkg:
dpkg
linux 开发商在固定的硬件平台和操作系统平台上将需要安装的软件编译好,然后将这个软件所有的相关文件打包成一个特殊格式的文件,这个文件还包括了预先检测系统与依赖的脚本,并且提供记载该软件提供的所有文件信息。客户取得软件包后,只要通过特定的命令来安装,那么该软件就会按照内部的脚本来检测前驱软件的存在,若安装的环境符合满足需求,按么就会开始安装。安装完成后还会将该软件的信息写入软件管理机制中,以完成未来的升级,删除等操作。
下面是dpkg一些基础命令的简介:
dpkg -i package-name
安装软件包dpkg -r package-name
删除软件包(保留配置信息)dpkg -P package-name
删除软件包(包括配置信息)dpkg --configure package-name
配置软件包,如果加上-a
表示配置所有未配置的软件包dpkg --unpack package-name
解开软件包到系统目录,但不进行配置
下面几个命令用于对软件包进行查询
dpkg -I filename
查看软件说明(直接使用dpkg -l
查询所有安装的软件包,filename可以使用正则,我通常用```dpkg -l | grep "filename"因为会存在软件名记不住的情况)dpkg -L filename
查看package-name对应的软件包安装的文件及目录dpkg -s filename
查看package-name对应的软件包信息dpkg -S filename-pattern
从已经安装的软件包中查找包含filename的软件包名称
dpkg软件包相关文件介绍/etc/dpkg/dpkg.cfg
dpkg包管理软件的配置文件/var/log/dpkg.log
dpkg包管理软件的日志文件/var/lib/dpkg/available
存放系统所有安装过的软件包信息/var/lib/dpkg/status
存放系统现在所有安装软件的状态信息/var/lib/dpkg/info
记安装软件包控制目录的控制信息文件
apt-get
虽然我们在使用dpkg
时,已经解决掉了 软件安装过程中的大量问题,但是当依赖关系不满足时,仍然需要手动解决,而apt
这个工具解决了这样的问题,linux distribution 先将软件放置到对应的服务器中,然后分析软件的依赖关系,并且记录下来,然后当客户端有安装软件需求时,通过清单列表与本地的dpkg以存在的软件数据相比较,就能从网络端获取所有需要的具有依赖属性的软件了。
下面是apt的一些基础命令简介:
apt-get update
更新源apt-ge dist-upgrade
升级系统apt-get upgrade
更新所有已经安装的软件包apt-get install package_name
安装软件包(加上 --reinstall重新安装)apt-get remove
移除软件包(保留配置信息)apt-get purge package_name
移除软件包(删除配置信息)apt show pack_name
获取包的相关信息apt search page_name
搜索包的相关信息apt-cache depends package
了解使用依赖apt-get check
检查是否有损坏的依赖
apt软件包相关文件介绍:/etc/apt/sources.list
记录软件源的地址/var/cache/apt/archives
已经下载到的软件包都放在这里
上面是linux的几种安装方式,那么和我们 这次安装英伟达系列有什么关系呢?其实英伟达提供了很多的安装方法,每个人采用的方法不同,导致不了解linux的人极易出错,因此先介绍一下,下面开始安装这个库
通过dpkg安装
cuda:11.3.1
wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu1604/x86_64/cuda-ubuntu1604.pin
sudo mv cuda-ubuntu1604.pin /etc/apt/preferences.d/cuda-repository-pin-600
wget https://developer.download.nvidia.com/compute/cuda/11.3.1/local_installers/cuda-repo-ubuntu1604-11-3-local_11.3.1-465.19.01-1_amd64.deb
sudo dpkg -i cuda-repo-ubuntu1604-11-3-local_11.3.1-465.19.01-1_amd64.deb
sudo apt-key add /var/cuda-repo-ubuntu1604-11-3-local/7fa2af80.pub
sudo apt-get update
sudo apt-get -y install cuda
cudnn:8.2.1
你需要下载这四个文件,否则你无法安装成功
- 安装运行时库,例如:
sudo dpkg -i libcudnn8_x.x.x-1+cudax.x_amd64.deb
或者
sudo dpkg -i libcudnn8_x.x.x-1+cudax.x_arm64.deb
- 安装开发者库,例如:
sudo dpkg -i libcudnn8-dev_8.x.x.x-1+cudax.x_amd64.deb
或者
sudo dpkg -i libcudnn8-dev_8.x.x.x-1+cudax.x_arm64.deb
- 安装代码示例和 cuDNN 库文档,例如:
sudo dpkg -i libcudnn8-samples_8.x.x.x-1+cudax.x_amd64.deb
或者
sudo dpkg -i libcudnn8-samples_8.x.x.x-1+cudax.x_arm64.deb
4.我安装完上面的后自己测试还是没成功,需要安装 cuDNN Library for Linux (x86_64),也就是上图第一个:
解压缩cuDNN包。
tar -xzvf cudnn-x.x-linux-x64-v8.x.x.x.tgz
或者
tar -xzvf cudnn-x.x-linux-aarch64sbsa-v8.x.x.x.tgz
sudo cp cuda/include/cudnn*.h /usr/local/cuda/include sudo cp -P cuda/lib64/libcudnn* /usr/local/cuda/lib64 sudo chmod a+r /usr/local/cuda/include/cudnn*.h /usr/local/cuda/lib64/libcudnn*
tensorrt:8.0.3
- 从 本地 .dep包安装TensorRT。代替 ubuntuxx04, cudax.x, trt8.xxx 和 yyyymmdd 使用您的特定操作系统版本、CUDA 版本、TensorRT 版本和包日期。
os="ubuntuxx04" tag="cudax.x-trt8.x.x.x-yyyymmdd" sudo dpkg -i nv-tensorrt-repo-${os}-${tag}_1-1_amd64.deb sudo apt-key add /var/nv-tensorrt-repo-${os}-${tag}/7fa2af80.pub sudo apt-get update sudo apt-get install tensorrt
如果使用 Python 3.x:
将安装以下附加软件包:sudo apt-get install python3-libnvinfer-dev
python3-libnvinfer
如果您打算将 TensorRT 与 TensorFlow 一起使用:sudo apt-get install uff-converter-tf
这 graphsurgeon-tf 软件包也将使用上述命令安装。
如果您想运行需要 ONNX 的示例 图外科医生 或者在你自己的项目中使用 Python 模块,运行:sudo apt-get install onnx-graphsurgeon
- 验证安装。
dpkg -l | grep TensorRT
您应该会看到类似于以下内容的内容:ii graphsurgeon-tf 8.2.0-1+cuda11.4 amd64 GraphSurgeon for TensorRT package ii libnvinfer-bin 8.2.0-1+cuda11.4 amd64 TensorRT binaries ii libnvinfer-dev 8.2.0-1+cuda11.4 amd64 TensorRT development libraries and headers ii libnvinfer-doc 8.2.0-1+cuda11.4 all TensorRT documentation ii libnvinfer-plugin-dev 8.2.0-1+cuda11.4 amd64 TensorRT plugin libraries ii libnvinfer-plugin8 8.2.0-1+cuda11.4 amd64 TensorRT plugin libraries ii libnvinfer-samples 8.2.0-1+cuda11.4 all TensorRT samples ii libnvinfer8 8.2.0-1+cuda11.4 amd64 TensorRT runtime libraries ii libnvonnxparsers-dev 8.2.0-1+cuda11.4 amd64 TensorRT ONNX libraries ii libnvonnxparsers8 8.2.0-1+cuda11.4 amd64 TensorRT ONNX libraries ii libnvparsers-dev 8.2.0-1+cuda11.4 amd64 TensorRT parsers libraries ii libnvparsers8 8.2.0-1+cuda11.4 amd64 TensorRT parsers libraries ii python3-libnvinfer 8.2.0-1+cuda11.4 amd64 Python 3 bindings for TensorRT ii python3-libnvinfer-dev 8.2.0-1+cuda11.4 amd64 Python 3 development package for TensorRT ii tensorrt 8.2.0.x-1+cuda11.4 amd64 Meta package of TensorRT ii uff-converter-tf 8.2.0-1+cuda11.4 amd64 UFF converter for TensorRT package ii onnx-graphsurgeon 8.2.0-1+cuda11.4 amd64 ONNX GraphSurgeon for TensorRT package
通过 dpkg安装是挺方便的,但是不推荐这种方法,因为你无法确定你安装到哪里了,后面查找也不方便,因此推荐下面的的安装。
runfile安装
cuda11.3.1
wget https://developer.download.nvidia.com/compute/cuda/11.3.1/local_installers/cuda_11.3.1_465.19.01_linux.run
sudo sh cuda_11.3.1_465.19.01_linux.run
cudnn:8.2.1
直接下载第一个即可: 需要安装 cuDNN Library for Linux (x86_64),也就是上图第一个:
解压缩cuDNN包。
tar -xzvf cudnn-x.x-linux-x64-v8.x.x.x.tgz
或者
tar -xzvf cudnn-x.x-linux-aarch64sbsa-v8.x.x.x.tgz
将以下文件复制到CUDA Toolkit目录中。
sudo cp cuda/include/cudnn*.h /usr/local/cuda/include
sudo cp -P cuda/lib64/libcudnn* /usr/local/cuda/lib64
sudo chmod a+r /usr/local/cuda/include/cudnn*.h /usr/local/cuda/lib64/libcudnn*
tensorrt:8.0.3
- 解压 tar 文件。
在哪里:version="8.x.x.x" arch=$(uname -m) cuda="cuda-x.x" cudnn="cudnn8.x" tar xzvf TensorRT-${version}.Linux.${arch}-gnu.${cuda}.${cudnn}.tar.gz
- 8.xxx是你的TensorRT版本
- cuda-xx 是CUDA版本 10.2 或者 11.4
- cudnn8.x 是cuDNN版本 8.2
ls TensorRT-${version} bin data doc graphsurgeon include lib onnx_graphsurgeon python samples targets TensorRT-Release-Notes.pdf uff
- 添加TensorRT的绝对路径库 目录到环境变量 LD_LIBRARY_PATH:
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:<TensorRT-${version}/lib>
- 安装 Python TensorRT轮文件。
cd TensorRT-${version}/python python3 -m pip install tensorrt-*-cp3x-none-linux_x86_64.whl
- 安装 Python UFF 轮文件。仅当您计划将TensorRT与TensorFlow一起使用时才需要这样做。
cd TensorRT-${version}/uff python3 -m pip install uff-0.6.9-py2.py3-none-any.whl
检查安装:which convert-to-uff
- 安装 Python 调用。
cd TensorRT-${version}/graphsurgeon python3 -m pip install graphsurgeon-0.4.5-py2.py3-none-any.whl
- 安装 Python onnx-graphsurgeon 轮文件。
cd TensorRT-${version}/onnx_graphsurgeon python3 -m pip install onnx_graphsurgeon-0.3.12-py2.py3-none-any.whl
Ubuntu 20.04安装CUDA 11.0、cuDNN 8.0.5、PyTorch 1.7.0