当前位置:   article > 正文

『Linux笔记』Ubuntu16.04&18.04系统安装nvidia驱动,cuda,cudnn以及安装gcc!_linux cuda安装常见问题

linux cuda安装常见问题
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里面会自带一个比较新的显卡驱动,它可能并不是最新的显卡驱动,但是总的说来他还是可以使用的。

  • 找到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
  • 1
  • 但是大家千万不要按照这个提示进行安装,如果你安装这条命令的话,你的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
  • 1
  • 2
  • 3
  • 使配置文件生效,再次执行。
source /etc/profile
  • 1
  • 推荐这个方式配置:直接把cudnn里面的文件替换到cuda里面里。
export CUDA_HOME=/usr/local/cuda-10.0
export LD_LIBRARY_PATH=${CUDA_HOME}/lib64
export PATH=${CUDA_HOME}/bin:${PATH}
  • 1
  • 2
  • 3

六、安装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个作业
  • 1
  • 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;
}

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 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} )
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • Generate the executable
cd <DisplayImage_directory>
cmake .
make
  • 1
  • 2
  • 3
  • 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
  • 1
  • 好文章推荐: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
  • 1
  • 2
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++
  • 1
  • 2
  • 3
  • 4
  • 5

补充

在这里插入图片描述

  • 卸载安装过的驱动,执行命令:
sudo /usr/bin/nvidia-uninstall
sudo apt-get remove --purge nvidia*
  • 1
  • 2
  • 关闭图形化界面
wang@zhangkf:~$ sudo service lightdm stop
[sudo] password for zhang:
strong@foreverstrong:~$
  • 1
  • 2
  • 3
  • 卸载驱动
sudo /usr/bin/nvidia-uninstall
  • 1
  • 查看电脑支持的驱动版本:
sudo apt-cache search nvidia*
  • 1
  • 查看 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
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • BIOS 中务必关闭 Secure Boot。不然会出现 Unable to load the ‘nvidia-drm’ kernel module. 的报错。

参考文章:

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/羊村懒王/article/detail/221265
推荐阅读
相关标签
  

闽ICP备14008679号