Ubuntu16.04&18.04系统安装nvidia驱动,cuda,cudnn! |
文章目录
一、预备工作
- 查看系统的型号,可以看到系统为ubuntu16.04,64位的操作系统。
- 列出系统的所有显卡型号,通过使用lspci命令。
1.1. 查看检测到的驱动程序&卸载驱动
Ubuntu更新nvidia显卡驱动:https://blog.csdn.net/m0_38068876/article/details/127851813
显卡、显卡驱动版本、cuda版本和Pytorch相互之间的依赖关系:https://blog.csdn.net/qq_41888086/article/details/120496474
二、首先cuda的安装
我们这里不需要人为的安装一个显卡的驱动,因为cuda里面会自带一个比较新的显卡驱动,它可能并不是最新的显卡驱动,但是总的说来他还是可以使用的。
-
如果想单独安装可以参考这篇博客:Ubuntu16.04 RTX2080 安装NVIDIA驱动+cuda10.0+cudnn7.3.1
-
首先在google里面搜索cuda10.0。链接:cuda10
-
https://docs.nvidia.com/deeplearning/cudnn/install-guide/index.html#prerequisites
- 找到cuda10.0
- 根据自己的系统选择合适的版本,我的选择如下,下载即可。
- 下载好之后。这里我是在windows中下载上传到服务器上面。
- 然后打开命令行,进入当前下载的文件目录下面,然后输入刚才的第一个命令。
- 现在第一条命令已经执行完成了,执行完之后有一个提示,我标记出来了。这个提示实际就是第二条命令。原来第二条命令中version是空着让自己填写的。所以如果你不知道version是多少,可以直接复制这个提示命令在下面执行。
- 现在只需要sudo apt-get update来更新一下源的列表,下面我们就可以安装cuda了。
- 执行结束之后。会显示上图中的。最后执行第四条命令,sudo apt-get install cuda。现在才是我们安装的主要的命令。安装完成之后显示如下:
我们安装完cuda之后,在linux环境下面,电脑是需要重新启动的,如果这里不重启的话,直接nvidia-可以看到已经有smi这个命令了。但是nvidia-smi这个命令是不能和显卡进行交互的。所以出现这个问题不需要在下载一个nvidia了,这个时候只需要重启一下系统。
三、其次cuda编译器nvcc安装
- 首先百度搜素cudnn,可能弹出一个让你注册登陆的界面,自己注册登陆就可以啦。
- 下载好之后,此时后缀名自为:.solitairetheme8。我们更改后缀名字卫.tgz。命令如下:
- 然后解压到当前目录下面。
- 大家在安装完cuda之后,通过nvidia-smi查看一下。
- 在我们验证完驱动安装好之后,我们来看一下cuda本身也就是nvcc编译器有没有安装好,可以发现这个命令提示nvcc是没有安装的,下面的提示:
sudo apt install nvidia-cuda-toolkit
- 但是大家千万不要按照这个提示进行安装,如果你安装这条命令的话,你的cuda的版本是ubuntu自己维护的一个比较小的一个版本,像8点几啊,9点几啊,这样的一个小版本。这里并不是nvcc和cuda没有安装好,而是在我们10.0的一个cuda中间它可能更新了一下法则,他在一个16.04的ubuntu和cuda中间,它没有把nvcc这个命令更新到我们的PATH中间去,也就是说我们在终端里敲击任何一条命令,它其实对应着一个位置的程序,那这个未知去哪里检索呢?通过环境变量PATH,和我们windows是一样的,我们只需要把相应的路径添加到PATH中间去,它就可以被搜索到。
- 首先我们找一下nvcc命令所在的位置,可以发现cuda-10.0已经存在了。
- 我们进入到cuda-10.0/bin的目录下面去,ls一下可以看到nvcc这个命令已经存在。
- 我们可以./nvcc执行这个nvcc命令。我们需要把这个路径添加到PATH环境变量中间去。
- 可以进入到 vim ~/.bashrc这个文件下,这个文件就是保存当前用户下的PATH,我们把PATHt添加一下,然后拼接到$PATH (表示把以前的PAHT环境变量引进来,这样它会在PATH前面添加这样一个路径,保证不影响之前的PATH内容,又把我们新的程序路径添加到PATH中间去) 把添加nvcc所在的路径,具体如下,然后保存退出编辑。但是保存之后还没有刷新,我们使用source命令刷新一下,source ./.bashrc刷新一下。
- 现在再输入nvcc就可以搜索到了,为什么能够搜索到呢?我们看一下PATH,已经存在刚才的路径了。
- 到现在为止我们的一个显卡驱动已经安装好了,而且我们的cuda以及cuda的编译器nvcc也已经安装好了,
四、安装cudnn
NVIDIA Docs Hub NVIDIA cuDNN NVIDIA cuDNN Installation Guide:https://docs.nvidia.com/deeplearning/cudnn/install-guide/index.html
- 在第三部分中的cudnn解压完之后,我们来一下这个文件。
- 现在我们只需要把这个库的路径指定出来就可以了。也就是把这个库告诉我们的环境。怎么告诉它呢?我们只需要设定一个环境变量。我们之前设置的是PATH环境变量,现在设置一个新的环境变量为$LD_LIBRARY_PATH,现在这个环境变量为空,现在只需要把我们的环境变告诉cudnn。和刚才方法一样的。如下图:里面是个库的路径。
- 同样,保存之后还没有刷新,我们使用source命令刷新一下,source ./.bashrc刷新一下。
- 到这里为止,cudnn也已经安装好了。
五、cuda出错: libcudart.so.10.0: cannot open shared object file
- 问题描述: error while loading shared libraries: libcudart.so.8.0: cannot open shared object file: No such file or directory
- 解决办法:首先确认/etc/profile中的路径包含了cuda10.0的安装路径及相应的库文件
export PATH=$PATH:/usr/local/cuda-10.0/bin
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/cuda-10.0/lib64
export LIBRARY_PATH=$LIBRARY_PATH:/usr/local/cuda-10.0/lib64
- 使配置文件生效,再次执行。
source /etc/profile
- 推荐这个方式配置:直接把cudnn里面的文件替换到cuda里面里。
export CUDA_HOME=/usr/local/cuda-10.0
export LD_LIBRARY_PATH=${CUDA_HOME}/lib64
export PATH=${CUDA_HOME}/bin:${PATH}
六、安装Anaconda,Tensorflow和Pytorch
七、opencv安装
7.1、安装过程
- 首先进到opencv的官网(这里我安装的是4.1.0的版本)
- 官网详细步骤:https://docs.opencv.org/master/d7/d9f/tutorial_linux_install.html
- 然后
- 再然后
- Go to our downloads page.选择合适的版本
- 下载好解压之后,进入opencv文件夹;创建build文件夹。
- 安装依赖关系,看刚才的网址;
- 执行结束之后:显示如下就是安装成功!
- 接下来make一下,这个时间比较久;
直接make或者make -j16 #并行运行7个作业
- opencv安装视频参考: https://www.bilibili.com/video/av50744957?from=search&seid=3831921273561326166
- 安装错误:https://blog.csdn.net/ZT0518/article/details/83445308; https://www.cnblogs.com/liutianchen/p/6089878.html
7.2、测试例子
- 首先下载一张图片,这里的我的图片是one.png
- Create a program using OpenCV:DisplayImage.cpp
#include <stdio.h>
#include <opencv2/opencv.hpp>
using namespace cv;
int main(int argc, char** argv )
{
if ( argc != 2 )
{
printf("usage: DisplayImage.out ./one.png\n");
return -1;
}
Mat image;
image = imread( argv[1], 1 );
if ( !image.data )
{
printf("No image data \n");
return -1;
}
namedWindow("Display Image", WINDOW_AUTOSIZE );
imshow("Display Image", image);
waitKey(0);
return 0;
}
- Create a CMake file:CMakeLists.txt
cmake_minimum_required(VERSION 2.8)
project( DisplayImage )
find_package( OpenCV REQUIRED )
include_directories( ${OpenCV_INCLUDE_DIRS} )
add_executable( DisplayImage DisplayImage.cpp )
target_link_libraries( DisplayImage ${OpenCV_LIBS} )
- Generate the executable
cd <DisplayImage_directory>
cmake .
make
- Result
By now you should have an executable (called DisplayImage in this case). You just have to run it giving an image location as an argument, i.e.:
./DisplayImage lena.jpg
- 好文章推荐:https://www.pyimagesearch.com/2018/08/15/how-to-install-opencv-4-on-ubuntu/
八、Ubuntu降级gcc为4.8版本
8.1. 下载gcc/g++ 4.8
$ sudo apt-get install -y gcc-4.8
$ sudo apt-get install -y g++-4.8
8.2. 链接gcc/g++实现降级
$ cd /usr/bin
$ sudo rm gcc
$ sudo ln -s gcc-4.8 gcc
$ sudo rm g++
$ sudo ln -s g++-4.8 g++
补充
- https://blog.csdn.net/chengyq116/article/details/95256643
- 手动搜索驱动
- 阿里镜像站
- 更新并升级
sudo apt-get update && sudo apt-get upgrade
- 卸载安装过的驱动,执行命令:
sudo /usr/bin/nvidia-uninstall
sudo apt-get remove --purge nvidia*
- 关闭图形化界面
wang@zhangkf:~$ sudo service lightdm stop
[sudo] password for zhang:
strong@foreverstrong:~$
- 卸载驱动
sudo /usr/bin/nvidia-uninstall
- 查看电脑支持的驱动版本:
sudo apt-cache search nvidia*
- 查看 Ubuntu 推荐的驱动版本:
ubuntu-drivers devices
== /sys/devices/pci0000:16/0000:16:00.0/0000:17:00.0/0000:18:10.0/0000:19:00.0 ==
manual_install: True
modalias : pci:v000010DEd00001E07sv000010DEsd000012A4bc03sc00i00
vendor : NVIDIA Corporation
driver : nvidia-418 - third-party free
driver : nvidia-430 - third-party free recommended
driver : nvidia-410 - third-party free
driver : xserver-xorg-video-nouveau - distro free builtin
driver : nvidia-415 - third-party free
- BIOS 中务必关闭 Secure Boot。不然会出现 Unable to load the ‘nvidia-drm’ kernel module. 的报错。
参考文章:
- tensorflow2.0介绍以及安装!
- Win10系统下使用Anaconda安装TensorFlow以及linux上面卸载Anaconda操作
- ubuntu16.04中Anaconda下安装Pytorch(基于conda或pip)
- 若是想自己单独安装驱动可以参考这个此链接
- 或者https://www.cnblogs.com/myblog1993/p/9284071.html