CUDA驱动和CUDA Toolkit对应版本
可查阅官方文档。驱动是向下兼容的,其决定了可安装的CUDA Toolkit的最高版本。
安装与CUDA Toolkit对应的pytorch:
Previous PyTorch Versions | PyTorch An open source machine learning framework that accelerates the path from research prototyping to production deployment.https://pytorch.org/get-started/previous-versions/
当然也可以用Anaconda建立独立的环境包,各自使用。
一、驱动安装
方法一、驱动在线安装方式
1. 检查你的操作系统:
输入命令: uname -a
2. 查看是否有GPU显卡:
输入命令: lspci | grep -i nvidia
即通过获取显卡型号来确定支持CUDA
3. 自动检测你的显卡型号和推荐安装的驱动型号:
输入命令: ubuntu-drivers devices
从上图可知,目前系统的显卡是 Nvidia GeForce GTX1650 Ti,建议安装驱动程序是 nvidia-driver-515。
4. 安装对应的驱动
输入命令:
sudo apt-get install nvidia-driver-515
然后等驱动安装完成,设置环境变量:
sudo gedit ~/.bashrc
打开后在文件最后加入以下两行内容:
export LD_LIBRARY_PATH=/usr/lib/x86_64-linux-gnu:$LD_LIBRARY_PATH
export LD_LIBRARY_PATH=/lib/x86_64-linux-gnu:$LD_LIBRARY_PATH
保存退出。
也可以选择自动选择合适的显卡驱动命令:
sudo ubuntu-drivers autoinstall
最后重启就O了。
5. 最后检查是否安装成功
输入命令:nvidia-smi
方法二、驱动离线安装方式
1. nvidia官网https://www.nvidia.com/Download/index.aspx?lang=en-us下载显卡对应的驱动NVIDIA-Linux-x86_64-xxx.xx.run,拷贝到Linux某个目录后先改权限
chomod 777 NVIDIA-Linux-x86_64-xxx.xx.run
runtime(local)
wget https://developer.download.nvidia.com/compute/cuda/11.7.0/local_installers/cuda_11.7.0_515.43.04_linux.run
sudo sh cuda_11.7.0_515.43.04_linux.run
2. 禁用nouveau
注:nouveau是一个由爱好者组织的针对NVIDIA显卡开发第三方开源3D驱动的共同项目,并且nouveau是在完全没有得到NVIDIA任何支持的情况下进行开发的,与NVIDIA驱动存在冲突,并且会影响GPU运行的可靠性,建议使用NVIDIA GPU前先禁用该驱动。
(1)执行
lsmod|grep nouveau
查看驱动是否加载,应该是有显示东西。
(2)编辑文件 blacklist.conf :
sudo gedit /etc/modprobe.d/blacklist.conf
在文件的最后插入以下两行内容:
blacklist nouveau
options nouveau modeset=0
保存时命令窗口可能会出现以下提示:
** (gedit:4243): WARNING **: Set document metadata failed:不支持设置属性,无视此提示,保存后关闭文件,注意此时还需要执行命令使禁用nouveau真正生效。
(3)更新系统修改:
sudo update-initramfs -u
(4)重新启动,验证nouveau是否已经禁用:
lsmod | grep nouveau
注意:没有信息显示,说明 nouveau 已经被禁用,接下来可以安装 NVIDIA 显卡驱动。
3. 安装显卡驱动
进入tty文本模式
ctrl+alt+F1
关闭 X-window显示服务
sudo service lightdm stop
卸载原有驱动
sudo apt-get remove --purge nvidia* #提示有残留可以接着 sudo apt autoremove
给驱动run文件赋予执行权限:
sudo chmod 777 ~/NVIDIA-Linux-x86_64-xxx.xx.run
安装执行命令:
sudo ./NVIDIA-Linux-x86_64-xxx.xx.run -no-x-check -no-nouveau-check -no-opengl-files
注:只有禁用opengl这样安装才不会出现循环登陆的问题。
-no-x-check
:安装驱动时关闭X服务
-no-nouveau-check
:安装驱动时禁用nouveau
-no-opengl-files
:只安装驱动文件,不安装OpenGL文件
在安装过程中会出现:
(1)The distribution-provided pre-install script failed! Are you sure you want to continue? 选择 yes 继续。
(2)Would you like to register the kernel module souces with DKMS? This will allow DKMS to automatically build a new module, if you install a different kernel later? 选择NO继续
(3)Nvidia's 32-bit compatibility libraries? 选择 No 继续。
(4)Would you like to run the nvidia-xconfigutility to automatically update your x configuration so that the NVIDIA x driver will be used when you restart x? Any pre-existing x confile will be backed up. 选择 Yes 继续
安装后在重新启动X-window显示服务
sudo service lightdm start
退出tty模式进入图形界面
ctrl+alt+F7
4. 最后检查是否安装成功
输入命令:nvidia-smi
二、CUDA安装
进入 CUDA Toolkit 11.7 Update 1 Downloads | NVIDIA Developer ,依次选择 CUDA类型然后下载即可
上步中已经安装了NVIDIA显卡驱动,故此步骤 CUDA 的安装包括了 nvidia 显卡驱动的安装,此时注意你是否已经安装过 nvidia 显卡驱动。若无法保证已安装的 nvidia 显卡驱动一定正确,那就卸载掉之前安装的 nvidia 显卡驱动(卸载方法链接),然后开始安装 CUDA 11.7;若可以保证已安装正确的 nvidia 显卡驱动,则直接开始安装 CUDA 11.7,在安装过程中选择不再安装 nvidia 显卡驱动。
进入CUDA安装文件路径下,输入:
sudo sh cuda_11.7.0_515.43.04_linux.run
然后按照提示操作即可,先输入 accept ,然后让选择是否安装 nvidia 驱动,剩下的选择则都输入“y”确认安装或确认默认路径安装,开始安装,此时若出现安装失败提示则可能为在已安装 nvidia 驱动的情况下重复再次安装 nvidia 驱动,安装完成后输入重启命令重启。
接下来配置 CUDA 环境变量,与第3步相同,使用 gedit 命令打开配置文件:
sudo gedit ~/.bashrc
在该文件最后加入以下两行并保存:
export PATH=/usr/local/cuda-11.7/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/cuda-11.7/lib64:$LD_LIBRARY_PATH
使该配置生效:
source ~/.bashrc
三、安装cudnn
从NVIDIA官网的cudnn下载页面上下载与安装CUDA对应的cudnn,网址为https://developer.nvidia.com/rdp/cudnn-download。选择Ubuntu22.04系统下,CUDA11.7对应的cuDNN v8.4.1.5版本,下载得到 cudnn-linux-x86_64-8.4.1.50_cuda11.6-archive.tar.xz,
然后解压
tar -zxvf cudnn-linux-x86_64-8.4.1.50_cuda11.6-archive.tar.xz
然后,使用下面两条指令复制cuda
文件夹下的文件到/usr/local/cuda-11.7/lib64/
和/usr/local/cuda-11.7/include/
中
cp cuda/lib64/* /usr/local/cuda-11.7/lib64/
cp cuda/include/* /usr/local/cuda-11.7/include/
拷贝完成后,我们可以使用如下的命令查看cuDNN的信息:
cat /usr/local/cuda-11.7/include/cudnn_version.h | grep CUDNN_MAJOR -A 2
四、安装opencv4.5.3
第一步:下载opencv
下载地址:GitHub - opencv/opencv: Open Source Computer Vision Library
选择4.5.3版本,下载源码。
第二步:解压
unzip opencv-4.5.3.zip
第三步:安装一些依赖文件
sudo apt-get install cmake
sudo apt-get install build-essential
sudo apt-get install cmake git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev
sudo apt-get install python-dev python-numpy libtbb2 libtbb-dev libjpeg-dev libpng-dev libtiff-dev libjasper-dev libdc1394-22-dev
第四步:开始建立文件夹编译
mkdir -p build && cd build
cmake ../opencv-4.5.3
cmake --build .
第五步:默认安装
sudo make install
默认的安装地址:/user/local/lib
第六步:环境变量配置
sudo gedit /etc/ld.so.conf
在文件中添加一行: include /usr/local/lib
sudo ldconfig
修改bash.bashrc文件
sudo gedit /etc/bash.bashrc
在文件末尾添加:
-
PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig
-
export PKG_CONFIG_PATH
运行下面的命令使之生效。
source /etc/bash.bashrc
测试:
pkg-config opencv –modversion
没有信息输出那么就是成功了。
也可以去编译源码里面的example来验证。命令如下所示:
cd samples
cd cpp
cd example_cmake
cmake .
make
./opencv_example
五、CUDA的卸载
进入到/usr/local/cuda-11.7/bin
目录下,而不是cuda
目录。然后打开终端,输入sudo ./cuda-uninstaller
输入命令后,弹出如下界面,通过回车键
选中三个选项,最后选中Done
。执行完下面指令后,上面的cuda
文件就删除了。
六、TensorRT安装
1. 下载TensorRT并解压
TensorRT官网下载链接
下载得到 TensorRT-8.4.1.5.Linux.x86_64-gnu.cuda-11.6.cudnn8.4.tar.gz
然后解压 tar -xzvf TensorRT-8.4.1.5.Linux.x86_64-gnu.cuda-11.6.cudnn8.4.tar.gz
修改环境变量:
sudo gedit ~/.bashrc
在文件末尾加入
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/home/stand/Software/TensorRT-8.4.1.5/lib
source ~/.bashrc
2. 测试样例是否安装成功
cd TensorRT-8.4.1.5/samples/sampleMNIST
make -j16
cd ../../bin/
./sample_mnist
出现问题1:
libnvinfer.so.8: cannot open shared object file: No such file or directory
此时需要加入环境配置
sudo gedit /etc/ld.so.conf
添加 TensorRT lib 的路径,如下:
/home/stand/Software/TensorRT-8.4.1.5/lib
sudo ldconfig
问题2:sudo ldconfig出现下图错误
对上面文件创建软连接:
sudo ln -sf /usr/local/cuda/targets/x86_64-linux/lib/libcudnn.so.8.4.1 /usr/local/cuda/targets/x86_64-linux/lib/libcudnn.so.8
问题3:再次执行 ./sample_mnist
找不见libnvinfer_builder_resource.so.8.4.1
sudo cp ../TensorRT-8.4.1.5/lib/libnvinfer_builder_resource.so.8.4.1 /usr/lib
即:
把TensorRT根目录中的/lib/下面的文件复制到 /usr/lib/下,
把TensorRT根目录中的/include/下面的文件复制到 /usr/include/下
3、安装python包
进入TensorRT根目录下的python/目录下,可以看到多个版本的python包。
在终端执行python3,查看自己的Python版本,可以看到我的是python3.10版,所以这里选择安装tensorrt-8.4.1.5-cp310-none-linux_x86_64.whl
执行安装命令:
pip install --force-reinstall tensorrt-8.4.1.5-cp310-none-linux_x86_64.whl
测试:
python3
import tensorrt
tensorrt.__version__
可以查看到tensorrt版本号:
‘8.4.1.5’
OK!