笔记本:dell g5511
显卡:RTX3060
系统:ubuntu18.04(win10上三者对应的版本太少了,强烈建议转ubuntu,后续会补一个ubuntu系统安装教程)
版本:Cuda11.3/Cudnn v8.2.1(for11.x)/TensorRT8.2
首先ctrl+alt+t打开一个命令窗口
输入
ubuntu-drivers devices
可以看到推荐(recommended)使用-495版本,然后运行会自动安装推荐版本
sudo ubuntu-drivers autoinstall
安装完之后可用如下代码查看
nvidia-smi
如下图所示为安装成功
注:左上cuda11.5为该驱动可兼容的最大cuda版本。
在重启后出现了一个问题
开机卡死在这里了,网上搜了一下,应该是nvidia驱动和核显冲突的问题(自己推断),改称显卡直连即可,个人感觉这个方法不是很好,应该在安装驱动的时候进行一定设置可以实现混合模式也可以正常允许,但是目前没有找到解决方法。
总之先改为显卡直连,顺利进行下一步。
首先点击以下连接选择CUDA Toolkit 11.3.0 (April 2021),
cuda各版本安装地址
按照下图选择出现如下命令
ctrl+alt+t打开一个命令窗口
先运行第一条命令
wget https://developer.download.nvidia.com/compute/cuda/11.3.0/local_installers/cuda_11.3.0_465.19.01_linux.run
然后运行第二条命令
sudo sh cuda_11.3.0_465.19.01_linux.run
安装完成,然后配置环境变量
echo 'export PATH=/usr/local/cuda-11.3/bin:$PATH'>>~/.bashrc
echo 'export LD_LIBRARY_PATH=/usr/local/cuda-11.3/lib64:$LD_LIBRARY_PATH'>>~/.bashrc
更新一下
source ~/.bashrc
环境变量生效
然后用nvcc -V查看
nvcc -V
大功告成!cuda11.3
由于最近工作需要,要安装tensorrt,但是在安装过程中发现一个问题,cuda,cudnn,tensorrt的安装方式要一致。(比如cuda、cudnn是debian安装那么tensorrt也要debian安装,如果cuda .run安装,cudnn tar安装 tensorrt也用tar安装)
如果cuda .run安装,tensorrt debian安装会出现如下问题
下列软件包有未满足的依赖关系:
tensorrt : 依赖: libnvinfer7 (= 7.0.0-1+cuda10.0) 但是它将不会被安装
依赖: libnvinfer-plugin7 (= 7.0.0-1+cuda10.0) 但是它将不会被安装
依赖: libnvparsers7 (= 7.0.0-1+cuda10.0) 但是它将不会被安装
依赖: libnvonnxparsers7 (= 7.0.0-1+cuda10.0) 但是它将不会被安装
依赖: libnvinfer-bin (= 7.0.0-1+cuda10.0) 但是它将不会被安装
依赖: libnvinfer-dev (= 7.0.0-1+cuda10.0) 但是它将不会被安装
依赖: libnvinfer-plugin-dev (= 7.0.0-1+cuda10.0) 但是它将不会被安装
依赖: libnvparsers-dev (= 7.0.0-1+cuda10.0) 但是它将不会被安装
依赖: libnvonnxparsers-dev (= 7.0.0-1+cuda10.0) 但是它将不会被安装
依赖: libnvinfer-samples (= 7.0.0-1+cuda10.0) 但是它将不会被安装
依赖: libnvinfer-doc (= 7.0.0-1+cuda10.0) 但是它将不会被安装
E: 无法修正错误,因为您要求某些软件包保持现状,就是它们破坏了软件包间的依赖关系。
错误原因:
如果安装tensorRT采用deb包安装,那么CUDA也必须采用deb包安装。
所以如果有tensorrt需求的同学下面cudnn tar方式安装,没有需求的同学两种方式随意。(我选择了cuda .run安装 cudnn tar安装 tensorrt tar安装/也可以三者都debian安装但是我没有用,因为debian安装cuda时会自动安装显卡驱动,考虑到版本对应可能要卸载掉自动安装的驱动再手动安装对应版本驱动)
cudnn各版本安装地址
从上述地址中选择图示3个包下载,然后安顺序安装这3个包
sudo dpkg -i libcudnn8_8.2.1.32-1+cuda11.3_amd64.deb
sudo dpkg -i libcudnn8-dev_8.2.1.32-1+cuda11.3_amd64.deb
sudo dpkg -i libcudnn8-samples_8.2.1.32-1+cuda11.3_amd64.deb
安装完后cd到如下文件夹
cd /usr/src/cudnn_samples_v8/mnistCUDNN/
然后依次运行如下命令进行编译
sudo make clean
sudo make
执行sudo make时可能会报错:参考编译mnistCUDNN时出错:fatal error: FreeImage.h: No such file or directory_勤奋的懒猫的博客-CSDN博客
mnistCUDNN sudo make
CUDA_VERSION is 11010
Linking agains cublasLt = true
CUDA VERSION: 11010
TARGET ARCH: x86_64
HOST_ARCH: x86_64
TARGET OS: linux
SMS: 35 50 53 60 61 62 70 72 75 80 86
test.c:1:10: fatal error: FreeImage.h: No such file or directory
1 | #include "FreeImage.h"
| ^~~~~~~~~~~~~
compilation terminated.
此时可运行
sudo apt-get install libfreeimage3 libfreeimage-dev
重新编译
sudo make clean
sudo make
然后运行
./mnistCUDNN
出现Test passed! 代表 cudnn 正常使用
查看Cudnn版本
cat /usr/local/cuda/include/cudnn_version.h | grep CUDNN_MAJOR -A 2
官网下载
cuDNN Archive | NVIDIA Developer
选cuDNN v8.2.1 (June 7th, 2021), for CUDA 11.x
(注tar方法安装所有的linux系统都用这一个,而debian方式针对每个系统都有对应的包)
下载完成后cd到下载的地址,将文件解压,或通过代码的方式解压:下第一条。
#filename=下载的tgz文件名
tar -xzvf ${filename}.tgz
解压后会出现cuda文件夹如果时右键提取的话文件夹名为cudnn-linux-x86_64_。。。。。。。,改为cuda即可(同时将其中的lib文件夹改名为lib64)
#将下载的目录cuda/include/cudnn所有.h文件copy到cuda安装路径(默认如下)下include文件夹
sudo cp cuda/include/cudnn*.h /usr/local/cuda/include
#将下载的目录cuda/lib64/libcudnn所有文件copy到cuda安装路径(默认如下)下lib64文件夹
sudo cp -P cuda/lib64/libcudnn* /usr/local/cuda/lib64
#将刚copy的所有文件皆设为任何人可读取 :
sudo chmod a+r /usr/local/cuda/include/cudnn*.h /usr/local/cuda/lib64/libcudnn*
# cudnn init
export CUDNN_HOME=/usr/local/cuda
export CPLUS_INCLUDE_PATH=${CUDNN_HOME}/include:$CPLUS_INCLUDE_PAT
注意不是在命令行直接输入,先gedit ~/.bashrc打开记事本,export添加环境变量,保存后
source ~/.bashrc激活,不会可以搜一下ubuntu添加环境变量。
安装成功,同样可以用cat查看cudnn版本。
https://developer.nvidia.com/nvidia-tensorrt-8x-download
filename=下载的tgz文件名
tar xzvf TensorRT-${filename}.tar.gz
#打开环境变量记事本
gedit ~/.bashrc
#将下面代码copy到记事本下面
#installpath=刚解压的文件路径
export TENSORRT_HOME=${installpath}
export PATH=${TENSORRT_HOME}/bin:$PATH
export LD_LIBRARY_PATH=${TENSORRT_HOME}/lib:$LD_LIBRARY_PATH
export LD_LIBRARY_PATH=${TENSORRT_HOME}/targets/x86_64-linux-gnu/lib:$LD_LIBRARY_PATH
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:${TENSORRT_HOME}/lib
export CPLUS_INCLUDE_PATH=${TENSORRT_HOME}/include:$CPLUS_INCLUDE_PATH
export CPLUS_INCLUDE_PATH=${TENSORRT_HOME}/targets/x86_64-linux-gnu/include:$CPLUS_INCLUDE_PATH
#激活环境变量
source ~/.bashrc
安装完成!
tensorrt文件夹里sample文件夹自带了很多样例可供测试是否安装成功。