ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

显卡+cuda+cudnn+tensorflow安装教程

2021-04-12 18:00:03  阅读:199  来源: 互联网

标签:sudo cudnn cuda 版本 显卡 驱动 安装


文章目录

1. 先修知识

1.1 显卡

全称显示接口卡,又称显示适配器,用途是将计算机系统所需要的显示信息进行转换驱动显示器,并向显示器提供逐行或隔行扫描信号,控制显示器的正确显示,

显卡接在电脑主板上,它将电脑的数字信号转换成模拟信号让显示器显示出来

原始的显卡一般都是集成在主板上,只完成最基本的信号输出工作,并不用来处理数据。随着显卡的迅速发展,就出现了GPU的概念,显卡也分为独立显卡和集成显卡。

1.2 显卡驱动

显卡驱动就是用来驱动显卡的程序,它是硬件所对应的软件。驱动程序即添加到操作系统中的一小块代码,其中包含有关硬件设备的信息。有了此信息,计算机就可以与设备进行通信。驱动程序是硬件厂商根据操作系统编写的配置文件,可以说没有驱动程序,计算机中的硬件就无法工作。操作系统不同,硬件的驱动程序也不同。

1.3 Cuda

是显卡厂商NVIDIA推出的运算平台。 CUDA™是一种由NVIDIA推出的通用并行计算架构,该架构使GPU能够解决复杂的计算问题。 它包含了CUDA指令集架构(ISA)以及GPU内部的并行计算引擎。CUDA在拥有开发套件(CUDA Toolkit, NVIDIA GPU Computing SDK以及NSight等等)注意,并不是所有GPU都支持CUDA,实际上CUDA是NAVIDIA推出来只用于自己GPU的并行计算框架

1.4 Cudnn

NVIDIA cuDNN是用于深度神经网络的GPU加速库。它强调性能、易用性和低内存开销。NVIDIA cuDNN可以集成到更高级别的机器学习框架中,如谷歌的Tensorflow、加州大学伯克利分校的流行caffe软件。简单的插入式设计可以让开发人员专注于设计和实现神经网络模型,而不是简单调整性能,同时还可以在GPU上实现高性能现代并行计算。

1.5 GPU

图形处理器,又称显示核心、视觉处理器、显示芯片,GPU是显卡上的一块芯片,是显卡的中央处理器,是一种专门做图像和图形相关运算工作的微处理器,GPU使显卡减少了对CPU的依赖,并进行部分原本CPU的工作。CPU负责逻辑性强的事物处理和串行计算,GPU则专注于执行高度线程化的并行处理任务(大规模计算任务)

1.6 Nouveau

这是一个旨在为nvidia的GPU建立高质量的,免费自由的开源驱动项目,nouveau[nuvo]与new谐音, 是Linux KMS驱动的一部份,最新的版本在Linux内核中支持nvidia的帕斯卡构架

1.7 GCC是GNU编译器套件

它包括了CC++Objective-CFortranJavaAdaGo语言D语言的前端,也包括了这些语言的库(如libstdc++、libgcj等等),个用于linux系统下编程的编译器 是一个用于编程开发的自由编译器

2. 检查本地配置

在win10下发现显示适配器只有一个Intel® HD Graphics 630,在安装ubuntu双系统之前还有NAVIDIA,因 为在bios-onfiguration-graphic device-uMa only,改成只使用集成的显卡显卡:GTX1050Ti 4G
CPU:Intel(R)Core(TM)i7-7700HQ CPU @2.8GHZ 2.8GHZ

3.NVIDIA显卡驱动安装

安装英伟达显卡驱动的方法主要有三种:

使用标准仓库自动化安装;

使用官 方的NVIDIA驱动进行手动安装;

使用PPA仓库自动化安装。

​ 主要要清楚对应显卡驱动的稳定版本

3.1 官网下载run文件

 https://www.geforce.cn/drivers

选择对应的GPU卡,不要下载RHEL专用驱动,驱动的版本与cuda、cudnn无联系,可以安装电脑对应的驱动或者最新的驱动

3.2 用指令查看版本

查看本电脑可用的驱动版本

 ubuntu-drivers devices

查看显卡型号

lspci | grep -i nvidia

查看驱动版本

sudo dpkg --list | grep nvidia-*

3.3 删除旧的显卡驱动

Linux默认安装的显卡驱动不是英伟达的驱动,所以先把旧得驱动删除掉

 sudo apt-get purge remove  nvidia-*

3.4 禁止自带的nouveau nvidia驱动

ubuntu自带的nouveau驱动会影响cuda安装,不当操作会导致黑屏和登陆循环。输 入代码后没有输出结果。可用修改blacklist.conf文件,不允许修改则先用chmode修改属性

修改属性

 sudo chmod 666 /etc/modprobe.d/blacklist.conf 

直接打开blacklist文件,在文件最末尾加入下面两行代码行,然后点击保存,最后关闭文件。(如果终端显示不支持操作,不用管它,还是能成的。)

blacklist nouveau 

options nouveau modeset=0 

然后记得将文件权限复原

sudo chmod 644 /etc/modprobe.d/blacklist.conf

更新

sudo update-initramfs -u

在终端输入以下代码重启电脑,完成修改

sudo reboot

检测电脑是否已经屏蔽成功

lsmod | grep nouveau

或者直接删除

   cd /lib/modules/3.0.0-12-generic/kernel/drivers/gpu/drm/nouveau/

   rm -rf nouveau.ko

   rm -rf nouveau.ko.org //(nouveau.ko.org 此文件一般是隐藏的)

之后跟随更新及其以后的步骤相同

3.5 修改bios设置

Secure Boot选择Disabled
关闭图形化界面

sudo service lightdm stop

 sudo systemctl stop gdm.server

 sudo init 3

ctal+alt+f1,登录进入到字符界面

3.6 安装驱动

 sudo chmod a+x NVIDIA-Linux-x86_64-415.13.run //获取权限

 sudo ./NVIDIA-Linux-x86_64-415.13.run //安装驱动

3.7 安装结束后重启电脑,再查看是否安装成功

sudo nvidia-smi

sudo nvidia-settings

也可以查看系统配置—详细信息—关于,查看图像处理是否对应于自己的独立显卡

3.8 重新打开桌面

 service lightdm start

 sudo systemctl set-default multi-user.target #默认进入字符界面

 sudo systemctl set-default graphical.target  #默认进入图形界面

3.9 或使用PPA仓库自动化安装

同样需要在bios禁用secure boot,但是非手动安装不需要禁用nouveau

sudo apt-get purge nvidia-* # 删除可能存在的已有驱动,但是此处没有接 

关闭图形界面

sudo add-apt-repository ppa:graphics-drivers/ppa # 添加第三方驱动源

sudo apt-get update # 更新源,运行

sudo apt-cache search nvidia-* # 查询nvidia驱动可用版本

sudo apt-get install nvidia-390 # 这里选择安装nvidia-390

sudo reboot //重启

重启后执行下面的步骤

检验是否安装成功

nvidia-smi  

nvidia-settings

忘记在哪里看的图了,侵权删
在这里插入图片描述

4. 安装CUDA

CUDA9.0要求GCC版本是5.x或者6.x,其他版本不可以

采用conda安装tensorflow-gpu不需要单独安装cuda和cudnn,conda会下载并安装好,不需要考虑版本依赖的问题

安装cuda需要根据cuDNN 来选择,首先,cuda官网中支持ubumtu18.04的最低版本为cuda10.0,但系统也可以兼容低版本的

安装cuda需要查清楚所要安装的tensorflow版本对应的uda版本,可以通过navidia开发者官网搜索

查看CUDA版本,进入安装目录,执行cat version.txt

4.1 在线安装

(deb[network])比下载安装包(deb[local])更快更加稳妥,安装过程会帮我们解决各种依赖问题
到下载路径下执行建议的命令

sudo dpkg -i cuda-repo-ubuntu1804_10.1.105-1_amd64.deb

sudo apt-key adv --fetch-keys https://developer.download.nvidia.com/compute/cuda/repos/ubuntu1804/x86_64/7fa2af80.pub

sudo apt-get update

sudo apt-get install cuda

执行第一句时,会提示添加apt-key,把提示的命令输一下,继续运行即可.

到这里,执行nvcc -V 提示没有cuda tool,需要将cuda安装路径加入环境变量。

cuda路径可能有所不同,可以cd过去确认

执行

 gedit ~/.bashrc

在文件最后添加

export PATH=/usr/local/cuda/bin:$PATH

export LD_LIBRARY_PATH=/usr/local/cuda/lib64:$LD_LIBRARY_PATH

export CUDA_HOME=/usr/local/cuda

在写的时候export PATH=/usr/local/cuda/binKaTeX parse error: Expected '}', got 'EOF' at end of input: {PATH:+:{PATH}},没有将cuda写成相应的cuda版本。

如export PATH=/usr/local/cuda9.0/binKaTeX parse error: Expected '}', got 'EOF' at end of input: {PATH:+:{PATH}}。

这样写的好处是,我们只要将usr/local目录下的不同版本的cuda通过软连接,去链接就可以了,不用再每次安装不同的cuda后,去修改相应的.bashrc文件

如下命令建立一个cuda–cuda-9.0

sudo ln -s cuda-9.0 cuda

使环境变量在当前用户下永久有效

source ~/.bashrc

立即生效

nvcc -V

输出如下

nvcc: NVIDIA (R) Cuda compiler driver

Copyright (c) 2005-2018 NVIDIA Corporation

Built on Sat_Aug_25_21:08:01_CDT_2018

Cuda compilation tools, release 10.0, V10.0.130

4.2 run文件本地安装runfile(local)

下载CUDA 下载地址:https://developer.nvidia.com/cuda-toolkit-archive**,**选择9.1

GCC **降级(实际上,截止最迟18年五月份,cuda9.0已经支持gcc7.0)

由于CUDA 9.0仅支持GCC 6.0及以下版本,而Ubuntu 18.04预装GCC版本为7.3

故手动进行降级:

sudo apt-get install gcc-4.8

sudo apt-get install g++-4.8

装完后进入到/usr/bin目录下

$ls -l gcc*

会显示以下结果

lrwxrwxrwx 1 root root 7th May 16 18:16 /usr/bin/gcc -> gcc-7.3

发现gcc链接到gcc-7.0, 需要将它改为链接到gcc-4.8,方法如下:

sudo mv gcc gcc.bak //备份

sudo ln -s gcc-4.8 gcc //重新链接

同理,对g++也做同样的修改:

ls -l g++*

lrwxrwxrwx 1 root root 7th May 15:17 g++ -> g++-7.3

需要将g++链接改为g+±4.8:

sudo mv g++ g++.bak

sudo ln -s g++-4.8 g++

再查看gcc和g++版本号:

gcc -v g++ -v

均显示gcc version 4.8 ,说明gcc 4.8安装成功。

安装cuda 及其补丁

输入命令安装Base Installer:

sudo sh cuda_9.1.85_387.26_linux.run

需要注意的是,之前已经安装过显卡驱动程序,故在提问是否安装显卡驱动时选择no,其他 选择默认路径或者yes即可

然后,继续执行以下操作安装3个 patch :

sudo sh cuda_9.1.85.1_linux.run

sudo sh cuda_9.1.85.2_linux.run

sudo sh cuda_9.1.85.3_linux.run

安装完毕之后,将以下两条加入.bashrc文件中.

sudo vim ~/.bashrc

export PATH=/usr/local/cuda-9.1/bin${PATH:+:$PATH}}   

注意,根据自己的版本,修改cuda-9.2/9.0…

export LD_LIBRARY_PATH=/usr/local/cuda-9.1/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}

注意,根据自己的版本,修改cuda-9.2/9.0…

OK ,那么,到这一步,cuda 就安装完成了

某些参考来自来自 https://www.linuxidc.com/Linux/2019-02/157168.htm

5.安装CUDNN

根据cuDNN 的版本,目前,较为完善的,是cuDNN v7.0.5 ,其适用于 CUDA 9.1 版本,所以,咱们在选择安装cuda的时候,选择 CUDA 9.1。

查看CUDNN版本,进入安装目录,执行

cat /usr/local/cuda/include/cudnn.h | grep CUDNN_MAJOR -A 2 

如果你安装错了,可以通过如下命令消除,根据你安装文件夹的不同做相应调整。

sudo rm /usr/local/cuda/include/cudnn.h 

sudo rm /usr/local/cuda/lib64/libcudnn*

5. tensorflow

注意tensorflow版本请和cuda、cudnn配套,但是如果使用conda管理的话旧可以不用考虑搭配,其会安装好依赖

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-GkeBY7NS-1618220784385)(D:\sum Up and Share\电脑系统\附图\1.png)]

要提醒你要注意的一点是,安装tensorflow时,不要忘记后面的-gpu选项。

sudo pip install tensorflow-gpu

Tensorflow 和tensorflow*-gpu的区别

Tensorflow-gpu跑的时候会调用gpu跑而不是在cpu上跑,据说这两个共存会有麻烦,而cpu版的tensorflow只会在CPU跑而不会在GPU跑,gpu版的tensorflow比普通版多了CUDA/CuDNN的kernel definition,也就是各种运算的高性能GPU实现。当然基于Eigen库的多线程CPU运算实现在tensorflow-gpu里面也有

**error**:CUDA driver version is insufficient for CUDA runtime version

原因:cuda驱动程序版本和cuda运行时版本不匹配,如果用conda install tensorflow-gpu 安装就会出现这个问题,这个会导致相应的cudnn和cuda Toolkit都会自动下载最新版的,而这些最新版的不一定和自己的gpu匹配。

解决:cuda的驱动程序版本就是NVIDIA GPU驱动程序版本

标签:sudo,cudnn,cuda,版本,显卡,驱动,安装
来源: https://blog.csdn.net/weixin_40619926/article/details/115631061

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有