ubuntu 16.04系统中nvidai、cuda、cudnn安装及注意事项

一、NVIDAI driver显卡驱动安装

 

首先看一下笔记本显卡型号

lspci |grep VGA  

 

在命令行敲过这个命令后,有些台式机或笔记本会显示nvidia显卡,如下所示:

 

image

 

但是我的笔记本电脑 只显示nouveau卡(集成显卡)

 

需要执行下面命令才能找到nvidia显卡

lspci |grep 3D

 

a.下载nvidia driver 安装包

https://www.geforce.cn/drivers/beta-legacy

 

下载cuda 安装包

https://developer.nvidia.com/cuda-toolkit-archive

 

cuda和nvidia驱动的版本要求如下:

image

 

在下载cuda安装文件的时候,在那个界面的最下方有一个安装指导书( Installation Guide for Linux),按照官网的指导应该是可以正确安装的。

image

在这个文档中一般会说明cuda要求的系统内核的最低版本,cuda9.0要求系统内核版本为4.4,有些情况下需要降低系统内核才能安装成功,降低系统内核版本的方法详见:https://jingyan.baidu.com/article/5552ef47fe57b6518ffbc991.html

b.禁用nouveau卡

 

在/etc/modprobe.d中创建文件blacklist-nouveau.conf

sudo vim /etc/modprobe.d/blacklist-nouveau.conf

 

在文件中输入以下内容:

blacklist nouveau 
options nouveau modeset=0

 

执行

sudo update-initramfs -u

 

更新状态,查看nouveau是否已经成功禁用

lsmod | grep nouveau


若无内容输出,则禁用成功,若仍有内容输出,请检查上述操作,并重复。

c.安装nvidia驱动

 

ctrl+alt+F1 进入命令行界面,登录账号密码进入系统。

 

关闭图形化界面,否则系统不能正常安装驱动

sudo service lightdm stop

 

卸载系统残留的nvidia驱动:

sudo /usr/bin/nvidia-uninstall
sudo apt-get remove --purge nvidia*

 

给刚才下载的nvidia 驱动赋予权限

sudo chmod  a+x NVIDIA-Linux-x86_64-418.56.run

 

安装nvidia驱动: 注意: --no-opengl-files 选项使系统不会在登录界面反复循环

sudo ./NVIDIA-Linux-x86_64-396.18.run  -no-opengl-files

 

安装过程中的选项:

The distribution-provided pre-install script failed! Are you sure you want to continue? 选择 yes 继续。

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 继续。

 

问题没记住,选项是:install without signing

 

问题大概是:Nvidia’s 32-bit compatibility libraries? 选择 No 继续。

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 继续。(来自博客https://blog.csdn.net/lihe4151021/article/details/90083431)

 

打开图形化界面:

sudo service lightdm start

 

打开一个terminal,输入

nvidia-smi
nvidia-settings 

 

出现一下信息:代表安装成功

image

 

image

 

若出现下面的问题:

NVIDIA-SMI has failed because it couldn‘t communicate with NVIDIA driver. Make sure that the latest driver is installed and running.

 

则输入下面的命令, 其中390.129 修改成自己显卡驱动版本,查看方式 cd /usr/src 然后输入ls ,就可以看到产看到自己显卡驱动的版本。

sudo apt-get install dkms
sudo dkms install -m nvidia -v 390.129

 

一般人到这里显卡驱动就完全安装完成了,但是:当输入nvidia-settings 时,我的电脑弹出一个对话框:You do not appear to be using the NVIDIA X driver. Please edit your X config。我也不知道什么问题,后来也没有解决,我跳过了这个问题,直接安装cuda。

 

二、安装与卸载cuda

 

注意:cuda安装版本一定要与显卡驱动版本相对应!!!

 

a.安装cuda

 

下载对应版本地址:https://developer.nvidia.com/cuda-toolkit-archive

 

ctrl+alt+F1 进入命令行界面,登录账号密码进入系统。

 

关闭图形化形化界面

sudo service lightdm stop

 

安装cuda:

sudo sh cuda_8.0.61_375.26_linux.run

 

一直按回车,直至100%。

键入:accept

和一系列yes

询问是否安装driver 一般是键入 no, 因为上面已经安装成功了。

(但是我考虑我以前安装的那个驱动没有成功,我就键入了yes.,一般情况如果安装了驱动,千万不要键入yes!!!!!)

 

重启图形化界面:

sudo service lightdm start

 

设置环境变量:

 

打开主目录下的 .bashrc文件添加如下路径,例如我的.bashrc文件在/home/wangyuanwei下,如果没有找到,则按Ctrl+H键显示隐藏文件。

 

在文件最后加入如下语句,注意路径中cuda 版本(比如 cuda-8.0)要根据自己安装的cuda版本进行替换。

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/cuda-8.0/lib64
export PATH=$PATH:/usr/local/cuda-8.0/bin
export CUDA_HOME=$CUDA_HOME:/usr/local/cuda-8.0

 

在命令行敲入如下命令,更新环境变量:

source ~/.bashrc

 

在命令行敲入如下命令:

nvcc --version

若显示:

 

image

 

则说明安装成功。

 

b.卸载CUDA

为什么一开始我就要卸载CUDA呢,这是因为笔者是换了显卡RTX2070,原本就安装了CUDA 8.0 和 CUDNN 7.0.5不能够正常使用,笔者需要安装CUDA 10.0 和 CUDNN 7.4.2,所以要先卸载原来的CUDA。注意以下的命令都是在root用户下操作的。

 

卸载CUDA很简单,一条命令就可以了,主要执行的是CUDA自带的卸载脚本,读者要根据自己的cuda版本找到卸载脚本:

sudo /usr/local/cuda-8.0/bin/uninstall_cuda_8.0.pl

 

卸载之后,还有一些残留的文件夹,之前安装的是CUDA 8.0。可以一并删除:

sudo rm -rf /usr/local/cuda-8.0/

三、安装cudnn

 

注意:cudnn版本一定要与python版本对应!!!

 

a、TensorFlow与Python, CUDA, cuDNN的版本对应关系

 

VersionPython versionCompilerBuild toolscuDNNCUDA
tensorflow_gpu-1.13.12.7, 3.3-3.6GCC 4.8Bazel 0.19.27.410.0
tensorflow_gpu-1.12.02.7, 3.3-3.6GCC 4.8Bazel 0.15.079
tensorflow_gpu-1.11.02.7, 3.3-3.6GCC 4.8Bazel 0.15.079
tensorflow_gpu-1.10.02.7, 3.3-3.6GCC 4.8Bazel 0.15.079
tensorflow_gpu-1.9.02.7, 3.3-3.6GCC 4.8Bazel 0.11.079
tensorflow_gpu-1.8.02.7, 3.3-3.6GCC 4.8Bazel 0.10.079
tensorflow_gpu-1.7.02.7, 3.3-3.6GCC 4.8Bazel 0.9.079
tensorflow_gpu-1.6.02.7, 3.3-3.6GCC 4.8Bazel 0.9.079
tensorflow_gpu-1.5.02.7, 3.3-3.6GCC 4.8Bazel 0.8.079
tensorflow_gpu-1.4.02.7, 3.3-3.6GCC 4.8Bazel 0.5.468
tensorflow_gpu-1.3.02.7, 3.3-3.6GCC 4.8Bazel 0.4.568
tensorflow_gpu-1.2.02.7, 3.3-3.6GCC 4.8Bazel 0.4.55.18
tensorflow_gpu-1.1.02.7, 3.3-3.6GCC 4.8Bazel 0.4.25.18
tensorflow_gpu-1.0.02.7, 3.3-3.6GCC 4.8Bazel 0.4.25.18

 

cudnn 下载地址:https://developer.nvidia.com/rdp/cudnn-archive

 

需要注册帐号登入进去才能下载cudnn

 

选择符合自己cuda版本的下载“cuDNN Library for Linux”那一个

 

我们从Nvidia官网上下载下来的cudnn for linux的文件格式是.solitairetheme8,想要解压的话需要先转成tgz格式再解压:

 

cp  cudnn-8.0-linux-x64-v5.1.solitairetheme8 cudnn-8.0-linux-x64-v5.1.tgz
tar -xvf cudnn-8.0-linux-x64-v5.1.tgz

 

解压后,会看到cuda文件夹, 在当前路径打开terminal, 输入如下语句:

sudo cp cuda/include/cudnn.h /usr/local/cuda/include/
sudo cp cuda/lib64/libcudnn* /usr/local/cuda/lib64/
sudo chmod a+r /usr/local/cuda/include/cudnn.h
sudo chmod a+r /usr/local/cuda/lib64/libcudnn*

 

查看cudnn版本:

 

在终端输入

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

 

若出现:

 

image

 

则说明cudnn 安装成功。

 

至此显卡已经全部配置好了,接下来可以安装anaconda 创建环境 下载库进行深度学习研究了。

 

本人觉得这个安装指南写的比较全面:

https://blog.csdn.net/wanzhen4330/article/details/81699769

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/473212.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

LeetCode 552. 学生出勤记录 II(动态规划)

文章目录1. 题目2. 解题1. 题目 给定一个正整数 n,返回长度为 n 的所有可被视为可奖励的出勤记录的数量。 答案可能非常大,你只需返回结果mod 10^9 7的值。 学生出勤记录是只包含以下三个字符的字符串: A : Absent,缺勤 L : L…

ubuntu定时执行python脚本方法及实例代码

一、前言 本文将介绍ubuntu系统下如何定时执行shell脚本、python脚本,ubuntu系统有一个定时任务的管理器crontab,我们只需要编辑定时任务,然后重启定时任务服务就好了。 二、工具:crontab a、编辑定时任务: crontab -…

LeetCode 940. 不同的子序列 II(动态规划)

文章目录1. 题目2. 解题1. 题目 给定一个字符串 S,计算 S 的不同非空子序列的个数。 因为结果可能很大,所以返回答案模 10^9 7. 示例 1: 输入:"abc" 输出:7 解释:7 个不同的子序列分别是 &qu…

[Jmeter]Jmeter环境搭建

Jmeter环境搭建 1、 拷贝 \\szpc1450\apache-jmeter-2.7 整个目录到本机(我是放在D盘,以下路径说明以D盘为例) 2、 拷贝\\szpc1450\Tools\autotest softwares\jdk-6u11-windows-i586-p.exe到本机之后进行安装 安装完毕之后添加环境变量 JAVA_HOME C:\Program File…

LeetCode 907. 子数组的最小值之和(单调栈)

文章目录1. 题目2. 解题1. 题目 给定一个整数数组 A,找到 min(B) 的总和,其中 B 的范围为 A 的每个(连续)子数组。 由于答案可能很大,因此返回答案模 10^9 7。 示例: 输入:[3,1,2,4] 输出&a…

Python环境下,提高pip安装库速度的方法!

一、前言 学习 Python 的话,仅掌握标准库是远不够的,有很多好用的第三方库我们也需要用到的 大家发现 pip install 包名 的方式 安装第三方库的时候,下载速度很慢,有时还会超时,遇到第三方库比较大时候,…

LeetCode 792. 匹配子序列的单词数(二分查找)

文章目录1. 题目2. 解题1. 题目 给定字符串 S 和单词字典 words, 求 words[i] 中是 S 的子序列的单词个数。 示例: 输入: S "abcde" words ["a", "bb", "acd", "ace"] 输出: 3 解释: 有三个是 S 的子序列的单词: "…

利用Python从字幕网上下载自己所需要的字幕(热门电影、美剧等)

一、前言 主要需求:利用python从字幕库网站上下载字幕 字幕网址:http://www.zimuku.la/ 二、方法: 1、打开网站,搜索自己所需要的字幕: 2、开始写代码: a、配置标头,手动输入下载的字幕名字…

ASP.NET开发,简化与封装

微软的ASP.NET的开发,就是面向对象的编程,当然前端也能体验至面向对象的话,使用Web控件也必须的。任一控件,我们均可以在后端.aspx.cs或.aspx.vb程序中new一个对象出来。很多场合里,在开发ASP.NET开发中,后…

调用Django中的API时,使用Pycharm给后端view打断点的方法

一、前言 使用Pycharm写后端很便捷,但是项目运行后,无法找到简洁的debug方法,本文主要以图文形式,说明一下利用Postman与Pycharm来给项目debug 二、方法 1、使用Pycharm打开项目文件,点击右上角,编辑配置文…

[Kaggle] Spam/Ham Email Classification 垃圾邮件分类(BERT)

文章目录1. 数据处理2. 下载预训练模型3. 加载数据4. 定义模型5. 训练6. 提交测试结果练习地址:https://www.kaggle.com/c/ds100fa19 相关博文: [Kaggle] Spam/Ham Email Classification 垃圾邮件分类(spacy) [Kaggle] Spam/Ham E…

python 中main函数总结

Python使用缩进对齐组织代码的执行,所有没有缩进的代码(非函数定义和类定义),都会在载入时自动执行,这些代码,可以认为是Python的main函数。 每个文件(模块)都可以任意写一些没有缩进…

python从图片里提取主要颜色

一、需求: 从一张图片里提取主要的几种颜色 二、效果: 三、代码 from PIL import Image, ImageDraw, ImageFontdef get_dominant_colors(infile):image Image.open(infile)# 缩小图片,否则计算机压力太大small_image image.resize((80, …

LeetCode 790. 多米诺和托米诺平铺(动态规划)

文章目录1. 题目2. 解题1. 题目 有两种形状的瓷砖&#xff1a; 一种是 2x1 的多米诺形&#xff0c; 另一种是形如 “L” 的托米诺形。 两种形状都可以旋转。 XX <- 多米诺XX <- "L" 托米诺 X给定 N 的值&#xff0c;有多少种方法可以平铺 2 x N 的面板&…

Django后端编辑图片提取主要颜色API

一、需求 前端页面需要调用后端API&#xff0c;实现获取主要颜色json数据 二、图片效果 三、代码实现&#xff1a; # Create your views here. import os from django.core.files.storage import default_storage from django.http import HttpResponse, JsonResponse from …

LeetCode 898. 子数组按位或操作(前缀和思想)

文章目录1. 题目2. 解题2.1 超时解2.2 正解1. 题目 我们有一个非负整数数组 A。 对于每个&#xff08;连续的&#xff09;子数组 B [A[i], A[i1], ..., A[j]] &#xff08; i < j&#xff09;&#xff0c;我们对 B 中的每个元素进行按位或操作&#xff0c;获得结果 A[i] …

天池 在线编程 回合制游戏(前缀和)

文章目录1. 题目2. 解题1. 题目 QW 是一个回合制游戏的玩家&#xff0c;今天他决定去打怪。 QW 在一场战斗中会碰到 n 个怪物&#xff0c;每个怪物有攻击力 atk[i]&#xff0c;每回合结束时如果第 i 个怪物还活着&#xff0c;就会对 QW 造成 atk[i] 的伤害。 QW 只能在每回合…

Python程序员的圣经——《Python编程快速上手:让繁琐工作自动化》尾末附下载地址

一、前言 如今&#xff0c;人们面临的大多数任务都可以通过编写计算机软件来完成。Python是一种解释型、面向对象、动态数据类型的高级程序设计语言。通过Python编程&#xff0c;我们能够解决现实生活中的很多任务。 今天给大家分享一份Python程序员的圣经——《Python编程快…

POJ 3608

1.计算P上y坐标值最小的顶点&#xff08;称为 yminP &#xff09;和Q上y坐标值最大的顶点&#xff08;称为 ymaxQ&#xff09;。 2.为多边形在 yminP 和 ymaxQ 处构造两条切线 LP 和 LQ 使得他们对应的多边形位于他们的右侧。 此时 LP 和 LQ 拥有不同的方向&#xff0c; 并且 y…

天池 在线编程 聪明的销售(计数+贪心)

文章目录1. 题目2. 解题1. 题目 销售主管的任务是出售一系列的物品&#xff0c;其中每个物品都有一个编号。 由于出售具有相同编号的商品会更容易&#xff0c;所以销售主管决定删除一些物品。 现在她知道她最多能删除多少物品&#xff0c;她想知道最终袋子里最少可以包含多少…